
    (phm                         S SK r S SKrS SKJrJrJr   " S S\5      r " S S\5      r	\r
\	r " S S5      r " S	 S
\5      r " S S\5      r " S S5      rg)    N)iscoroutinefunctionmarkcoroutinefunctionsync_to_asyncc                       \ rS rSrSrg)RemovedInDjango51Warning    N__name__
__module____qualname____firstlineno____static_attributes__r	       K/var/www/html/venv/lib/python3.13/site-packages/django/utils/deprecation.pyr   r          r   r   c                       \ rS rSrSrg)RemovedInDjango60Warning   r	   Nr
   r	   r   r   r   r      r   r   r   c                        \ rS rSrS rS rSrg)warn_about_renamed_method   c                 4    Xl         X l        X0l        X@l        g )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                    ^ ^ UU 4S jnU$ )Nc            	         > [         R                  " STR                  < STR                  < STR                  < S3TR
                  S5        T" U 0 UD6$ )N`.` is deprecated, use `
` 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   r,   r-   s   `` r   __call__"warn_about_renamed_method.__call__   s    	& r   )r   r   r   r   N)r   r   r   r   r   r/   r   r	   r   r   r   r      s    7
r   r   c                   0   ^  \ rS rSrSrSrU 4S jrSrU =r$ )RenameMethodsBase)   a  
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U ]  XX#5      n[        R                  " U5       H  nUR                  nU R
                   H  nUS   nUR                  R                  U5      n	US   n
UR                  R                  U
5      nUS   n[        U/UQ76 nU(       dJ  U	(       aC  [        R                  " SU< SU< SU
< S3US5        [        XZU	5        [        XXU" U	5      5        U	(       a  M  U(       d  M  [        XXU" U5      5        M     M     U$ )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   r-   	__class__s                 r   r7   RenameMethodsBase.__new__7   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   __doc__r:   r7   r   __classcell__rG   s   @r   r2   r2   )   s    	 O r   r2   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )DeprecationInstanceCheckV   c                    > [         R                  " SU R                  < SU R                  < S3U R                  S5        [
        TU ]  U5      $ )Nr#   r%   r&   r'   )r(   r)   r   alternativer   r6   __instancecheck__)r   instancerG   s     r   rQ   *DeprecationInstanceCheck.__instancecheck__W   s?    7;}}dFVFVW$$	

 w(22r   r	   )r   r   r   r   rQ   r   rJ   rK   s   @r   rM   rM   V   s    3 3r   rM   c                   H   ^  \ rS rSrSrSrU 4S jrS rS rS r	S r
SrU =r$ )	MiddlewareMixin`   Tc                 j   > Uc  [        S5      eXl        U R                  5         [        TU ]  5         g )Nzget_response must be provided.)
ValueErrorget_response_async_checkr6   r   )r   rY   rG   s     r   r   MiddlewareMixin.__init__d   s2    =>>(r   c                     SU R                   R                  < S[        U R                  SU R                  R                   R                  5      < S3$ )N<z get_response=r   >)rG   r   getattrrY   r   r   s    r   __repr__MiddlewareMixin.__repr__k   sB    NN''!!!!++44
 	
r   c                 P    [        U R                  5      (       a  [        U 5        gg)zw
If get_response is a coroutine function, turns us into async mode so
a thread is not consumed during a whole request.
N)r   rY   r   r`   s    r   rZ   MiddlewareMixin._async_checku   s$    
 t0011 "$' 2r   c                    [        U 5      (       a  U R                  U5      $ S n[        U S5      (       a  U R                  U5      nU=(       d    U R	                  U5      n[        U S5      (       a  U R                  X5      nU$ )Nprocess_requestprocess_response)r   	__acall__hasattrrf   rY   rg   r   requestresponses      r   r/   MiddlewareMixin.__call__   sw    t$$>>'**4*++++G4H9t0094+,,,,W?Hr   c                 .  #    Sn[        U S5      (       a"  [        U R                  SS9" U5      I Sh  vN nU=(       d    U R                  U5      I Sh  vN n[        U S5      (       a"  [        U R                  SS9" X5      I Sh  vN nU$  N[ N; N
7f)zP
Async version of __call__ that is swapped in when an async request
is running.
Nrf   T)thread_sensitiverg   )ri   r   rf   rY   rg   rj   s      r   rh   MiddlewareMixin.__acall__   s     
 4*++*$$!%  H ?T%6%6w%??4+,,*%%!% ! !H   @!s3   1BB!BB2BB	BBB)rY   )r   r   r   r   sync_capableasync_capabler   ra   rZ   r/   rh   r   rJ   rK   s   @r   rU   rU   `   s+    LM
(
 r   rU   )r8   r(   asgiref.syncr   r   r   DeprecationWarningr   PendingDeprecationWarningr   RemovedInNextVersionWarningRemovedAfterNextVersionWarningr   typer2   rM   rU   r	   r   r   <module>ry      sf      R R	1 		8 	 7 !9  ,* *Z3t 3< <r   