
    DjV                       d Z ddlmZ ddlZddlmZmZ ddlmZm	Z	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d%d            Ze                    d          dddddeefd%d             Ze                    d!          dddddeefd%d"            Ze                    d#          dddddeefd%d$            ZdS )&zAccount commands.    )annotationsN)	get_stateservice_call)normalize_account_devicenormalize_account_summarynormalize_family_membernormalize_storage)
DEFAULT_LOG_LEVELDEFAULT_OUTPUT_FORMATHttpProxyOptionHttpsProxyOptionLogLevelOptionNoVerifySslOptionOutputFormatOptionSessionDirOptionUsernameOptionstore_command_options)console_tablez Inspect iCloud account metadata.)helpsummaryFctxtyper.Contextusernamer   session_dirr   
http_proxyr   https_proxyr   no_verify_sslr   output_formatr   	log_levelr   returnNonec           
     J   t          | |||||||           t          |           }|                                t          dfdj                  }	t          |	          }
|j        r|                    |
           dS |j        	                    d|
d                     |j        	                    d|
d	                     |j        	                    d
|
d                     |j        	                    d|
d          d|
d          d|
d          d           dS )z$Show high-level account information.r   r   r   r   r   r   r   Accountc                      j         S N)accountapis   X/home/thesage/.hermes/venv/lib/python3.11/site-packages/pyicloud/cli/commands/account.py<lambda>z!account_summary.<locals>.<lambda>9   s	    3;     account_nameNz	Account: r.   z	Devices: devices_countzFamily members: family_countz	Storage: used_storage_percentz% used (used_storage_bytesz / total_storage_bytesz bytes))
r   r   get_apir   r.   r   json_output
write_jsonconsoleprint)r   r   r   r   r   r   r   r   stater'   payloadr)   s              @r*   account_summaryr;      s    ##	 	 	 	 cNNE
--//C&&&&S5E  G (W55G !!!	M=GN$;==>>>	M>GO$<>>???	MD7>+BDDEEE	M	VG23 	V 	V()	V 	V.56K.L	V 	V 	V    r,   devicesc           
     j  
 t          | |||||||           t          |           }|                                
d t          d
fd
j                  D             }	|j        r|                    |	           dS |j                            t          dg dd	 |	D                                  dS )
z1List devices associated with the account profile.r#   c                ,    g | ]}t          |          S  )r   .0devices     r*   
<listcomp>z#account_devices.<locals>.<listcomp>a   s0        	!((  r,   r$   c                      j         j        S r&   )r'   r<   r(   s   r*   r+   z!account_devices.<locals>.<lambda>e   s    CK' r,   r-   NzAccount Devices)NameModelzDevice ClassIDc                J    g | ] }|d          |d         |d         |d         f!S )namemodel_display_namedevice_classidr?   r@   s     r*   rC   z#account_devices.<locals>.<listcomp>p   sK         6N/0>*4L	  r,   
r   r   r4   r   r.   r5   r6   r7   r8   r   r   r   r   r   r   r   r   r   r9   r:   r)   s             @r*   account_devicesrO   H   s    ##	 	 	 	 cNNE
--//C "'''')
 
 
  G  !!!	M333  &  	
 	
    r,   familyc           
     j  
 t          | |||||||           t          |           }|                                
d t          d
fd
j                  D             }	|j        r|                    |	           dS |j                            t          dg dd	 |	D                                  dS )
zList family sharing members.r#   c                ,    g | ]}t          |          S r?   )r   rA   members     r*   rC   z"account_family.<locals>.<listcomp>   s0        	 ''  r,   r$   c                      j         j        S r&   )r'   rP   r(   s   r*   r+   z account_family.<locals>.<lambda>   s    CK& r,   r-   NzFamily Members)rE   zApple IDAgeParentc                J    g | ] }|d          |d         |d         |d         f!S )	full_nameapple_idage_classificationhas_parental_privilegesr?   rS   s     r*   rC   z"account_family.<locals>.<listcomp>   sN         ;':&/045	  r,   rM   rN   s             @r*   account_familyr]   }   s    ##	 	 	 	 cNNE
--//C "&&&&)
 
 
  G  !!!	M111  &  	
 	
    r,   storagec           
       
 t          | |||||||           t          |           }|                                
t          t	          d
fd
j                            }	|j        r|                    |	           dS |j        	                    d|	d         d          d	|	d         d
          d           |j        	                    t          dg dd |	d                                         D                                  dS )zShow iCloud storage usage.r#   r$   c                      j         j        S r&   )r'   r^   r(   s   r*   r+   z!account_storage.<locals>.<lambda>   s    s{2 r,   r-   NzUsed usageused_storage_in_percentz% of total_storage_in_bytesz bytes.zStorage Usage)MediazUsage (bytes)Labelc                6    g | ]\  }}||d          |d         fS )usage_in_byteslabelr?   )rA   keyra   s      r*   rC   z#account_storage.<locals>.<listcomp>   s=       C e,-uW~>  r,   usages_by_media)r   r   r4   r	   r   r.   r5   r6   r7   r8   r   itemsrN   s             @r*   account_storagerl      so    ##	 	 	 	 cNNE
--//C2222AQ	
 	
 	
 G
  !!!	M	B !:; 	B 	Bg78	B 	B 	B   
M/// ")*;"<"B"B"D"D  	
 	
	 	 	 	 	r,   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   ) __doc__
__future__r   typerpyicloud.cli.contextr   r   pyicloud.cli.normalizer   r   r   r	   pyicloud.cli.optionsr
   r   r   r   r   r   r   r   r   r   pyicloud.cli.outputr   Typerappcommandr;   rO   r]   rl   r?   r,   r*   <module>rw      sL     " " " " " "  8 8 8 8 8 8 8 8                                   . - - - - -ek9::: Y  $$("&$(',(= 1% % % % %P Y  $$("&$(',(= 11 1 1 1 1h X  $$("&$(',(= 11 1 1 1 1h Y  $$("&$(',(= 1- - - - - - -r,   