
    Dj                       d Z ddlmZ ddlmZ ddlZddlmZmZm	Z	 ddl
mZmZ ddlmZmZmZmZmZmZmZmZmZmZ ddlmZ  ej        d	
          Ze                    d          dddddeefd8d            Ze                    d            ej        dd!d"
           ej        dd#d$
           ej        d%d&d'
           ej        dd(d)
           ej        d*d+d,d-.          dddddeefd9d7            ZdS ):zCalendar commands.    )annotations)OptionalN)	get_stateparse_datetimeservice_call)normalize_calendarnormalize_event)
DEFAULT_LOG_LEVELDEFAULT_OUTPUT_FORMATHttpProxyOptionHttpsProxyOptionLogLevelOptionNoVerifySslOptionOutputFormatOptionSessionDirOptionUsernameOptionstore_command_options)console_tablezInspect calendars and events.)help	calendarsFctxtyper.Contextusernamer   session_dirr   
http_proxyr   https_proxyr   no_verify_sslr   output_formatr   	log_levelr   returnNonec           
     \  
 t          | |||||||           t          |           }|                                
d t          d
fd          D             }	|j        r|                    |	           dS |j                            t          dg dd |	D                                  dS )	zList available calendars.r   r   r   r   r   r   r   c                ,    g | ]}t          |          S  )r   .0calendars     Y/home/thesage/.hermes/venv/lib/python3.11/site-packages/pyicloud/cli/commands/calendar.py
<listcomp>z&calendar_calendars.<locals>.<listcomp>5   s0        	8$$      Calendarc                 6     j                                         S )N)r(   get_calendars)apis   r)   <lambda>z$calendar_calendars.<locals>.<lambda>7   s    9S9S9U9U r+   N	Calendars)GUIDTitleColorz
Share Typec                J    g | ] }|d          |d         |d         |d         f!S )guidtitlecolor
share_typer%   r&   s     r)   r*   z&calendar_calendars.<locals>.<listcomp>@   sL         V$W%W%\*	  r+   	r   r   get_apir   json_output
write_jsonconsoleprintr   )r   r   r   r   r   r   r   r   statepayloadr/   s             @r)   calendar_calendarsrB      s    ##	 	 	 	 cNNE
--//C $Z1U1U1U1UVV  G  !!!	M444  !(  	
 	
    r+   eventsz--fromzStart datetime.z--tozEnd datetime.monthz--periodzCalendar period shortcut.z--calendar-guidzEOnly show events from one calendar. Filtering is applied client-side.2   z--limit   z'Maximum events to show after filtering.)minr   from_dtOptional[str]to_dtperiodstrcalendar_guidlimitintc           
        t          | ||||	|
||           t          |           }|                                d t          dfd          D             }rfd|D             }|d|         }|j        r|                    |           dS |j                            t          dg dd	 |D                                  dS )
zList calendar events.r#   c                ,    g | ]}t          |          S r%   )r	   r'   events     r)   r*   z#calendar_events.<locals>.<listcomp>t   s0     
 
 
 	
 
 
r+   r,   c                 r     j                             t                    t                              S )N)rH   rJ   rK   )r(   
get_eventsr   )r/   rH   rK   rJ   s   r)   r0   z!calendar_events.<locals>.<lambda>x   s7    CL++&w//$U++ ,   r+   c                ,    g | ]}|d          k    |S )rM   r%   )r'   rS   rM   s     r)   r*   z#calendar_events.<locals>.<listcomp>   s/     
 
 
%*@M*Q*QE*Q*Q*Qr+   NEvents)r2   r,   r3   StartEndc                X    g | ]'}|d          |d         |d         |d         |d         f(S )r6   rM   r7   startendr%   rR   s     r)   r*   z#calendar_events.<locals>.<listcomp>   sP     	 	 	  &M/*'N'N%L	 	 	r+   r:   )r   rH   rJ   rK   rM   rN   r   r   r   r   r   r   r   r@   rA   r/   s    ````          @r)   calendar_eventsr]   M   s`   6 ##	 	 	 	 cNNE
--//C
 
!      
 

 
 
G  

 
 
 
&
 
 
 fufoG !!!	M999	 	 %	 	 		
 	
    r+   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   )r   r   rH   rI   rJ   rI   rK   rL   rM   rI   rN   rO   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   ) __doc__
__future__r   typingr   typerpyicloud.cli.contextr   r   r   pyicloud.cli.normalizer   r	   pyicloud.cli.optionsr
   r   r   r   r   r   r   r   r   r   pyicloud.cli.outputr   TyperappcommandrB   Optionr]   r%   r+   r)   <module>rj      s<     " " " " " "        H H H H H H H H H H F F F F F F F F                        . - - - - -ek6777 [  $$("&$(',(= 1- - - - -` X *U\$?PQQQ'5<f?KKK%,w
9TUUU#/5<T$ $ $
 
6	    $$("&$(',(= 1-H H H H H H Hr+   