o
    l>j                     @  s$  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	d
Zeddddddeefd:dd Zed!ejdd"d#d
ejdd$d%d
ejd&d'd(d
ejdd)d*d
ejd+d,d-d.d/dddddeefd;d8d9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           
   
     s~   t | |||||||d t| }|  dd td fddD }	|jr,||	 dS |jtdg d	d
d |	D  dS )zList available calendars.r   r   r   r   r   r   r   c                 S     g | ]}t |qS  )r   .0calendarr#   r#   S/home/thesage/.local/lib/python3.10/site-packages/pyicloud/cli/commands/calendar.py
<listcomp>5       z&calendar_calendars.<locals>.<listcomp>Calendarc                     s
    j  S )N)r&   get_calendarsr#   apir#   r'   <lambda>7   s   
 z$calendar_calendars.<locals>.<lambda>N	Calendars)GUIDTitleColorz
Share Typec                 S  s(   g | ]}|d  |d |d |d fqS )guidtitlecolor
share_typer#   r$   r#   r#   r'   r(   @   s    	r   r   get_apir   json_output
write_jsonconsoleprintr   )
r   r   r   r   r   r   r   r   statepayloadr#   r,   r'   calendar_calendars   s6   

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              
     s   t | ||||	|
||d t| }|  dd td fddD }r0fdd|D }|d| }|jr@|| dS |jtd	g d
dd |D  dS )zList calendar events.r!   c                 S  r"   r#   )r   r%   eventr#   r#   r'   r(   t   r)   z#calendar_events.<locals>.<listcomp>r*   c                     s    j jttdS )N)rE   rG   rH   )r&   
get_eventsr   r#   )r-   rE   rH   rG   r#   r'   r.   x   s
    z!calendar_events.<locals>.<lambda>c                   s   g | ]
}|d   kr|qS rJ   r#   rM   rP   r#   r'   r(      s    NEvents)r0   r*   r1   StartEndc                 S  s.   g | ]}|d  |d |d |d |d fqS )r3   rJ   r4   startendr#   rM   r#   r#   r'   r(      s    r7   )r   rE   rG   rH   rJ   rK   r   r   r   r   r   r   r   r=   r>   r#   )r-   rJ   rE   rH   rG   r'   calendar_eventsM   sF   


rV   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    )r   r   rE   rF   rG   rF   rH   rI   rJ   rF   rK   rL   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commandr?   OptionrV   r#   r#   r#   r'   <module>   sR    00