+
    !i                    .   R t ^ RIHt ^ RIHtHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^RIHtHtHt ^R	IHt ^R
IHtHt ]'       d   ^RIHt ^RIHt R R lt ! R R]4      t ! R R]4      t ! R R]4      t  ! R R]],          ]4      t!R# )zHACS Base entities.)annotations)TYPE_CHECKINGAny)callback)DeviceEntryType)async_dispatcher_connect)Entity)BaseCoordinatorEntity)DOMAINHACS_SYSTEM_ID
NAME_SHORT)HacsUpdateCoordinator)HacsDispatchEventHacsGitHubRepo)HacsBase)HacsRepositoryc                    V ^8  d   QhRRRR/# )   hacsr   returndict )formats   "(/config/custom_components/hacs/entity.py__annotate__r      s     
 
h 
4 
    c                    R\         \        30R\        RRRRR\        V P                  4      RR	R
\
        P                  /# )zReturn system info.identifiersnamemanufacturerzhacs.xyzmodel 
sw_versionconfiguration_urlzhomeassistant://hacs
entry_type)r
   r   r   strversionr   SERVICEr   s   &r   system_infor)      sI     	01

c$,,'3o-- r   c                  :    ] tR t^#t$ RtRtR]R&   RtR R ltRt	R# )	HacsBaseEntityzBase HACS entity.NzHacsRepository | None
repositoryFc                    V ^8  d   QhRRRR/# )r   r   r   r   Noner   )r   s   "r   r   HacsBaseEntity.__annotate__)   s      X $ r   c                    Wn         R# )Initialize.Nr(   )selfr   s   &&r   __init__HacsBaseEntity.__init__)   s    	r   r(   )
__name__
__module____qualname____firstlineno____doc__r,   __annotations___attr_should_pollr3   __static_attributes__r   r   r   r+   r+   #   s     (,J%, r   r+   c                  ^    ] tR t^.tRtR R lt]R R l4       tR R lt]R R	 l4       t	R
t
R# )HacsDispatcherEntityz1Base HACS entity listening to dispatcher signals.c                   V ^8  d   QhRR/# r   r   r.   r   )r   s   "r   r   !HacsDispatcherEntity.__annotate__1   s     
 
4 
r   c                   "   V P                  \        V P                  \        P                  V P
                  4      4       R# 5i)zRegister for status events.N)async_on_remover   hassr   
REPOSITORY_update_and_write_stater2   s   &r   async_added_to_hass(HacsDispatcherEntity.async_added_to_hass1   s4     $		!,,,,	
s   AAc                   V ^8  d   QhRR/# r@   r   )r   s   "r   r   rA   <   s     ! ! !r   c                    R# )zUpdate the sensor.Nr   rG   s   &r   _updateHacsDispatcherEntity._update;   s    r   c                   V ^8  d   QhRR/# r@   r   )r   s   "r   r   rA   ?   s      D r   c                .   "   V P                  4        R# 5i)zManual updates of the sensor.N)rL   rG   s   &r   async_update!HacsDispatcherEntity.async_update?   s     s   c                    V ^8  d   QhRRRR/# )r   _r   r   r.   r   )r   s   "r   r   rA   D   s     $ $ $ $r   c                F    V P                  4        V P                  4        R# )z"Update the entity and write state.N)rL   async_write_ha_state)r2   rS   s   &&r   rF   ,HacsDispatcherEntity._update_and_write_stateC   s     	!!#r   r   N)r5   r6   r7   r8   r9   rH   r   rL   rP   rF   r<   r   r   r   r>   r>   .   s7    ;
 ! ! $ $r   r>   c                  8    ] tR t^JtRtRt]t]R R l4       t	Rt
R# )HacsSystemEntityzBase system entity.z	hacs:hacsc                   V ^8  d   QhRR/# r   r   zdict[str, any]r   )r   s   "r   r   HacsSystemEntity.__annotate__Q   s     & &^ &r   c                ,    \        V P                  4      # )%Return device information about HACS.)r)   r   rG   s   &r   device_infoHacsSystemEntity.device_infoP   s     499%%r   r   N)r5   r6   r7   r8   r9   
_attr_iconr   _attr_unique_idpropertyr^   r<   r   r   r   rX   rX   J   s!    J$O& &r   rX   c                  t    ] tR t^VtRtR R lt]R R l4       t]R R l4       t]	R R	 l4       t
R
 R ltRtR# )HacsRepositoryEntityzBase repository entity.c               $    V ^8  d   QhRRRRRR/# )r   r   r   r,   r   r   r.   r   )r   s   "r   r   !HacsRepositoryEntity.__annotate__Y   s(     
? 
?
? #
? 
	
?r   c                2   \         P                  ! WP                  VP                  P                  ,          4       \
        P                  WR7       W n        \        VP                  P                  4      V n	        VP                  P                  V n        R# )r1   r(   N)r	   r3   coordinatorsdatacategoryr+   r,   r%   idra   last_fetched_repo_last_fetched)r2   r   r,   s   &&&r   r3   HacsRepositoryEntity.__init__Y   sf     	&&t->->z?W?W-XY0$":??#5#56",//">">r   c                   V ^8  d   QhRR/# )r   r   boolr   )r   s   "r   r   rf   f   s     ` `4 `r   c                    V P                   P                  P                  \        V P                  P
                  P                  4      R7      # )z#Return True if entity is available.)repository_id)r   repositoriesis_downloadedr%   r,   ri   rk   rG   s   &r   	availableHacsRepositoryEntity.availablee   s7     yy%%33#dooFZFZF]F]B^3__r   c                   V ^8  d   QhRR/# rZ   r   )r   s   "r   r   rf   k   s     
 
^ 
r   c                  a  S P                   P                  P                  \        P                  8X  d   \        S P                  4      # V 3R lpR\        \        S P                   P                  P                  4      30RS P                   P                  RS P                   P                  P                  RV! 4       RRS P                   P                  P                   2R\        P                  /# )	r]   c                    < SP                   P                  P                  ;p '       d   R P                  R V  4       4      # SP                   P                  P                  P                  R4      ^ ,          # )z, c              3  D   "   T F  qP                  R R4      x  K  	  R# 5i)@r!   N)replace).0authors   & r   	<genexpr>JHacsRepositoryEntity.device_info.<locals>._manufacturer.<locals>.<genexpr>r   s      OwVR!8!8ws    /)r,   ri   authorsjoin	full_namesplit)r   r2   s    r   _manufacturer7HacsRepositoryEntity.device_info.<locals>._manufacturerp   sY    //..666w6yy Ow OOO??''1177<Q??r   r   r   r    r   r#   z homeassistant://hacs/repository/r$   )r,   ri   r   r   INTEGRATIONr)   r   r
   r%   rk   display_namerj   r   r'   )r2   r   s   f r   r^    HacsRepositoryEntity.device_infoj   s     ??))^-G-GGtyy))	@ VS)=)=)@)@%ABCDOO00T__))22MO#CDOODXDXD[D[C\!]/11
 	
r   c                   V ^8  d   QhRR/# r@   r   )r   s   "r   r   rf      s     
$ 
$D 
$r   c                2   V P                   eT   V P                  P                  P                  e2   V P                   V P                  P                  P                  8  d   R# V P                  P                  P                  V n         V P	                  4        R# )z)Handle updated data from the coordinator.N)rm   r,   ri   rl   rU   rG   s   &r   _handle_coordinator_update/HacsRepositoryEntity._handle_coordinator_update~   sk     ##/$$11=''4??+?+?+L+LL"&//"6"6"C"C!!#r   c                   V ^8  d   QhRR/# r@   r   )r   s   "r   r   rf      s      D r   c                   "   R# 5i)zDUpdate the entity.

Only used by the generic entity update service.
Nr   rG   s   &r   rP   !HacsRepositoryEntity.async_update   s     s   )ra   rm   r,   N)r5   r6   r7   r8   r9   r3   rb   ru   r^   r   r   rP   r<   r   r   r   rd   rd   V   sR    !
? ` ` 
 
& 
$ 
$ r   rd   N)"r9   
__future__r   typingr   r   homeassistant.corer   %homeassistant.helpers.device_registryr    homeassistant.helpers.dispatcherr   homeassistant.helpers.entityr   (homeassistant.helpers.update_coordinatorr	   constr
   r   r   coordinatorr   enumsr   r   baser   repositories.baser   r)   r+   r>   rX   rd   r   r   r   <module>r      sq     " % ' A E / J 5 5 . 41
V $> $8	&+ 	&901FG 9r   