
    =[j                    Z   d Z ddlmZ ddlmZ ddlmZmZ ddlZddl	m
Z
 ddlmZmZmZmZ ddl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mZm Z  ddl!m"Z"m#Z# ddl$m%Z%m&Z&m'Z'm(Z(m)Z) ddl*m+Z+m,Z,  ej-        d          Z. ej-        d          Z/ ej-        d          Z0 ej-        d          Z1 ej-        d          Z2dZ3 ed          Z4dZ5dZ6 G d de7e          Z8 G d de7e          Z9e8j:        e,j:        e8j;        e,j;        iZ<e9j=        e'j=        e9j>        e'j>        e9j?        e'j?        e9j@        e'j@        iZAdd ZBe.C                    e/d!d"eB#           e.C                    e1d$d"eB#           e.C                    e0d%d"eB#           e.C                    e2d&d"eB#           dd*ZDdd.ZEd/ ZFd0 ZGdd3ZHdd4dd;ZId d@ZJddBZKddEZLddHZMddJZNe.O                    dK          dddddLeefdd[            ZPe.O                    d\           ejQ        dd]d^           ejQ        dLd_d`           ejQ        dadbdcdde          dddddLeef
ddf            ZRe.O                    dg           ejS        dhe5          dddddLeefddi            ZTe.O                    dj           ejQ        dhd]dk           ejQ        dhdldm           ejQ        dndodp           ejQ        dLe6dq           ejQ        ddrds           ejQ        ddtdu           ejQ        dLdvdw           ejQ        dLdxdy           ejQ        ddzd{           ejQ        dd|d}          dddddLeefdd            ZUe.O                    d           ejS        dhe5           ejQ        ddldm           ejQ        ddodp           ejQ        de6d           ejQ        ddrds           ejQ        dLdd           ejQ        ddtd           ejQ        ddvd           ejQ        ddxd           ejQ        ddzd{           ejQ        dLdd           ejQ        dd|d           ejQ        dLdd          dddddLeefd	d            ZVe.O                    d           ejS        dhe5           ejQ        d"e6d          dddddLeef	d
d            ZWe.O                    d           ejS        dhe5          dddddLeefdd            ZXe.O                    d           ejQ        dhd]d^           ejQ        dLd_d`           ejQ        dddcde          dddddLeef
dd            ZYe.O                    d           ejQ        ddd           ejQ        dadbdcde          dddddLeef	dd            ZZe.O                    d          dddddLeefdd            Z[e/O                    d\           ejS        dhe5          dddddLeefdd            Z\e/O                    d           ejS        dhe5           ejQ        dhdld           ejQ        dhdd           ejQ        dhdd           ejQ        dhdd           ejQ        dddde           ejQ        e8j:        dd          dddddLeefdd            Z]e1O                    d\           ejS        dhe5          dddddLeefdd            Z^e1O                    dj           ejS        dhe5           ejS        dhd¬          dddddLeef	ddĄ            Z_e1O                    d           ejS        dhe5           ejS        dhdŬ           ejQ        dhddǬ          dddddLeef
ddɄ            Z`e1O                    d           ejS        dhe5           ejS        dhdŬ          dddddLeef	ddʄ            Zae0O                    d\           ejS        dhe5          dddddLeefdd˄            Zbe0O                    d̦           ejS        dhe5           ejQ        dhddά           ejQ        dddѬ          dddddLeef
ddԄ            Zce0O                    d           ejS        dhe5           ejS        dhdլ           ejQ        ddd֬           ejQ        ddd׬           ejQ        ddd٬           ejQ        dddd۬e           ejQ        ddddݬe           ejQ        dddd߬e          dddddLeefdd            Zde0O                    d           ejS        dhe5           ejS        dhdլ          dddddLeef	dd            Zee2O                    d\           ejS        dhe5          dddddLeefdd            Zfe2O                    dj           ejS        dhe5           ejQ        e9j=        dd           ejQ        dcddcde           ejQ        dddde           ejQ        ddddd          dddddLeefdd            Zge2O                    d           ejS        dhe5           ejS        dhd           ejQ        ddd           ejQ        dddcde           ejQ        dddde           ejQ        ddddd          dddddLeefdd            Zhe2O                    d           ejS        dhe5           ejS        dhd          dddddLeef	dd            ZidS (  zReminders commands.    )annotations)Enum)CallableTypeVarN)ValidationError)CLIAbort	get_stateparse_datetimeservice_call)normalize_sync_cursor)
DEFAULT_LOG_LEVELDEFAULT_OUTPUT_FORMATHttpProxyOptionHttpsProxyOptionLogLevelOptionNoVerifySslOptionOutputFormatOptionSessionDirOptionUsernameOptionstore_command_options)console_kv_tableconsole_tableformat_color_value)RemindersApiErrorRemindersAuthError)AlarmWithTriggerImageAttachmentRecurrenceFrequencyReminderURLAttachment)
Attachment	ProximityzInspect and mutate Reminders.)helpzWork with reminder alarms.zWork with reminder attachments.zWork with reminder hashtags.z$Work with reminder recurrence rules.	RemindersTRelatedzReminder id.z--completed/--not-completedc                      e Zd ZdZdZdZdS )ProximityChoicezCLI-facing proximity choice.arrivingleavingN)__name__
__module____qualname____doc__ARRIVINGLEAVING     g/home/thesage/.hermes/hermes-agent/venv/lib/python3.11/site-packages/pyicloud/cli/commands/reminders.pyr'   r'   1   s        &&HGGGr1   r'   c                  "    e Zd ZdZdZdZdZdZdS )RecurrenceFrequencyChoicez CLI-facing recurrence frequency.dailyweeklymonthlyyearlyN)r*   r+   r,   r-   DAILYWEEKLYMONTHLYYEARLYr0   r1   r2   r4   r4   8   s(        **EFGFFFr1   r4   ctxtyper.ContextreturnNonec                    | j         9t          j        |                                            t          j                    dS )z5Show subgroup help when invoked without a subcommand.N)invoked_subcommandtyperechoget_helpExit)r=   s    r2   _group_rootrG   M   s9     %
3<<>>"""jll &%r1   alarmT)nameinvoke_without_commandcallbackhashtag
attachment
recurrencevaluestrprefixc                    t          |                                           }|s|S | d}|                    |          r|S | | S )z5Return an identifier with the expected record prefix./)rP   strip
startswith)rO   rQ   
normalizedtokens       r2   _normalize_prefixed_idrX   i   sa     U!!##J LLLEU## !Z!!!r1   	record_idqueryboolc                    t          |                                          }|sdS | |k    rdS d| v r"|                     dd          d         |k    rdS dS )z=Return whether a record id matches a full or shorthand query.FTrS      )rP   rT   split)rY   rZ   rV   s      r2   _id_matchesr_   u   sj     U!!##J uJt
iIOOC33A6*DDt5r1   c                B     t          t           fd j                  S )z<Return the Reminders service with reauthentication handling.c                      j         S N	remindersapis   r2   <lambda>z$_reminders_service.<locals>.<lambda>   s	    3= r1   account_name)r   	REMINDERSri   re   s   `r2   _reminders_servicerk      s'     	#8#8#8#8sGWXXXXr1   c                    	 t          t          || j                  S # t          t          t
          t          f$ r"}t          t          |                    |d}~ww xY w)z>Wrap reminder calls with reminder-specific user-facing errors.rh   N)	r   rj   ri   LookupErrorr   r   r   r   rP   )rf   fnerrs      r2   _reminders_callrp      sd    *Ir8HIIII	 * * * s3xx  c)*s    AAAreminder_idr   c                L    t          |           t          | fd          S )zReturn one reminder by id.c                 .                                    S rb   )get)rq   rd   s   r2   rg   z#_resolve_reminder.<locals>.<lambda>   s    	k(B(B r1   )rk   rp   )rf   rq   rd   s    `@r2   _resolve_reminderru      s0     #3''I3 B B B B BCCCr1   )list_idrv   
str | Noneinclude_completedlimitintlist[Reminder]c                 	
 t          |           	t          |d          
r%t          | 	
fd          }|j        d|         S g }t	                      }t          | 	fd          D ]z}t          | |j        f	
fd	          }|j        D ]T}|j        |v r|                    |j                   |                    |           t          |          |k    r|c c S U{|S )zOReturn reminder rows using compound snapshots to preserve completion filtering.   c                 P                         t          d                     S NListrv   rx   results_limitlist_remindersrX   rx   rv   rd   r   s   r2   rg   z%_list_reminder_rows.<locals>.<lambda>   s/    I,,.w??"3+ -   r1   Nc                 F    t                                                     S rb   listlistsrc   s   r2   rg   z%_list_reminder_rows.<locals>.<lambda>   s    d9??;L;L6M6M r1   c                4                         |           S )Nr   )r   )lidrx   rd   r   s    r2   rg   z%_list_reminder_rows.<locals>.<lambda>   s&    )A)A"3+ *B * * r1   )	rk   maxrp   rd   setidaddappendlen)rf   rv   rx   ry   snapshotrowsseen_idsreminder_listreminderrd   r   s    ``      @@r2   _list_reminder_rowsr      sX    #3''IsOOM 	*"      
 
 !&5&))DH(.M.M.M.MNN  "$'       
 
 !* 	 	H{h&&LL%%%KK!!!4yyE!! "	 Kr1   label
fetch_rows$Callable[[Reminder], list[TRelated]]tuple[Reminder, TRelated]c          	         t          | |          t          | fd          }|D ])}t          |dd          }t          ||          r|fc S *t	          d| d| dj         d          )zAReturn one reminder child record matched by full or shorthand id.c                                 S rb   r0   )r   r   s   r2   rg   z)_resolve_related_record.<locals>.<lambda>   s    

8(<(< r1   r    zNo z
 matched 'z' for reminder .)ru   rp   getattrr_   r   r   )	rf   rq   rZ   r   r   r   rowrow_idr   s	       `   @r2   _resolve_related_recordr      s     !k22H3 < < < < <==D ! !dB''vu%% 	!S=   	!
NNN%NNNNN
O
OOr1   r!   c                    t          | t                    rdS t          | t                    rdS t          |           j                                        S )z'Return a compact attachment type label.urlimage)
isinstancer    r   typer*   lower)rM   s    r2   _attachment_kindr      sO     *m,, u*o.. w
$**,,,r1   	proximityProximity | Nonec                <    | dS | j                                         S )z(Return a human-readable proximity label.NrI   r   )r   s    r2   _proximity_labelr      #     t>!!!r1   	frequencyRecurrenceFrequency | Nonec                <    | dS | j                                         S )z3Return a human-readable recurrence frequency label.Nr   )r   s    r2   _frequency_labelr      r   r1   cursorc                    | j         r$|                     t          |                     dS | j                            |           dS )z*Render a sync cursor in JSON or text mode.N)json_output
write_jsonr   consoleprint)stater   s     r2   _sync_cursor_payloadr      sM      .v66777	Mr1   r   Fusernamer   session_dirr   
http_proxyr   https_proxyr   no_verify_sslr   output_formatr   	log_levelr   c           
     f   t          | |||||||           t          |           }|                                }	t          |	          t	          |	fd          }
|j        r|                    |
           dS |j                            t          dg dd |
D                                  dS )zList reminder lists.r   r   r   r   r   r   r   c                 F    t                                                     S rb   r   rc   s   r2   rg   z!reminders_lists.<locals>.<lambda>  s    4	0A0A+B+B r1   NzReminder Lists)IDTitleColorCountc                \    g | ])}|j         |j        t          |j                  |j        f*S r0   )r   titler   colorcount.0r   s     r2   
<listcomp>z#reminders_lists.<locals>.<listcomp>   sH         FI&sy11I	  r1   
r   r	   get_apirk   rp   r   r   r   r   r   )r=   r   r   r   r   r   r   r   r   rf   payloadrd   s              @r2   reminders_listsr      s     ##	 	 	 	 cNNE
--//C"3''Ic#B#B#B#BCCG !!!	M---  #  	
 	
    r1   r   z	--list-idzReminder list id.z--include-completedzInclude completed reminders.2   z--limitr]   zMaximum reminders to show.)minr#   c           
     F   t          | ||||||	|
           t          |           }|                                }t          ||||          }|j        r|                    |           dS |j                            t          dg dd |D                                  dS )zList reminders.r   )rv   rx   ry   Nr$   r   r   	CompletedDuePriorityc                N    g | ]"}|j         |j        |j        |j        |j        f#S r0   r   r   	completeddue_datepriorityr   r   s     r2   r   z"reminders_list.<locals>.<listcomp>Z  H     	 	 	  KN&%%	 	 	r1   )	r   r	   r   r   r   r   r   r   r   )r=   rv   rx   ry   r   r   r   r   r   r   r   r   rf   r   s                 r2   reminders_listr   -  s    ( ##	 	 	 	 cNNE
--//C!+	  G  !!!	M;;;	 	 !(	 	 		
 	
    r1   rt   .c	                   t          | |||||||           t          |           }	|	                                }
t          |
|          }|	j        r|	                    |           dS |	j                            t          d|j	         d|j
        fd|j        fd|j        fd|j        fd|j        fd	|j        fd
|j        fd|j        fd|j        fd|j        fg
                     dS )zGet one reminder.r   Nz
Reminder: r   List IDDescriptionr   zDue Dater   FlaggedzAll Dayz	Time ZonezParent Reminder)r   r	   r   ru   r   r   r   r   r   r   r   rv   descr   r   r   flaggedall_day	time_zoneparent_reminder_id)r=   rq   r   r   r   r   r   r   r   r   rf   r   s               r2   reminders_getr   h  s/    ##	 	 	 	 cNNE
--//C k22H """	M)))x{#H,-.h01X./X./H,-H,-h01"H$?@	
 	
    r1   createzTarget list id.z--titlezReminder title.r   z--desczReminder description.z/Create the reminder as completed or incomplete.z
--due-datezDue datetime.z
--priorityzApple priority number.z--flagged/--not-flaggedz)Create the reminder flagged or unflagged.z--all-day/--not-all-dayz(Create the reminder as all-day or timed.z--time-zonezIANA time zone.z--parent-reminder-idz!Parent reminder id for a subtask.r   r   r   r   r   r   r   r   r   c                b  	
 t          | |||||||           t          |           }|                                }t          |          t	          |
	fd          }|j        r|                    |           dS |j                            |j	                   dS )zCreate a reminder.r   c                 x                         t          d          
t                     	
  
        S )Nr   )
rv   r   r   r   r   r   r   r   r   r   )r   rX   r
   )r   r   r   r   r   rv   r   r   rd   r   r   s   r2   rg   z"reminders_create.<locals>.<lambda>  sL    	  *7F;;#H--1 ! 
 
 r1   N)
r   r	   r   rk   rp   r   r   r   r   r   )r=   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rf   r   rd   s    ``````````          @r2   reminders_creater     s   N ##	 	 	 	 cNNE
--//C"3''I	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 H  """	M$$$$$r1   updatez*Mark the reminder completed or incomplete.z--clear-due-datezClear the due date.zApple priority.zFlag or unflag the reminder.zMark as all-day or timed.z--clear-time-zonezClear the time zone.zSet the parent reminder id.z--clear-parent-reminderzClear the parent reminder id.bool | Noneclear_due_date
int | Noneclear_time_zoneclear_parent_reminderc           
     B   |r|rt          j        d          |
r|rt          j        d          |r|rt          j        d          t          | |||||||           t          |           }|                                }t          |          t          ||          d}|	|_        d}|	|_        d}|	|_	        d}|t          |          _        d}n|r	d_        d}|	|_        d}|	|_        d}|		|	_        d}|

|
_        d}n|r	d_        d}|
|_        d}n|r	d_        d}|st#          d          t%          |fd	           |j        r|                               dS |j                            d
j                    dS )zUpdate one reminder.z7Choose either --due-date or --clear-due-date, not both.z9Choose either --time-zone or --clear-time-zone, not both.zHChoose either --parent-reminder-id or --clear-parent-reminder, not both.r   FNTz#No reminder updates were requested.c                 .                                    S rb   r   r   rd   s   r2   rg   z"reminders_update.<locals>.<lambda>]      !1!1(!;!; r1   Updated )rC   BadParameterr   r	   r   rk   ru   r   r   r   r
   r   r   r   r   r   r   r   rp   r   r   r   r   r   )r=   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rf   changedr   rd   s                           @@r2   reminders_updater    sb   l  
N 
 E
 
 	
  
_ 
 G
 
 	
  
3 
 V
 
 	
 ##	 	 	 	 cNNE
--//C"3''I k22HG&*844	  $""&	 !%&8#	 &*# ><===C;;;;;<<< """	M08;0011111r1   z
set-statusc
           
     x   t          | |||||||	           t          |           }
|
                                }t          |          t	          ||          |_        t          |fd           |
j        r|
                               dS |
j	        
                    dj         d|            dS )z(Mark a reminder completed or incomplete.r   c                 .                                    S rb   r   r   s   r2   rg   z&reminders_set_status.<locals>.<lambda>  r   r1   Nr   z: completed=)r   r	   r   rk   ru   r   rp   r   r   r   r   r   )r=   rq   r   r   r   r   r   r   r   r   r   rf   r   rd   s               @@r2   reminders_set_statusr  d  s    & ##	 	 	 	 cNNE
--//C"3''I k22H"HC;;;;;<<< """	MG8;GGIGGHHHHHr1   deletec	           
     t   t          | |||||||           t          |           }	|	                                }
t          |
          t	          |
|          t          |
fd           |	j        r|	                    j        dd           dS |	j	        
                    dj                    dS )zDelete a reminder.r   c                 .                                    S rb   )r  r   s   r2   rg   z"reminders_delete.<locals>.<lambda>  r   r1   T)rq   deletedNDeleted )r   r	   r   rk   ru   rp   r   r   r   r   r   )r=   rq   r   r   r   r   r   r   r   r   rf   r   rd   s              @@r2   reminders_deleter
    s     ##	 	 	 	 cNNE
--//C"3''I k22HC;;;;;<<< FFGGG	M08;0011111r1   r   r}   z--results-limitz5Maximum reminders to request from the compound query.r   c                   t          | ||||||	|
           t          |           }|                                }t          |          t	          |fd          }|j        r|                    |           dS |j                            t          ddt          d          fdt          |j                  fdt          |j                  fd	t          |j                  fd
t          |j                  fdt          |j                  fdt          |j                  fg                     |j                            t%          dg dd |j        D                                  dS )z0Fetch a compound reminder snapshot for one list.r   c                 P                         t          d                     S r   r   r   s   r2   rg   z$reminders_snapshot.<locals>.<lambda>  s/    	((*7F;;/' ) 
 
 r1   NzReminder Snapshotr   r   r$   AlarmsTriggersAttachmentsHashtagszRecurrence RuleszSnapshot Remindersr   c                N    g | ]"}|j         |j        |j        |j        |j        f#S r0   r   r   s     r2   r   z&reminders_snapshot.<locals>.<listcomp>  r   r1   )r   r	   r   rk   rp   r   r   r   r   r   rX   r   rd   alarmstriggersattachmentshashtagsrecurrence_rulesr   )r=   rv   rx   r   r   r   r   r   r   r   r   r   rf   r   rd   s    ```          @r2   reminders_snapshotr    s   2 ##	 	 	 	 cNNE
--//C"3''I	
 	
 	
 	
 	
 	
 	
 G  !!!	M27FCCDc'"34453w~../S!1223G$7 8 89S!1223#S)A%B%BC	
 	
   
M ;;;	 	 !( 1	 	 		
 	
    r1   changesz--sincezSync cursor.zMaximum changes to show.sincec
           
     n   t          | |||||||	           t          |           }
|
                                }t          |          t	          |fd          }|
j        r|
                    |           dS |
j                            t          dg dd |D                                  dS )z%List reminder changes since a cursor.r   c                 Z    t                                                  d           S )N)r  )r   iter_changes)ry   rd   r  s   r2   rg   z#reminders_changes.<locals>.<lambda>  s)    Y++%+8899&5&A r1   NzReminder Changes)TypeReminder IDr   r   c                z    g | ]8}|j         |j        |j        r|j        j        nd |j        r|j        j        nd f9S rb   )r   rq   r   r   r   )r   events     r2   r   z%reminders_changes.<locals>.<listcomp>(  s_         J%,1NDEN((05HEN,,D	  r1   r   )r=   r  ry   r   r   r   r   r   r   r   r   rf   r   rd   s    ``          @r2   reminders_changesr!    s    ##	 	 	 	 cNNE
--//C"3''IAAAAAA G  !!!	M999  %  	
 	
    r1   zsync-cursorc           
         t          | |||||||           t          |           }|                                }	t          |	          t	          |	fd          }
t          ||
           dS )z(Print the current Reminders sync cursor.r   c                 ,                                      S rb   )sync_cursorrc   s   r2   rg   z'reminders_sync_cursor.<locals>.<lambda>O  s    )*?*?*A*A r1   N)r   r	   r   rk   rp   r   )r=   r   r   r   r   r   r   r   r   rf   r   rd   s              @r2   reminders_sync_cursorr%  5  s     ##	 	 	 	 cNNE
--//C"3''IS"A"A"A"ABBF'''''r1   c	           
        t          | |||||||           t          |           }	|	                                }
t          |
          t	          |
|          t          |
fd          }|	j        r|	                    |           dS |	j        	                    t          dg dd |D                                  dS )zList alarms for one reminder.r   c                 .                                    S rb   )
alarms_forr   s   r2   rg   z&reminders_alarm_list.<locals>.<lambda>o  s    9+?+?+I+I r1   NzReminder Alarms)zAlarm IDz
Trigger IDr   AddressRadiusr"   c           
     
   g | ]}|j         j        |j        r|j        j        nd |j        r|j        j        nd |j        r|j        j        nd |j        r|j        j        nd t          |j        r|j        j        nd           fS rb   )rH   r   triggerr   addressradiusr   r   r   s     r2   r   z(reminders_alarm_list.<locals>.<listcomp>~  s     
 
 
  IL&)k;CKNNt),>CK%%$+.;@CK''D*-+?CK&&4$ck%SS[%:%:tTT
 
 
r1   r   r	   r   rk   ru   rp   r   r   r   r   r   r=   rq   r   r   r   r   r   r   r   r   rf   r   r   rd   s               @@r2   reminders_alarm_listr1  S  s    ##	 	 	 	 cNNE
--//C"3''I k22Hc#I#I#I#I#IJJG !!!	M  
 
 #
 
 
	
 	
    r1   zadd-locationzLocation title.z	--addresszLocation address.z
--latitudezLocation latitude.z--longitudezLocation longitude.g      Y@z--radiusg        zRadius in meters.z--proximityzTrigger direction.r-  latitudefloat	longituder.  c                   t          | ||	|
||||           t          |           }|                                }t          |          t	          ||          t          |fd          \  }}t          ||          }|j        r|                    |           dS |j	        
                    d|j         d|j                    dS )z#Add a location alarm to a reminder.r   c            
     R                          t                             S )N)r   r-  r2  r4  r.  r   )add_location_triggerPROXIMITY_MAP)r-  r2  r4  r   r.  r   rd   r   s   r2   rg   z.reminders_alarm_add_location.<locals>.<lambda>  s6    	..#I. / 
 
 r1   )rH   r,  NzCreated z with trigger )r   r	   r   rk   ru   rp   r   r   r   r   r   r   )r=   rq   r   r-  r2  r4  r.  r   r   r   r   r   r   r   r   r   rf   rH   r,  r   r   rd   s     ``````            @@r2   reminders_alarm_add_locationr9    s'   0 ##	 	 	 	 cNNE
--//C"3''I k22H$	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 NE7 UG<<<G !!!	MG58GG7:GGHHHHHr1   c	           
        t          | |||||||           t          |           }	|	                                }
t          |
          t	          |
|          t          |
fd          }|	j        r|	                    |           dS |	j        	                    t          dg dd |D                                  dS )zList hashtags for one reminder.r   c                 .                                    S rb   tags_forr   s   r2   rg   z(reminders_hashtag_list.<locals>.<lambda>  s    9+=+=h+G+G r1   NzReminder Hashtags)r   Namer  c                6    g | ]}|j         |j        |j        fS r0   )r   rI   rq   r   s     r2   r   z*reminders_hashtag_list.<locals>.<listcomp>  s%    DDDScfch0DDDr1   r/  r0  s               @@r2   reminders_hashtag_listr@    s     ##	 	 	 	 cNNE
--//C"3''I k22Hc#G#G#G#G#GHHG !!!	M)))DDGDDD	
 	
    r1   zHashtag name.rI   c
           
     b   t          | |||||||	           t          |           }
|
                                }t          |          t	          ||          t          |fd          }|
j        r|
                    |           dS |
j        	                    |j
                   dS )z!Create a hashtag on one reminder.r   c                 0                                    S rb   )create_hashtag)rI   r   rd   s   r2   rg   z*reminders_hashtag_create.<locals>.<lambda>  s    9+C+CHd+S+S r1   Nr   r	   r   rk   ru   rp   r   r   r   r   r   )r=   rq   rI   r   r   r   r   r   r   r   r   rf   r   r   rd   s     `          @@r2   reminders_hashtag_createrE    s     ##	 	 	 	 cNNE
--//C"3''I k22Hc#S#S#S#S#S#STTG !!!	M
#####r1   zHashtag id.z--namezUpdated hashtag name.
hashtag_idc           
        t          | ||||||	|
           t          |           }|                                }t          |          t	          |||dfd          \  }t          |fd           _        |j        r|                               dS |j	        
                    dj                    dS )zUpdate a hashtag name.r   rL   c                .                         |           S rb   r<  r   s    r2   rg   z*reminders_hashtag_update.<locals>.<lambda>5  s    I$6$6x$@$@ r1   r   r   c                 0                                    S rb   )update_hashtag)rL   rI   rd   s   r2   rg   z*reminders_hashtag_update.<locals>.<lambda>7  s    !9!9'4!H!H r1   Nr   )r   r	   r   rk   r   rp   rI   r   r   r   r   r   )r=   rq   rF  rI   r   r   r   r   r   r   r   r   rf   	_reminderrL   rd   s      `          @@r2   reminders_hashtag_updaterM    s     ##	 	 	 	 cNNE
--//C"3''I0@@@@  Iw CHHHHHHIIIGL !!!	M/7://00000r1   c
           
        t          | |||||||	           t          |           }
|
                                }t          |          t	          |||dfd          \  t          |fd           j        j        dd}|
j        r|
                    |           dS |
j	        
                    d	j                    dS )
z#Delete a hashtag from one reminder.r   rL   c                .                         |           S rb   r<  r   rd   s    r2   rg   z*reminders_hashtag_delete.<locals>.<lambda>`  s    y11#66 r1   rI  c                 0                                    S rb   )delete_hashtag)rL   r   rd   s   r2   rg   z*reminders_hashtag_delete.<locals>.<lambda>b  s    !9!9(G!L!L r1   T)rq   rF  r  Nr	  r   r	   r   rk   r   rp   r   r   r   r   r   )r=   rq   rF  r   r   r   r   r   r   r   r   rf   r   rL   r   rd   s                @@@r2   reminders_hashtag_deleterT  ?  s    ##	 	 	 	 cNNE
--//C"3''I/6666  Hg CLLLLLLMMM&kPTUUG !!!	M/7://00000r1   c	           
        t          | |||||||           t          |           }	|	                                }
t          |
          t	          |
|          t          |
fd          }|	j        r|	                    |           dS |	j        	                    t          dg dd |D                                  dS )z"List attachments for one reminder.r   c                 .                                    S rb   attachments_forr   s   r2   rg   z+reminders_attachment_list.<locals>.<lambda>  s    9+D+DX+N+N r1   NzReminder Attachments)r   r  URLFilenameUTISizec                    g | ]N}|j         t          |          t          |d d          t          |dd          |j        t          |dd          fOS )r   Nfilename	file_size)r   r   r   utir   s     r2   r   z-reminders_attachment_list.<locals>.<listcomp>  sn     
 
 
  F$S))C--CT22GCd33
 
 
r1   r/  r0  s               @@r2   reminders_attachment_listra  j  s    ##	 	 	 	 cNNE
--//C"3''I k22Hc#N#N#N#N#NOOG !!!	M"<<<
 
 #
 
 
	
 	
    r1   z
create-urlz--urlzAttachment URL.z
public.urlz--utizAttachment UTI.r   r`  c           
     f   t          | ||||||	|
           t          |           }|                                }t          |          t	          ||          t          |fd          }|j        r|                    |           dS |j        	                    |j
                   dS )z(Create a URL attachment on one reminder.r   c                 4                                    S )N)r   r`  )create_url_attachment)r   rd   r   r`  s   r2   rg   z1reminders_attachment_create_url.<locals>.<lambda>  s    	//cs/KK r1   NrD  )r=   rq   r   r`  r   r   r   r   r   r   r   r   rf   r   r   rd   s     ``          @@r2   reminders_attachment_create_urlre    s      ##	 	 	 	 cNNE
--//C"3''I k22HKKKKKKK G  !!!	M
#####r1   zAttachment id.zUpdated attachment URL.zUpdated attachment UTI.z
--filenamezUpdated attachment filename.z--file-sizezUpdated attachment size.z--widthzUpdated attachment width.z--heightzUpdated attachment height.attachment_idr^  r_  widthheightc                   t          d fD                       rt          d          t          | |	|
|||||           t          |           }|                                }t          |          t          |||dfd          \  }t          |fd           t          d	          r_	        _
        t          d
          r_        t          d          r_        t          d          r_        t          d          r_        |j        r|                               dS |j                            dj                    dS )zUpdate one attachment.c              3     K   | ]}|d u V  	d S rb   r0   r   rO   s     r2   	<genexpr>z.reminders_attachment_update.<locals>.<genexpr>  s&      
U
UU5D=
U
U
U
U
U
Ur1   z%No attachment updates were requested.r   rM   c                .                         |           S rb   rW  r   s    r2   rg   z-reminders_attachment_update.<locals>.<lambda>  s    I$=$=h$G$G r1   rI  c            	     <                                    S )N)r   r`  r^  r_  rg  rh  )update_attachment)rM   r_  r^  rh  rd   r   r`  rg  s   r2   rg   z-reminders_attachment_update.<locals>.<lambda>  s1    	++ , 
 
 r1   Nr   r^  r_  rg  rh  r   )allr   r   r	   r   rk   r   rp   hasattrr   r`  r^  r_  rg  rh  r   r   r   r   r   )r=   rq   rf  r   r`  r^  r_  rg  rh  r   r   r   r   r   r   r   r   rf   rL  rM   rd   s      ``````          @@r2   reminders_attachment_updaterr    s   P 
U
UsC9eV&T
U
U
UUU @>???##	 	 	 	 cNNE
--//C"3''I3GGGG  Iz 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
   7:u55



J ? ?&
[!A!A(
WZ99 
gj(;;"
 $$$	M2:=2233333r1   c
           
        t          | |||||||	           t          |           }
|
                                }t          |          t	          |||dfd          \  t          |fd           j        j        dd}|
j        r|
                    |           dS |
j	        
                    d	j                    dS )
zDelete one attachment.r   rM   c                .                         |           S rb   rW  rP  s    r2   rg   z-reminders_attachment_delete.<locals>.<lambda>C  s    y88== r1   rI  c                 0                                    S rb   )delete_attachment)rM   r   rd   s   r2   rg   z-reminders_attachment_delete.<locals>.<lambda>E  s    !<!<Xz!R!R r1   T)rq   rf  r  Nr	  rS  )r=   rq   rf  r   r   r   r   r   r   r   r   rf   r   rM   r   rd   s                @@@r2   reminders_attachment_deleterw  "  s    ##	 	 	 	 cNNE
--//C"3''I2====  Hj CRRRRRRSSS{# G
  !!!	M2:=2233333r1   c	           
        t          | |||||||           t          |           }	|	                                }
t          |
          t	          |
|          t          |
fd          }|	j        r|	                    |           dS |	j        	                    t          dg dd |D                                  dS )z'List recurrence rules for one reminder.r   c                 .                                    S rb   recurrence_rules_forr   s   r2   rg   z+reminders_recurrence_list.<locals>.<lambda>m  s    9+I+I(+S+S r1   NzReminder Recurrence Rules)r   	FrequencyIntervalzOccurrence Countz	First Dayc                h    g | ]/}|j         t          |j                  |j        |j        |j        f0S r0   )r   r   r   intervaloccurrence_countfirst_day_of_weekr   s     r2   r   z-reminders_recurrence_list.<locals>.<listcomp>u  sO     	 	 	  F$S]33L()	 	 	r1   r/  r0  s               @@r2   reminders_recurrence_listr  Q  s    ##	 	 	 	 cNNE
--//C"3''I k22Hc#S#S#S#S#STTG !!!	M'LLL	 	 #	 	 		
 	
    r1   z--frequencyzRecurrence frequency.z
--intervalzRecurrence interval.z--occurrence-countz$Occurrence count; 0 means unlimited.z--first-day-of-week   zFirst day of week; 0 is Sunday.)r   r   r#   r  r  r  c           
     n   t          | ||||	|
||           t          |           }|                                }t          |          t	          ||          t          |fd          }|j        r|                    |           dS |j        	                    |j
                   dS )z)Create a recurrence rule on one reminder.r   c                 N                         t                              S N)r   r  r  r  )create_recurrence_ruleRECURRENCE_FREQUENCY_MAP)r  r   r  r  r   rd   s   r2   rg   z-reminders_recurrence_create.<locals>.<lambda>  s0    	00.y9-/ 1 
 
 r1   NrD  )r=   rq   r   r  r  r  r   r   r   r   r   r   r   r   rf   r   r   rd   s     ````          @@r2   reminders_recurrence_creater    s    B ##	 	 	 	 cNNE
--//C"3''I k22H	
 	
 	
 	
 	
 	
 	
 	
 	
	 	G  !!!	M
#####r1   zRecurrence rule id.rule_id RecurrenceFrequencyChoice | Nonec           
     >   t          d fD                       rt          d          t          | |||	|
|||           t          |           }|                                }t          |          t          |||dfd          \  }t          |fd           t                   _	        _
        _        _        |j        r|                               dS |j                            d	j                    dS )
zUpdate one recurrence rule.c              3     K   | ]}|d u V  	d S rb   r0   rk  s     r2   rl  z.reminders_recurrence_update.<locals>.<genexpr>  s:         	     r1   z%No recurrence updates were requested.r   recurrence rulec                .                         |           S rb   rz  r   s    r2   rg   z-reminders_recurrence_update.<locals>.<lambda>  s    I$B$B8$L$L r1   rI  c                 V                         t                   nd            S r  )update_recurrence_ruler  )r  r   r  r  recurrence_rulerd   s   r2   rg   z-reminders_recurrence_update.<locals>.<lambda>  s<    	007@7L(33RV-/ 1 
 
 r1   Nr   )rp  r   r   r	   r   rk   r   rp   r  r   r  r  r  r   r   r   r   r   )r=   rq   r  r   r  r  r  r   r   r   r   r   r   r   r   rf   rL  r  rd   s      ````          @@r2   reminders_recurrence_updater    s   N   +;=NO     @ >???##	 	 	 	 cNNE
--//C"3''I!8LLLL" " "I 	
 	
 	
 	
 	
 	
 	
 	
 	
   $<Y$G!#+ #+;($,=) )))	M7?#57788888r1   c
           
        t          | |||||||	           t          |           }
|
                                }t          |          t	          |||dfd          \  t          |fd           j        j        dd}|
j        r|
                    |           dS |
j	        
                    d	j                    dS )
zDelete one recurrence rule.r   r  c                .                         |           S rb   rz  rP  s    r2   rg   z-reminders_recurrence_delete.<locals>.<lambda>>  s    y==cBB r1   rI  c                 0                                    S rb   )delete_recurrence_rule)r  r   rd   s   r2   rg   z-reminders_recurrence_delete.<locals>.<lambda>B  s    	00?KK r1   T)rq   recurrence_rule_idr  Nr	  rS  )r=   rq   r  r   r   r   r   r   r   r   r   rf   r   r  r   rd   s                @@@r2   reminders_recurrence_deleter    s!    ##	 	 	 	 cNNE
--//C"3''I 7BBBB! ! !Ho KKKKKK  
  {-0 G
  !!!	M7?#57788888r1   )r=   r>   r?   r@   )rO   rP   rQ   rP   r?   rP   )rY   rP   rZ   rP   r?   r[   )rq   rP   r?   r   )rv   rw   rx   r[   ry   rz   r?   r{   )
rq   rP   rZ   rP   r   rP   r   r   r?   r   )rM   r!   r?   rP   )r   r   r?   rw   )r   r   r?   rw   )r   rP   r?   r@   )r=   r>   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )r=   r>   rv   rw   rx   r[   ry   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )r=   r>   rq   rP   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )&r=   r>   rv   rP   r   rP   r   rP   r   r[   r   rw   r   rz   r   r[   r   r[   r   rw   r   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   ),r=   r>   rq   rP   r   rw   r   rw   r   r   r   rw   r   r[   r   r   r   r   r   r   r   rw   r   r[   r   rw   r   r[   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )r=   r>   rq   rP   r   r[   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )r=   r>   rv   rP   rx   r[   r   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )r=   r>   r  rw   ry   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   ) r=   r>   rq   rP   r   rP   r-  rP   r2  r3  r4  r3  r.  r3  r   r'   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )r=   r>   rq   rP   rI   rP   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )r=   r>   rq   rP   rF  rP   rI   rP   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )r=   r>   rq   rP   rF  rP   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )r=   r>   rq   rP   r   rP   r`  rP   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )"r=   r>   rq   rP   rf  rP   r   rw   r`  rw   r^  rw   r_  r   rg  r   rh  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )r=   r>   rq   rP   rf  rP   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )r=   r>   rq   rP   r   r4   r  rz   r  rz   r  rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )r=   r>   rq   rP   r  rP   r   r  r  r   r  r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )r=   r>   rq   rP   r  rP   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r@   )jr-   
__future__r   enumr   typingr   r   rC   pydanticr   pyicloud.cli.contextr   r	   r
   r   pyicloud.cli.normalizer   pyicloud.cli.optionsr   r   r   r   r   r   r   r   r   r   pyicloud.cli.outputr   r   r   "pyicloud.services.reminders.clientr   r   "pyicloud.services.reminders.modelsr   r   r   r   r    #pyicloud.services.reminders.servicer!   r"   Typerapp	alarm_appattachment_apphashtag_apprecurrence_apprj   r%   _REMINDER_ID_HELP_COMPLETED_OPTION_PARAMrP   r'   r4   r.   r/   r8  r9   r:   r;   r<   r  rG   	add_typerrX   r_   rk   rp   ru   r   r   r   r   r   r   commandr   Optionr   Argumentr   r   r  r  r
  r  r!  r%  r1  r9  r@  rE  rM  rT  ra  re  rr  rw  r  r  r  r  r0   r1   r2   <module>r     s     " " " " " "       $ $ $ $ $ $ $ $  $ $ $ $ $ $ R R R R R R R R R R R R 8 8 8 8 8 8                        T S S S S S S S S S T T T T T T T T              F E E E E E E Eek6777EK9:::	"CDDDek=>>>"HIII	7:" 7     c4       T    i0Y.
 #%8%>$&9&@%':'B$&9&@	     GD;     i{     		     		    	" 	" 	" 	"
 
 
 
Y Y Y* * *D D D D ( ( ( ( ( (VP P P P&- - - -" " " "" " " "        W  $$("&$(',(= 1+ + + + +\ V '%,t[?RSSS*el+  
 b)9UVVV#$("&$(',(= 17 7 7 7 7t U &u~c0ABBB#$("&$(',(= 1- - - - -` X  5<[7HIIIc93DEEER0GHHH"el>  
 (5<lQQQ ELL7OPPP EL!8  
 !EL!7  
 )EL}CTUUU%1U\0& & &
  $$("&$(',(= 1EE% E% E% E% E%P X &u~c0ABBB$T9;LMMM#u|D(9PQQQ)U\9  
 (5<lQQQ'5<"  
 (5<lARSSS'5<!+  
 (5<!(  
 )EL}CTUUU(EL#  
 &2U\*& & &
 #/%,!,# # #
  $$("&$(',(= 1c~2 ~2 ~2 ~2 ~2B \ &u~c0ABBB"el9  
  $$("&$(',(= 1%I %I %I %I %IP X &u~c0ABBB#$("&$(',(= 12 2 2 2 2D Z  5<[7JKKK*el+  
 &D	    $$("&$(',(= 1)M M M M M` Y %T9>JJJb)9STTT#$("&$(',(= 10 0 0 0 0f ]  $$("&$(',(= 1( ( ( ( (: 6 &u~c0ABBB#$("&$(',(= 16 6 6 6 6r >"" &u~c0ABBBc93DEEE5<[7JKKK"el3;OPPP#u|C=RSSS EL
BUVVV!- !" " "
  $$("&$(',(= 1'5I 5I 5I 5I #"5Ip V &u~c0ABBB#$("&$(',(= 1% % % % %P X &u~c0ABBBs999#$("&$(',(= 1 $  $  $  $  $F X &u~c0ABBB$enS}===S(1HIII#$("&$(',(= 1(1 (1 (1 (1 (1V X &u~c0ABBB$enS}===#$("&$(',(= 1'1 '1 '1 '1 '1T  &u~c0ABBB#$("&$(',(= 1/ / / /  /d %% &u~c0ABBBu|C/@AAAu|L'8IJJJ#$("&$(',(= 1$$ $$ $$ $$ &%$$N !! &u~c0ABBB'2BCCC"el47PQQQ"el47PQQQ'5<+  
 )EL'	   %(	   &)	    $$("&$(',(= 1GY4 Y4 Y4 Y4 "!Y4x !! &u~c0ABBB'2BCCC#$("&$(',(= 1+4 +4 +4 +4 "!+4\  &u~c0ABBB#$("&$(',(= 1. . . .  .b !! &u~c0ABBB+75<!'$, , ,
 !ELLa>TUUU(EL	3	   *U\	.    $$("&$(',(= 19;$ ;$ ;$ ;$ "!;$| !! &u~c0ABBB!5>#,ABBB2>%,$3 3 3
 (5<#	   $05<3	$ $ $ %1EL.% % %  $$("&$(',(= 1EW9 W9 W9 W9 "!W9t !! &u~c0ABBB!5>#,ABBB#$("&$(',(= 1.9 .9 .9 .9 "!.9 .9 .9r1   