
    h                         d dl Z d dlZd dlZd dlmZ  G d de      Z G d de      Z G d d      Z	 G d	 d
e
      Z G d de
      Z G d d      Zy)    N)sync_to_asyncc                       e Zd Zy)RemovedInNextVersionWarningN__name__
__module____qualname__     [/var/www/html/ranktracker/api/venv/lib/python3.12/site-packages/django/utils/deprecation.pyr   r          r   r   c                       e Zd Zy)RemovedInDjango40WarningNr   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`.` is deprecated, use `
` instead.   )warningswarnr   r   r   r   )argskwargsfr   s     r   wrappedz3warn_about_renamed_method.__call__.<locals>.wrapped   sI    MM$"6"68L8LN((!- d%f%%r   r
   )r   r%   r&   s   `` r   __call__z"warn_about_renamed_method.__call__   s    	& r   N)r   r   r	   r   r'   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   wrapper	__class__s                 r   r-   zRenameMethodsBase.__new__/   s   GOCue<	NN9- 	HDJ"%"5"5 H"0"3!]]..?
"0"3!]]..?
&4Q&7#3JPP "jMM#_oG+Q0 D/:>D/7:3FG "jD/7:3FG'H	H. r   )r   r   r	   __doc__r0   r-   __classcell__r>   s   @r   r)   r)   !   s    	 O r   r)   c                        e Zd Z fdZ xZS )DeprecationInstanceCheckc                     t        j                  d| j                  d| j                  d| j                  d       t
        |   |      S )Nr   r   r   r    )r!   r"   r   alternativer   r,   __instancecheck__)r   instancer>   s     r   rF   z*DeprecationInstanceCheck.__instancecheck__M   s>    7;}}dFVFVW$$a	
 w(22r   )r   r   r	   rF   r@   rA   s   @r   rC   rC   L   s    3 3r   rC   c                   @     e Zd ZdZdZd fd	Zd Zd Zd Zd Z	 xZ
S )MiddlewareMixinTc                 r    | j                  |       || _        | j                          t        |           y r   )_get_response_none_deprecationget_response_async_checkr,   r   )r   rL   r>   s     r   r   zMiddlewareMixin.__init__[   s0    ++L9(r   c                     t        j                  | j                        r t         j                  j                  | _        yy)z
        If get_response is a coroutine function, turns us into async mode so
        a thread is not consumed during a whole request.
        N)asyncioiscoroutinefunctionrL   
coroutines_is_coroutine)r   s    r   rM   zMiddlewareMixin._async_checka   s3    
 &&t'8'89 ")!3!3!A!AD :r   c                 
   t        j                  | j                        r| j                  |      S d }t	        | d      r| j                  |      }|xs | j                  |      }t	        | d      r| j                  ||      }|S )Nprocess_requestprocess_response)rO   rP   rL   	__acall__hasattrrT   rU   r   requestresponses      r   r'   zMiddlewareMixin.__call__k   s|    &&t'8'89>>'**4*+++G4H9t0094+,,,Wh?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.
        NrT   T)thread_sensitiverU   )rW   r   rT   rL   rU   rX   s      r   rV   zMiddlewareMixin.__acall__w   s     
 4*+]$$!%  H ?T%6%6w%??4+,]%%!% x! !H   @!s3   /BBBB	1B BB	BBc                 B    |t        j                  dt        d       y y )NzDPassing None for the middleware get_response argument is deprecated.   )
stacklevel)r!   r"   r   )r   rL   s     r   rK   z.MiddlewareMixin._get_response_none_deprecation   s#    MM(Q  r   r   )r   r   r	   sync_capableasync_capabler   rM   r'   rV   rK   r@   rA   s   @r   rI   rI   U   s'    LMB
&r   rI   )rO   r.   r!   asgiref.syncr   DeprecationWarningr   PendingDeprecationWarningr   r   typer)   rC   rI   r
   r   r   <module>rf      sX       &	"4 		8 	 "( (V3t 3; ;r   