o
    i                     @   s0   d Z ddlZddlmZmZ G dd deZdS )zTrait types for events.    N)
TraitError	TraitTypec                   @   s,   e Zd ZdZdZdd Zdd Zdd Zd	S )
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                 C   s8   t |dkr|D ]}t|tjdu r| | qdS dS )z#Validate the elements of an object.r   FN)len
isinstanceloggingHandlerelement_error)selfobjvalueel r   P/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/jupyter_events/traits.pyvalidate_elements   s   
zHandlers.validate_elementsc                 C   s    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   msgr   r   r   r	      s   zHandlers.element_errorc                 C   sJ   t |r| }| || |S t|tkr| || |S | || dS )zValidate an object.N)callabler   typelisterror)r
   r   r   outr   r   r   validate   s   zHandlers.validateN)r   
__module____qualname____doc__	info_textr   r	   r   r   r   r   r   r      s    r   )r   r   	traitletsr   r   r   r   r   r   r   <module>   s    