+
    Tj\0                         ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHtHtH	t	 ^ RI
t
] P                  R 4       t ! R R]4      t ! R R]4      t]t]t ! R	 R
4      t ! R R]4      tR t ! R R4      tR# )    N)Counter)iscoroutinefunctionmarkcoroutinefunctionsync_to_asyncc                       \         P                  p \        P                  P                  T 4      3#   \         d    Ru # i ; i)N )django__file__AttributeErrorospathdirname)files    M/var/www/idalgo/venv/lib/python3.14/site-packages/django/utils/deprecation.pydjango_file_prefixesr      s>     GGOOD!##  	s   2 AAc                       ] tR t^tRtR# )RemovedInDjango61Warningr   N__name__
__module____qualname____firstlineno____static_attributes__r       r   r   r          r   r   c                       ] tR t^tRtR# )RemovedInDjango70Warningr   Nr   r   r   r   r   r      r   r   r   c                   ,   a  ] tR t^!t o R tR tRtV tR# )warn_about_renamed_methodc                6    Wn         W n        W0n        W@n        R # N)
class_nameold_method_namenew_method_namedeprecation_warning)selfr"   r#   r$   r%   s   &&&&&r   __init__"warn_about_renamed_method.__init__"   s     %..#6 r   c                   a a VV 3R  lpV# )c            	         < \         P                  ! R SP                  : RSP                  : RSP                  : R2SP
                  ^4       S! V / VB # )`.z` is deprecated, use `z
` instead.)warningswarnr"   r#   r$   r%   )argskwargsfr&   s   *,r   wrapper3warn_about_renamed_method.__call__.<locals>.wrapper+   sJ    MM??D$8$8$:N:NP((	 d%f%%r   r   )r&   r1   r2   s   ff r   __call__"warn_about_renamed_method.__call__*   s    	& r   )r"   r%   r$   r#   N)r   r   r   r   r'   r4   r   __classdictcell__)__classdict__s   @r   r   r   !   s     7
 
r   r   c                   :   a a ] tR t^7t oRtRtV 3R ltRtVtV ;t	# )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.
c                N  < \         SV `  WW#4      p\        P                  ! V4       F  pVP                  pV P
                   F  pV^ ,          pVP                  P                  V4      p	V^,          p
VP                  P                  V
4      pV^,          p\        V.VO5!  pV'       gL   V	'       dD   \        P                  ! RV: RV: RV
: R2V^4       \        WZV	4       \        WXV! V	4      4       V	'       d   K  V'       g   K  \        WXV! V4      4       K  	  K  	  V# )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%   r2   	__class__s   &&&&          r   r<   RenameMethodsBase.__new__E   s    GOCu<	NN9-DJ"%"5"5"0"3!]]..?
"0"3!]]..?
&4Q&7#3JPP "jMM%I+	 D:>D7:3FG "zjjD7:3FG+ #6 .2 r   r   )
r   r   r   r   __doc__r?   r<   r   r6   __classcell__rL   r7   s   @@r   r9   r9   7   s     	 O r   r9   c                  a a V V3R lpV# )a4  
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                   <a aaaa	a
a \        S \        4      '       d   \        R 4      h\        S \        4      '       d   \        R4      h\        S \        4      '       d   \        R4      h\
        P                  ! S 4      P                  o
\        R S
P                  4        4       4      pV\
        P                  P                  ,          ^ 8  d   \        R4      hV\
        P                  P                  ,          V\
        P                  P                  ,          ,           oV\
        P                  P                  ,          pV^8  d   \        R4      h\        ;QJ d    V
3R lS 4       F  '       g   K   RM	  RM! V
3R lS 4       4      '       d   \        R	4      h\!        S4      o	SS	,           oS P"                  oSR
8X  d8   S P$                  P'                  R^4      R,          pVP)                  RR4      pVoVVVVV	V3R lo\+        S 4      '       d$   \,        P.                  ! S 4      V VV3R l4       pV# \,        P.                  ! S 4      V VV3R l4       pV# )zS@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   8   "   T F  qP                   x  K  	  R # 5ir!   )kind).0params   & r   	<genexpr>7deprecate_posargs.<locals>.decorator.<locals>.<genexpr>   s     FoUjjos   zE@deprecate_posargs() cannot be used with variable positional `*args`.zm@deprecate_posargs() requires at least one keyword-only parameter (after a `*` entry in the parameters list).c              3      <"   T F@  pVS9  ;'       g/    SV,          P                   \        P                  P                  8g  x  KB  	  R # 5ir!   )rT   r=   	ParameterKEYWORD_ONLY)rU   rD   paramss   & r   rW   rX      sC      
( UU&,"3"3w7H7H7U7U"UU(s
   A7ATFzQ@deprecate_posargs() requires all remappable_names to be keyword-only parameters.r'   z	<locals>.z	.__init__ c           
       <a	 \        V 4      ;pS8  d   \        S RS RS RV R24      hSRVS,
           p\        V4      \        V4      ,          o	S	'       d-   RP                  V	3R lV 4       4      p\        S RV R	24      h\	        \        W0SR R
R7      4      pV RS pW,          pRP                  R V 4       4      p\        P                  ! RV RS R2S
\        4       R7       Wg3# )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   @   <"   T F  qS9   g   K  R V R 2x  K  	  R# 5i'Nr   )rU   rD   	conflictss   & r   rW   Vdeprecate_posargs.<locals>.decorator.<locals>.remap_deprecated_args.<locals>.<genexpr>   s#      *,:Di>OKavQKNs   zB() got both deprecated positional and keyword argument values for r,   T)strictc              3   .   "   T F  pR V R 2x  K  	  R# 5ir`   r   )rU   rD   s   & r   rW   rc      s     *R>4QtfA;>s   zPassing positional argument(s) z to z0() is deprecated. Use keyword arguments instead.)skip_file_prefixes)	len	TypeErrorsetjoindictzipr-   r.   r   )r/   r0   num_positional_argsremapped_namesconflicts_strremapped_kwargsremaining_argsupdated_kwargsremapped_names_strrb   r%   	func_namemax_positional_argsnum_positional_paramsnum_remappable_argsremappable_namess   &&       @r   remap_deprecated_argsCdeprecate_posargs.<locals>.decorator.<locals>.remap_deprecated_args   sI   
 (+4y0#4GG k!23F2G H..A-BBS*+<9  .=%(==N N+c&k9I $		 *,:* !   k "++8/<  #N)>)?$@NO ""8#89N#5N "&*R>*R!RMM12D1ET) U@ @##7#9	 "11r   c                  d   <"   \        V 4      S8  d   S! W4      w  rS! V / VB G R j  xL
 #  L5ir!   rg   r/   r0   funcrv   ry   s   *,r   r2   5deprecate_posargs.<locals>.decorator.<locals>.wrapper   s5     t944#8#FLD!4262222s   &0.0c                  H   < \        V 4      S8  d   S! W4      w  rS! V / VB # r!   r|   r}   s   *,r   r2   r     s,    t944#8#FLDT,V,,r   )
isinstancetyperh   classmethodstaticmethodr=   	signature
parametersr   valuesrZ   VAR_POSITIONALPOSITIONAL_ONLYPOSITIONAL_OR_KEYWORDr[   anyrg   r   r   rsplitreplacer   	functoolswraps)r~   num_by_kindnum_keyword_only_params
local_namer"   r2   rt   ru   rv   rw   r\   ry   r%   rx   s   f     @@@@@@r   	decorator$deprecate_posargs.<locals>.decorator   s   dD!!+  dK((KLLdL))LMM""4(33FfmmoFFw((7781<W 
 ))99:'++AABC 	 #.g.?.?.L.L"M"Q&>  3 
(
333 
(
 
 
 + 
 ""2336IIMM	
" **11+qA"EJ#++K<J"I,	2 ,	2\ t$$__T"3 #3  __T"- #-
 r   r   )r%   rx   r   s   bb r   deprecate_posargsr   d   s    nsj r   c                   L   a a ] tR tRt oRtRtV 3R ltR tR tR t	Rt
VtV ;t# )MiddlewareMixini  Tc                   < Vf   \        R4      hWn        \        V P                  4      V n        V P                  '       d   \	        V 4       \
        SV `  4        R # )Nzget_response must be provided.)
ValueErrorget_responser   
async_moder   r;   r'   )r&   r   rL   s   &&r   r'   MiddlewareMixin.__init__  sM    =>>( .d.?.?@??? "$'r   c                    R V P                   P                  : R\        V P                  RV P                  P                   P                  4      : R2# )<z get_response=r   >)rL   r   getattrr   r   )r&   s   &r   __repr__MiddlewareMixin.__repr__$  sB    NN''!!!!++44
 	
r   c                   V P                   '       d   V P                  V4      # R p\        V R4      '       d   V P                  V4      pT;'       g    V P	                  V4      p\        V R4      '       d   V P                  W4      pV# )Nprocess_requestprocess_response)r   	__acall__hasattrr   r   r   r&   requestresponses   && r   r4   MiddlewareMixin.__call__.  sx    ???>>'**4*++++G4H99t0094+,,,,W?Hr   c                @  "   Rp\        V R4      '       d&   \        V P                  RR7      ! V4      G Rj  xL
 pT;'       g    V P                  V4      G Rj  xL
 p\        V R4      '       d&   \        V P                  RR7      ! W4      G Rj  xL
 pV#  L` L? L
5i)zP
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   MiddlewareMixin.__acall__:  s     
 4*++*$$!%  H ??T%6%6w%??4+,,*%%!% ! !H   @!s9   5BBBBB6BBBBB)r   r   )r   r   r   r   sync_capableasync_capabler'   r   r4   r   r   r6   rO   rP   s   @@r   r   r     s(     LM

 r   r   )r   r=   r   r-   collectionsr   asgiref.syncr   r   r   r	   cacher   DeprecationWarningr   PendingDeprecationWarningr   RemovedInNextVersionWarningRemovedAfterNextVersionWarningr   r   r9   r   r   r   r   r   <module>r      s      	   R R  $ $	1 		8 	 7 !9  ,* *Zl^8 8r   