
    fkiW                        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S r g)    N)contextmanager)PY314annotation_formati   )maxsizec                 v    [        [        U 5      R                  R                  5       5      nU(       a  USS  nU$ )N   )tuple	signature
parametersvalues)funcremove_firstr   s      Y/var/www/events.demo-site.click/venv/lib/python3.13/site-packages/django/utils/inspect.py_get_func_parametersr      s3    y1188:;J^
    c                 j    [         R                  " U 5      nU(       a  U R                  OU n[        X!S9$ )N)r   )inspect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>H   s!     T8QFFamm<Sqq8   ,	,anyr   r   s    r   func_accepts_kwargsr8   F   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   r2   (func_accepts_var_args.<locals>.<genexpr>O   s#     W8QFFaFVFV<Vqq8r4   r5   r7   s    r   func_accepts_var_argsr<   K   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   )methr1   counts      r   method_has_no_argsrA   R   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   )r0   r    r   s     r   r2   *func_supports_parameter.<locals>.<genexpr>Y   s     N/MezzT!/Ms   r5   )r   r   s    `r   func_supports_parameterrE   X   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__r7   s    r   is_module_level_functionrJ   \   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_annotationsrP   f   sR      5	!::+G(	?/>G, 
 0?G, 
s2   A4 A#AA#
	A4A  A##
A1-A4c                     [         (       a-  [        R                  " U [        R                  R
                  S9$ [        R                  " U 5      $ )z
A wrapper around inspect.signature that leaves deferred annotations
unevaluated on Python 3.14+, since they are not used in our case.
r   )r   r   r   annotationlibFormat
FORWARDREF)objs    r   r   r   ~   s9    
 u  8L8L8W8WXX  %%r   )!	functoolsr   	threading
contextlibr   django.utils.versionr   rR   LockrL   partialrM   rS   rT   rN   	lru_cacher   r   	frozensetr%   POSITIONAL_ONLYKEYWORD_ONLYPOSITIONAL_OR_KEYWORDr   r!   r,   r8   r<   rA   rE   rJ   rP   r    r   r   <module>rb      s       % &>>D#,#4#4(('..99$  S! "> ))&&//	G
0U
X@O ? ?.&r   