File: //lib/python3.6/site-packages/__pycache__/decorator.cpython-36.pyc
3
5*[Z@ @ s d Z ddlmZ ddlZddlZddlZddlZddlZddlZdZ ej
dkrdddlmZ dd Znej
d d
Zdd Zd
d Zy
ejZW n ek
r dd ZY nX ej
ddZdd ZejdZG dd deZf fddZd*ddZyddlmZ W n" ek
r ddlmZ Y nX G dd deZeejZe ej!Z"e"dkrhej# rhd d! Zee_n,e"dkr|ej#r|ne"d"krd#d! Zee_eeZ$d$d% Z%d&d' Z&d(d) Z'dS )+zT
Decorator module, see http://pypi.python.org/pypi/decorator
for the documentation.
)print_functionNz4.2.13)getfullargspecc C s | j S )N)__init__)cls r /usr/lib/python3.6/decorator.pyget_init0 s r FullArgSpecz5args varargs varkw defaults kwonlyargs kwonlydefaultsc C s t jtj| g df S )z?A quick and dirty replacement for getfullargspec for Python 2.XN)r
_makeinspect
getargspec)fr r r r 7 s r c C s | j jS )N)r __func__)r r r r r ; s c C s dS )NFr )r r r r iscoroutinefunctionB s r ArgSpeczargs varargs varkw defaultsc C s t | }t|j|j|j|jS )z$A replacement for inspect.getargspec)r r argsvarargsvarkwdefaults)r specr r r r
J s r
z\s*def\s*([_\w][_\w\d]*)\s*\(c @ sZ e Zd ZdZej Zf Z Z Z Z
ZZd
ddZ
dd Zddd ZedddZdS )
FunctionMakerz
An object with the ability to create functions with a given signature.
It has attributes name, doc, module, signature, defaults, dict and
methods update and make.
Nc C s || _ |rf|j| _| jdkr$d| _|j| _|j| _tj|rft |}t
|di | _xdD ]} t| | t
|| q\W x&t
| jD ]\}
}t| d
|
| qW t| j}t| j}
| jr|jd| j |
jd| j n| jr|jd x.| jD ]$} |jd| |
jd
| | f qW | jrB|jd| j |
jd| j dj|| _dj|
| _ |jj | _|rr|| _|d k r|| _|r|| _|r|| _|r|| _|r|| _t| dstt| dstd| d S )Nz<lambda>_lambda___annotations__r r r r
kwonlyargskwonlydefaultszarg%d*z%s=Nonez%s=%sz**z, name signaturez%You are decorating a non function: %s)r r r r r r )shortsignature__name__r __doc__doc
__module__moduler
isfunctionr getattrannotationssetattr enumerater listr appendr r joinr __dict__copydictr hasattrAssertionError TypeError)selffuncr r r r"