
    Evg	                         d dl Z d dlZ e j        d          d             Zd Z eej        j        ej        j        ej        j	        h          Z
d Zd Zd Zd	 Zd
 Zd ZdS )    Ni   )maxsizec                     t          t          j        |           j                                                  }|r
|dd          }|S )N   )tupleinspect	signature
parametersvalues)funcremove_firstr	   s      Q/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/utils/inspect.py_get_func_parametersr      sD    w(..9@@BBCCJ $^
    c                 b    t          j        |           }|r| j        n| }t          ||          S )N)r   )r   ismethod__func__r   )meth_or_func	is_methodr   s      r   _get_callable_parametersr      s7     ..I$-?<  <D9====r   c                 8    t          |           }d |D             S )Nc                 8    g | ]}|j         t          v |j        S  )kind	ARG_KINDSname).0params     r   
<listcomp>z!get_func_args.<locals>.<listcomp>   s&    FFF5ejI.E.EEJ.E.E.Er   )r   )r   paramss     r   get_func_argsr       s#    %d++FFFFFFFFr   c                 f   t          |           }g }|D ]}|j        }|dk    r|j        t          j        j        k    rd|z   }n|j        t          j        j        k    rd|z   }|j        t          j        j        k    r|	                    ||j        f           |	                    |f           |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   	ParameterVAR_POSITIONALVAR_KEYWORDdefaultemptyappend)r   r   argsr   r   s        r   get_func_full_argsr+   !   s     &d++FD ! !z6>>:*999:DDZ7,888$;D=G-333KKu}-....KK    Kr   c                 N    t          d t          |           D                       S )zBReturn True if function 'func' accepts keyword arguments **kwargs.c              3   :   K   | ]}|j         |j        k    |V  d S N)r   r&   r   ps     r   	<genexpr>z&func_accepts_kwargs.<locals>.<genexpr>;   s0      TTQAFam<S<Sq<S<S<S<STTr   anyr   r   s    r   func_accepts_kwargsr5   9   s(    TT2488TTTTTTr   c                 N    t          d t          |           D                       S )zL
    Return True if function 'func' accepts positional arguments *args.
    c              3   :   K   | ]}|j         |j        k    |V  d S r.   )r   r%   r/   s     r   r1   z(func_accepts_var_args.<locals>.<genexpr>B   s1      WWQAFaFV<V<Vq<V<V<V<VWWr   r2   r4   s    r   func_accepts_var_argsr8   >   s*     WW2488WWWWWWr   c                     t          d t          |           D                       }t          j        |           r|dk    n|dk    S )z,Return True if a method only accepts 'self'.c                 .    g | ]}|j         t          v |S r   )r   r   r/   s     r   r   z&method_has_no_args.<locals>.<listcomp>G   s$    RRRqaf	>Q>Q>Q>Q>Qr   r   r   )lenr   r   r   )methcounts     r   method_has_no_argsr>   E   sI    RR4T::RRRSSE )$//?5A::UaZ?r   c                 T    t          fdt          |           D                       S )Nc              3   .   K   | ]}|j         k    V  d S r.   )r   )r   r   r   s     r   r1   z*func_supports_parameter.<locals>.<genexpr>L   s*      NNeuzT!NNNNNNr   r2   )r   r   s    `r   func_supports_parameterrA   K   s/    NNNN/G/M/MNNNNNNr   )	functoolsr   	lru_cacher   r   	frozensetr$   POSITIONAL_ONLYKEYWORD_ONLYPOSITIONAL_OR_KEYWORDr   r    r+   r5   r8   r>   rA   r   r   r   <module>rH      s         S!!!  "!> > > I)&/ 	G G G
  0U U U
X X X@ @ @O O O O Or   