
    MȂiN                        S SK r S SKrS SKrS SKJr  S SKJr  \(       aD  S SKr\R                  " 5       r	\ R                  " \R                  \R                  R                  S9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S r\S 5       rg)    N)contextmanager)PY314annotation_formati   )maxsizec                    [         (       a.  [        R                  " U [        R                  R
                  S9nO[        R                  " U 5      n[        UR                  R                  5       5      nU(       a  USS  nU$ )Nr      )	r   inspect	signatureannotationlibFormat
FORWARDREFtuple
parametersvalues)funcremove_firstr   r   s       ED:\sksbv-state-backend\venv\Lib\site-packages\django/utils/inspect.py_get_func_parametersr      si     u%%M$8$8$C$C
	 %%d+	y++2245J^
    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$   2   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/   7   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   Z   #    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>Q   s!     T8QFFamm<Sqq8   +	+anyr   r   s    r   func_accepts_kwargsr;   O   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   Z   #    U H"  oR                   UR                  :X  d  M  Uv   M$     g 7fr   )r   r)   r2   s     r   r5   (func_accepts_var_args.<locals>.<genexpr>X   s#     W8QFFaFVFV<Vqq8r7   r8   r:   s    r   func_accepts_var_argsr?   T   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   )methr4   counts      r   method_has_no_argsrD   [   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!   )r3   r#   r!   s     r   r5   *func_supports_parameter.<locals>.<genexpr>b   s     N/MezzT!/Ms   r8   )r   r!   s    `r   func_supports_parameterrH   a   s    N/G/MNNNr   c                     [         R                  " U 5      (       a  [         R                  " U 5      (       a  gSU R                  ;   a  gg)NFz<locals>T)r
   
isfunction	isbuiltin__qualname__r:   s    r   is_module_level_functionrM   e   s:    d##w'8'8'>'>T&&&r   c               #      #    [         (       d  Sv   g[           [        R                  n [        [        l         Sv   U [        l         SSS5        g! U [        l        f = f! , (       d  f       g= f7f)az  
inspect.getfullargspec eagerly evaluates type annotations. To add
compatibility with Python 3.14+ deferred evaluation, patch the module-level
helper to provide the annotation_format that we are using elsewhere.

This private helper could be removed when there is an upstream solution for
https://github.com/python/cpython/issues/141560.

This context manager is not reentrant.
N)r   lockr
   _signature_from_callablesafe_signature_from_callable)original_helpers    r   lazy_annotationsrS   o   sR      5	!::+G(	?/>G, 
 0?G, 
s2   A4 A#AA#
	A4A  A##
A1-A4) 	functoolsr
   	threading
contextlibr   django.utils.versionr   r   LockrO   partialrP   r   r   rQ   	lru_cacher   r   	frozensetr(   POSITIONAL_ONLYKEYWORD_ONLYPOSITIONAL_OR_KEYWORDr    r$   r/   r;   r?   rD   rH   rM   rS    r   r   <module>r`      s       % &>>D#,#4#4(('..99$  S! " > ))&&//	G
0U
X@O ? ?r   