
    g                    	   S 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  SSKrS	S
KJr  \ " S S5      5       rS6S jr\R*                  " \R,                  " S5      \\R,                  " S5      \\R,                  " S5      \\R,                  " S5      \\R,                  " S5      \\R,                  " S5      \\R,                  " S5      \\R,                  " S5      \\R,                  " S5      \\R2                  " S5      \0
\R4                  S9r\R*                  " \R2                  " S5      \\R2                  " S5      \\R2                  " S5      \\R2                  " S5      \\R2                  " S5      \\R2                  " S5      \R:                  " \5      0\R<                  S9rS7S jr S8S jr!\R2                  " S 5      \R                  " \S5      \R,                  " S!5      \"\R,                  " S"5      \\R2                  " S#5      \\R2                  " S$5      \\R,                  " S%5      \\R2                  " S&5      \R                  " \"\#5      \R2                  " S'5      \\R,                  " S(5      \\R,                  " S)5      \\R2                  " S*5      \R,                  " S5      \R                  " \/S+5      \R,                  " S5      \0\R,                  " S,5      \"\R,                  " S-5      \"\R,                  " S.5      \/0r$0 \$E\R2                  " S5      \\R2                  " S/5      \0Er%\$\%\$\$\$\$S0.r&\&RO                  5        V Vs0 s H  u  pU \ " U\RP                  5      _M     snn r)\&RO                  5        V Vs0 s H*  u  pU \R+                  \\ " U\R4                  5      05      _M,     snn r*\R2                  " S15      \\R2                  " S25      \\R2                  " S35      \0r+\R*                  " \+\RP                  S9r,\R*                  " \R*                  " \+\R4                  S9/5      r-\R,                  " S15      \\R,                  " S25      \\R2                  " S45      \R\                  " / S5Q5      \R2                  " S35      \0r/\R*                  " \/\RP                  S9r0\R*                  " \R*                  " \/\R4                  S9/5      r1gs  snn f s  snn f )9zValidation utilities.    )annotations)Callable)	dataclassfield)Any)AwesomeVersion)urlN   )LOCALEc                  D    \ rS rSr% Sr\" \S9rS\S'   \	S	S j5       r
Srg)
Validate   z	Validate.)default_factory	list[str]errorsc                2    [        U R                  5      S:H  $ )z,Return bool if the validation was a success.r   )lenr   )selfs    0/config/custom_components/hacs/utils/validate.pysuccessValidate.success   s     4;;1$$     N)returnbool)__name__
__module____qualname____firstlineno____doc__r   listr   __annotations__propertyr   __static_attributes__r   r   r   r   r      s&    d3FI3% %r   r   c                   / n[        U [        5      (       a   UR                  U R                  5       5        OX[        U [        5      (       a)  U  H"  nUR                  UR                  5       5        M$     O[
        R                  " SU  S3S/S9eU H.  nU[        ;  d  M  [
        R                  " SU S[         S3S/S9e   U$ )zCustom country validator.zValue 'z' is not a string or list.country)pathz' is not in .)
isinstancestrappendupperr!   volInvalidr   )values	countriesvaluer&   s       r   _country_validatorr2      s    I&#(	FD	!	!EU[[]+  kkGF8+EFi[YY& ++yVHAFi[YY  r   content_in_rootr&   filenamehacshide_default_branchhomeassistantpersistent_directoryrender_readmezip_releasenameextra
codeownersdocumentationdomainissue_trackerversionc                @   ^ [         R                  " XS9mSU4S jjnU$ )zReturn a validator for repo data.

This is used instead of vol.All to always try both the repo schema and
and the validate_version validator.
r<   c                  > Sn T" U 5         [        U 5        U(       a  UeU $ ! [         R                   a  nUn SnAN2SnAff = f! [         R                   a#  nU(       a  UR	                  U5         SnAN_e SnAff = f)zValidate integration repo data.N)r-   MultipleInvalidvalidate_versionr.   add)dataschema_errorserr_schemas      r   validate_repo_data.validate_repo_data.<locals>.validate_repo_dataS   sz    48	 DM	T"  "" 	 M	  {{ 	!!#&&		s/   $ A A?AA>A98A99A>rH   r   r   r   )r-   Schema)schemar=   rL   rK   s      @r   rL   rL   K   s      jj-G$ r   c                J    SU ;  a  SU ;  a  [         R                  " S5      eU $ )z>Ensure at least one of last_commit or last_version is present.last_commitlast_versionzBExpected at least one of [`last_commit`, `last_version`], got none)r-   r.   )rH   s    r   rF   rF   h   s&    D ^4%?kk^__Kr   description	downloadsetag_releasesetag_repository	full_namerR   last_fetchedlast_updatedrS   
prereleasemanifestFopen_issuesstargazers_counttopicsmanifest_name)	appdaemonintegrationpluginpython_scripttemplatethemelinkreason
repositoryremoval_type)z3Integration is missing a version, and is abandoned.Removearchived	blacklistcritical
deprecatedremovalremoveremovedreplacedri   )r   r   )rP   zdict[str, Any]r=   intr   zCallable[[Any], Any]rN   )2r    
__future__r   collections.abcr   dataclassesr   r   typingr   awesomeversionr   'homeassistant.helpers.config_validationr	   url_validator
voluptuousr-   constr   r   r2   rO   Optionalr   r*   RequiredPREVENT_EXTRAHACS_MANIFEST_JSON_SCHEMAr!   CoerceALLOW_EXTRA INTEGRATION_MANIFEST_JSON_SCHEMArL   rF   rt   floatV2_COMMON_DATA_JSON_SCHEMAV2_INTEGRATION_DATA_JSON_SCHEMA_V2_REPO_SCHEMASitemsREMOVE_EXTRAVALIDATE_FETCHED_V2_REPO_DATAVALIDATE_GENERATED_V2_REPO_DATAV2_CRITICAL_REPO_DATA_SCHEMA(VALIDATE_FETCHED_V2_CRITICAL_REPO_SCHEMA*VALIDATE_GENERATED_V2_CRITICAL_REPO_SCHEMAInV2_REMOVED_REPO_DATA_SCHEMA'VALIDATE_FETCHED_V2_REMOVED_REPO_SCHEMA)VALIDATE_GENERATED_V2_REMOVED_REPO_SCHEMA)categoryrP   s   00r   <module>r      s    " $ (  ) H   % % %$  JJ&'Y!3Z #Vc*+T_%s+,c_%t]#TVc 

   $'::\"D_%}X_%}VcYN!; //
$  : LLd!3LLsLL!3LL"#SLLsLLLL #''#u"5LL #LL #LLLLY#!6Vc LLLL#$cLLSE# (# #LLCLL!3#  ,2(/*'  -224!4  )9)9::4!  -224#4 cjj#1&#:K:KLMNN4#  LL#LLCLL   ,/:: 


, ( .1ZZ

(##	
. * LL#LLCLL #&&	
# LL% , +.**


+ ' -0JJ

'##	
- ){!#s    S#1S)