
    Xh                        d Z ddlmZ ddlZddlZddlmZmZ eZ	ej                  reej                  ej                  f   Z	 G d de	      Zy)zTrait types for events.    )annotationsN)
TraitError	TraitTypec                  ,    e Zd ZdZdZddZddZd	dZy)
HandlerszA trait that takes a list of logging handlers and converts
    it to a callable that returns that list (thus, making this
    trait pickleable).
    za list of logging handlersc                    t        |      dkD  r6|D ]0  }t        |t        j                        du s | j	                  |       2 yy)z#Validate the elements of an object.r   FN)len
isinstanceloggingHandlerelement_error)selfobjvalueels       I/var/www/html/myenv/lib/python3.12/site-packages/jupyter_events/traits.pyvalidate_elementszHandlers.validate_elements   sB    u:> ,b'//2e;&&s+,     c                f    d| j                    d|j                  j                   d}t        |      )z Raise an error for bad elements.zElements in the 'z' trait of an z5 instance must be Python `logging` handler instances.)name	__class____name__r   )r   r   msgs      r   r   zHandlers.element_error   s7    !$))N3==;Q;Q:R  SH  Ior   c                    t        |      r |       }| j                  ||       |S t        |t              r| j                  ||       |S | j	                  ||       y)zValidate an object.N)callabler   r
   listerror)r   r   r   outs       r   validatezHandlers.validate#   sY     E?'C""3,J eT"""3.L

3r   N)r   t.Anyr   r    returnNone)r   r    r!   r"   )r   r    r   r    r!   r    )r   
__module____qualname____doc__	info_textr   r   r    r   r   r   r      s    
 -I,
r   r   )r%   
__future__r   r   typingt	traitletsr   r   	baseclassTYPE_CHECKINGAnyr   r'   r   r   <module>r/      sB     "   +	??!%%,'I%y %r   