
    e                     D     G d  d      Z edk(  rddlmZ  edd       yy)	c                   &    e Zd ZddZd Zd Zd Zy)	DelegatorNc                 0    || _         t               | _        y N)delegateset_Delegator__cacheselfr   s     #lib/python3.12/idlelib/delegator.py__init__zDelegator.__init__   s     u    c                     t        | j                  |      }t        | ||       | j                  j	                  |       |S r   )getattrr   setattrr   add)r
   nameattrs      r   __getattr__zDelegator.__getattr__	   s5    t}}d+dD!r   c                     | j                   D ]  }	 t        | |        | j                   j                          y# t        $ r Y 8w xY w)z;Removes added attributes while leaving original attributes.N)r   delattrAttributeErrorclear)r
   keys     r   
resetcachezDelegator.resetcache   sL     << 	Cc"	
 	 " s   :	AAc                 2    | j                          || _        y)z%Reset attributes and change delegate.N)r   r   r	   s     r   setdelegatezDelegator.setdelegate   s     r   r   )__name__
__module____qualname__r   r   r   r    r   r   r   r      s    	!r   r   __main__    )mainz idlelib.idle_test.test_delegator   )	verbosityN)r   r   unittestr#   r    r   r   <module>r'      s,   ! !< z	+q9 r   