U
    üÇ-eG  ã                   @   s:   d Z ddlZddlmZ ddlmZ eejdœdd„ZdS )zí
    getargspec excerpted from:

    sphinx.util.inspect
    ~~~~~~~~~~~~~~~~~~~
    Helpers for inspecting Python modules.
    :copyright: Copyright 2007-2015 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Úpartial)ÚAny)ÚfuncÚreturnc           	   
   C   sR  t  | ¡r| j} t| ƒtkr| j}t|ƒ}t|d ƒ}t|d pDdƒ}t|d ƒ}t|d p`i ƒ}| j	r||t
| j	ƒd… }| jp„dD ]l}z<| |¡t
|ƒ }||= z
||= W n tk
rÂ   Y nX W q† tk
rð   | |¡}||= ||= Y q†X q†t  ||d |d t|ƒ|||d	 ¡S t| d
ƒr0| j} qt  | ¡sHtd|  ƒ‚t  | ¡S )z?Like inspect.getargspec but supports functools.partial as well.r   é   © é   é   Né   é   é   Ú__wrapped__z%r is not a Python function)ÚinspectÚismethodÚ__func__Útyper   r   Ú
getargspecÚlistÚdictÚargsÚlenÚkeywordsÚindexÚ
IndexErrorÚ
ValueErrorÚFullArgSpecÚtupleÚhasattrr   Ú
isfunctionÚ	TypeErrorÚgetfullargspec)	r   Z	orig_funcZargspecr   ÚdefaultsZkwoargsZkwodefsÚargÚir   r   ú[/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/traitlets/utils/getargspec.pyr      sJ    



      ÿ
r   )Ú__doc__r   Ú	functoolsr   Útypingr   r   r   r   r   r   r$   Ú<module>   s   	