
    Ih>                     Z   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 Zd'dZ G d	 d
      Z G d de      Zd ZdZh dZd Zd ZdddiddddddddddidiZ eed   j/                               dhz  Z G d d      Zd  Z G d! d"e      Zddedfd#Zdddefd$Zd% Zd& Zy)(zProxy/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                 <    fd}dd}t        | f||d      S )Nc                 :    j                  |       }||_        |S N)__new____getter)clsgetterinstance	cls_valuetype_s      E/var/www/html/planif/env/lib/python3.12/site-packages/celery/local.pyr   z"_default_cls_attr.<locals>.__new__   s     ==i0"    c                 ,    || j                  |      S | S r   )r   )selfobjr   s      r   __get__z"_default_cls_attr.<locals>.__get__    s    %(_t}}S!>$>r   )r   r   r   )type)namer   r   r   r   s    ``  r   _default_cls_attrr      s,    
? uhw!  r   c                 <    	 t        |       S # t        $ r |cY S w xY w)zUTry to import and return module.

    Returns None if the module does not exist.
    )r   ImportError)moduledefaults     r   r   r   (   s&    
V$$ s   
 c                      e Zd ZdZdZ	 dBdZ edee       d        Z  edee       d        Z ed	ee      d
        Z edee      d        Zd Ze	d        Z
d Ze	d        Zd Zd ZeZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd  Zd! Zd" Zd# Z d$ Z!d% Z"d& Z#d' Z$d( Z%d) Z&d* Z'd+ Z(d, Z)d- Z*d. Z+d/ Z,d0 Z-d1 Z.d2 Z/d3 Z0d4 Z1d5 Z2d6 Z3d7 Z4d8 Z5d9 Z6d: Z7d; Z8d< Z9d= Z:d> Z;d? Z<d@ Z=dA Z>y)Cr   zProxy to another object.)__local__args__kwargs__dict__Nc                    t         j                  | d|       t         j                  | d|xs d       t         j                  | d|xs i        |t         j                  | d|       |t         j                  | d|       y y )N_Proxy__local_Proxy__args _Proxy__kwargs__custom_name____doc__)object__setattr__)r   localargskwargsr   r,   s         r   __init__zProxy.__init__9   sw    4%84<4!16<R@t%6=tY8 r   r   c                 n    	 | j                   S # t        $ r | j                         j                  cY S w xY wr   )r+   AttributeError_get_current_object__name__r   s    r   r6   zProxy.__name__C   s7    	7''' 	7++-666	7    #44qualnamec                 n    	 | j                   S # t        $ r | j                         j                  cY S w xY wr   )r+   r4   r5   __qualname__r7   s    r   r;   zProxy.__qualname__J   s7    	;''' 	;++-:::	;r8   r   c                 6    | j                         j                  S r   )r5   
__module__r7   s    r   r=   zProxy.__module__Q   s    '')444r   docc                 6    | j                         j                  S r   )r5   r,   r7   s    r   r,   zProxy.__doc__U   s    '')111r   c                 6    | j                         j                  S r   )r5   	__class__r7   s    r   
_get_classzProxy._get_classY   s    '')333r   c                 "    | j                         S r   )rB   r7   s    r   rA   zProxy.__class__\   s      r   c                     t         j                  | d      }t        |d      s || j                  i | j                  S 	 t        || j                        S # t        $ r t        d| j                         w xY w)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'   __release_local__zno object bound to )	r-   __getattribute__hasattrr(   r*   getattrr6   r4   RuntimeError)r   locs     r   r5   zProxy._get_current_object`   sx     %%dO<s/05t}}55	F3.. 	F!4T]]ODEE	Fs    A "A8c                 h    	 | j                         j                  S # t        $ r t        d      w xY w)Nr%   )r5   r%   rI   r4   r7   s    r   r%   zProxy.__dict__p   s6    	-++-666 	- ,,	-s    1c                     	 | j                         }t	        |      S # t        $ r d| j                  j                   dcY S w xY w)N<z	 unbound>)r5   rI   rA   r6   repr)r   r   s     r   __repr__zProxy.__repr__w   sL    	:**,C Cy  	:t~~../y99	:s    #AAc                 T    	 t        | j                               S # t        $ r Y yw xY w)NF)boolr5   rI   r7   s    r   __bool__zProxy.__bool__~   s-    	00233 		s    	''c                 X    	 t        | j                               S # t        $ r g cY S w xY wr   )dirr5   rI   r7   s    r   __dir__zProxy.__dir__   s/    	t//122 	I	s    ))c                 r    |dk(  rt        | j                               S t        | j                         |      S )N__members__)rT   r5   rH   r   r   s     r   __getattr__zProxy.__getattr__   s4    = t//122t//1488r   c                 *    || j                         |<   y r   r5   )r   keyvalues      r   __setitem__zProxy.__setitem__   s    */  "3'r   c                 &    | j                         |= y r   r[   )r   r\   s     r   __delitem__zProxy.__delitem__   s    $$&s+r   c                 :    t        | j                         ||       y r   )setattrr5   )r   r   r]   s      r   r.   zProxy.__setattr__   s    ((*D%8r   c                 8    t        | j                         |       y r   )delattrr5   rX   s     r   __delattr__zProxy.__delattr__   s    ((*D1r   c                 4    t        | j                               S r   )strr5   r7   s    r   __str__zProxy.__str__       4++-..r   c                 (    | j                         |k  S r   r[   r   others     r   __lt__zProxy.__lt__       '')E11r   c                 (    | j                         |k  S r   r[   rk   s     r   __le__zProxy.__le__       '')U22r   c                 (    | j                         |k(  S r   r[   rk   s     r   __eq__zProxy.__eq__   rq   r   c                 (    | j                         |k7  S r   r[   rk   s     r   __ne__zProxy.__ne__   rq   r   c                 (    | j                         |kD  S r   r[   rk   s     r   __gt__zProxy.__gt__   rn   r   c                 (    | j                         |k\  S r   r[   rk   s     r   __ge__zProxy.__ge__   rq   r   c                 4    t        | j                               S r   )hashr5   r7   s    r   __hash__zProxy.__hash__       D,,.//r   c                 .     | j                         |i |S r   r[   r   akws      r   __call__zProxy.__call__   s    )t'')1333r   c                 4    t        | j                               S r   )lenr5   r7   s    r   __len__zProxy.__len__   ri   r   c                 (    | j                         |   S r   r[   r   is     r   __getitem__zProxy.__getitem__   s    '')!,,r   c                 4    t        | j                               S r   )iterr5   r7   s    r   __iter__zProxy.__iter__   r}   r   c                 &    || j                         v S r   r[   r   s     r   __contains__zProxy.__contains__   s    D,,...r   c                 (    | j                         |z   S r   r[   rk   s     r   __add__zProxy.__add__   rn   r   c                 (    | j                         |z
  S r   r[   rk   s     r   __sub__zProxy.__sub__   rn   r   c                 (    | j                         |z  S r   r[   rk   s     r   __mul__zProxy.__mul__   rn   r   c                 (    | j                         |z  S r   r[   rk   s     r   __floordiv__zProxy.__floordiv__   rq   r   c                 (    | j                         |z  S r   r[   rk   s     r   __mod__zProxy.__mod__   rn   r   c                 @    | j                         j                  |      S r   )r5   
__divmod__rk   s     r   r   zProxy.__divmod__       '')44U;;r   c                 (    | j                         |z  S r   r[   rk   s     r   __pow__zProxy.__pow__   rq   r   c                 (    | j                         |z  S r   r[   rk   s     r   
__lshift__zProxy.__lshift__   rq   r   c                 (    | j                         |z	  S r   r[   rk   s     r   
__rshift__zProxy.__rshift__   rq   r   c                 (    | j                         |z  S r   r[   rk   s     r   __and__zProxy.__and__   rn   r   c                 (    | j                         |z  S r   r[   rk   s     r   __xor__zProxy.__xor__   rn   r   c                 (    | j                         |z  S r   r[   rk   s     r   __or__zProxy.__or__   rn   r   c                 @    | j                         j                  |      S r   )r5   __div__rk   s     r   r   zProxy.__div__   s    '')11%88r   c                 @    | j                         j                  |      S r   )r5   __truediv__rk   s     r   r   zProxy.__truediv__   s    '')55e<<r   c                 $    | j                          S r   r[   r7   s    r   __neg__zProxy.__neg__       ))+,,r   c                 $    | j                         S r   r[   r7   s    r   __pos__zProxy.__pos__   r   r   c                 4    t        | j                               S r   )absr5   r7   s    r   __abs__zProxy.__abs__   ri   r   c                 $    | j                          S r   r[   r7   s    r   
__invert__zProxy.__invert__   r   r   c                 4    t        | j                               S r   )complexr5   r7   s    r   __complex__zProxy.__complex__   s    t//122r   c                 4    t        | j                               S r   )intr5   r7   s    r   __int__zProxy.__int__   ri   r   c                 4    t        | j                               S r   )floatr5   r7   s    r   	__float__zProxy.__float__   s    T--/00r   c                 4    t        | j                               S r   )octr5   r7   s    r   __oct__zProxy.__oct__  ri   r   c                 4    t        | j                               S r   )hexr5   r7   s    r   __hex__zProxy.__hex__  ri   r   c                 >    | j                         j                         S r   )r5   	__index__r7   s    r   r   zProxy.__index__	      '')3355r   c                 @    | j                         j                  |      S r   )r5   
__coerce__rk   s     r   r   zProxy.__coerce__  r   r   c                 >    | j                         j                         S r   )r5   	__enter__r7   s    r   r   zProxy.__enter__  r   r   c                 B     | j                         j                  |i |S r   )r5   __exit__r   s      r   r   zProxy.__exit__  s#    2t'')22A<<<r   c                 >    | j                         j                         S r   )r5   
__reduce__r7   s    r   r   zProxy.__reduce__  s    '')4466r   )NNNN)?r6   r=   r;   r,   	__slots__r2   r   rg   rB   propertyrA   r5   r%   rO   rR   __nonzero__rU   rY   r^   r`   r.   re   rh   rm   rp   rs   ru   rw   ry   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r)   r   r   r   r   3   s   " >I =A9 vsH-7 .7 z31; 2; xj15 25 uc7+2 ,24 ! !F  - - K9
0,92/23332304/-0/22232<3332229=--/-3/1//6<6=7r   r   c                   6    e Zd ZdZdZd Zd Zd Zd Z	 d	dZ	y)
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                 n    	 t         j                  | d      S # t        $ r | j                         cY S w xY w)N__thing)r-   rF   r4   __evaluate__r7   s    r   r5   z PromiseProxy._get_current_object"  s8    	'**4;; 	'$$&&	's    44c                     | j                         r ||i |S ddlm} 	 t        j	                  | d      }| |       }t        j                  | d|       |j                  |||f       y # t
        $ r d }Y Bw xY w)Nr   )dequer   )__evaluated__collectionsr   r-   rF   r4   r.   append)r   funr0   r1   r   pendings         r   __then__zPromiseProxy.__then__(  s    '''%	--dMBG ?gGt]G<T6*+  	G	s   A+ +A98A9c                 P    	 t         j                  | d       y# t        $ r Y yw xY w)Nr   FT)r-   rF   r4   r7   s    r   r   zPromiseProxy.__evaluated__5  s0    	##D)4   		s    	%%c                 "    | j                         S r   r[   r7   s    r   __maybe_evaluate__zPromiseProxy.__maybe_evaluate__<  s    ''))r   c                    	 t         j                  |       }t        j                  | d|       |D ]  }	 t        j	                  | |        	 t        j                  | d      }	 |r|j                         \  }}} ||i | |r	 t        j	                  | d       |S # t
        $ r Y yw xY w# t
        $ r Y |S w xY w# 	 t        j	                  | d       w # t
        $ r Y w w xY wxY w# t
        $ r Y |S w xY w# t        $ r  w xY w)Nr   r   )	r   r5   r-   r.   re   r4   rF   popleft	Exception)r   _cleanthingattrr   r   r0   r1   s           r   r   zPromiseProxy.__evaluate__?  s/   	--d3E tY6 &&tT2 11$F!,3OO,=)T6T,V, "**4? L# &  * L**4?)  "  L  		sp   C8 BC( $ B= B- 	B*)B*-	B:9B:=C%?CC%	C"C%!C""C%(	C54C58DN))r'   r(   r*   )
r6   r=   r;   r,   r   r5   r   r   r   r   r)   r   r   r   r     s,     /I',*/r   r   c                 F    	 | j                         S # t        $ r | cY S w xY w)z:Attempt to evaluate promise, even if obj is not a promise.)r   r4   )r   s    r   r	   r	   `  s*    %%'' 
s      zF
The module %s is deprecated and will be removed in a future version.
>   __all__r,   __file____path__c                     | S r   r)   methods    r   fun_of_methodr   {  s    Mr   c                 0    ddl m} |j                  |       S )ziGet attribute from current_app recursively.

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

    r   )current_app)celeryr   	_rgetattr)pathr   s     r   
getappattrr     s     #  &&r   r   	send_taskzlog.get_default_loggerzlog.setup_logging_subsystemzlog.redirect_stdouts_to_logger)get_default_loggersetup_logging_subsystemredirect_stdouts_to_loggerzamqp.TaskConsumer
connection)TaskConsumerestablish_connectionget_consumer_settasks)executelog	messagingregistrysubtaskc                   (    e Zd ZddZddZd Zd Zy)class_propertyNc                 $   |t        |t              st        |      }|t        |t              st        |      }|| _        || _        |j	                  t
              }|j                  | _        |j                  | _        |j                  | _        y r   )	
isinstanceclassmethod_class_property__get_class_property__setr   r-   r,   r6   r=   )r   r   setterinfos       r   r2   zclass_property.__init__  sq    j&E (Fj&E (F

~~f%||//r   c                 d    |r||j                   } | j                  j                  ||             S r   )rA   r  r   )r   r   r   s      r   r   zclass_property.__get__  s.    4<==D,tzz!!#t,..r   c                 L    || S  | j                   j                  |      |      S r   )r  r   )r   r   r]   s      r   __set__zclass_property.__set__  s(    ;K&tzz!!#&u--r   c                 :    | j                  | j                  |      S r   )rA   r  )r   r  s     r   r  zclass_property.setter  s    ~~djj&11r   )NNr   )r6   r=   r;   r2   r   r  r  r)   r   r   r  r    s    */
.
2r   r  c                 *    t        t        |             S r   )r
  r   r   s    r   reclassmethodr    s    }V,--r   c                   .    e Zd ZdZi Zi Zi Zd Zd Zd Z	y)
LazyModuler)   c           	      v   || j                   v r]t        | j                   |   d d |g      }| j                  |j                     D ]  }t	        | |t        ||              t        ||      S || j                  v r+t        | j                  |   d d |g      }t	        | ||       |S t        j                  | |      S r   )	_object_origins
__import___all_by_moduler6   rb   rH   _directr   rF   )r   r   r   items       r   rY   zLazyModule.__getattr__  s    4''' 4 4T :D$!%(F++FOO< ;dGFD$9:;64((T\\!T 2D$GFD$'M**466r   c                 p    t        | j                        t        z  D cg c]  }|t        vr| c}S c c}w r   )setr   DEFAULT_ATTRSDEPRECATED_ATTRS)r   r   s     r   rU   zLazyModule.__dir__  s9     .>
++ 
 	
 
s   3c                 (    t         | j                  ffS r   )r   r6   r7   s    r   r   zLazyModule.__reduce__  s    t}}...r   N)
r6   r=   r;   _compat_modulesr  r  r  rY   rU   r   r)   r   r   r  r    s%    ONGO7
/r   r  c                 r   |rdj                  |j                  | g      n| }|i n|}| j                  d      \  }}}||d<   |j                         D 	
ci c]  \  }	}
|	|r ||
      n|
 }}	}
 t	        ||f|      |       x}t
        j                  |<   |j                  j                  |       |S c c}
}	w )N.r=   )	joinr6   
rpartitionitemsr   sysmodulesr%   update)r   attrs	cls_attrspkgbaseprepare_attrfqdn_modname	attr_namer   r   s               r   create_moduler4    s    -0388S\\4()dD'YIooc*OCG!Il  %{{}It 	,L&D@E "%$)"%%)"+ +FS[[
OO5!Ms   B3c                    |xs t         j                  | d      }|xs i }|xs i }t        j                  |    }t	        |      }t        t        t        t        j                  ||||fD cg c]  }t        |       c}                  }	|||||	d}
t        | ||
|      }|j                  j                  |D ci c]  }|t        ||       c}       |j                  |_        ||fS c c}w c c}w )Nr)   )r"  r  r  r  r   )r,  r.  )COMPAT_MODULESgetr(  r)  get_originstupler  r   operatoraddr4  r%   r*  get_compat_module__spec__)r   compat_modules	by_moduledirectr.  r+  
old_moduleoriginsv_allcattrs
new_modulemods                r   recreate_modulerH    s    #C~'9'9$'CNRI\rFT"J)$GV*GVUCDaqD  D
 *#"	F tUf4HJ;I 47z3//   %--Jz!! 	E s   +C,<C1c                    d }t         | j                     |   }t        |t              r=dj	                  | j                  |g      }t        |      x}t        j                  |<   |S t        |      |d<   t        |t        |      | |      S )Nc                 H    t        | t              rt        t        | f      S | S r   )r	  rg   r   r   )r   s    r   preparez"get_compat_module.<locals>.prepare  s     dC dW--r   r$  r   )r-  r/  )r6  r6   r	  rg   r%  r   r(  r)  listr4  dict)r-  r   rK  r+  r0  r   s         r   r<  r<    s}    
 3<<(.E%xxt,-%25%99T"E{E)tE{'JJr   c                     i }| j                         D ]%  \  }}|j                  |D ci c]  }|| c}       ' |S c c}w r   )r'  r*  )defsrB  r   r+  r   s        r   r8  r8    sE    G 97f789N 8s   
=
r   ) r,   r:  r(  	functoolsr   	importlibr   typesr   r   r6   r=   r   r   r   r   r	   MODULE_DEPRECATEDr  r   r   r6  r  keysr   r  r  r  r4  rH  r<  r8  r)   r   r   <module>rU     s    
  # 
C
(c7 c7LD5 DN$  ?
' 
 #;'D*J
 0$0 3
 W
, ~h/44679+E 2 2:./ /: *.4!" *.d#"4Kr   