U
    µ©Þaý  ã                   @   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   úƒ/home/adriano.carvalho/ftp/files/BrinquedotecaVirtual/brinquedotecavirtual/venv/lib/python3.8/site-packages/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 }|j ¡ D ]p\}}|}|dkr.q|jt jjkrFd| }n|jt jjkr\d| }|jt jj	kr|| 
||jf¡ q| 
|f¡ q|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 r   )r   r   r   r   r   r
   r   /   s   ÿz(func_accepts_var_args.<locals>.<genexpr>r    r#   r   r   r
   Úfunc_accepts_var_args+   s    ÿr%   c                 C   s8   t dd„ t | ¡j ¡ D ƒƒ}t | ¡r0|dkS |dkS )z,Return True if a method only accepts 'self'.c                 S   s   g | ]}|j |jkr|‘qS r   )r   r   r   r   r   r
   r   7   s   ÿz&method_has_no_args.<locals>.<listcomp>r   é   )Úlenr   r   r   r"   Úismethod)ÚmethÚcountr   r   r
   Úmethod_has_no_args5   s    ÿr+   c                 C   s   |t  | ¡jkS r   )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   
	