Ë
    ¦#ij�0  ã                   óô   — d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	 d dl
Z
d dlmZ e j                  d„ «       Z G d„ de«      Z G d„ d	e«      ZeZeZ G d
„ d«      Z G d„ de«      Zd„ Z G d„ d«      Zy)é    N)ÚCounter)ÚiscoroutinefunctionÚmarkcoroutinefunctionÚsync_to_async)Ú	signaturec                  ó¦   — t        t        dd «      } | €yt        j                  j	                  t        j                  j                  | «      d«      fS )NÚ__file__© Ú )ÚgetattrÚdjangoÚosÚpathÚjoinÚdirname)Úfiles    úR/var/www/html/office/venv/lib/python3.12/site-packages/django/utils/deprecation.pyÚdjango_file_prefixesr      s=   € ä”6˜: tÓ,€DØ€|ØÜ�G‰G�L‰LœŸ™Ÿ™¨Ó.°Ó3Ð5Ð5ó    c                   ó   — e Zd Zy)ÚRemovedInDjango61WarningN©Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r      ó   „ Ør   r   c                   ó   — e Zd Zy)ÚRemovedInDjango70WarningNr   r
   r   r   r   r      r   r   r   c                   ó   — e Zd Zd„ Zd„ Zy)Úwarn_about_renamed_methodc                 ó<   — || _         || _        || _        || _        y ©N)Ú
class_nameÚold_method_nameÚnew_method_nameÚdeprecation_warning)Úselfr#   r$   r%   r&   s        r   Ú__init__z"warn_about_renamed_method.__init__"   s#   € ð %ˆŒØ.ˆÔØ.ˆÔØ#6ˆÕ r   c                 ó   ‡ ‡— ˆˆ fd„}|S )Nc            	      ó¦   •— t        j                  d‰j                  ›d‰j                  ›d‰j                  ›d�‰j
                  d«        ‰| i |¤ŽS )Nú`ú.z` is deprecated, use `z
` instead.é   )ÚwarningsÚwarnr#   r$   r%   r&   )ÚargsÚkwargsÚfr'   s     €€r   Úwrapperz3warn_about_renamed_method.__call__.<locals>.wrapper+   sJ   ø€ Ü�MŠMà—?“? D×$8Ó$8¸$×:NÓ:NðPà×(Ñ(Øô	ñ �dÐ%˜fÑ%Ð%r   r
   )r'   r2   r3   s   `` r   Ú__call__z"warn_about_renamed_method.__call__*   s   ù€ õ	&ð ˆr   N)r   r   r   r(   r4   r
   r   r   r    r    !   s   „ ò7ó
r   r    c                   ó&   ‡ — e Zd ZdZdZˆ fd„Zˆ xZS )ÚRenameMethodsBasea#  
    Handles the deprecation paths when renaming a method.

    It does the following:
        1) Define the new method if missing and complain about it.
        2) Define the old method if missing.
        3) Complain whenever an old method is called.

    See #15363 for more details.
    r
   c                 óø  •— t         ‰| �  | |||«      }t        j                  |«      D ]Î  }|j                  }| j
                  D ]±  }|d   }|j                  j                  |«      }	|d   }
|j                  j                  |
«      }|d   }t        |g|¢­Ž }|sC|	rAt        j                  d|›d|›d|
›d�|d«       t        ||
|	«       t        || ||	«      «       |	rŒœ|sŒŸt        || ||«      «       Œ³ ŒÐ |S )Nr   é   r-   r+   r,   z` method should be renamed `z`.)ÚsuperÚ__new__ÚinspectÚgetmror   Úrenamed_methodsÚ__dict__Úgetr    r.   r/   Úsetattr)ÚclsÚnameÚbasesÚattrsÚ	new_classÚbaser#   Úrenamed_methodr$   Ú
old_methodr%   Ú
new_methodr&   r3   Ú	__class__s                 €r   r:   zRenameMethodsBase.__new__E   s  ø€ Ü‘G‘O C¨¨u°eÓ<ˆ	ä—N‘N 9Ó-ò 	HˆDØŸ™ˆJØ"%×"5Ñ"5ò H�Ø"0°Ñ"3�Ø!Ÿ]™]×.Ñ.¨Ó?�
Ø"0°Ñ"3�Ø!Ÿ]™]×.Ñ.¨Ó?�
Ø&4°QÑ&7Ð#Ü3°JÐPÀÒP�ñ "¡jÜ—M’Mâ%¢ºðIà+Øô	ô ˜D /°:Ô>Ü˜D /±7¸:Ó3FÔGò "¢jÜ˜D /±7¸:Ó3FÕGñ+Hð	Hð2 Ðr   )r   r   r   Ú__doc__r=   r:   Ú__classcell__©rJ   s   @r   r6   r6   7   s   ø„ ñ	ð €O÷ð r   r6   c                ó   ‡ ‡— ˆ ˆfd„}|S )aÌ  
    Function/method decorator to deprecate some or all positional arguments.

    The decorated function will map any positional arguments after the ``*`` to
    the corresponding keyword arguments and issue a deprecation warning.

    The decorator takes two arguments: a RemovedInDjangoXXWarning warning
    category and a list of parameter names that have been changed from
    positional-or-keyword to keyword-only, in their original positional order.

    Works on both functions and methods. To apply to a class constructor,
    decorate its __init__() method. To apply to a staticmethod or classmethod,
    use @deprecate_posargs after @staticmethod or @classmethod.

    Example: to deprecate passing option1 or option2 as posargs, change::

        def some_func(request, option1, option2=True):
            ...

    to::

        @deprecate_posargs(RemovedInDjangoXXWarning, ["option1", "option2"])
        def some_func(request, *, option1, option2=True):
            ...

    After the deprecation period, remove the decorator (but keep the ``*``)::

        def some_func(request, *, option1, option2=True):
            ...

    Caution: during the deprecation period, do not add any new *positional*
    parameters or change the remaining ones. For example, this attempt to add a
    new param would break code using the deprecated posargs::

        @deprecate_posargs(RemovedInDjangoXXWarning, ["option1", "option2"])
        def some_func(request, wrong_new_param=None, *, option1, option2=True):
            # Broken: existing code may pass a value intended as option1 in the
            # wrong_new_param position.
            ...

    However, it's acceptable to add new *keyword-only* parameters and to
    re-order the existing ones, so long as the list passed to
    @deprecate_posargs is kept in the original posargs order. This change will
    work without breaking existing code::

        @deprecate_posargs(RemovedInDjangoXXWarning, ["option1", "option2"])
        def some_func(request, *, new_param=None, option2=True, option1):
            ...

    The @deprecate_posargs decorator adds a small amount of overhead. In most
    cases it won't be significant, but use with care in performance-critical
    code paths.
    c                 óØ  •‡ ‡‡‡‡	‡
‡— t        ‰ t        «      rt        d«      ‚t        ‰ t        «      rt        d«      ‚t        ‰ t        «      rt        d«      ‚t        ‰ «      j                  Š
t        d„ ‰
j                  «       D «       «      }|t        j                  j                     dkD  rt        d«      ‚|t        j                  j                     |t        j                  j                     z   Š|t        j                  j                     }|dk  rt        d«      ‚t        ˆ
fd	„‰D «       «      rt        d
«      ‚t!        ‰«      Š	‰‰	z   Š‰ j"                  Š‰dk(  r3‰ j$                  j'                  dd«      d   }|j)                  dd«      }|Šˆˆˆˆˆ	ˆfd„Št+        ‰ «      r!t-        j.                  ‰ «      ˆ ˆˆfd„«       }|S t-        j.                  ‰ «      ˆ ˆˆfd„«       }|S )NzS@deprecate_posargs cannot be applied to a class. (Apply it to the __init__ method.)z-Apply @classmethod before @deprecate_posargs.z.Apply @staticmethod before @deprecate_posargs.c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr"   )Úkind)Ú.0Úparams     r   ú	<genexpr>z7deprecate_posargs.<locals>.decorator.<locals>.<genexpr>§   s   è ø€ ÒF¨U˜eŸj�jÑFùs   ‚r   zE@deprecate_posargs() cannot be used with variable positional `*args`.r8   zm@deprecate_posargs() requires at least one keyword-only parameter (after a `*` entry in the parameters list).c              3   ó~   •K  — | ]4  }|‰vxs* ‰|   j                   t        j                  j                  k7  –— Œ6 y ­wr"   )rQ   r;   Ú	ParameterÚKEYWORD_ONLY)rR   rB   Úparamss     €r   rT   z7deprecate_posargs.<locals>.decorator.<locals>.<genexpr>¸   sA   øè ø€ ò 
àð ˜ÐÒU &¨¡,×"3Ñ"3´w×7HÑ7H×7UÑ7UÑ"UÓUñ
ùs   ƒ:=zQ@deprecate_posargs() requires all remappable_names to be keyword-only parameters.r(   z	<locals>.éÿÿÿÿz	.__init__r   c           
      óº  •‡	— t        | «      x}‰kD  rt        ‰› d‰› d‰› d|› d�«      ‚‰d|‰z
   }t        |«      t        |«      z  Š	‰	r+dj                  ˆ	fd„|D «       «      }t        ‰› d|› d	�«      ‚t	        t        || ‰d d
¬«      «      }| d‰ }||z  }dj                  d„ |D «       «      }t        j                  d|› d‰› d�‰
t        «       ¬«       ||fS )zƒ
            Move deprecated positional args to kwargs and issue a warning.
            Return updated (args, kwargs).
            z() takes at most z# positional argument(s) (including z deprecated) but z were given.Nz, c              3   ó4   •K  — | ]  }|‰v sŒd |› d �–— Œ y­w©ú'Nr
   )rR   rB   Ú	conflictss     €r   rT   zVdeprecate_posargs.<locals>.decorator.<locals>.remap_deprecated_args.<locals>.<genexpr>ä   s%   øè ø€ ò *Ø$(¸dÀiÒ>O�a˜�v˜Q”Kñ*ùs   ƒ	�zB() got both deprecated positional and keyword argument values for r,   T)Ústrictc              3   ó(   K  — | ]
  }d |› d �–— Œ y­wr\   r
   )rR   rB   s     r   rT   zVdeprecate_posargs.<locals>.decorator.<locals>.remap_deprecated_args.<locals>.<genexpr>ô   s   è ø€ Ò*R¸4¨Q¨t¨f°A¬;Ñ*Rùs   ‚zPassing positional argument(s) z to z0() is deprecated. Use keyword arguments instead.)Úskip_file_prefixes)	ÚlenÚ	TypeErrorÚsetr   ÚdictÚzipr.   r/   r   )r0   r1   Únum_positional_argsÚremapped_namesÚconflicts_strÚremapped_kwargsÚremaining_argsÚupdated_kwargsÚremapped_names_strr^   r&   Ú	func_nameÚmax_positional_argsÚnum_positional_paramsÚnum_remappable_argsÚremappable_namess            @€€€€€€r   Úremap_deprecated_argszCdeprecate_posargs.<locals>.decorator.<locals>.remap_deprecated_argsÐ   sO  ù€ ô
 (+¨4£yÐ0Ð#Ð4GÒGÜØ �kÐ!2Ð3FÐ2Gð H.Ø.AÐ-BÐBSØ*Ð+¨<ð9óð ð .Ø=Ð%Ð(=Ñ=ðˆNô ˜NÓ+¬c°&«kÑ9ˆIÙà $§	¡	ó *Ø,:ô*ó !�ô  Ø �kð "+Ø+8¨/¸ð<óð ô #Ü�N DÐ)>Ð)?Ð$@ÈÔNóˆOð "Ð"8Ð#8Ð9ˆNØ# oÑ5ˆNð "&§¡Ñ*RÀ>Ô*RÓ!RÐÜ�M‰MØ1Ð2DÐ1EÀTÈ)Èð U@ð @à#Ü#7Ó#9õ	ð " >Ð1Ð1r   c               Ÿ   ód   •K  — t        | «      ‰kD  r ‰| |«      \  } } ‰| i |¤Žƒ d {  –—† S 7 Œ­wr"   ©rb   ©r0   r1   Úfuncrp   rs   s     €€€r   r3   z5deprecate_posargs.<locals>.decorator.<locals>.wrapper   s:   øè ø€ ä�t“9Ð4Ò4Ù#8¸¸vÓ#F‘L�D˜&Ù! 4Ð2¨6Ñ2×2Ð2Ð2ús   ƒ&0©.ª0c                  óH   •— t        | «      ‰kD  r ‰| |«      \  } } ‰| i |¤ŽS r"   ru   rv   s     €€€r   r3   z5deprecate_posargs.<locals>.decorator.<locals>.wrapper  s0   ø€ ä�t“9Ð4Ò4Ù#8¸¸vÓ#F‘L�D˜&Ù˜TÐ, VÑ,Ð,r   )Ú
isinstanceÚtyperc   ÚclassmethodÚstaticmethodr   Ú
parametersr   Úvaluesr;   rV   ÚVAR_POSITIONALÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORDrW   Úanyrb   r   r   ÚrsplitÚreplacer   Ú	functoolsÚwraps)rw   Únum_by_kindÚnum_keyword_only_paramsÚ
local_namer#   r3   rn   ro   rp   rq   rX   rs   r&   rr   s   `     @@@@@@€€r   Ú	decoratorz$deprecate_posargs.<locals>.decorator›   sê  ÿ€ Ü�dœDÔ!Üð+óð ô �dœKÔ(ÜÐKÓLÐLÜ�dœLÔ)ÜÐLÓMÐMä˜4“×+Ñ+ˆÜÑF°f·m±m³oÔFÓFˆà”w×(Ñ(×7Ñ7Ñ8¸1Ò<ÜØWóð ð
 œ×)Ñ)×9Ñ9Ñ:Øœ'×+Ñ+×AÑAÑBñCð 	ð #.¬g×.?Ñ.?×.LÑ.LÑ"MÐØ" QÒ&Üð>óð ô ó 
à(ô
ô 
ô ð+óð ô
 "Ð"2Ó3ÐØ3Ð6IÑIÐà—M‘Mˆ	Ø˜
Ò"ð ×*Ñ*×1Ñ1°+¸qÓAÀ"ÑEˆJØ#×+Ñ+¨K¸Ó<ˆJØ"ˆI÷,	2ñ ,	2ô\ ˜tÔ$ä�_‰_˜TÓ"õ3ó #ð3ð ˆô �_‰_˜TÓ"õ-ó #ð-ð
 ˆr   r
   )r&   rr   rŠ   s   `` r   Údeprecate_posargsr‹   d   s   ù€ õnsðj Ðr   c                   ó8   ‡ — e Zd ZdZdZˆ fd„Zd„ Zd„ Zd„ Zˆ xZ	S )ÚMiddlewareMixinTc                 ó¬   •— |€t        d«      ‚|| _        t        | j                  «      | _        | j                  rt	        | «       t
        ‰| �  «        y )Nzget_response must be provided.)Ú
ValueErrorÚget_responser   Ú
async_moder   r9   r(   )r'   r�   rJ   s     €r   r(   zMiddlewareMixin.__init__  sM   ø€ ØÐÜÐ=Ó>Ð>Ø(ˆÔô .¨d×.?Ñ.?Ó@ˆŒØ�?Š?ô " $Ô'Ü‰ÑÕr   c                 ó¢   — d| j                   j                  ›dt        | j                  d| j                  j                   j                  «      ›d�S )Nú<z get_response=r   ú>)rJ   r   r   r�   r   )r'   s    r   Ú__repr__zMiddlewareMixin.__repr__$  sB   � à�N‰N×'Ó'ÜØ×!Ñ!ØØ×!Ñ!×+Ñ+×4Ñ4õð
ð 	
r   c                 óä   — | j                   r| j                  |«      S d }t        | d«      r| j                  |«      }|xs | j	                  |«      }t        | d«      r| j                  ||«      }|S )NÚprocess_requestÚprocess_response)r‘   Ú	__acall__Úhasattrr—   r�   r˜   ©r'   ÚrequestÚresponses      r   r4   zMiddlewareMixin.__call__.  so   € à�?Š?Ø—>‘> 'Ó*Ð*ØˆÜ�4Ð*Ô+Ø×+Ñ+¨GÓ4ˆHØÒ9˜t×0Ñ0°Ó9ˆÜ�4Ð+Ô,Ø×,Ñ,¨W°hÓ?ˆHØˆr   c              ƒ   ó  K  — d}t        | d«      r% t        | j                  d¬«      |«      ƒ d{  –—† }|xs | j                  |«      ƒ d{  –—† }t        | d«      r& t        | j                  d¬«      ||«      ƒ d{  –—† }|S 7 ŒU7 Œ:7 Œ
­w)zh
        Async version of __call__ that is swapped in when an async request
        is running.
        Nr—   T)Úthread_sensitiver˜   )rš   r   r—   r�   r˜   r›   s      r   r™   zMiddlewareMixin.__acall__:  sª   è ø€ ð
 ˆÜ�4Ð*Ô+ðœ]Ø×$Ñ$Ø!%ôð ó÷ ˆHð Ò? T×%6Ñ%6°wÓ%?×?ˆÜ�4Ð+Ô,ðœ]Ø×%Ñ%Ø!%ôð �xó!÷ !ˆHð ˆðøð  @øð!ús3   ‚/B±B²BÁB	Á1BÂ BÂBÂ	BÂB)
r   r   r   Úsync_capableÚasync_capabler(   r•   r4   r™   rL   rM   s   @r   r�   r�     s!   ø„ Ø€LØ€Môò
ò
ör   r�   )r…   r;   r   r.   Úcollectionsr   Úasgiref.syncr   r   r   r   Údjango.utils.inspectr   Úcacher   ÚDeprecationWarningr   ÚPendingDeprecationWarningr   ÚRemovedInNextVersionWarningÚRemovedAfterNextVersionWarningr    rz   r6   r‹   r�   r
   r   r   ú<module>rª      sˆ   ðÛ Û Û 	Û Ý ç RÑ Rã Ý *ð ‡�ñ6ó ð6ô	Ð1ô 	ô	Ð8ô 	ð 7Ð Ø!9Ð ÷ñ ô,*˜ô *òZl÷^8ò 8r   