File: //home/arjun/projects/env/lib/python3.10/site-packages/celery/app/__pycache__/trace.cpython-310.pyc
o
-weo � @ s� d Z ddlZddlZddlZddlZddlmZ ddlmZm Z m
Z
mZmZm
Z
mZmZmZ ddlmZ ddlmZmZ ddlmZ ddlmZ dd lmZ dd
lmZmZ ddlZddl Zddlm!Z!m"Z"m#Z#m$Z$ ddl%m&Z& dd
l'm(Z( ddl'm)Z* ddl+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z<m=Z=m>Z> dZ?ddl@mAZA e4eB�ZCdZDdZEdZFdZGdZHdZIdZJedd�ZKeKeId ejLd!d!�ZMeKeHd"ejNdd�ZOeKeGd#ejPd!d!�ZQeKeFd$ejNdd�ZReKeFd%ejSd!d!�ZTe#jUjVZWe#jXjVZYe#jZjVZ[e$j\Z\e$j]Z]e$j^Z^e$j_Z_e$j`Z`e$jaZae$jbZbece^e`e_h�Zdg Zei Zfed&d'�Zgd(d)� Zhd*d+� Zid,d-� Zjd.d/� ZkG d0d1� d1�ZldUd2d3�Zmddd4eld5d5dejnegedf
d6eod7eej)ejpjqf d8eejrjsjt d9eeo d:eud;eel d<eud=eud>eejv d?e g ewf d&eeg d@eeo dAe eoeedBf e
eoef egegf fdCdD�ZxdUdEdF�ZydGdH� ZzedfdIdJ�Z{eddfdKdL�Z|dMdN� Z}dUdOdP�Z~e!fdQdR�ZdSdT� Z�dS )Vz�Trace task execution.
This module defines how the task execution is traced:
errors are recorded, handlers are applied and so on.
� N)�
namedtuple) �Any�Callable�Dict� FrozenSet�Optional�Sequence�Tuple�Type�Union)�warn)�
ExceptionInfo�ExceptionWithTraceback)�EncodeError)�loads)�prepare_accept_content)� safe_repr�safe_str)�current_app�group�signals�states)�_task_stack)�Context)�Task)�BackendGetMetaError�Ignore�InvalidTaskError�Reject�Retry)�AsyncResult)�
get_logger)�gethostname)�
mro_lookup)�saferepr)�get_pickleable_etype�get_pickleable_exception�get_pickled_exception)� TraceInfo�build_tracer�
trace_task�setup_worker_optimizations�reset_worker_optimizations)�successful_requestszTask %(name)s[%(id)s] receivedzATask %(name)s[%(id)s] succeeded in %(runtime)ss: %(return_value)sz.Task %(name)s[%(id)s] %(description)s: %(exc)sz%Task %(name)s[%(id)s] %(description)szTask %(name)s[%(id)s] %(exc)sz$Task %(name)s[%(id)s] retry: %(exc)s�log_policy_t)�format�description�severity� traceback�mail�rejected� �ignoredzINTERNAL ERRORzraised expectedzraised unexpected�
trace_ok_t)�retval�info�runtime�retstrc C s t j| |d|id� dS )zzLog 'fmt % context' with severity 'INFO'.
'context' is also passed in extra with key 'data' for custom handlers.
�data)�extraN)�loggerr9 )�fmt�context� rA �I/home/arjun/projects/env/lib/python3.10/site-packages/celery/app/trace.pyr9 ~ s r9 c C s t | j|tthdgd�S )z+Return true if the task overrides ``attr``.zcelery.app.task)�stop�monkey_patched)r# � __class__�BaseTask�object)�task�attrrA rA rB �task_has_custom� s �rJ c C s@ t |t�rtS t |t�rtS |jrtS | jrt || j�rtS t S �N)
�
isinstancer �log_policy_rejectr �log_policy_ignore�internal�log_policy_internal�throws�log_policy_expected�log_policy_unexpected)rH �einfo�excrA rA rB �get_log_policy� s
rV c C s t | dd�p|S )z8Use 'shadow' in request for the task name if applicable.�shadowN)�getattr)�request�defaultrA rA rB �
get_task_name� s r[ c @ sV e Zd ZdZdZddd�Z ddd �Zd
d� Zdd
� Zddd�Z ddd�Z
dd� ZdS )r( z!Information about task execution.��stater8 Nc C s || _ || _d S rK r\ )�selfr] r8 rA rA rB �__init__� s
zTraceInfo.__init__FTc C sF |j r|j}n|r|jrd}n| }t| jt| ji| j ||||d�S )NT)�store_errors�
call_errbacks)�
ignore_result�store_errors_even_if_ignored�store_eager_result�RETRY�handle_retry�FAILURE�handle_failurer] )r^ rH �req�eagerra r` rA rA rB �handle_error_state� s
���zTraceInfo.handle_error_statec K � | � ||t� � d S rK ��
_log_errorr
�r^ rH ri �kwargsrA rA rB �
handle_reject� � zTraceInfo.handle_rejectc K rl rK rm ro rA rA rB �
handle_ignore� rr zTraceInfo.handle_ignorec
K s� t �� \}}}zD| j}t|||f�} |r!|jj|j|j| j|d� |� |j|j|j
|j| � tj
j|||| d� tt|jt||j�t|�d�� | W ~S ~w )zHandle retry exception.�rY )�senderrY �reasonrT )�id�namerU )�sys�exc_infor8 r
�backend�
mark_as_retryrw rU r2 �on_retry�argsrp r �
task_retry�sendr9 � LOG_RETRYr[ rx �str)
r^ rH ri r` rp �type_�_�tbrv rT rA rA rB rf � s&