
    g{                        S r SSKJr  SSKJr  SSKJr  SSKJr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\5      rg)z!Class for appdaemon apps in HACS.    )annotations)TYPE_CHECKING)AIOGitHubAPIException   )HacsCategoryHacsDispatchEvent)HacsException)
concurrent   )HacsRepository)HacsBasec                  d   ^  \ rS rSrSrSU 4S jjr\S 5       rS r\	" SSS9SS	 j5       r
S
rU =r$ )HacsAppdaemonRepository   zAppdaemon apps in HACS.c                <  > [         TU ]  US9  X R                  l        UR	                  5       U R                  l        [        R                  U R                  l        U R                  U R                  R                  l        SU R                  R                  l        g)zInitialize.)hacsappsN)super__init__data	full_namelowerfull_name_lowerr   	APPDAEMONcategory	localpathcontentpathlocalremote)selfr   r   	__class__s      8/config/custom_components/hacs/repositories/appdaemon.pyr    HacsAppdaemonRepository.__init__   sj    d#'		$-OO$5		!)33		"&..#)     c                t    U R                   R                  R                   SU R                  R                   3$ )zReturn localpath.z/appdaemon/apps/)r   coreconfig_pathr   name)r!   s    r#   r   !HacsAppdaemonRepository.localpath   s.     ))..,,--=diinn=MNNr%   c           	       #    U R                  5       I Sh  vN    U R                  R                  SU R                  5      I Sh  vN n[        U[        5      (       d2  U R                  R                  R                  U R                   S35        US   R                  U R                  R                  l        U R                  R                  U R                  R                  R                  U R                  5      I Sh  vN U R                  l        U R                  R                  (       ak  U R                  R                   HQ  nU R"                  R$                  R&                  (       a  M*  U R(                  R+                  S	U R                  U5        MS     U R                  R,                  $  GN GNn! [         a7    [        U R                   SU R                  R                  SS5       S35      Sef = f N7f)
z	Validate.Nr   z Repository structure for ztags/ z is not compliantz# Repository structure not compliantr   z%s %s)common_validaterepository_objectget_contentsrefr   r	   stringreplace
isinstancelistvalidateerrorsappendr   r   r    objectsr   statusstartuploggererrorsuccess)r!   addirr<   s      r#   validate_repository+HacsAppdaemonRepository.validate_repository#   s    ""$$$	00==fdhhOOE %&&MM  ''4;;-7Z([\#(8== %)%;%;%H%HLL$$dhh&
  

 ==--yy''///KK%%gt{{EB . }}$$$/ 	% P$ 	;;-9$((:J:J7SU:V9WWhi	 
sN   G<F0G<)F6 F3F6 
B6G< G:A*G</AG<3F6 6AG77G<
      )concurrenttasksbackoff_timec                  #    U R                  X5      I Sh  vN (       d  U(       d  gU R                  (       a6  U R                  R                  (       a  SU R                  R                  l        U R                  R                  R
                  S:X  at  U R                  R                  U R                  R                  R
                  U R                  5      I Sh  vN nUS   R                  U R                  R                  l        U R                  R                  U R                  R                  R
                  U R                  5      I Sh  vN U R                  l	        U R                  U R                  R                  l        U R                  R                  (       aX  U R                  R                  [         R"                  SSU R                  R$                  U R                  R&                  S.5        gg GN GN$ N7f)zUpdate.Nr,   r   r   i9  update)idaction
repositoryrepository_id)common_updaterepository_manifestcontent_in_rootr   r   r    r.   r/   r0   r8   r   r   r   	installedr   async_dispatchr   
REPOSITORYr   rG   )r!   ignore_issuesforcer>   s       r#   update_repository)HacsAppdaemonRepository.update_repository>   se     ''===e ##''77+-!!(<<##v-00==dll>O>O>V>VX\X`X`aaE',Qx}}DLL$%)%;%;%H%HLL$$dhh&
  

 #'.. 99II$$!,,&"&))"5"5%)YY\\	 ' > b 
s6   HG<CHG?A3HHB-H?HH )r   r   r   str)FF)__name__
__module____qualname____firstlineno____doc__r   propertyr   r?   r
   rS   __static_attributes____classcell__)r"   s   @r#   r   r      sA    !* O O%6 3 4r%   r   N)r[   
__future__r   typingr   aiogithubapir   enumsr   r   
exceptionsr	   utils.decoratorr
   baser   r   r   rU   r%   r#   <module>rf      s1    ' "   . 3 & (  Kn Kr%   