
    g;/              	      	   S r SSKJr  SSKJrJr  SSKJr  SSKJ	s  J
r  SSKrSSKJr  SSKJr  SS	KJr  SS
KJr  \(       a  SSKJr  SSKJr  \R4                  " \R6                  " S5      S\R6                  " S5      \05      \R:                  \R<                          S'S j5       5       5       r\R4                  " \R6                  " S5      S\R6                  " S5      \05      \R:                  \R<                          S'S j5       5       5       r \R4                  " \R6                  " S5      S\R6                  " S5      \RB                  \R6                  " S5      \RB                  05      \R:                  \R<                          S'S j5       5       5       r"\R4                  " \R6                  " S5      S\R6                  " S5      \RB                  \R6                  " S5      \RB                  05      \R:                  \R<                          S'S j5       5       5       r#\R4                  " \R6                  " S5      S\R6                  " S5      \RB                  \R6                  " S5      \RH                  05      \R:                  \R<                          S'S j5       5       5       r%\R4                  " \R6                  " S5      S\R6                  " S5      \RB                  \RL                  " S5      \RB                  05      \R:                  \R<                          S'S j5       5       5       r'\R4                  " \R6                  " S5      S\R6                  " S5      \RB                  05      \R:                  \R<                          S'S  j5       5       5       r(\R4                  " \R6                  " S5      S!\R6                  " S5      \RB                  05      \R:                  \R<                          S'S" j5       5       5       r)\R4                  " \R6                  " S5      S#\R6                  " S5      \RB                  05      \R:                  \R<                          S'S$ j5       5       5       r*\R4                  " \R6                  " S5      S%\R6                  " S5      \RB                  05      \R:                  \R<                          S'S& j5       5       5       r+g)(z!Register info websocket commands.    )annotations)TYPE_CHECKINGAny)websocket_apiN   )DOMAIN)HacsDispatchEvent)HacsException)version_left_higher_then_right)HomeAssistant)HacsBasetypezhacs/repository/inforepository_idc                2  #    U R                   R                  [        5      nUS   nUR                  R	                  U5      nUc  UR                  US   SSU S35        gUR                  (       d    UR                  SSS9I Sh  vN   SUl        UR                   R                  (       a3  S
UR                   l        UR                   R                  5       I Sh  vN   UR                  [        R                   " US   0 SUR"                  _SUR                   R$                  _SUR&                  _SUR                   R(                  _SUR*                  _SUR                   R,                  _SUR                   R.                  _SUR0                  R2                  _SUR                  R5                  [7        UR                   R8                  5      5      (       + _SUR                   R:                  _SUR                   R<                  _SUR                   R>                  _SUR                   R@                  _SUR                   RB                  _SUR                   RD                  _SUR0                  RF                  _SUR0                  RH                  _0 SUR                   R8                  _SURJ                  _SUR                   RL                  _SUR                   RN                  _SUR                   RP                  _S URR                  RT                  RV                  _S!URX                  _S"S
_S#URZ                  _S$UR                   R\                  _S%UR^                  _S&UR                   R`                  _S'UR                   Rb                  _S(URd                  _S)URf                  _S*UR                   Rh                  _S+URj                  _E5      5        g GNM! [         a2  nUR                  R                  S	UR                  U5         SnAGNSnAff = f GN:7f),z&Return information about a repository.r   Nidrepository_not_foundRepository with ID () not foundTignore_issuesforce%s %sFadditional_infoauthorsavailable_versionbetacan_downloadcategoryconfig_flowcountrycustomdefault_branchdescriptiondomain	downloads	file_name	full_namehide_default_branchhomeassistantinstalled_version	installedissueslast_updated
local_pathnamenewpending_upgradereleasesrefselected_tagstarsstatestatustopicsversion_or_commit)6datagetr   repositories	get_by_id
send_errorupdated_infoupdate_repository	Exceptionloggererrorstringr0   async_writesend_messager   result_messager   r   display_available_version	show_betar   r   r   repository_manifestr    
is_defaultstrr   r"   r#   r$   r%   r&   r'   r(   r)   display_installed_versionr+   open_issuesr-   contentpathlocaldisplay_namepending_updatepublished_tagsr3   r4   stargazers_countr6   display_statusr8   display_version_or_commit)hass
connectionmsghacsr   
repository	exceptions          6/config/custom_components/hacs/websocket/repository.pyhacs_repository_infor_      s     YY]]6*D(M"",,];JI""=/=	

 	""	K..T.NNN #'
#
ii##%%%$$I#!:#=#=#:??22# $Z%I%I# 
11	#
 
 7 7# JOO44# z::# :99AA# d//::3z?Q?Q;RSS# !*//"@"@# z::# *//00# Z__66# Z__66# Z__66#  &z'E'E'Y'Y!#"  !?!?!M!M##$ joo((%#& $Z%I%I'#( Z__66)#* *//55+#, 
 < <-#. j0055;;/#0 
//1#2 u3#4 ":#<#<5#6 JOO::7#8 z~~9#: 
 < <;#< 99=#> ))?#@ *33A#B *//00C#D $Z%I%IE#&	
( O 	K##GZ->->	JJ	K 	&sP   A/P2O OO 
APPK7PO 
P'PPPPzhacs/repository/ignorer\   c                  #    U R                   R                  [        5      nUS   nUR                  R	                  SU5        UR
                  R                  U5      nUc  UR                  US   SSU S35        gUR                  R                  R                  UR                   R                  5        UR                   R                  5       I Sh  vN   UR                  [        R                  " US   5      5        g N-7f)zIgnore a repository.r\   zIgnoring %sNr   r   r   r   )r:   r;   r   loginfor<   r=   r>   commonignored_repositoriesaddr'   rE   rF   r   rG   )rX   rY   rZ   r[   r   r\   s         r^   hacs_repository_ignorerf   e   s      YY]]6*D%MHHMM-/"",,];JI""=/=	

 	KK$$(()B)BC
))


!!!M88TCD "s   CDD .Dzhacs/repository/stater6   c                4  #    U R                   R                  [        5      nUR                  R	                  US   5      nUS   Ul        UR                   R                  5       I Sh  vN   UR                  [        R                  " US   0 5      5        g N.7f)zSet the state of a repositoryr\   r6   Nr   )
r:   r;   r   r<   r=   r6   rE   rF   r   rG   rX   rY   rZ   r[   r\   s        r^   hacs_repository_stateri      sz      YY]]6*D"",,S->?J7|J
))


!!!M88TBGH "s   A%B'B(/Bzhacs/repository/versionversionc                  #    U R                   R                  [        5      nUR                  R	                  US   5      nUS   UR                   R
                  :X  a  SUR                   l        OUS   UR                   l        UR                  SS9I Sh  vN   SUl        UR                   R                  5       I Sh  vN   UR                  [        R                  " US   0 5      5        g NW N07f)Set the version of a repositoryr\   rj   NTr   r   )r:   r;   r   r<   r=   r"   r4   r@   r6   rE   rF   r   rG   rh   s        r^   hacs_repository_versionrn      s      YY]]6*D"",,S->?J
9~777'+
$'*9~
$

&
&T
&
222J
))


!!!M88TBGH	 3 "s$   BC1C-(C1>C/?/C1/C1zhacs/repository/betarI   c                  #    U R                   R                  [        5      nUR                  R	                  US   5      nUS   UR                   l        UR                  SS9I Sh  vN   SUl        UR                   R                  5       I Sh  vN   UR                  [        R                  " US   0 5      5        g NW N07f)z*Show or hide beta versions of a repositoryr\   rI   Trm   Nr   )r:   r;   r   r<   r=   rI   r@   r6   rE   rF   r   rG   rh   s        r^   hacs_repository_betarp      s      YY]]6*D"",,S->?J #K 0JOO

&
&T
&
222J
))


!!!M88TBGH	 3 "s$   A$C&B>'(CC /C Czhacs/repository/downloadc                  #    U R                   R                  [        5      nUR                  R	                  US   5      n UR                   R
                  nUR                  UR                  S5      S9I Sh  vN   U(       d:  UR                  [        R                  SS05        UR                  5       I Sh  vN   UR                   R                  5       I Sh  vN   UR                  [        R                  " US   0 5      5        g N NR N2! [         aP  nUR                   R#                  SUR$                  U5        UR'                  US   S	[)        U5      5         SnAgSnAff = f7f)
rl   r\   rj   )r3   Nr   Tr   r   rC   )r:   r;   r   r<   r=   r+   async_download_repositoryasync_dispatchr	   RELOADasync_recreate_entitiesrE   rF   r   rG   r
   rB   rC   rD   r>   rL   )rX   rY   rZ   r[   r\   was_installedr]   s          r^   hacs_repository_downloadrw      s(     YY]]6*D"",,S->?JB"1122swwy7I2JJJ 1 8 87D/J..000ii##%%% < <SY KL 	K 1% B):):IFc$i#i.AABsg   >E-7D 8D
9A D 9D:!D D-D 	E-
D D D 
E*AE% E-%E**E-zhacs/repository/removec                (  #    U R                   R                  [        5      nUR                  R	                  US   5      nSUR                   l         UR                  SSS9I Sh  vN   UR                  5       I Sh  vN   UR                   R                  5       I Sh  vN   UR                  [        R                  " US   0 5      5        g Nh! [         a1  nUR                  R                  SUR                  U5         SnANSnAff = f N Np7f)zRemove a repository.r\   FTr   Nr   r   )r:   r;   r   r<   r=   r0   r@   rA   rB   rC   rD   	uninstallrE   rF   r   rG   )rX   rY   rZ   r[   r\   r]   s         r^   hacs_repository_removerz      s      YY]]6*D"",,S->?JJOOG**T*JJJ 


   
))


!!!M88TBGH 	K G):):IFFG !s`   ADC %C&C *D=D>!DD .DC 
D'DDDDDzhacs/repository/refreshc                  #    U R                   R                  [        5      nUR                  R	                  US   5      nUR                  SSS9I Sh  vN   UR                   R                  5       I Sh  vN   UR                  UR                   R                     R                  5         UR                  [        R                  " US   0 5      5        g N Na7f)zRefresh a repository.r\   Tr   Nr   )r:   r;   r   r<   r=   r@   rE   coordinatorsr   async_update_listenersrF   r   rG   rh   s        r^   hacs_repository_refreshr~     s      YY]]6*D"",,S->?J

&
&T
&
FFF
))


!!!joo../FFHM88TBGH G!s%   ACC!C5C6A CCzhacs/repository/release_notesc                  #    U R                   R                  [        5      nUR                  R	                  US   5      nUR                  [        R                  " US   UR                  R                   Vs/ s Hs  nUR                   R                  (       a1  [        UR                  UR                   R                  5      (       d  MO  UR                  UR                  UR                  S.PMu     sn5      5        gs  snf 7f)zReturn release notes.r\   r   )r/   bodytagN)r:   r;   r   r<   r=   rF   r   rG   r2   objectsr*   r   tag_namer/   r   )rX   rY   rZ   r[   r\   xs         r^   hacs_repository_release_notesr   +  s      YY]]6*D"",,S->?J$$I $,,44	 5A!881!**joo>_>_`FFFF::
 5		
	s   A5D7AC=	(C=1Dzhacs/repository/releasesc                6  #    U R                   R                  [        5      nUR                  R	                  US   5      n UR                  5       I Sh  vN nUR                  [        R                  " US   U Vs/ s H2  nUR                  UR                  UR                   UR"                  S.PM4     sn5      5        g Nl! [         aD  nUR                  R                  U5        UR                  US   S[        U5      5         SnAgSnAff = fs  snf 7f)zReturn releases.r   Nr   unknown)r/   r   published_at
prerelease)r:   r;   r   r<   r=   async_get_releasesrA   ra   r]   r>   rL   rF   r   rG   r/   r   r   r   )rX   rY   rZ   r[   r\   r2   r]   releases           r^   hacs_repository_releasesr   M  s      YY]]6*D"",,S-ABJ#6688 $$I  (  (G $LL"++$+$8$8")"4"4	  (	
 9 9%c$iC	NCsM   >DC CC #D<9D5DC 
D:DDDD)rX   r   rY   zwebsocket_api.ActiveConnectionrZ   zdict[str, Any]returnNone),__doc__
__future__r   typingr   r   homeassistant.componentsr   'homeassistant.helpers.config_validationhelpersconfig_validationcv
voluptuousvolconstr   enumsr	   
exceptionsr
   utils.versionr   homeassistant.corer   baser   websocket_commandRequiredrL   require_adminasync_responser_   rf   rD   ri   rn   booleanrp   Optionalrw   rz   r~   r   r        r^   <module>r      s   ' " % 2 4 4   % & :0   V4_%s D
D.D 
D 
	D  DN   V6\"C E
E.E 
E 
	E  E0   V5\"BIIWryy I
I.I 
I 
	I  I   V7\"BIIY I
I.I 
I 
	I  I*   V4\"BII[!2:: I
I.I 
I 
	I  I$   V8\"BIIY B
B.B 
B 
	B  B.   V6\"BII I
I.I 
I 
	I  I(   V7\"BII I
I.I 
I 
	I  I"   V=\"BII 
. 
 
	  4   V8_%ryy 
. 
 
	  r   