
    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 themes in HACS.    )annotations)TYPE_CHECKING)HomeAssistantError   )HacsCategoryHacsDispatchEvent)HacsException)
concurrent   )HacsRepository)HacsBasec                     ^  \ rS rSrSrSU 4S jjr\S 5       rS rS r	S r
SS jrSS	 jr\" S
SS9SS j5       rSrU =r$ )HacsTemplateRepository   zCustom templates in HACS.c                ^  > [         TU ]  US9  X R                  l        UR	                  5       U R                  l        [        R                  U R                  l        SU R                  R                  l        U R                  U R                  R                  l        SU R                  l        g)zInitialize.)hacs TN)super__init__data	full_namelowerfull_name_lowerr   TEMPLATEcategorycontentpathremote	localpathlocalsingle)selfr   r   	__class__s      7/config/custom_components/hacs/repositories/template.pyr   HacsTemplateRepository.__init__   sv    d#'		$-OO$5		!)22		#% "&.."    c                H    U R                   R                  R                   S3$ )zReturn localpath.z/custom_templates)r   coreconfig_pathr"   s    r$   r    HacsTemplateRepository.localpath   s!     ))..,,-->??r&   c                @   #    U R                  5       I Sh  vN   g N7f)zRun post installation steps.N_reload_custom_templatesr*   s    r$   async_post_installation.HacsTemplateRepository.async_post_installation$        ++---   c                2  #    U R                  5       I Sh  vN   U R                  R                  U R                  l        U R                  R                  (       ah  SU R                  R                  ;   dN  U R                  R                  R                  S5      (       a$  U R                  R                  U R                  ;  a5  [        U R                   SU R                  R                  SS5       S35      e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~7f)	z	Validate.N/z.jinjaz Repository structure for ztags/r   z is not compliant%s %s)common_validaterepository_manifestfilenamer   	file_nameendswith	treefilesr	   stringrefreplacevalidateerrorsr   statusstartuploggererrorsuccess)r"   rD   s     r$   validate_repository*HacsTemplateRepository.validate_repository(   s%     ""$$$ #66??		 		##dii)))99&&//99yy""$..8;;-9$((:J:J7SU:V9WWhi 
 ==--yy''///KK%%gt{{EB . }}$$$) 	%s   FFD8FAFc                J  #    U R                   R                  U R                  l        U R                  U R
                  R                  l        U R                  R                  R                  (       a.  U R                  R                  R                  U 5      I Sh  vN   gg N7f)zRegistration.N)r7   r8   r   r9   r   r   r   r    r   systemaction
validationasync_run_repository_checksr*   s    r$   async_post_registration.HacsTemplateRepository.async_post_registrationA   sn      #66??		"&..99""))&&BB4HHH #Hs   BB#B!B#c                @   #    U R                  5       I Sh  vN   g N7f)zRun post uninstall steps.Nr-   r*   s    r$   async_post_uninstall+HacsTemplateRepository.async_post_uninstallJ   r1   r2   c                L  #    U R                   R                  SU R                  5         U R                  R                  R
                  R                  SS0 5      I Sh  vN   g N! [         a1  nU R                   R                  SU R                  U5         SnAgSnAff = f7f)zReload custom templates.z%s Reloading custom templateshomeassistantreload_custom_templatesNr5   )	rC   debugr<   r   hassservices
async_callr   	exception)r"   rY   s     r$   r.   /HacsTemplateRepository._reload_custom_templatesN   sz     94;;G	C))..))44_F_acddd! 	CKK!!'4;;	BB	Cs@   'B$4A& A$A& #B$$A& &
B!0'BB$B!!B$
      )concurrenttasksbackoff_timec                  #    U R                  X5      I Sh  vN (       d  U(       d  gU R                  R                  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 N7f)zUpdate.Ni9  update)idrJ   
repositoryrepository_id)common_updater7   r8   r   r9   r   r   r   r    	installedr   async_dispatchr   
REPOSITORYr   ra   )r"   ignore_issuesforces      r$   update_repository(HacsTemplateRepository.update_repositoryV   s      ''===e #66??		"&.. 99II$$!,,&"&))"5"5%)YY\\	  >s   C)C'CC) )r   r   r   str)returnNone)FF)__name__
__module____qualname____firstlineno____doc__r   propertyr   r/   rF   rM   rP   r.   r
   rj   __static_attributes____classcell__)r#   s   @r$   r   r      sW    ## @ @.%2I.C 3 4r&   r   N)rt   
__future__r   typingr   homeassistant.exceptionsr   enumsr   r   
exceptionsr	   utils.decoratorr
   baser   r   r   rl   r&   r$   <module>r      s1     "   7 3 & (  X^ Xr&   