
    g
                        S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  S	S
KJr  S	SKJr  S	SKJr  S	SKJr          SS jr " S S\\5      rg)zSwitch entities for HACS.    )annotations)Any)SwitchEntity)ConfigEntry)EntityCategory)HomeAssistant)AddEntitiesCallback   )HacsBase)DOMAIN)HacsRepositoryEntity)HacsRepositoryc                   ^#    U R                   [           mU" U4S jTR                  R                   5       5        g7f)zSetup switch platform.c              3  8   >#    U  H  n[        TUS 9v   M     g7f))hacs
repositoryN)$HacsRepositoryPreReleaseSwitchEntity).0r   r   s     (/config/custom_components/hacs/switch.py	<genexpr>$async_setup_entry.<locals>.<genexpr>   s      ;J 	-$:N;s   N)datar   repositorieslist_downloaded)hassentryasync_add_entitiesr   s      @r   async_setup_entryr      s7      YYv&D ++;; s   ;>c                     ^  \ rS rSrSr\R                  rSrSr	SU 4S jjr
\SS j5       rSS jrSS jrSS	 jrS
rU =r$ )r       zBPre-release switch entities for repositories downloaded with HACS.Tzpre-releasec                n   > [         TU ]  X5        U R                  R                  R                  U l        g)z-Initialize the repository pre-release switch.N)super__init__r   r   	show_beta%_attr_entity_registry_enabled_default)selfr   r   	__class__s      r   r#   -HacsRepositoryPreReleaseSwitchEntity.__init__'   s(    *59__5I5I5S5S2    c                B    U R                   R                  R                  $ )z?Return if the pre-release option is enabled for the repository.)r   r   r$   )r&   s    r   is_on*HacsRepositoryPreReleaseSwitchEntity.is_on,   s     ##---r)   c                >   #    U R                  SS9I Sh  vN   g N7f)zTurn the entity on.TvalueN_handle_changer&   kwargss     r   async_turn_on2HacsRepositoryPreReleaseSwitchEntity.async_turn_on1   s     !!!---   c                >   #    U R                  SS9I Sh  vN   g N7f)zTurn the entity off.Fr.   Nr0   r2   s     r   async_turn_off3HacsRepositoryPreReleaseSwitchEntity.async_turn_off5   s     !!!...r6   c                  #    XR                   R                  l        U R                   R                  R                  nSU R                   R                  l        U R                  R                  5         X R                   R                  l        U R                  R                  R                  5       I Sh  vN   U R                  5         g N7f)zHandle attribute value changes.N)	r   r   r$   last_fetchedcoordinatorasync_update_listenersr   async_writeasync_write_ha_state)r&   r/   _last_fetchs      r   r1   3HacsRepositoryPreReleaseSwitchEntity._handle_change9   s     ).& oo**77,0)//1,7) iinn((***!!# 	+s   B1C3C	4C)r%   )r   r   r   r   returnNone)rB   bool)r3   r   rB   rC   )r/   rD   rB   rC   )__name__
__module____qualname____firstlineno____doc__r   
DIAGNOSTIC_attr_entity_category_attr_has_entity_name_attr_translation_keyr#   propertyr+   r4   r8   r1   __static_attributes____classcell__)r'   s   @r   r   r       sL    L*55 )T
 . ../$ $r)   r   N)r   r   r   r   r   r	   rB   rC   )rI   
__future__r   typingr   homeassistant.components.switchr   homeassistant.config_entriesr   homeassistant.constr   homeassistant.corer   %homeassistant.helpers.entity_platformr	   baser   constr   entityr   repositories.baser   r   r    r)   r   <module>r]      sa     "  8 4 . , E   ( -



 ,
 
	
)$+? )$r)   