Ë
    ¦#ijW  ã                   óÌ  — d dl Z d dlZd dlZd dlmZ d dlmZ erGd dlZ ej                  «       Z	 e j                  ej                  ej                  j                  ¬«      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d„ Zed„ «       Zd„ Z y)é    N)Úcontextmanager)ÚPY314©Úannotation_formati   )Úmaxsizec                 ól   — t        t        | «      j                  j                  «       «      }|r|dd  }|S )Né   )ÚtupleÚ	signatureÚ
parametersÚvalues)ÚfuncÚremove_firstr   s      úN/var/www/html/office/venv/lib/python3.12/site-packages/django/utils/inspect.pyÚ_get_func_parametersr      s3   € ä”y “×1Ñ1×8Ñ8Ó:Ó;€JÙØ  �^ˆ
ØÐó    c                 óf   — t        j                  | «      }|r| j                  n| }t        ||¬«      S )N)r   )ÚinspectÚ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!   )   s/   € Ü% dÓ+€FØ$*ÖF˜5¨e¯j©j¼IÒ.EˆE�J‹JÒ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Øò !ˆØ�z‰zˆà�6Š>ØØ�:‰:œ×*Ñ*×9Ñ9Ò9Ø˜‘:‰DØ�Z‰Zœ7×,Ñ,×8Ñ8Ò8Ø˜$‘;ˆDØ�=‰=œG×-Ñ-×3Ñ3Ò3Ø�K‰K˜˜uŸ}™}Ð-Õ.à�K‰K˜˜Õ ð!ð €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>H   s   è ø€ ÒT�Q¸A¿F¹FÀaÇmÁmÓ<SŒqÑTùó   ‚(¡(©Úanyr   ©r   s    r   Úfunc_accepts_kwargsr7   F   s   € äÑTÔ2°4Ó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&   r/   s     r   r2   z(func_accepts_var_args.<locals>.<genexpr>O   s!   è ø€ ÒW�Q¸A¿F¹FÀa×FVÑFVÓ<VŒqÑWùr3   r4   r6   s    r   Úfunc_accepts_var_argsr:   K   s   € ô ÑWÔ2°4Ó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   )Úmethr1   Úcounts      r   Úmethod_has_no_argsr?   R   sN   € äÔ4°TÓ:ÖR�q¸a¿f¹fÌ	Ò>Q’ÒRÓS€EÜ ×)Ñ)¨$Ô/ˆ5�A‰:Ð?°U¸a±ZÐ?ùò Ss
   “A«Ac                 ó>   ‡— t        ˆfd„t        | «      D «       «      S )Nc              3   ó<   •K  — | ]  }|j                   ‰k(  –— Œ y ­wr   )r   )r0   r    r   s     €r   r2   z*func_supports_parameter.<locals>.<genexpr>Y   s   øè ø€ ÒN eˆu�z‰z˜TÕ!ÑNùs   ƒr4   )r   r   s    `r   Úfunc_supports_parameterrB   X   s   ø€ ÜÓNÔ/GÈÓ/MÔNÓNÐNr   c                 óx   — t        j                  | «      rt        j                  | «      ryd| j                  v ryy)NFz<locals>T)r   Ú
isfunctionÚ	isbuiltinÚ__qualname__r6   s    r   Úis_module_level_functionrG   \   s4   € Ü×Ñ˜dÔ#¤w×'8Ñ'8¸Ô'>Øà�T×&Ñ&Ñ&Øàr   c               #   óØ   K  — t         sd–— yt        5  t        j                  } t        t        _        	 d–— | t        _        	 ddd«       y# | t        _        w xY w# 1 sw Y   yxY w­w)a–  
    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_annotationsrM   f   s\   è ø€ õ ÛØÜ	ñ ?Ü!×:Ñ:ˆÜ+GŒÔ(ð	?Ûà/>ŒGÕ,÷?ð ?øð 0?ŒGÕ,ú÷?ð ?üs2   ‚A*” AµA¹AÁ	A*ÁAÁAÁA'Á#A*c                 ó–   — t         r/t        j                  | t        j                  j
                  ¬«      S t        j                  | «      S )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   ~   s7   € õ
 Ü× Ñ  ¼×8LÑ8L×8WÑ8WÔXÐXä× Ñ  Ó%Ð%r   )!Ú	functoolsr   Ú	threadingÚ
contextlibr   Údjango.utils.versionr   rO   ÚLockrI   ÚpartialrJ   rP   rQ   rK   Ú	lru_cacher   r   Ú	frozensetr%   ÚPOSITIONAL_ONLYÚKEYWORD_ONLYÚPOSITIONAL_OR_KEYWORDr   r!   r,   r7   r:   r?   rB   rG   rM   r   © r   r   ú<module>r_      sø   ðÛ Û Û Ý %å &áÛàˆ9�>‰>Ó€DØ#4 9×#4Ñ#4Ø×(Ñ(Ø'×.Ñ.×9Ñ9ô$Ð ð €×Ñ˜SÔ!ñó "ðò>ñ à×Ñ×)Ñ)Ø×Ñ×&Ñ&Ø×Ñ×/Ñ/ðó€	òGò
ò0Uò
Xò@òOòð ñ?ó ð?ó.&r   