
    ~f                    x    d Z ddlmZ ddlZddlmZmZmZ ddlm	Z	m
Z
mZ ddlmZmZ ddZ ed	e
      ZddZy)z&Useful decorators for Traitlets users.    )annotationsN)	Parameter	Signature	signature)AnyTypeTypeVar   )	HasTraits	Undefinedc                8    | t         k(  rt        j                  S | S )z:Get default argument value, given the trait default value.)r   r   empty)values    U/var/www/cvtools/html/venv/lib/python3.12/site-packages/traitlets/utils/decorators.py_get_defaultr      s    #y09??;e;    T)boundc           
        | j                         j                         D cg c]-  \  }}|j                  d      s|t        |j                        f/ }}}t        | j                        }t        |j                        }g }d}g }d}	|j                  D ]  }
t        j                  |j                  |
         }|j                  t        j                  u s|j                  t        j                  u r|j                  |       o|j                  t        j                  u r|}|j                  t        j                   u r|j                  |       |j                  t        j"                  u s|}	 |	t%        d|  d      g }||dd z  }||j                  |       ||z  }||D cg c]%  \  }}||vrt        |t        j                   |      ' c}}z  }|j                  |	       t'        |      | _        | S c c}}w c c}}w )zYReturn a decorated class with a constructor signature that contain Trait names as kwargs._NzThe zh constructor does not take **kwargs, which means that the signature can not be expanded with trait names   )kinddefault)class_traitsitems
startswithr   default_valuer   __init__list
parameterscopyr   r   POSITIONAL_ONLYPOSITIONAL_OR_KEYWORDappendVAR_POSITIONALKEYWORD_ONLYVAR_KEYWORDRuntimeErrorr   __signature__)clsnamer   traitsold_signatureold_parameter_namesold_positional_parametersold_var_positional_parameterold_keyword_only_parametersold_var_keyword_parameterparameter_name	parameternew_parametersr   s                 r   signature_has_traitsr6      s    ++-335D%s# 
|E//01F  cll+M}778 "#' "$ $'22 2IIm66~FG	 NNi777~~!@!@@%,,Y7^^y777+4(^^y555'..y9^^y444(1%#2* !(3%  A
 	
 N /33N $/:; 11N #D'** 	$Y33WE N 34!.1CJCls   2G>+*H)r   r   returnr   )r*   Type[T]r7   r8   )__doc__
__future__r   r!   inspectr   r   r   typingr   r   r	   	traitletsr   r   r   r   r6    r   r   <module>r?      s6    , "  3 3 % % ,<
 Cy!Cr   