<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    \G                     @   s   d dl mZ d dl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 d dlmZ G d	d
 d
eZdd Zdd ZdddZdd Zdd ZdS )    )absolute_importN)SoftTimeLimitExceededRetry)Hub)capture_internal_exceptionsevent_from_exception)reraise)Integration)ignore_loggerc                   @   s   e Zd ZdZedd ZdS )CeleryIntegrationceleryc                     s<   dd l m  m}  | j  fdd}|| _t  td d S )Nr   c                    s4   t ||j|_t ||j|_t| | |f||S N)_wrap_task_call__call__run_wrap_tracer)nametaskargskwargsZold_build_tracer O/opt/alt/python38/lib/python3.8/site-packages/sentry_sdk/integrations/celery.pysentry_build_tracer   s    z9CeleryIntegration.setup_once.<locals>.sentry_build_tracerzcelery.worker.job)Zcelery.app.traceZapptraceZbuild_tracer_patch_worker_exitr
   )r   r   r   r   r   
setup_once   s    zCeleryIntegration.setup_onceN)__name__
__module____qualname__Z
identifierstaticmethodr   r   r   r   r   r      s   r   c                    s    fdd}|S )Nc               
      sl   t j}|td kr | |S | <}d|_|  |tf| |  | |W  5 Q R  S Q R X d S )Nr   )	r   currentget_integrationr   Z
push_scope_nameZclear_breadcrumbsZadd_event_processor_make_event_processor)r   r   hubZscopefr   r   r   _inner/   s    

z_wrap_tracer.<locals>._innerr   r   r'   r(   r   r&   r   r   (   s    r   c                    s    fdd}|S )Nc                     sR   z | |W S  t k
rL   t }t  t| W 5 Q R X t|  Y nX d S r   )	Exceptionsysexc_infor   _capture_exceptionr   )r   r   r,   r&   r   r   r(   A   s    z_wrap_task_call.<locals>._innerr   r)   r   r&   r   r   >   s    	r   c                    s    fdd}|S )Nc              	      s   t   j| d< W 5 Q R X t  $ | di }j d|d< W 5 Q R X d|krt  . t|d d trddtd	g| d
< W 5 Q R X | S )NZtransactionextra)Z	task_namer   r   z
celery-jobr,   r   r   r   r   Zfingerprint)r   r   
setdefault
issubclassr   getattr)eventhintr.   r   r   r   r   r   event_processorN   s     
z._make_event_processor.<locals>.event_processorr   )r   Zuuidr   r   Zrequestr5   r   r4   r   r$   M   s    r$   c                 C   sv   t j}|td krd S t|d tr*d S t| drHt|d | jrHd S t||j	j
dddd\}}|j||d d S )N   throwsr   F)typeZhandled)Zclient_optionsZ	mechanism)r3   )r   r!   r"   r   
isinstancer   hasattrr7   r   ZclientoptionsZcapture_event)r   r,   r%   r2   r3   r   r   r   r-   h   s    
r-   c                     s(   ddl m}  | j  fdd}|| _d S )Nr   )Workerc                     sD   z | |W S t  " tj}|td k	r4|  W 5 Q R X X d S r   )r   r   r!   r"   r   flush)r   r   r%   Zold_workloopr   r   sentry_workloop   s    z+_patch_worker_exit.<locals>.sentry_workloop)Zbilliard.poolr<   Zworkloop)r<   r?   r   r>   r   r   {   s    	r   )N)Z
__future__r   r+   Zcelery.exceptionsr   r   Zsentry_sdk.hubr   Zsentry_sdk.utilsr   r   Zsentry_sdk._compatr   Zsentry_sdk.integrationsr	   Zsentry_sdk.integrations.loggingr
   r   r   r   r$   r-   r   r   r   r   r   <module>   s   
