
    |eT
                     ~    d dl mZ d dlmZmZ d dlmZ d dlmZ ddl	m
Z
mZmZ ddlmZ ded	efd
Zded	edefdZdS )    )ConfigEntry)CONF_PASSWORDCONF_USERNAME)HomeAssistant)DeviceEntry   )DOMAINPRIVATE_KEYSsource_hash)	XRegistryhassentryc                   K   	 t           j        rt           j                                        }t          t          fD ]}|                    |          rd||<   |                    d          r7|d                                         D ]}|                    d          rd|d<   nd }n0# t          $ r#}t          |          j	         d| }Y d }~nd }~ww xY wd |j
                                        D             }| j        t                   |j                 }	 d |j                                        D             }n0# t          $ r#}t          |          j	         d| }Y d }~nd }~ww xY w	 d | j        d         j                                        D             }	n0# t          $ r#}t          |          j	         d| }	Y d }~nd }~ww xY wt#                      |j        j        d u|||	|d	S )
N***devices	devicekeyz: c                 D    i | ]\  }}||d k    rt          |          n|S )homes)len.0kvs      //config/custom_components/sonoff/diagnostics.py
<dictcomp>z6async_get_config_entry_diagnostics.<locals>.<dictcomp>   s0    RRRDAqqALL#a&&&aRRR    c                 z   i | ]\  }}|d |v r|d         d         d |d                                           D             |                    d          |                    d          |                    d          |                    d          |                    d          d	nd|                    d          iS )
paramsextrauiidc                 0    i | ]\  }}||t           v rd n|S )r   )r
   r   s      r   r   zAasync_get_config_entry_diagnostics.<locals>.<dictcomp>.<dictcomp>!   s<       1 \ 1 1uuq  r   productModelonlinelocal	localtypehost)r    r   modelr#   r$   r%   r&   )itemsget)r   diddevices      r   r   z6async_get_config_entry_diagnostics.<locals>.<dictcomp>   s     
 
 
" V!  6!! w/  &x 0 6 6 8 8    N33 **X..G,,#ZZ44

6**   VZZ44
 
 
r   c                 N    g | ]"\  }}t           |v |                                #S  )r	   to_dict)r   keyr   s      r   
<listcomp>z6async_get_config_entry_diagnostics.<locals>.<listcomp>5   s5     
 
 
U}} MMOO}}r   
system_log)version
cloud_authconfigoptionserrorsr   )r   r4   copyr   r   r)   values	Exceptiontype__name__r5   r(   datar	   entry_idr   recordsr   cloudauth)
r   r   r4   r   r+   er5   registryr   r6   s
             r   "async_get_config_entry_diagnosticsrC   
   s`     , 
	%**,,F#]3 & &::a== & %F1Izz)$$ 4$Y/6688 4 4Fzz+.. 4.3{+F , , ,GG$++++, SREM<O<O<Q<QRRRG)F+EN;H-
 
"  (/5577#
 
 
&  - - -!WW%,,,,-,
 
"i5=CCEE
 
 

  , , ,GG$++++, ==n)5  sH   B$B) )
C3CC#D> >
E+E&&E+/.F 
G(GGr+   c                    K   t          d |j        D                       }t          | |           d {V }|                    d                              |i           |d<   ||d         d<   |S )Nc              3   H   K   | ]}|d          t           k    |d         V  dS )r   r   N)r	   )r   is     r   	<genexpr>z/async_get_device_diagnostics.<locals>.<genexpr>J   s.      BB1Q46>>qt>>>>BBr   r   r+   deviceid)nextidentifiersrC   popr)   )r   r   r+   r*   infos        r   async_get_device_diagnosticsrM   G   s       BBV/BBB
B
BC3D%@@@@@@@@DXXi((,,S"55DN!$DN:Kr   N)homeassistant.config_entriesr   homeassistant.constr   r   homeassistant.corer   %homeassistant.helpers.device_registryr   
core.constr	   r
   r   core.ewelinkr   rC   rM   r-   r   r   <module>rT      s    4 4 4 4 4 4 < < < < < < < < , , , , , , = = = = = = 9 9 9 9 9 9 9 9 9 9 # # # # # #:= : : : : :z
 +5@     r   