a
    xdxB                  	   @   s^  d Z ddlZddlZddlmZ ddlmZ ddlmZ dZ	e
Zdd ZdBd	d
ZG dd dZG dd deZdd ZdZh dZdd Zdd Zdd Zddidedddddd d!d"d!d#d$d$id%d&d'd(d)d*d+d,d-d.d/d0d1Zeed2  d3hB ZG d4d5 d5Zd6d7 ZG d8d9 d9eZddedfd:d;Zdddefd<d=Zd>d? Zd@dA Z dS )CzProxy/PromiseProxy implementation.

This module contains critical utilities that needs to be loaded as
soon as possible, and that shall not load any third party modules.

Parts of this module is Copyright by Werkzeug Team.
    N)reduce)import_module)
ModuleType)ProxyPromiseProxy
try_importmaybe_evaluatec                    s,    fdd}ddd}t | f||dS )Nc                    s    |  }||_|S N)__new____getter)clsgetterinstance	cls_valuetype_ D/var/www/html/Ranjet/env/lib/python3.9/site-packages/celery/local.pyr
      s    z"_default_cls_attr.<locals>.__new__c                 S   s   |d ur|  |S | S r	   )r   )selfobjr   r   r   r   __get__    s    z"_default_cls_attr.<locals>.__get__)r
   r   )N)type)namer   r   r
   r   r   r   r   _default_cls_attr   s
    
r   c                 C   s&   z
t | W S  ty    | Y S 0 dS )zUTry to import and return module.

    Returns None if the module does not exist.
    N)r   ImportError)moduledefaultr   r   r   r   (   s    
r   c                   @   s:  e Zd ZdZdZdddZedee dd Z ed	ee d
d Zedeedd Zedeedd Zdd Ze	dd Z
dd Ze	dd Zdd Zdd ZeZdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Z d@dA Z!dBdC Z"dDdE Z#dFdG Z$dHdI Z%dJdK Z&dLdM Z'dNdO Z(dPdQ Z)dRdS Z*dTdU Z+dVdW Z,dXdY Z-dZd[ Z.d\d] Z/d^d_ Z0d`da Z1dbdc Z2ddde Z3dfdg Z4dhdi Z5djdk Z6dldm Z7dndo Z8dpdq Z9drds Z:dtdu Z;dvdw Z<dxdy Z=dzd{ Z>d|d} Z?d~d Z@dd ZAdS )r   zProxy to another object.)Z__localZ__argsZ__kwargs__dict__Nc                 C   sb   t | d| t | d|pd t | d|p.i  |d urHt | d| |d ur^t | d| d S )N_Proxy__local_Proxy__argsr   _Proxy__kwargs__custom_name____doc__)object__setattr__)r   localargskwargsr   r"   r   r   r   __init__9   s    zProxy.__init__r   c                 C   s*   z| j W S  ty$   |  j Y S 0 d S r	   )r!   AttributeError_get_current_object__name__r   r   r   r   r+   C   s    zProxy.__name__qualnamec                 C   s*   z| j W S  ty$   |  j Y S 0 d S r	   )r!   r)   r*   __qualname__r,   r   r   r   r.   J   s    zProxy.__qualname__r   c                 C   s
   |   jS r	   )r*   
__module__r,   r   r   r   r/   Q   s    zProxy.__module__docc                 C   s
   |   jS r	   )r*   r"   r,   r   r   r   r"   U   s    zProxy.__doc__c                 C   s
   |   jS r	   )r*   	__class__r,   r   r   r   
_get_classY   s    zProxy._get_classc                 C   s   |   S r	   )r2   r,   r   r   r   r1   \   s    zProxy.__class__c                 C   s^   t | d}t|ds(|| ji | jS zt|| jW S  tyX   td| j Y n0 dS )zGet current object.

        This is useful if you want the real
        object behind the proxy at a time for performance reasons or because
        you want to pass the object into a different context.
        r   Z__release_local__zno object bound to N)	r#   __getattribute__hasattrr   r    getattrr+   r)   RuntimeError)r   locr   r   r   r*   `   s    
zProxy._get_current_objectc                 C   s,   z|   jW S  ty&   tdY n0 d S )Nr   )r*   r   r6   r)   r,   r   r   r   r   p   s    zProxy.__dict__c                 C   s8   z|   }W n" ty.   d| jj d Y S 0 t|S )N<z	 unbound>)r*   r6   r1   r+   repr)r   r   r   r   r   __repr__w   s
    zProxy.__repr__c                 C   s(   zt |  W S  ty"   Y dS 0 d S )NF)boolr*   r6   r,   r   r   r   __bool__~   s    zProxy.__bool__c                 C   s*   zt |  W S  ty$   g  Y S 0 d S r	   )dirr*   r6   r,   r   r   r   __dir__   s    zProxy.__dir__c                 C   s"   |dkrt |  S t|  |S )N__members__)r=   r*   r5   r   r   r   r   r   __getattr__   s    zProxy.__getattr__c                 C   s   ||   |< d S r	   r*   )r   keyvaluer   r   r   __setitem__   s    zProxy.__setitem__c                 C   s   |   |= d S r	   rB   )r   rC   r   r   r   __delitem__   s    zProxy.__delitem__c                 C   s   ||   ||< d S r	   rB   )r   ijseqr   r   r   __setslice__   s    zProxy.__setslice__c                 C   s   |   ||= d S r	   rB   r   rG   rH   r   r   r   __delslice__   s    zProxy.__delslice__c                 C   s   t |  || d S r	   )setattrr*   )r   r   rD   r   r   r   r$      s    zProxy.__setattr__c                 C   s   t |  | d S r	   )delattrr*   r@   r   r   r   __delattr__   s    zProxy.__delattr__c                 C   s   t |  S r	   )strr*   r,   r   r   r   __str__   s    zProxy.__str__c                 C   s   |   |k S r	   rB   r   otherr   r   r   __lt__   s    zProxy.__lt__c                 C   s   |   |kS r	   rB   rR   r   r   r   __le__   s    zProxy.__le__c                 C   s   |   |kS r	   rB   rR   r   r   r   __eq__   s    zProxy.__eq__c                 C   s   |   |kS r	   rB   rR   r   r   r   __ne__   s    zProxy.__ne__c                 C   s   |   |kS r	   rB   rR   r   r   r   __gt__   s    zProxy.__gt__c                 C   s   |   |kS r	   rB   rR   r   r   r   __ge__   s    zProxy.__ge__c                 C   s   t |  S r	   )hashr*   r,   r   r   r   __hash__   s    zProxy.__hash__c                 O   s   |   |i |S r	   rB   r   akwr   r   r   __call__   s    zProxy.__call__c                 C   s   t |  S r	   )lenr*   r,   r   r   r   __len__   s    zProxy.__len__c                 C   s   |   | S r	   rB   r   rG   r   r   r   __getitem__   s    zProxy.__getitem__c                 C   s   t |  S r	   )iterr*   r,   r   r   r   __iter__   s    zProxy.__iter__c                 C   s   ||   v S r	   rB   rb   r   r   r   __contains__   s    zProxy.__contains__c                 C   s   |   || S r	   rB   rK   r   r   r   __getslice__   s    zProxy.__getslice__c                 C   s   |   | S r	   rB   rR   r   r   r   __add__   s    zProxy.__add__c                 C   s   |   | S r	   rB   rR   r   r   r   __sub__   s    zProxy.__sub__c                 C   s   |   | S r	   rB   rR   r   r   r   __mul__   s    zProxy.__mul__c                 C   s   |   | S r	   rB   rR   r   r   r   __floordiv__   s    zProxy.__floordiv__c                 C   s   |   | S r	   rB   rR   r   r   r   __mod__   s    zProxy.__mod__c                 C   s   |   |S r	   )r*   
__divmod__rR   r   r   r   rm      s    zProxy.__divmod__c                 C   s   |   | S r	   rB   rR   r   r   r   __pow__   s    zProxy.__pow__c                 C   s   |   |> S r	   rB   rR   r   r   r   
__lshift__   s    zProxy.__lshift__c                 C   s   |   |? S r	   rB   rR   r   r   r   
__rshift__   s    zProxy.__rshift__c                 C   s   |   |@ S r	   rB   rR   r   r   r   __and__   s    zProxy.__and__c                 C   s   |   |A S r	   rB   rR   r   r   r   __xor__   s    zProxy.__xor__c                 C   s   |   |B S r	   rB   rR   r   r   r   __or__   s    zProxy.__or__c                 C   s   |   |S r	   )r*   __div__rR   r   r   r   rt      s    zProxy.__div__c                 C   s   |   |S r	   )r*   __truediv__rR   r   r   r   ru      s    zProxy.__truediv__c                 C   s
   |    S r	   rB   r,   r   r   r   __neg__   s    zProxy.__neg__c                 C   s
   |   
 S r	   rB   r,   r   r   r   __pos__   s    zProxy.__pos__c                 C   s   t |  S r	   )absr*   r,   r   r   r   __abs__   s    zProxy.__abs__c                 C   s
   |    S r	   rB   r,   r   r   r   
__invert__   s    zProxy.__invert__c                 C   s   t |  S r	   )complexr*   r,   r   r   r   __complex__  s    zProxy.__complex__c                 C   s   t |  S r	   )intr*   r,   r   r   r   __int__  s    zProxy.__int__c                 C   s   t |  S r	   )floatr*   r,   r   r   r   	__float__	  s    zProxy.__float__c                 C   s   t |  S r	   )octr*   r,   r   r   r   __oct__  s    zProxy.__oct__c                 C   s   t |  S r	   )hexr*   r,   r   r   r   __hex__  s    zProxy.__hex__c                 C   s   |    S r	   )r*   	__index__r,   r   r   r   r     s    zProxy.__index__c                 C   s   |   |S r	   )r*   
__coerce__rR   r   r   r   r     s    zProxy.__coerce__c                 C   s   |    S r	   )r*   	__enter__r,   r   r   r   r     s    zProxy.__enter__c                 O   s   |   j|i |S r	   )r*   __exit__r\   r   r   r   r     s    zProxy.__exit__c                 C   s   |    S r	   )r*   
__reduce__r,   r   r   r   r     s    zProxy.__reduce__)NNNN)Br+   r/   r.   r"   	__slots__r(   r   rP   r2   propertyr1   r*   r   r:   r<   __nonzero__r>   rA   rE   rF   rJ   rL   r$   rO   rQ   rT   rU   rV   rW   rX   rY   r[   r_   ra   rc   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   ry   rz   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   3   s    











r   c                   @   s>   e Zd ZdZdZdd Zdd Zdd Zd	d
 ZdddZ	dS )r   zProxy that evaluates object once.

    :class:`Proxy` will evaluate the object each time, while the
    promise will only evaluate it once.
    )__pending____weakref__c                 C   s.   zt | dW S  ty(   |   Y S 0 d S )N__thing)r#   r3   r)   __evaluate__r,   r   r   r   r*   +  s    z PromiseProxy._get_current_objectc                 O   sz   |   r||i |S ddlm} zt| d}W n tyH   d }Y n0 |d u rf| }t| d| ||||f d S )Nr   )dequer   )__evaluated__collectionsr   r#   r3   r)   r$   append)r   funr&   r'   r   pendingr   r   r   __then__1  s    
zPromiseProxy.__then__c                 C   s*   zt | d W n ty$   Y dS 0 dS )Nr   FT)r#   r3   r)   r,   r   r   r   r   >  s
    zPromiseProxy.__evaluated__c                 C   s   |   S r	   rB   r,   r   r   r   __maybe_evaluate__E  s    zPromiseProxy.__maybe_evaluate__r   r   r    c                 C   s   zt | }W n ty"    Y n0 t| d| |D ](}zt| | W q6 ty\   Y q60 q6zt| d}W n ty   Y nt0 zJ|r| \}}}||i | qW zt| d W q ty   Y q0 n&zt| d W n ty   Y n0 0 |S d S )Nr   r   )	r   r*   	Exceptionr#   r$   rO   r)   r3   popleft)r   Z_cleanthingattrr   r   r&   r'   r   r   r   r   H  s6    zPromiseProxy.__evaluate__N)r   )
r+   r/   r.   r"   r   r*   r   r   r   r   r   r   r   r   r   "  s    r   c                 C   s&   z
|   W S  ty    |  Y S 0 dS )z:Attempt to evaluate promise, even if obj is not a promise.N)r   r)   )r   r   r   r   r   i  s    
r   zF
The module %s is deprecated and will be removed in a future version.
>   __file____path__r"   __all__c                 C   s   | S r	   r   methodr   r   r   fun_of_method  s    r   c                 C   s   ddl m} || S )ziGet attribute from current_app recursively.

    Example: ``getappattr('amqp.get_task_consumer')``.

    r   )current_app)celeryr   Z	_rgetattr)pathr   r   r   r   
getappattr  s    r   c                  O   s   ddl m} || i |S )Nr   )periodic_task)Zcelery.taskr   )r&   r'   r   r   r   r   _compat_periodic_task_decorator  s    r   Z	send_tasktask)r   r   zlog.get_default_loggerzlog.setup_loggerzlog.setup_logging_subsystemzlog.redirect_stdouts_to_logger)Zget_default_loggerZsetup_loggerZsetup_logging_subsystemZredirect_stdouts_to_loggerzamqp.TaskConsumer
connection)ZTaskConsumerZestablish_connectionZget_consumer_setZtasks)executeZ
decoratorslogZ	messagingregistryzcontrol.broadcastzcontrol.rate_limitzcontrol.time_limitzcontrol.pingzcontrol.revokezcontrol.purgezcontrol.inspect)	broadcastZ
rate_limitZ
time_limitZpingZrevokeZdiscard_allinspectzcelery.scheduleszcelery.canvas)controlZ	schedulesZchords)r   zcelery.taskr   Zsubtaskc                   @   s0   e Zd Zd
ddZdddZdd Zdd	 ZdS )class_propertyNc                 C   sf   |d urt |tst|}|d ur4t |ts4t|}|| _|| _|t}|j| _|j| _|j| _d S r	   )	
isinstanceclassmethod_class_property__get_class_property__setr   r#   r"   r+   r/   )r   r   setterinfor   r   r   r(     s    
zclass_property.__init__c                 C   s"   |r|d u r|j }| j|| S r	   )r1   r   r   )r   r   r   r   r   r   r     s    zclass_property.__get__c                 C   s   |d u r| S | j ||S r	   )r   r   )r   r   rD   r   r   r   __set__  s    zclass_property.__set__c                 C   s   |  | j|S r	   )r1   r   )r   r   r   r   r   r     s    zclass_property.setter)NN)N)r+   r/   r.   r(   r   r   r   r   r   r   r   r     s   

r   c                 C   s   t t| S r	   )r   r   r   r   r   r   reclassmethod  s    r   c                   @   s4   e Zd ZdZi Zi Zi Zdd Zdd Zdd Z	dS )	
LazyModuler   c                 C   s   || j v rNt| j | d d |g}| j|j D ]}t| |t|| q,t||S || jv r~t| j| d d |g}t| || |S t| |S r	   )	_object_origins
__import___all_by_moduler+   rM   r5   _directr   r3   )r   r   r   itemr   r   r   rA     s    


zLazyModule.__getattr__c                 C   s   dd t | jtB D S )Nc                 S   s   g | ]}|t vr|qS r   )DEPRECATED_ATTRS.0r   r   r   r   
<listcomp>  s   z&LazyModule.__dir__.<locals>.<listcomp>)setr   DEFAULT_ATTRSr,   r   r   r   r>     s    zLazyModule.__dir__c                 C   s   t | jffS r	   )r   r+   r,   r   r   r   r     s    zLazyModule.__reduce__N)
r+   r/   r.   _compat_modulesr   r   r   rA   r>   r   r   r   r   r   r     s   r   c           
         s   |rd |j| gn| }|d u r$i n|}| d\}}}||d<  fdd| D }t||f||  }	tj|< |	j| |	S )N.r/   c                    s"   i | ]\}}| r |n|qS r   r   )r   	attr_namer   prepare_attrr   r   
<dictcomp>  s   z!create_module.<locals>.<dictcomp>)	joinr+   
rpartitionitemsr   sysmodulesr   update)
r   attrs	cls_attrspkgbaser   fqdn_modnamer   r   r   r   create_module   s    
r   c           
   	      s   |pd}|pi }|pi }t j|  }t|}t| d}ttttj	dd ||||fD }|||||d}	t
| ||	|d  j fdd|D  | fS )Nr   c                 S   s   g | ]}t |qS r   )tuple)r   vr   r   r   r         z#recreate_module.<locals>.<listcomp>)r   r   r   r   r   )r   r   c                    s   i | ]}|t  |qS r   )get_compat_module)r   modZ
new_moduler   r   r   %  s   z#recreate_module.<locals>.<dictcomp>)r   r   get_originsCOMPAT_MODULESgetr   r   r   operatoraddr   r   r   )
r   Zcompat_modulesZ	by_moduledirectr   r   Z
old_moduleoriginsZ_allZcattrsr   r   r   recreate_module  s(    
r   c                 C   sf   dd }t | j | }t|trFd| j|g}t| }tj|< |S t||d< t	|t
|| |dS )Nc                 S   s   t | trtt| fS | S r	   )r   rP   r   r   )r   r   r   r   prepare,  s    
z"get_compat_module.<locals>.preparer   r   )r   r   )r   r+   r   rP   r   r   r   r   listr   dict)r   r   r   r   r   r   r   r   r   r   +  s    
r   c                    s2   i }|   D ] \ }| fdd|D  q|S )Nc                    s   i | ]
}| qS r   r   r   r   r   r   r   =  r   zget_origins.<locals>.<dictcomp>)r   r   )Zdefsr   r   r   r   r   r   :  s    r   )N)!r"   r   r   	functoolsr   	importlibr   typesr   r   r+   r/   r   r   r   r   r   ZMODULE_DEPRECATEDr   r   r   r   r   r   keysr   r   r   r   r   r   r   r   r   r   r   r   <module>   sv   
 pG
	(

