Ë
    ™V.j]j  ã                   óÚ  — d Z ddlZddlZddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZmZ dd	lmZ dd
lmZmZ ddlmZ ddlmZmZmZ ddlmZ ddlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ ddl%mZ& ddl'm(Z(m)Z)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2m3Z3m4Z4 ddl5m6Z6 dZ7 e8ed«      Z9 e,e:«      Z;e;jx                  e;jz                  e;j|                  e;j~                  f\  Z<Z=Z@Z?daAdaBd„ ZC eC«        e4jˆ                  ZDejŠ                  jŒ                  ZGej�                  jŒ                  ZIe6j”                  ZJe6j–                  ZKe6j˜                  ZMe6jœ                  ZN G d„ d«      ZOeeMeKdefd„ZPy)zfTask request.

This module defines the :class:`Request` class, that specifies
how tasks are executed.
é    N)Údatetime)Ú	monotonicÚtime)Úref)ÚTERM_SIGNAME)ÚExceptionWithTraceback)Ú	safe_reprÚsafe_str)Úcached_property)Úcurrent_appÚsignals)ÚContext)Úfast_trace_taskÚ
trace_taskÚtrace_task_ret)ÚBasePool)ÚIgnoreÚInvalidTaskErrorÚRejectÚRetryÚTaskRevokedErrorÚ
TerminatedÚTimeLimitExceededÚWorkerLostError)r   )ÚmaybeÚ
maybe_listÚnoop)Ú
get_logger)Úgethostname)Úget_pickled_exception)Úmaybe_iso8601Úmaybe_make_awareÚtimezoneé   )Ústate)ÚRequestÚpypy_version_infoFc                  ó�   — t         j                  t        j                  «      at         j                  t        j
                  «      ay ©N)ÚloggerÚisEnabledForÚloggingÚDEBUGÚ_does_debugÚINFOÚ
_does_info© ó    úWC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\celery/worker/request.pyÚ__optimize__r4   .   s,   € ô ×%Ñ%¤g§m¡mÓ4€KÜ×$Ñ$¤W§\¡\Ó2�Jr2   c                   ó*  — e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZesdZeddddddeddddeefd„Zed„ «       Zed	„ «       Zed
„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z ed„ «       Z!ed„ «       Z"ed„ «       Z#ed„ «       Z$e$jJ                  d„ «       Z$ed„ «       Z&ed„ «       Z'ed„ «       Z(e(jJ                  d„ «       Z(ed„ «       Z)ed„ «       Z*ed „ «       Z+ed!„ «       Z,e,jJ                  d"„ «       Z,ed#„ «       Z-ed$„ «       Z.ed%„ «       Z/e/jJ                  d&„ «       Z/ed'„ «       Z0e0jJ                  d(„ «       Z0ed)„ «       Z1ed*„ «       Z2ed+„ «       Z3ed,e4fd-„«       Z5ed,e6fd.„«       Z7ed/„ «       Z8d0e9fd1„Z:dd2„Z;d3„ Z<dKd4„Z=dKd5„Z>d6„ Z?d7„ Z@d8„ ZAd9„ ZBd:„ ZCd;„ ZDd<„ ZEd=„ ZFdLd>„ZGd?„ ZHdMd@„ZIdMdA„ZJdB„ ZKdC„ ZLdD„ ZMeNdE„ «       ZOeNdF„ «       ZPeNdG„ «       ZQeNdH„ «       ZReNdI„ «       ZSeNdJ„ «       ZTy)Nr&   zA request for task execution.FN)NN)Ú_appÚ_typeÚnameÚidÚ_root_idÚ
_parent_idÚ_on_ackÚ_bodyÚ	_hostnameÚ_eventerÚ_connection_errorsÚ_taskÚ_etaÚ_expiresÚ_request_dictÚ
_on_rejectÚ_utcÚ_content_typeÚ_content_encodingÚ	_argsreprÚ_kwargsreprÚ_argsÚ_kwargsÚ_decodedÚ	__payloadÚ__weakref__Ú__dict__Tc                 óv  — || _         |€|j                  j                  «       n|j                  «       | _        |
€|j                  n|
| _        || _        || _        || _        |rd x| _	        | _
        n#|j                  |j                  c| _	        | _
        | j                  r| j
                  n|j                  | _        | j                  d   | _        | j                  d   x| _        | _        d| j                  v r"| j                  d   xs | j"                  | _        | j                  j%                  d«      | _        | j                  j%                  d«      | _        | j                  j%                  dd «      }|r|| _        | j                  j%                  dd«      | _        | j                  j%                  d	d«      | _        || _        |	| _        |xs
 t5        «       | _        || _        |xs d
| _        |xs# | j                  j<                  | j                      | _        | j                  j%                  dd«      | _         | j                  j%                  d«      }|�"	  ||«      } ||| jJ                  «      | _&        nd | _&        | j                  j%                  d«      }|�"	  ||«      } ||| jJ                  «      | _'        nd | _'        |jP                  xs i }|jR                  xs i }|j%                  d«      |j%                  d«      |j%                  d«      |j%                  dd«      dœ| _*        | j                  jW                  ||j%                  d«      |j%                  d«      | j6                  | jT                  dœ«       | j                  \  | j                  d<   | j                  d<   }| j                  d   | _,        | j                  d   | _-        y # tB        tD        tF        f$ r}tI        d|›d|› �«      ‚d }~ww xY w# tB        tD        tF        f$ r}tI        d|›d|› �«      ‚d }~ww xY w)Nr9   ÚtaskÚshadowÚroot_idÚ	parent_idÚ	timelimitÚargsreprÚ Ú
kwargsreprr1   Úignore_resultFÚetazinvalid ETA value z: Úexpireszinvalid expires value ÚexchangeÚrouting_keyÚpriorityÚredelivered)r]   r^   r_   r`   Úreply_toÚcorrelation_id)Ú
propertiesra   rb   ÚhostnameÚdelivery_infoÚargsÚkwargs).Ú_messageÚheadersÚcopyrD   Úbodyr=   r6   rF   rM   rG   rH   Úcontent_typeÚcontent_encodingÚpayloadÚ_Request__payloadr9   r7   r8   Úgetr:   r;   Útime_limitsrI   rJ   r<   rE   r   r>   r?   r@   ÚtasksrA   Ú_ignore_resultÚAttributeErrorÚ
ValueErrorÚ	TypeErrorr   ÚtzlocalrB   rC   re   rc   Ú_delivery_infoÚupdaterK   rL   )ÚselfÚmessageÚon_ackrd   ÚeventerÚappÚconnection_errorsÚrequest_dictrR   Ú	on_rejectrk   ri   ÚdecodedÚutcr"   r!   ÚoptsrV   r[   Úexcr\   re   rc   Ú_s                           r3   Ú__init__zRequest.__init__Z   sÝ  € ð  ˆŒØ8?¸˜gŸo™o×2Ñ2Ô4Ø#*§<¡<£>ð 	Ôà%) \�W—\’\°tˆŒ
ØˆŒ	ØˆŒ	ØˆŒÙØ:>Ð>ˆDÔ Õ!7ð ×$Ñ$ g×&>Ñ&>ð 7ˆDÔ Ô 6ð (,§}¢}˜Ÿš¸'¿/¹/ˆŒØ×$Ñ$ TÑ*ˆŒØ!%×!3Ñ!3°FÑ!;Ð;ˆŒ
�T”YØ�t×)Ñ)Ñ)Ø×*Ñ*¨8Ñ4ÒA¸¿	¹	ˆDŒIØ×*Ñ*×.Ñ.¨yÓ9ˆŒØ×,Ñ,×0Ñ0°Ó=ˆŒØ×&Ñ&×*Ñ*¨;¸Ó=ˆ	ÙØ(ˆDÔØ×+Ñ+×/Ñ/°
¸BÓ?ˆŒØ×-Ñ-×1Ñ1°,ÀÓCˆÔØˆŒØ#ˆŒØ!Ò2¤[£]ˆŒØˆŒØ"3Ò"9°rˆÔØÒ8˜TŸY™YŸ_™_¨T¯Z©ZÑ8ˆŒ
Ø"×0Ñ0×4Ñ4°_ÀeÓLˆÔð × Ñ ×$Ñ$ UÓ+ˆØˆ?ð9Ù# CÓ(�ñ )¨¨d¯l©lÓ;ˆD�IàˆDŒIà×$Ñ$×(Ñ(¨Ó3ˆØÐðAÙ'¨Ó0�ñ -¨W°d·l±lÓCˆD�Mà ˆDŒMà×-Ñ-Ò3°ˆØ×'Ñ'Ò-¨2ˆ
à%×)Ñ)¨*Ó5Ø(×,Ñ,¨]Ó;Ø"Ÿ™ zÓ2Ø(×,Ñ,¨]¸EÓBñ	
ˆÔð 	×Ñ×!Ñ!Ø$Ø"Ÿ™ zÓ2Ø(Ÿn™nÐ-=Ó>ØŸ™Ø!×0Ñ0ñ#
ô 	ð GKÇnÁnÑCˆ×Ñ˜6Ñ" D×$6Ñ$6°xÑ$@À!Ø×'Ñ'¨Ñ/ˆŒ
Ø×)Ñ)¨(Ñ3ˆ�øôI #¤J´	Ð:ò 9Ü&Ø(¨¨¨r°#°Ð7ó9ð 9ûð9ûô #¤J´	Ð:ò AÜ&Ø,¨W¨K°r¸#¸Ð?óAð AûðAús0   É$O! Ê*P Ï!PÏ5PÐPÐP8Ð"P3Ð3P8c                 ó   — | j                   S r)   )rx   ©rz   s    r3   re   zRequest.delivery_info®   ó   € à×"Ñ"Ð"r2   c                 ó   — | j                   S r)   )rh   r‰   s    r3   r{   zRequest.message²   ó   € à�}‰}Ðr2   c                 ó   — | j                   S r)   ©rD   r‰   s    r3   r€   zRequest.request_dict¶   ó   € à×!Ñ!Ð!r2   c                 ó   — | j                   S r)   )r=   r‰   s    r3   rk   zRequest.bodyº   ó   € à�z‰zÐr2   c                 ó   — | j                   S r)   )r6   r‰   s    r3   r~   zRequest.app¾   ó   € à�y‰yÐr2   c                 ó   — | j                   S r)   )rF   r‰   s    r3   rƒ   zRequest.utcÂ   r“   r2   c                 ó   — | j                   S r)   )rG   r‰   s    r3   rl   zRequest.content_typeÆ   r�   r2   c                 ó   — | j                   S r)   )rH   r‰   s    r3   rm   zRequest.content_encodingÊ   s   € à×%Ñ%Ð%r2   c                 ó   — | j                   S r)   )r7   r‰   s    r3   ÚtypezRequest.typeÎ   r‘   r2   c                 ó   — | j                   S r)   )r:   r‰   s    r3   rT   zRequest.root_idÒ   rŒ   r2   c                 ó   — | j                   S r)   )r;   r‰   s    r3   rU   zRequest.parent_idÖ   ó   € à�‰Ðr2   c                 ó   — | j                   S r)   )rI   r‰   s    r3   rW   zRequest.argsreprÚ   ó   € à�~‰~Ðr2   c                 ó   — | j                   S r)   )rK   r‰   s    r3   rf   zRequest.argsÞ   r‘   r2   c                 ó   — | j                   S r)   )rL   r‰   s    r3   rg   zRequest.kwargsâ   ó   € à�|‰|Ðr2   c                 ó   — | j                   S r)   )rJ   r‰   s    r3   rY   zRequest.kwargsrepræ   s   € à×ÑÐr2   c                 ó   — | j                   S r)   )r<   r‰   s    r3   r|   zRequest.on_ackê   r    r2   c                 ó   — | j                   S r)   ©rE   r‰   s    r3   r�   zRequest.on_rejectî   r›   r2   c                 ó   — || _         y r)   r¤   ©rz   Úvalues     r3   r�   zRequest.on_rejectò   s	   € àˆ�r2   c                 ó   — | j                   S r)   )r>   r‰   s    r3   rd   zRequest.hostnameö   r�   r2   c                 ó   — | j                   S r)   )rs   r‰   s    r3   rZ   zRequest.ignore_resultú   rŠ   r2   c                 ó   — | j                   S r)   ©r?   r‰   s    r3   r}   zRequest.eventerþ   rŒ   r2   c                 ó   — || _         y r)   r«   )rz   r}   s     r3   r}   zRequest.eventer  s	   € àˆ�r2   c                 ó   — | j                   S r)   )r@   r‰   s    r3   r   zRequest.connection_errors  s   € à×&Ñ&Ð&r2   c                 ó   — | j                   S r)   )rA   r‰   s    r3   rR   zRequest.task
  r‘   r2   c                 ó   — | j                   S r)   )rB   r‰   s    r3   r[   zRequest.eta  r“   r2   c                 ó   — | j                   S r)   ©rC   r‰   s    r3   r\   zRequest.expires  rŒ   r2   c                 ó   — || _         y r)   r±   r¦   s     r3   r\   zRequest.expires  s	   € àˆ�r2   c                 ó|   — | j                   €%| j                  j                  j                  | _         | j                   S r)   )Ú_tzlocalr6   Úconfr#   r‰   s    r3   rw   zRequest.tzlocal  s+   € à�=‰=Ð Ø ŸI™IŸN™N×3Ñ3ˆDŒMØ�}‰}Ðr2   c                 ó`   — | j                   j                   xs | j                   j                  S r)   )rR   rZ   Ústore_errors_even_if_ignoredr‰   s    r3   Ústore_errorszRequest.store_errors   s)   € à—I‘I×+Ñ+Ð+ò 7Ø—	‘	×6Ñ6ð	8r2   c                 ó   — | j                   S r)   ©r9   r‰   s    r3   Útask_idzRequest.task_id%  s   € ð �w‰wˆr2   c                 ó   — || _         y r)   rº   r¦   s     r3   r»   zRequest.task_id*  s	   € àˆ�r2   c                 ó   — | j                   S r)   ©r8   r‰   s    r3   Ú	task_namezRequest.task_name.  s   € ð �y‰yÐr2   c                 ó   — || _         y r)   r¾   r¦   s     r3   r¿   zRequest.task_name3  s	   € àˆ�	r2   c                 ó    — | j                   d   S )Nra   rŽ   r‰   s    r3   ra   zRequest.reply_to7  s   € ð ×!Ñ! *Ñ-Ð-r2   c                 ó:   — | j                   j                  dd«      S )NÚreplaced_task_nestingr   ©rD   rp   r‰   s    r3   rÃ   zRequest.replaced_task_nesting<  s   € à×!Ñ!×%Ñ%Ð&=¸qÓAÐAr2   c                 ó:   — | j                   j                  dg «      S )NÚgroupsrÄ   r‰   s    r3   rÆ   zRequest.groups@  s   € à×!Ñ!×%Ñ% h°Ó3Ð3r2   Úreturnc                 ó@   — | j                   j                  d«      xs g S )NÚstamped_headersrÄ   r‰   s    r3   rÉ   zRequest.stamped_headersD  s   € à×!Ñ!×%Ñ%Ð&7Ó8Ò>¸BÐ>r2   c                 óž   — | j                   j                  d«      xs i }| j                  D �ci c]  }||j                  |«      “Œ c}S c c}w )NÚstamps)rD   rp   rÉ   )rz   rË   Úheaders      r3   rË   zRequest.stampsH  sK   € à×#Ñ#×'Ñ'¨Ó1Ò7°RˆØ9=×9MÒ9MÓNÑ9M¨v�˜Ÿ
™
 6Ó*Ñ*Ð9MÑNÐNùÒNs   ®A
c                 ó    — | j                   d   S )Nrb   rŽ   r‰   s    r3   rb   zRequest.correlation_idM  s   € ð ×!Ñ!Ð"2Ñ3Ð3r2   Úpoolc                 ó$  — | j                   }| j                  }| j                  «       rt        |«      ‚| j                  \  }}| j
                  j                  rt        nt        }|j                  || j                  || j                  | j                  | j                  | j                  f| j                  | j                   | j"                  | j$                  |xs |j&                  |xs |j(                  |¬«	      }t+        t,        |«      | _        |S )a  Used by the worker to send this task to the pool.

        Arguments:
            pool (~celery.concurrency.base.TaskPool): The execution pool
                used to execute this request.

        Raises:
            celery.exceptions.TaskRevokedError: if the task was revoked.
        ©rf   Úaccept_callbackÚtimeout_callbackÚcallbackÚerror_callbackÚsoft_timeoutÚtimeoutrb   )r9   rA   Úrevokedr   rq   r6   Úuse_fast_trace_taskr   r   Úapply_asyncr7   rD   r=   rG   rH   Úon_acceptedÚ
on_timeoutÚ
on_successÚ
on_failureÚsoft_time_limitÚ
time_limitr   r   Ú_apply_result)	rz   rÎ   rg   r»   rR   rß   rÞ   ÚtraceÚresults	            r3   Úexecute_using_poolzRequest.execute_using_poolR  sã   € ð —'‘'ˆØ�z‰zˆØ�<‰<Œ>Ü" 7Ó+Ð+à&*×&6Ñ&6Ñ#ˆ
�OØ#'§9¡9×#@Ò#@•ÄnˆØ×!Ñ!ØØ—*‘*˜g t×'9Ñ'9¸4¿:¹:Ø×$Ñ$ d×&<Ñ&<ð>à ×,Ñ,Ø!Ÿ_™_Ø—_‘_ØŸ?™?Ø(Ò@¨D×,@Ñ,@ØÒ1 $§/¡/Ø"ð "ó 
ˆô #¤3¨Ó/ˆÔØˆr2   c           
      óþ  — | j                  «       ry| j                  j                  s| j                  «        | j                  \  }}}| j
                  } |j                  ||ddœfi |xs i ¤Ž t        | j                  | j                  | j                  | j                  || j                  | j                  j                  | j                  ¬«      \  }}}}|r| j                  d¬«       |S | j                  «        |S )zÌExecute the task in a :func:`~celery.app.trace.trace_task`.

        Arguments:
            loglevel (int): The loglevel used by the task.
            logfile (str): The logfile used by the task.
        NF)ÚloglevelÚlogfileÚis_eager)rd   Úloaderr~   ©Úrequeue)r×   rR   Ú	acks_lateÚacknowledgeÚ_payloadrD   ry   r   r9   rK   rL   r>   r6   rè   Úreject)rz   rå   ræ   r†   ÚembedÚrequestÚretvalÚIs           r3   ÚexecutezRequest.executes  sç   € ð �<‰<Œ>Øð �y‰y×"Ò"Ø×ÑÔà—m‘m‰ˆˆ1ˆeØ×$Ñ$ˆð 	ˆ�‰Ø ØØñ
ñ 	ð Š[�bò		ô % T§Y¡Y°·±¸¿¹ÀTÇ\Á\ÐSZØ.2¯n©nÀTÇYÁY×EUÑEUØ)-¯©ô4‰ˆ��1�añ Ø�K‰K ˆKÔ&ð ˆð ×ÑÔØˆr2   c                 óÎ   — | j                   rYt        j                  | j                   j                  «      }|| j                   kD  r t        j                  | j                  «       yyy)z%If expired, mark the task as revoked.TN)r\   r   ÚnowÚtzinfoÚrevoked_tasksÚaddr9   )rz   rõ   s     r3   Úmaybe_expirezRequest.maybe_expire•  sL   € à�<Š<Ü—,‘,˜tŸ|™|×2Ñ2Ó3ˆCØ�T—\‘\Ò!Ü×!Ñ! $§'¡'Ô*Øð "ð r2   c                 ó,  — t        j                  |xs t        «      }| j                  r1|j	                  | j
                  |«       | j                  dd|d«       n	||f| _        | j                  �%| j                  «       }|�|j                  |«       y y y )NÚ
terminatedTF)
Ú_signalsÚsignumr   Ú
time_startÚterminate_jobÚ
worker_pidÚ_announce_revokedÚ_terminate_on_ackrà   Ú	terminate©rz   rÎ   ÚsignalÚobjs       r3   r  zRequest.terminate�  s…   € Ü—‘ Ò!7¬<Ó8ˆØ�?Š?Ø×Ñ˜tŸ™°Ô7Ø×"Ñ" <°°v¸uÕEà%)¨6 \ˆDÔ"Ø×ÑÐ)Ø×$Ñ$Ó&ˆCØˆØ—‘˜fÕ%ð ð *r2   c                 ó  — t        j                  |xs t        «      }| j                  r,|j	                  | j
                  |«       | j                  «        | j                  �%| j                  «       }|�|j                  |«       y y y r)   )	rü   rý   r   rþ   rÿ   r   Ú_announce_cancelledrà   r  r  s       r3   ÚcancelzRequest.cancel©  sq   € Ü—‘ Ò!7¬<Ó8ˆØ�?Š?Ø×Ñ˜tŸ™°Ô7Ø×$Ñ$Ô&à×ÑÐ)Ø×$Ñ$Ó&ˆCØˆØ—‘˜fÕ%ð ð *r2   c                 óœ  — t        | «       | j                  d«       d}t        |¬«      }| j                  j                  j                  | j                  || j                  ¬«       | j                  j                  || j                  | j                  | j                  d «       d| _        t        | j                  | j                  d ¬«       y )Nztask-cancelledzcancelled by Celery)r{   )rð   T)rð   Úeinfo)Ú
task_readyÚ
send_eventr   rR   ÚbackendÚmark_as_retryr9   Ú_contextÚon_retryrf   rg   Ú_already_cancelledÚ
send_retry)rz   Úreasonr…   s      r3   r  zRequest._announce_cancelled´  s—   € Ü�4ÔØ�‰Ð(Ô)Ø&ˆÜ˜FÔ#ˆØ�	‰	×Ñ×'Ñ'¨¯©Ø(+Ø04·±ð 	(ô 	?ð 	�	‰	×Ñ˜3 §¡¨¯©°D·K±KÀÔFØ"&ˆÔÜ�4—9‘9 d§m¡m¸4Ö@r2   c                 óH  — t        | «       | j                  d|||¬«       | j                  j                  j	                  | j
                  || j                  | j                  ¬«       | j                  «        d| _	        t        | j                  | j                  |||¬«       y )Nztask-revoked)rû   rý   Úexpired©rð   Ústore_resultT)rð   rû   rý   r  )r  r  rR   r  Úmark_as_revokedr9   r  r¸   rì   Ú_already_revokedÚsend_revoked)rz   r  rû   rý   r  s        r3   r  zRequest._announce_revokedÁ  sŒ   € Ü�4ÔØ�‰˜Ø#-°fÀgð 	ô 	Oà�	‰	×Ñ×)Ñ)Ø�G‰G�V T§]¡]Ø×*Ñ*ð 	*ô 	
ð 	×ÑÔØ $ˆÔÜ�T—Y‘Y¨¯©Ø *°6À7ö	Lr2   c                 óp  — d}| j                   ry| j                  r| j                  «       }| j                  t        v }d\  }}|sž| j
                  r’| j
                  D ]ƒ  }|t        v sŒt        |   }| j                  j                  d   |   }t        |t        t        f«      r|D ]  }|t        |«      v sŒd}||i} n! nt        |t        |«      v ||k(  g«      }||i} n t        |||f«      rFd}	|r|	d|z  z  }	t        |	| j                  | j                  «       | j!                  |rdnddd	|«       yy)
z%If revoked, skip task and mark state.FT)FNrË   zDiscarding revoked task: %s[%s]z (revoked by header: %s)r  r×   N)r  r\   rù   r9   r÷   rÉ   Úrevoked_stampsrh   ri   Ú
isinstanceÚlistÚtupler   ÚanyÚinfor8   r  )
rz   r  Úrevoked_by_idÚrevoked_by_headerÚrevoking_headerÚstampÚrevoked_headerÚstamped_headerÚstamped_valueÚlog_msgs
             r3   r×   zRequest.revokedÎ  sV  € àˆØ× Ò ØØ�<Š<Ø×'Ñ'Ó)ˆGØŸ™¤=Ð0ˆØ-8Ñ*Ð˜?á ×!5Ò!5Ø×-Ô-�ØœNÒ*Ü%3°EÑ%:�NØ%)§]¡]×%:Ñ%:¸8Ñ%DÀUÑ%K�Nä! .´4¼°-Ô@Û-;˜MØ,´
¸>Ó0JÒJØ48Ð 1Ø38¸-Ð2H Ù %ñ	 .<ô -0Ø*¬j¸Ó.HÐHØ*¨nÑ<ð1ó -Ð)ð ,1°.Ð*A˜Ùð# .ô& �˜Ð(9Ð:Ô;Ø7ˆGÙ ØÐ5¸ÑGÑG�Ü�˜$Ÿ)™) T§W¡WÔ-Ø×"Ñ"Ù$‘	¨)°U¸DÀ'ôð Ør2   c                 óÌ   — | j                   rX| j                   j                  rA| j                  j                  r* | j                   j                  |fd| j
                  i|¤Ž y y y y )NÚuuid)r?   ÚenabledrR   Úsend_eventsÚsendr9   )rz   r˜   Úfieldss      r3   r  zRequest.send_event÷  sN   € Ø�=Š=˜TŸ]™]×2Ò2°t·y±y×7LÒ7LØˆD�M‰M×Ñ˜tÑ<¨$¯'©'Ð<°VÓ<ð 8MÐ2ˆ=r2   c                 ól  — || _         t        «       t        «       |z
  z
  | _        t	        | «       | j
                  j                  s| j                  «        | j                  d«       t        r"t        d| j                  | j                  |«       | j                  � | j                  | j                  Ž  yy)z4Handler called when task is accepted by worker pool.ztask-startedzTask accepted: %s[%s] pid:%rN)r   r   r   rþ   Útask_acceptedrR   rë   rì   r  r.   Údebugr8   r9   r  r  )rz   ÚpidÚtime_accepteds      r3   rÚ   zRequest.on_acceptedû  sŠ   € àˆŒä›&¤I£K°-Ñ$?Ñ@ˆŒÜ�dÔØ�y‰y×"Ò"Ø×ÑÔØ�‰˜Ô'ÝÜÐ0°$·)±)¸T¿W¹WÀcÔJØ×!Ñ!Ð-ØˆD�N‰N˜D×2Ñ2Ò3ð .r2   c                 óÈ  — |r#t        d|| j                  | j                  «       yt        | «       t	        d|| j                  | j                  «       t        |«      }| j                  j                  j                  | j                  || j                  | j                  ¬«       | j                  j                  r(| j                  j                  r| j                  «        yyy)z%Handler called if the task times out.z)Soft time limit (%ss) exceeded for %s[%s]z)Hard time limit (%ss) exceeded for %s[%s]r  N)Úwarnr8   r9   r  Úerrorr   rR   r  Úmark_as_failurer  r¸   rë   Úacks_on_failure_or_timeoutrì   )rz   ÚsoftrÖ   r…   s       r3   rÛ   zRequest.on_timeout	  s²   € áÜÐ<Ø˜$Ÿ)™) T§W¡Wõ.ô �tÔÜÐ=Ø˜4Ÿ9™9 d§g¡gô/ä# GÓ,ˆCà�I‰I×Ñ×-Ñ-Ø—‘˜ d§m¡mØ!×.Ñ.ð .ô ð
 �y‰y×"Ò" t§y¡y×'KÒ'KØ× Ñ Õ"ð (LÐ"r2   c                 óH  — |\  }}}|rS|j                   }t        |t        «      r|j                  }t        |t        t
        f«      r|‚| j                  |d¬«      S t        | d¬«       | j                  j                  r| j                  «        | j                  d||¬«       y)z6Handler called if the task was successfully processed.T©Ú	return_ok)Ú
successfulútask-succeeded©râ   ÚruntimeN)Ú	exceptionr  r   r…   Ú
SystemExitÚKeyboardInterruptrÝ   r  rR   rë   rì   r  )rz   Úfailed__retval__runtimerg   Úfailedrñ   rB  r…   s          r3   rÜ   zRequest.on_success  sŽ   € à"9Ñˆ�˜ÙØ×"Ñ"ˆCÜ˜#Ô5Ô6Ø—g‘g�Ü˜#¤
Ô,=Ð>Ô?Ø�	Ø—?‘? 6°T�?Ó:Ð:Ü�4 DÕ)à�9‰9×ÒØ×ÑÔà�‰Ð(°ÀˆÕIr2   c                 óØ   — | j                   j                  r| j                  «        | j                  dt	        |j
                  j                  «      t        |j                  «      ¬«       y)z-Handler called if the task should be retried.ztask-retried©rC  Ú	tracebackN)	rR   rë   rì   r  r	   rC  r…   r
   rJ  )rz   Úexc_infos     r3   r  zRequest.on_retry-  sQ   € à�9‰9×ÒØ×ÑÔà�‰˜Ü"+¨H×,>Ñ,>×,BÑ,BÓ"CÜ"*¨8×+=Ñ+=Ó">ð 	õ 	@r2   c           	      ó4  — t        | «       |j                  }t        |t        «      r|j                  }t        |t
        «      }|r6| j                  s)| j                  s| j                  ddt        |«      d«       yt        |t        «      rt        d|› �«      ‚t        |t        «      r| j                  |j                  ¬«      S t        |t        «      r| j                  «       S t        |t         «      r| j#                  |«      S d}t        |t$        «      }| j&                  j(                  rn| j&                  j*                  xr |}| j&                  j,                  }	|rd}| j                  |¬«       d}n%|	r| j                  «        n| j                  d¬«       |s£|s|sŸ| j&                  j.                  j1                  | j2                  || j4                  | j6                  ¬«       t8        j:                  j=                  | j&                  | j2                  || j>                  | j@                  |jB                  |¬«       |r:| jE                  d	tG        tI        |j                  «      «      |jB                  ¬
«       |stK        d||jL                  ¬«       yy)z/Handler called if the task raised an exception.rû   TFNzProcess got: ré   r  )Úsenderr»   rC  rf   rg   rJ  r  ztask-failedrI  zTask handler raised error: %r)rK  )'r  rC  r  r   r…   r   r  r  r  ÚstrÚMemoryErrorr   rî   rê   r   rì   r   r  r   rR   rë   Úreject_on_worker_lostr:  r  r9  r9   r  r¸   r   Útask_failurer/  rf   rg   rJ  r  r	   r    r8  rK  )
rz   rK  Úsend_failed_eventr>  r…   Úis_terminatedrê   Úis_worker_lostrî   Úacks
             r3   rÝ   zRequest.on_failure6  s5  € ä�4ÔØ× Ñ ˆä�cÔ1Ô2Ø—'‘'ˆCä" 3¬
Ó3ˆÙð ×*Ò*°4×3HÒ3Hð ×&Ñ&Ø  $¬¨C«°%ô9àÜ˜œ[Ô)Ü ¨c¨UÐ3Ó4Ð4Ü˜œVÔ$Ø—;‘; s§{¡{�;Ó3Ð3Ü˜œVÔ$Ø×#Ñ#Ó%Ð%Ü˜œUÔ#Ø—=‘= Ó*Ð*ð ˆÜ# C¬Ó9ˆØ�9‰9×Òà—	‘	×/Ñ/ò Øð ð —)‘)×6Ñ6ˆCÙØ�Ø—‘ G�Ô,Ø$)Ñ!ÙØ× Ñ Õ"ð —‘ E�Ô*ñ ™N±)à�I‰I×Ñ×-Ñ-Ø—‘˜ d§m¡mØ!×.Ñ.ð .ô ô
 × Ñ ×%Ñ%¨T¯Y©YÀÇÁØ03¸$¿)¹)Ø-1¯[©[Ø08×0BÑ0BØ,4ð	 &ô 6ñ Ø�O‰OØÜ#Ô$9¸(×:LÑ:LÓ$MÓNØ"×,Ñ,ð ô ñ ÜÐ1°3Ø#×,Ñ,ö.ð r2   c                 ól   — | j                   s(| j                  t        | j                  «       d| _         yy)zAcknowledge task.TN)Úacknowledgedr<   r*   r@   r‰   s    r3   rì   zRequest.acknowledge†  s,   € à× Ò Ø�L‰Lœ ×!8Ñ!8Ô9Ø $ˆDÕð !r2   c                 ó”   — | j                   s<| j                  t        | j                  |«       d| _         | j	                  d|¬«       y y )NTztask-rejectedré   )rW  rE   r*   r@   r  )rz   rê   s     r3   rî   zRequest.rejectŒ  s>   € Ø× Ò Ø�O‰OœF D×$;Ñ$;¸WÔEØ $ˆDÔØ�O‰O˜O°WˆOÕ=ð !r2   c                 ó  — | j                   | j                  |s| j                  n| j                  |s| j                  n| j
                  | j                  | j                  | j                  | j                  | j                  | j                  dœ
S )N)
r9   r8   rf   rg   r˜   rd   rþ   rW  re   r   )r9   r8   rK   rI   rL   rJ   r7   r>   rþ   rW  re   r   )rz   Úsafes     r3   r"  zRequest.info’  sh   € à—'‘'Ø—I‘IÙ&*�D—J’J°·±Ù*.�d—l’l°D×4DÑ4DØ—J‘JØŸ™ØŸ/™/Ø ×-Ñ-Ø!×/Ñ/ØŸ/™/ñ
ð 	
r2   c                 ó$   — dj                  | «      S )Nz{0.name}[{0.id}])Úformatr‰   s    r3   Ú	humaninfozRequest.humaninfo   s   € Ø!×(Ñ(¨Ó.Ð.r2   c                 óÒ   — dj                  | j                  «       | j                  rd| j                  › d�nd| j                  rd| j                  › d�ndg«      j	                  «       S )z``str(self)``.Ú z ETA:[Ú]rX   z
 expires:[)Újoinr]  rB   rC   Ústripr‰   s    r3   Ú__str__zRequest.__str__£  s[   € à�x‰xØ�N‰NÓØ%)§Y¢Yˆf�T—Y‘Y�K˜qÑ!°BØ-1¯]ª]ˆj˜Ÿ™˜ qÑ)Àð
ó ÷ ‰5‹7ð		r2   c                 ó”   — dj                  t        | «      j                  | j                  «       | j                  | j
                  «      S )z``repr(self)``.z<{}: {} {} {}>)r\  r˜   Ú__name__r]  rI   rJ   r‰   s    r3   Ú__repr__zRequest.__repr__«  s:   € à×&Ñ&Ü�‹J×Ñ §¡Ó!1Ø�N‰N˜D×,Ñ,ó
ð 	
r2   c                 ó   — | j                   S r)   )ro   r‰   s    r3   rí   zRequest._payload²  r�   r2   c                 óD   — | j                   \  }}}|j                  d«      S )NÚchord©rí   rp   ©rz   r†   rï   s      r3   ri  zRequest.chord¶  s"   € ð —m‘m‰ˆˆ1ˆeØ�y‰y˜Ó!Ð!r2   c                 óD   — | j                   \  }}}|j                  d«      S )NÚerrbacksrj  rk  s      r3   rm  zRequest.errbacks¿  s"   € ð —m‘m‰ˆˆ1ˆeØ�y‰y˜Ó$Ð$r2   c                 ó8   — | j                   j                  d«      S )NÚgrouprÄ   r‰   s    r3   ro  zRequest.groupÈ  s   € ð ×!Ñ!×%Ñ% gÓ.Ð.r2   c                 ó|   — | j                   }| j                  \  }}} |j                  di |xs i ¤Ž t        |«      S )z9Context (:class:`~celery.app.task.Context`) of this task.r1   )rD   rí   ry   r   )rz   rð   r†   rï   s       r3   r  zRequest._contextÎ  s@   € ð ×$Ñ$ˆð —m‘m‰ˆˆ1ˆeØˆ�‰Ñ%˜š "Ò%Ü�wÓÐr2   c                 ó8   — | j                   j                  d«      S )NÚgroup_indexrÄ   r‰   s    r3   rr  zRequest.group_indexØ  s   € ð ×!Ñ!×%Ñ% mÓ4Ð4r2   r)   )TF)F)Ure  Ú
__module__Ú__qualname__Ú__doc__rW  rþ   r   rq   r  r  r  rà   r´   ÚIS_PYPYÚ	__slots__r   r"   r!   r‡   Úpropertyre   r{   r€   rk   r~   rƒ   rl   rm   r˜   rT   rU   rW   rf   rg   rY   r|   r�   Úsetterrd   rZ   r}   r   rR   r[   r\   rw   r¸   r»   r¿   ra   rÃ   rÆ   r  rÉ   ÚdictrË   rb   r   rã   ró   rù   r  r	  r  r  r×   r  rÚ   rÛ   rÜ   r  rÝ   rì   rî   r"  r]  rc  rf  r   rí   ri  rm  ro  r  rr  r1   r2   r3   r&   r&   C   sŽ  „ Ù'à€LØ€JØ€JØ€KØÐØÐØÐØ€MØ€Háð
ˆ	ð (,Ø¨°$Ø#'°dØ d°Ø u°$Ø"2Ø,óR4ðh ñ#ó ð#ð ñó ðð ñ"ó ð"ð ñó ðð ñó ðð ñó ðð ñ"ó ð"ð ñ&ó ð&ð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðð ñ ó ð ð ñó ðð ñó ðð ×Ññ ó ð ð ñó ðð ñ#ó ð#ð ñó ðð ‡^�^ñ ó ð ð ñ'ó ð'ð ñó ðð ñó ðð ñó ðð ‡^�^ñó ðð ñó ðð
 ñ8ó ð8ð ñó ðð ‡^�^ñó ðð ñó ðð ×Ññó ðð ñ.ó ð.ð ñBó ðBð ñ4ó ð4ð ð? ò ?ó ð?ð ðO˜ò Oó ðOð ñ4ó ð4ð xó óB òDó
&ó	&òAòLò'òR=ò4ò#ò&Jò"@óN.ò`%ó>ó
ò/òò
ð ñó ðð ñ"ó ð"ð ñ%ó ð%ð ñ/ó ð/ð
 ñ ó ð ð ñ5ó ñ5r2   r&   c
           
      óò   ‡‡‡‡‡‡‡‡— |j                   Š|j                  Š|j                  Š|j                  Š|xr |j                  Š‰€|	j
                  rt        nt        Š G ˆˆˆˆˆˆˆˆfd„d| «      }
|
S )Nc                   ó.   •— e Zd Zˆˆˆˆˆfd„Zˆ ˆˆfd„Zy)ú#create_request_cls.<locals>.Requestc                 óˆ  •— | j                   }| j                  «       rt        |«      ‚| j                  \  }} ‰‰| j                  || j
                  | j                  | j                  | j                  f| j                  | j                  | j                  | j                  |xs ‰|xs ‰	|¬«	      }t        ‰
|«      | _        |S )NrÐ   )r»   r×   r   rq   r˜   r€   rk   rl   rm   rÚ   rÛ   rÜ   rÝ   r   rà   )rz   rÎ   rg   r»   rß   rÞ   râ   rÙ   Údefault_soft_time_limitÚdefault_time_limitr   rá   s          €€€€€r3   rã   z6create_request_cls.<locals>.Request.execute_using_poolì  s´   ø€ Ø—l‘lˆGØ�|‰|Œ~Ü& wÓ/Ð/à*.×*:Ñ*:Ñ'ˆJ˜Ù ØØ—i‘i ¨$×*;Ñ*;¸T¿Y¹YØ×'Ñ'¨×)>Ñ)>ð@à $× 0Ñ 0Ø!%§¡ØŸ™Ø#Ÿ™Ø,ÒGÐ0GØ"Ò8Ð&8Ø&ôˆFô "' s¨FÓ!3ˆDÔØˆMr2   c                 ó  •— |\  }}}|rS|j                   }t        |t        «      r|j                  }t        |t        t
        f«      r|‚| j                  |d¬«      S  ‰	| «       ‰r| j                  «        ‰r| j                  d||¬«       y y )NTr=  r@  rA  )	rC  r  r   r…   rD  rE  rÝ   rì   r  )
rz   rF  rg   rG  rñ   rB  r…   rë   Úeventsr  s
          €€€r3   rÜ   z.create_request_cls.<locals>.Request.on_success  s�   ø€ Ø&=Ñ#ˆF�F˜GÙØ×&Ñ&�Ü˜cÔ#9Ô:ØŸ'™'�CÜ˜c¤JÔ0AÐ#BÔCØ�IØ—‘ v¸�Ó>Ð>Ù�tÔáØ× Ñ Ô"áØ—‘Ø$¨V¸Wð  õ ð r2   N)re  rs  rt  rã   rÜ   )rë   rÙ   r  r€  r‚  r   r  rá   s   €€€€€€€€r3   r&   r}  ê  s   ø„ ÷	ð 	÷.	r2   r&   )rß   rÞ   rÙ   rë   r-  rØ   r   r   )ÚbaserR   rÎ   rd   r}   r   r÷   r  rá   r~   r&   rë   rÙ   r  r€  r‚  s        ` ``  @@@@@r3   Úcreate_request_clsr„  Þ  sj   ÿ€ ð Ÿ™ÐØ"×2Ñ2ÐØ×"Ñ"€KØ—‘€IØÒ(˜Ÿ™€Fà€}Ø#&×#:Ò#:•Äˆ÷*õ *�$ô *ðX €Nr2   )Qru  r,   Úsysr   r   r   Úweakrefr   Úbilliard.commonr   Úbilliard.einfor   Úkombu.utils.encodingr	   r
   Úkombu.utils.objectsr   Úceleryr   r   Úcelery.app.taskr   Úcelery.app.tracer   r   r   Úcelery.concurrency.baser   Úcelery.exceptionsr   r   r   r   r   r   r   r   Úcelery.platformsrü   Úcelery.utils.functionalr   r   r   Úcelery.utils.logr   Úcelery.utils.nodenamesr   Úcelery.utils.serializationr    Úcelery.utils.timer!   r"   r#   rX   r%   Ú__all__Úhasattrrv  re  r*   r3  r"  Úwarningr8  r7  r0   r.   r4   Útz_or_localÚtask_revokedr/  r  Ú
task_retryr  r2  r  r×   r÷   r  r&   r„  r1   r2   r3   Ú<module>rœ     s:  ðñó
 Û 
Ý ß  Ý å (Ý 1ß 4Ý /ç 'Ý #ß HÑ HÝ ,÷C÷ Có Cå 0ß ;Ñ ;Ý 'Ý .Ý <ß GÑ Gå à
€ñ
 �#Ð*Ó
+€á	�HÓ	€Ø"ŸL™L¨&¯+©+Ø"ŸN™N¨F¯L©Lð:Ñ €€tˆT�5à€
Ø€ò3ñ „ð ×"Ñ"€Ø×#Ñ#×(Ñ(€Ø×Ñ×$Ñ$€
à×#Ñ#€Ø×Ñ€
Ø—‘€Ø×%Ñ%€÷X
5ñ X
5ðx ¨mØ",°D¸kô8r2   