
    tni                     R   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dZ*d 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                   4    e Zd ZdZde Zedd            ZdS )RqIntegrationrqzauto.queue.returnNc                     t          t                    } t          t          |            t          j        t          t                    dddddddddt          f
fd	            }|t          _        t          j        	 	 	 	 	 	 	 	 	 	 dfd}|t          _        t          j
        t          t                    	 	 	 	 	 	 	 	 dfd            }|t          _
        t          d           d S )Nselfr   jobr   argsr   kwargsr   c                    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)r    r!   r"   r#   scopetransactionrvold_perform_jobs          W/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/sentry_sdk/integrations/rq.pysentry_patched_perform_jobz<RqIntegration.setup_once.<locals>.sentry_patched_perform_job0   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)r   exc_infoc                     t          |d          o|j        o
|j        dk    }|j        t          j        k    p|j        }|r|st          |            | |g|R i |S )Nretries_leftr   )hasattrrD   _statusr   FAILED	is_failed_capture_exception)r    r!   rB   r#   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_headersr3   )r    r!   r#   r<   old_enqueue_jobs       r@   sentry_patched_enqueue_jobz<RqIntegration.setup_once.<locals>.sentry_patched_enqueue_jobg   s]     022Ez%4888::5 501 #?477777rN   z	rq.worker)
r    r   r!   r   rB   r   r#   r   r   r   )r    r   r!   r   r#   r   r   r   )r   
RQ_VERSIONr   r   r   perform_jobr   boolhandle_exceptionr   enqueue_jobr   )versionrA   rM   rU   rT   rL   r?   s       @@@r@   
setup_oncezRqIntegration.setup_once)   sp   
++}g666 ,	#M?	C	C		#	,3	?D		 	 	 	 	 
D	C	@ 8%6	H	H!&	H38	HDI	H	H 	H 	H 	H 	H 	H #B+	#M?	C	C		8		8 %		816		8		8 		8 		8 		8 		8 
D	C		8 7k"""""rN   )r   N)__name__
__module____qualname__
identifierr)   staticmethodr\    rN   r@   r   r   %   sJ        J':''FK# K# K# \K# K# K#rN   r   weak_jobCallable[[], Job]r   r   c                      d fd}|S )Neventr   hintdict[str, Any]r   c                                 }|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funcr"   r#   descriptionenqueued_at
started_atzrq-jobrB   r   r   r   fingerprint)r
   
setdefaultidr7   r"   r#   rm   rn   r   ro   
issubclassr   )rf   rg   r!   rj   r*   rc   s        r@   event_processorz._make_event_processor.<locals>.event_processory   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=)rf   r   rg   rh   r   r   rb   )rc   rt   s   ` r@   r0   r0   x   s)         6 rN   rB   r   r#   r   c                     t          j                    }t          | |j        ddd          \  }}t          j        ||           d S )Nr   F)typehandled)client_options	mechanism)rg   )r,   r:   r   optionscapture_event)rB   r#   clientrf   rg   s        r@   rI   rI      sY    "$$F&~E22  KE4 U......rN   )rc   rd   r   r   )rB   r   r#   r   r   N),r1   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   rV   	rq.workerr   rq.jobr   ImportErrortypingr   r   r   sentry_sdk._typesr   r   r   r   r   r0   rI   rb   rN   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((((((P# P# P# P# P#K P# P# P#f   >	/ 	/ 	/ 	/ 	/ 	/s   A A*