
    (ph                     j    S SK r S SKr\ R                  " SS9S 5       rS rS rS rS rS	 rS
 r	S r
g)    Ni   )maxsizec                     [        [        R                  " U 5      R                  R	                  5       5      nU(       a  USS  nU$ )N   )tupleinspect	signature
parametersvalues)funcremove_firstr	   s      G/var/www/html/venv/lib/python3.13/site-packages/django/utils/inspect.py_get_func_parametersr      s:    w((.99@@BCJ^
    c                 j    [         R                  " U 5      nU(       a  U R                  OU n[        X!S9$ )N)r   )r   ismethod__func__r   )meth_or_func	is_methodr   s      r   _get_callable_parametersr      s,      .I$-<  <D==r   c                     [        U 5      nU Vs/ s H9  nUR                  [        R                  R                  :X  d  M-  UR
                  PM;     sn$ s  snf N)r   kindr   	ParameterPOSITIONAL_OR_KEYWORDname)r   paramsparams      r   get_func_argsr      sQ    %d+F E::**@@@ 	

  s   ,A Ac                    [        U 5      n/ nU H  nUR                  nUS:X  a  M  UR                  [        R                  R
                  :X  a  SU-   nO-UR                  [        R                  R                  :X  a  SU-   nUR                  [        R                  R                  :w  a  UR                  XCR                  45        M  UR                  U45        M     U$ )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   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}}-.KK   Kr   c                 8    [        S [        U 5       5       5      $ )zBReturn True if function 'func' accepts keyword arguments **kwargs.c              3   \   #    U  H"  oR                   UR                  :X  d  M  Uv   M$     g 7fr   )r   r#   .0ps     r   	<genexpr>&func_accepts_kwargs.<locals>.<genexpr>6   s!     T8QFFamm<Sqq8   ,	,anyr   r   s    r   func_accepts_kwargsr4   4   s    T248TTTr   c                 8    [        S [        U 5       5       5      $ )zD
Return True if function 'func' accepts positional arguments *args.
c              3   \   #    U  H"  oR                   UR                  :X  d  M  Uv   M$     g 7fr   )r   r"   r+   s     r   r.   (func_accepts_var_args.<locals>.<genexpr>=   s#     W8QFFaFVFV<Vqq8r0   r1   r3   s    r   func_accepts_var_argsr8   9   s     W248WWWr   c                     [        [        U 5       Vs/ s H   oR                  UR                  :X  d  M  UPM"     sn5      n[        R
                  " U 5      (       a  US:H  $ US:H  $ s  snf )z,Return True if a method only accepts 'self'.r   r   )lenr   r   r   r   r   )methr-   counts      r   method_has_no_argsr=   @   s_    ,T2X2qff@W@W6W2XE !))$//5A:?UaZ? 	Ys
   A&A&c                 @   ^ [        U4S j[        U 5       5       5      $ )Nc              3   @   >#    U  H  oR                   T:H  v   M     g 7fr   )r   )r,   r   r   s     r   r.   *func_supports_parameter.<locals>.<genexpr>I   s     N/MezzT!/Ms   r1   )r   r   s    `r   func_supports_parameterrA   H   s    N/G/MNNNr   )	functoolsr   	lru_cacher   r   r   r(   r4   r8   r=   rA    r   r   <module>rE      sQ      S! ">0U
X@Or   