
    ,i
                        d dl Z d dlZd dlmZ er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)    N)PY314i   )maxsizec                     t         r0t        j                  | t        j                  j
                        }nt        j                  |       }t        |j                  j                               }|r|dd  }|S )N)annotation_format   )	r   inspect	signatureannotationlibFormat
FORWARDREFtuple
parametersvalues)funcremove_firstr	   r   s       H/var/www/mymood/env/lib/python3.12/site-packages/django/utils/inspect.py_get_func_parametersr   
   sg     %%M$8$8$C$C
	 %%d+	y++2245J^
    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>I   s"     T8QAFFamm<Sq8   ((anyr   r   s    r   func_accepts_kwargsr8   G   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'   r0   s     r   r3   z(func_accepts_var_args.<locals>.<genexpr>P   s$     W8QAFFaFVFV<Vq8r4   r5   r7   s    r   func_accepts_var_argsr;   L   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   )methr2   counts      r   method_has_no_argsr@   S   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   )r1   r!   r   s     r   r3   z*func_supports_parameter.<locals>.<genexpr>Z   s     N/MeuzzT!/Ms   r5   )r   r   s    `r   func_supports_parameterrC   Y   s    N/G/MNNNr   )	functoolsr   django.utils.versionr   r
   	lru_cacher   r   	frozensetr&   POSITIONAL_ONLYKEYWORD_ONLYPOSITIONAL_OR_KEYWORDr   r"   r-   r8   r;   r@   rC    r   r   <module>rL      s      & S! " > ))&&//	G
0U
X@Or   