U
    j                     @   sr   d Z ddlZddlZddlZddlmZ ddlmZmZ dd Zdd Z	d	d
 Z
dd Zdd
gZedkrne  dS )z=utility program that allows user to preview calendar's events    N)datetime)Calendar__version__c                 C   s4   |  dd }| dd }|s$dS | d| dS )zRetrieve the e-mail and the name from an address.

    :arg an address object, e.g. mailto:test@test.test

    :returns str: The name and the e-mail address.
    :@r    z <>)split)addressemailname r   1/tmp/pip-unpacked-wheel-g40nyxg1/icalendar/cli.py_format_name   s
    r   c                 C   s*   t | tr| g} dtdd tt| S )zFormat the list of attendees.

    :arg any attendees: Either a list, a string or a vCalAddress object.

    :returns str: Formatted list of attendees.
    
c                 S   s   |  t| d S N   rjustlensr   r   r   <lambda>#       z#_format_attendees.<locals>.<lambda>)
isinstancestrjoinmapr   )	attendeesr   r   r   _format_attendees   s    
r    c           
      C   s0  | j ddd}t| j ddd}t| j dg d}| j ddd}|  dd}|  ddd	}d	td
d |}| d}d| kr| jd|| d d}n| jd|d}| jd|| d}	t|tr|	 }|
d}t|tr|	 }|
d}d| d| d| d| d| d|	 d| d| d| S )zcMake a human readable summary of an iCalendar file.

    :returns str: Human readable summary.
    summaryr   )default	organizerZattendeelocationcommentdescriptionr   c                 S   s   |  t| d S r   r   r   r   r   r   r   1   r   zview.<locals>.<lambda>ZdtstartdurationZdtendz%cz    Organizer: z
    Attendees:
z
    Summary    : z
    Starts     : z
    End        : z
    Duration   : z
    Location   : z
    Comment    : z
    Description:
)getr   r    r
   r   r   decodedr   r   
astimezonestrftime)
eventr!   r#   r   r$   r%   r&   startendr'   r   r   r   view&   sF    





r/   c               
   C   s   t jtd} | jddtjd | jddt dtjdd	 | jd
dd| j	 dt
 d |  }|jD ]N}t|dd8}t| }|dD ]}|jt|d  qW 5 Q R X qfd S )N)r&   calendar_files+)nargstypez--outputz-owzoutput file)r3   r"   helpz-vz	--versionversionz	 version )actionr6   z	utf-8-sig)encodingZveventz

)argparseArgumentParser__doc__add_argumentpathlibPathFileTypesysstdoutprogr   
parse_argsr0   openr   Z	from_icalreadwalkoutputwriter/   )parserargvZcalendar_filefcalendarr,   r   r   r   mainM   s*    
rM   __main__)r;   r@   r=   r9   r   Z	icalendarr   r   r   r    r/   rM   __all____name__r   r   r   r   <module>   s   '