
    i                         d Z ddlZddlZddlmZ ddlmZ ddlmZmZ ddl	m
Z
 ddlmZ ded	efd
Zdeez  ez  d	efdZded	efdZd ZddgZedk    r e             dS dS )z=Utility program that allows user to preview calendar's events    N)datetime)Path)__version__vCalAddress)Calendar)Eventaddressreturnc                     |                      dd          d         }|                    d          d         }|sdS | d| d	S )
a  Format a display name and email from an address string.

    Parameters:
        address: An address object, such as mailto:name@example.com.

    Returns:
        A formatted string, like 'name <name@example.com>',
        or an empty string if no email is found.
    :   )maxsplit@r    z <>)rsplitsplit)r	   emailnames      H/root/projects/butler/venv/lib/python3.11/site-packages/icalendar/cli.py_format_namer      sX     NN3N++B/E;;sAD re    	attendeesc                     t          | t                    r| g} d                    d t          t          |           D                       S )zFormat the list of attendees.

    Parameters:
        attendees: Either a list, a string, or a vCalAddress object.

    Returns:
        A formatted string of attendees, each indented by 5 spaces.
    
c              3   `   K   | ])}|                     t          |          d z             V  *dS    Nrjustlen.0ss     r   	<genexpr>z$_format_attendees.<locals>.<genexpr>*   s8      OOQQWWSVVaZ((OOOOOOr   )
isinstancestrjoinmapr   )r   s    r   _format_attendeesr+      sH     )S!!  K	99OO#lI2N2NOOOOOOr   eventc                    |                      dd          }t          |                      dd                    }t          |                      dg                     }|                      dd          }|                      dd          }|                      dd                              d	          }d	                    d
 |D                       }|                     d          }d| v r.|                     d||                     d          z             }n|                     d|          }|                     d||z
            }	t          |t                    r|                                }|	                    d          }t          |t                    r|                                }|	                    d          }d| d| d| d| d| d|	 d| d| d| S )a  Make a human readable summary of an iCalendar file.

    Parameters:
        event: An iCalendar event containing fields such as
               summary, organizer, attendees, location, and timing.

    Returns:
        A human readable summary of the event.
    summaryr   )default	organizerattendeelocationcommentdescriptionr   c              3   `   K   | ])}|                     t          |          d z             V  *dS r   r    r#   s     r   r&   zview.<locals>.<genexpr>=   s8      EEAAGGCFFQJ//EEEEEEr   dtstartdurationdtendz%cz    Organizer: z
    Attendees:
z
    Summary    : z
    Starts     : z
    End        : z
    Duration   : z
    Location   : z
    Comment    : z
    Description:
)
getr   r+   r   r)   decodedr'   r   
astimezonestrftime)
r,   r.   r0   r   r2   r3   r4   startendr7   s
             r   viewr?   -   s     ii	2i..GUYY{BY??@@I!%))J)"C"CDDIyyRy00Hii	2&&G))M2..44T::K))EEEEEEEKMM)$$EUmmGUU]]:5N5N-NmOOmmGUm33}}Zu}==H%"" #  ""NN4  E#x   nn
,,t

C
y 
 


 
 
 
 	
 

 
 
 
 
 
 
 
 
 
 
 
r   c                     t          j        t                    } |                     ddd           |                     dddd	
           |                     ddd| j         dt
                      |                                 }|j        dk    rt          j	        }d}n+t          |j                                      dd          }d}	 |j        D ]}|dk    rt          j        }d}n%t          |                              d          }d}	 t          j        |                                          }|                    d |                    d          D                        |r|                                 # |r|                                 w w xY w	 |r|                                 d S d S # |r|                                 w w xY w)N)r4   calendar_files+z*one or more .ics files (use '-' for stdin))nargshelpz--outputz-o-z%output file path (use '-' for stdout))r/   rD   z-vz	--versionversionz	 version )actionrF   Fwzutf-8)encodingTz	utf-8-sigc              3   :   K   | ]}t          |          d z   V  dS )z

N)r?   )r$   r,   s     r   r&   zmain.<locals>.<genexpr>   s>       ' '-2DKK&(' ' ' ' ' 'r   vevent)argparseArgumentParser__doc__add_argumentprogr   
parse_argsoutputsysstdoutr   openrA   stdinr   	from_icalread
writelineswalkclose)parserargvoutput_fileclose_outputpathfclose_inputcalendars           r   mainrd   Y   s.   $999F
*V     D#,S     ;6666	     D {cj4;'',,S7,CC ' 	 	Ds{{I#JJOO[O99"#-affhh77&& ' '6>mmH6M6M' ' '     GGIII  GGIIII	"  	 	  	 < 	 	 s&   AF8 AF*F8 FF8 8Grd   r?   __main__)rN   rL   rS   r   pathlibr   	icalendarr   r   icalendar.cal.calendarr   icalendar.cal.eventr   r(   r   listr+   r?   rd   __all____name__ r   r   <module>rn      s1   C C  



             . . . . . . . . + + + + + + % % % % % %# #    "Pk!9 Pc P P P P) )# ) ) ) )X0  0  0 f 6
zDFFFFF r   