B
    ª0H[˜  ã               @   s<   d dl Z dd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ ZdS )é    Nc             C   s   t  | ¡}dd„ |j ¡ D ƒS )Nc             S   s"   g | ]\}}|j tjjkr|‘qS © )ÚkindÚinspectÚ	ParameterÚPOSITIONAL_OR_KEYWORD)Ú.0Úarg_nameÚparamr   r   úXC:\Users\HIRONO~1\AppData\Local\Temp\pip-install-6bm3nxem\django\django\utils\inspect.pyú
<listcomp>   s    z!get_func_args.<locals>.<listcomp>)r   Ú	signatureÚ
parametersÚitems)ÚfuncÚsigr   r   r
   Úget_func_args   s    
r   c             C   s’   t  | ¡}g }x~|j ¡ D ]p\}}|}|dkr0q|jt jjkrHd| }n|jt jjkr^d| }|jt jj	kr~| 
||jf¡ q| 
|f¡ qW |S )zÆ
    Return a list of (argument name, default value) tuples. If the argument
    does not have a default value, omit it in the tuple. Arguments such as
    *args and **kwargs are also included.
    ÚselfÚ*z**)r   r   r   r   r   r   ÚVAR_POSITIONALÚVAR_KEYWORDÚdefaultÚemptyÚappend)r   r   Úargsr   r	   Únamer   r   r
   Úget_func_full_args   s    

r   c             C   s   t dd„ t | ¡j ¡ D ƒƒS )Nc             s   s   | ]}|j |jkr|V  qd S )N)r   r   )r   Úpr   r   r
   ú	<genexpr>&   s    z&func_accepts_kwargs.<locals>.<genexpr>)Úanyr   r   r   Úvalues)r   r   r   r
   Úfunc_accepts_kwargs$   s    r    c             C   s   t dd„ t | ¡j ¡ D ƒƒS )zL
    Return True if function 'func' accepts positional arguments *args.
    c             s   s   | ]}|j |jkr|V  qd S )N)r   r   )r   r   r   r   r
   r   0   s    z(func_accepts_var_args.<locals>.<genexpr>)r   r   r   r   r   )r   r   r   r
   Úfunc_accepts_var_args+   s    r!   c             C   s&   dd„ t  | ¡j ¡ D ƒ}t|ƒdkS )Nc             S   s   g | ]}|j |jkr|‘qS r   )r   r   )r   r   r   r   r
   r   7   s    z$func_has_no_args.<locals>.<listcomp>é   )r   r   r   r   Úlen)r   r   r   r   r
   Úfunc_has_no_args5   s    r$   c             C   s   |t  | ¡jkS )N)r   r   r   )r   Z	parameterr   r   r
   Úfunc_supports_parameter=   s    r%   )r   r   r   r    r!   r$   r%   r   r   r   r
   Ú<module>   s   
