
    fi                     N   d dl Z d dlZd dl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mZmZmZmZmZ 	 d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ n# e$ r  ed          w xY wd dl m!Z! e!rd dl m"Z"m#Z# d dl$m%Z%m&Z& d dlm'Z' d dlm(Z(  G d de	          Z)d Z*d Z+dS )    N)OP)continue_trace)_check_minimum_versionDidNotEnableIntegration)ignore_logger)TransactionSource)capture_internal_exceptionsensure_integration_enabledevent_from_exceptionformat_timestampparse_version)Queue)JobTimeoutException)VERSION)Worker)	JobStatuszRQ not installed)TYPE_CHECKING)AnyCallable)EventEventProcessor)ExcInfo)Jobc                   2    e Zd ZdZde Zed             ZdS )RqIntegrationrqzauto.queue.c                     t          t                    } t          t          |            t          j        t          t                    fd            }|t          _        t          j        fd}|t          _        t          j	        t          t                    fd            }|t          _	        t          d           d S )Nc                    t          j                    5 }|                                 |                    t	          t          j        |                               t          |j        	                    d          pi t          j        dt          j        t          j                  }t!                      5  |j        |_        d d d            n# 1 swxY w Y   t          j        |d|i          5   | |g|R i |}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   | j        r%t          j                                                     |S )N_sentry_trace_headerszunknown RQ task)opnamesourceoriginrq_job)custom_sampling_context)
sentry_sdk	new_scopeclear_breadcrumbsadd_event_processor_make_event_processorweakrefrefr   metagetr   QUEUE_TASK_RQr	   TASKr   r$   r
   	func_namer"   start_transactionis_horse
get_clientflush)selfjobargskwargsscopetransactionrvold_perform_jobs          j/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/sentry_sdk/integrations/rq.pysentry_patched_perform_jobz<RqIntegration.setup_once.<locals>.sentry_patched_perform_job1   s7    %'' E5'')))))*?C@P@P*Q*QRRR,HLL!899?R'*,1(/   122 5 5'*}K$5 5 5 5 5 5 5 5 5 5 5 5 5 5 5  1-5sO   E E )sDTDDDVDDB	E E E E E E E E E E E E E E EE E E E E E E E E E E E E E E* } 0 %''--///IsZ   B#D%8CD%C	D%C	D%4DD%D	D%D	D%%D),D)c                     t          |d          o|j        o
|j        dk    }|j        t          j        k    p|j        }|r|st          |            | |g|R i |S )Nretries_leftr   )hasattrrB   _statusr   FAILED	is_failed_capture_exception)r7   r8   exc_infor:   retryfailedold_handle_exceptions         r?   sentry_patched_handle_exceptionzARqIntegration.setup_once.<locals>.sentry_patched_handle_exceptionU   s     ^,, )$)$q( 
 [I$44EF -e -"8,,,''cGHGGGGGG    c                     t          j                    }|j        )t          |                                          |j        d<    | |fi |S )Nr    )r'   get_current_scopespandictiter_trace_propagation_headersr.   )r7   r8   r:   r;   old_enqueue_jobs       r?   sentry_patched_enqueue_jobz<RqIntegration.setup_once.<locals>.sentry_patched_enqueue_jobf   s]     022Ez%4888::5 501 #?477777rM   z	rq.worker)r   
RQ_VERSIONr   r   r   perform_jobr   handle_exceptionr   enqueue_jobr   )versionr@   rL   rT   rS   rK   r>   s       @@@r?   
setup_oncezRqIntegration.setup_once)   s      
++}g666 ,	#M?	C	C	 	 	 	 
D	C	> 8%6	H 	H 	H 	H 	H #B+	#M?	C	C	8 	8 	8 	8 
D	C	8 7k"""""rM   N)__name__
__module____qualname__
identifierr$   staticmethodrZ    rM   r?   r   r   %   sD        J':''FI# I# \I# I# I#rM   r   c                       fd}|S )Nc                                 }|t                      5  |                     di           }|j        |j        |j        |j        |j        d}|j        rt          |j                  |d<   |j	        rt          |j	                  |d<   ||d<   d d d            n# 1 swxY w Y   d|v rTt                      5  t          |d         d         t                    rdd	|j        g| d
<   d d d            n# 1 swxY w Y   | S )Nextra)job_idfuncr9   r:   descriptionenqueued_at
started_atzrq-jobrH   r   r   r   fingerprint)r
   
setdefaultidr2   r9   r:   rf   rg   r   rh   
issubclassr   )eventhintr8   rc   r%   weak_jobs        r?   event_processorz._make_event_processor.<locals>.event_processorx   s   hjj?,.. ) )(("55!fMH!j#&?  ? N,<S_,M,MF=)> L+;CN+K+KF<("(h) ) ) ) ) ) ) ) ) ) ) ) ) ) )" ,.. X Xd:.q13FGG X,02G+WE-(X X X X X X X X X X X X X X X s$   A9B!!B%(B%>/C99C= C=r`   )ro   rp   s   ` r?   r+   r+   v   s$        8 rM   c                     t          j                    }t          | |j        ddd          \  }}t          j        ||           d S )Nr   F)typehandled)client_options	mechanism)rn   )r'   r5   r   optionscapture_event)rH   r:   clientrm   rn   s        r?   rG   rG      sY    "$$F&~E22  KE4 U......rM   ),r,   r'   sentry_sdk.constsr   sentry_sdk.apir   sentry_sdk.integrationsr   r   r   sentry_sdk.integrations.loggingr   sentry_sdk.tracingr	   sentry_sdk.utilsr
   r   r   r   r   rq.queuer   rq.timeoutsr   
rq.versionr   rU   	rq.workerr   rq.jobr   ImportErrortypingr   r   r   sentry_sdk._typesr   r   r   r   r   r+   rG   r`   rM   r?   <module>r      s                     ) ) ) ) ) ) U U U U U U U U U U 9 9 9 9 9 9 0 0 0 0 0 0             +//////000000              + + +
,)
*
**+ !           $$$$$$$$77777777((((((N# N# N# N# N#K N# N# N#b  B
/ 
/ 
/ 
/ 
/s   A A*