
    h	                         S SK r S SKr\ R                  " SS9S 5       rS r\" \R                  R                  \R                  R                  \R                  R                  15      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      F/var/www/html/env/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 H$  o"R                  [        ;   d  M  UR                  PM&     sn$ s  snf N)r   kind	ARG_KINDSname)r   paramsparams      r   get_func_argsr      s3    %d+F$*FF5jjI.EJEJJFFFFs   >>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   	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}}-.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>;   s!     T8QFFamm<Sqq8   ,	,anyr   r   s    r   func_accepts_kwargsr4   9   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>B   s#     W8QFFaFVFV<Vqq8r0   r1   r3   s    r   func_accepts_var_argsr8   >   s     W248WWWr   c                     [        [        U 5       Vs/ s H  oR                  [        ;   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=   E   sU    4T:R:qff	>Q:RSE ))$//5A:?UaZ? S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>L   s     N/MezzT!/Ms   r1   )r   r   s    `r   func_supports_parameterrA   K   s    N/G/MNNNr   )	functoolsr   	lru_cacher   r   	frozensetr!   POSITIONAL_ONLYKEYWORD_ONLYPOSITIONAL_OR_KEYWORDr   r   r(   r4   r8   r=   rA    r   r   <module>rI      s      S! "> ))&&//	G
0U
X@Or   