
    g	                         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y)    Ni   )maxsizec                     t        t        j                  |       j                  j	                               }|r|dd  }|S )N   )tupleinspect	signature
parametersvalues)funcremove_firstr	   s      l/var/www/python.vincentserveurtest.ovh/public_html/venv/lib/python3.12/site-packages/django/utils/inspect.py_get_func_parametersr      s:    w((.99@@BCJ^
    c                 f    t        j                  |       }|r| j                  n| }t        ||      S )N)r   )r   ismethod__func__r   )meth_or_func	is_methodr   s      r   _get_callable_parametersr      s.      .I$-<  <D9==r   c                 |    t        |       }|D cg c]!  }|j                  t        v s|j                  # c}S c c}w N)r   kind	ARG_KINDSname)r   paramsparams      r   get_func_argsr      s3    %d+F$*FF5ejjI.EEJJFFFFs   99c                    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                  k7  r|j                  ||j                  f       |j                  |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zz6>::**999:DZZ7,,888$;D==G--333KKu}}-.KK   Kr   c                 8    t        d t        |       D              S )zBReturn True if function 'func' accepts keyword arguments **kwargs.c              3   T   K   | ]   }|j                   |j                  k(  s| " y wr   )r   r#   .0ps     r   	<genexpr>z&func_accepts_kwargs.<locals>.<genexpr>;   s"     T8QAFFamm<Sq8   ((anyr   r   s    r   func_accepts_kwargsr3   9   s    T248TTTr   c                 8    t        d t        |       D              S )zL
    Return True if function 'func' accepts positional arguments *args.
    c              3   T   K   | ]   }|j                   |j                  k(  s| " y wr   )r   r"   r+   s     r   r.   z(func_accepts_var_args.<locals>.<genexpr>B   s$     W8QAFFaFVFV<Vq8r/   r0   r2   s    r   func_accepts_var_argsr6   >   s     W248WWWr   c                     t        t        |       D cg c]  }|j                  t        v s| c}      }t	        j
                  |       r|dk(  S |dk(  S c c}w )z,Return True if a method only accepts 'self'.r   r   )lenr   r   r   r   r   )methr-   counts      r   method_has_no_argsr;   E   sT    4T:R:qaff	>Q:RSE ))$/5A:?UaZ? Ss
   AAc                 >    t        fdt        |       D              S )Nc              3   <   K   | ]  }|j                   k(    y wr   )r   )r,   r   r   s     r   r.   z*func_supports_parameter.<locals>.<genexpr>L   s     N/MeuzzT!/Ms   r0   )r   r   s    `r   func_supports_parameterr>   K   s    N/G/MNNNr   )	functoolsr   	lru_cacher   r   	frozensetr!   POSITIONAL_ONLYKEYWORD_ONLYPOSITIONAL_OR_KEYWORDr   r   r(   r3   r6   r;   r>    r   r   <module>rF      s      S! "> ))&&//	G
0U
X@Or   