
    Vh
                    J    d dl mZ d dlmZ d dlmZ d dlmZ  G d de      Zy)    )annotations)NonInheritableFieldAttribute)Task)string_typesc                  x     e Zd Z edeed      Zd fd	Zd Zd Z	e
dd       Zd Zd	 Zd
 Zd Z fdZ xZS )HandlerlistT)isadefaultlistofstaticc                N    g | _         d| _        t        t        |   |||       y )NFblockroletask_include)notified_hostscached_namesuperr   __init__)selfr   r   r   	__class__s       H/home/dcms/DCMS/lib/python3.12/site-packages/ansible/playbook/handler.pyr   zHandler.__init__   s)      gt%E<%X    c                (    d| j                         z  S )z8 returns a human-readable representation of the handler zHANDLER: %s)get_namer   s    r   __repr__zHandler.__repr__$   s    t}}..r   c                *   | j                  |||d       }| j                  f|j                         D ]S  }|j                  | j                  j	                  d       d| | j                  j	                  d       d| g       U t        | ||       y )NT)include_role_fqcnz : F)get_validated_value_rolecopyextendr   setattr)r   attrnamevalue	new_valuelisteners         r   _validate_listenzHandler._validate_listen(   s    ,,T4E	::!%NN,   zz**T*BC3xjQzz**U*CDCzR" 
 	dI&r   c                F    t        |||      }|j                  | ||      S )Nr   )variable_managerloader)r   	load_data)datar   r   r   r-   r.   ts          r   loadzHandler.load2   s&    %dF{{42B6{RRr   c                ^    | j                  |      s| j                  j                  |       yy)NTF)is_host_notifiedr   appendr   hosts     r   notify_hostzHandler.notify_host7   s*    $$T*&&t,r   c                X    | j                   D cg c]
  }||k7  s	| c}| _         y c c}w Nr   )r   r7   hs      r   remove_hostzHandler.remove_host=   s$    *.*=*=KQdqKKs   
''c                    g | _         y r:   r;   r   s    r   clear_hostszHandler.clear_hosts@   s
     r   c                    || j                   v S r:   r;   r6   s     r   r4   zHandler.is_host_notifiedC   s    t****r   c                6    t         t        |          }d|d<   |S )NT
is_handler)r   r   	serialize)r   resultr   s     r   rC   zHandler.serializeF   s!    w/1#|r   )NNN)NNNNN)__name__
__module____qualname__r   r	   r   listenr   r   r+   staticmethodr2   r8   r=   r?   r4   rC   __classcell__)r   s   @r   r   r      sY    )fd<`deFY/' S SL!+ r   r   N)	
__future__r   ansible.playbook.attributer   ansible.playbook.taskr   ansible.module_utils.sixr   r    r   r   <module>rP      s   $ # C & 10d 0r   