
    tni                        d dl Z d dlmZ d dlZd dlmZmZmZ d dlmZ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mZmZmZmZ d d	lmZ er3d d
lmZmZmZmZmZ d dl m!Z!m"Z"m#Z# d dlm$Z$  ededef                   Z%	 d dl&m'Z'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z-m.Z.m/Z/ n# e0$ r  ed          w xY we-e.e/fZ1 G d de          Z2d!dZ3d"dZ4d#dZ5d$dZ6d!d Z7dS )%    N)datetime)continue_traceget_baggageget_traceparent)OP
SPANSTATUS)DidNotEnableIntegration)should_send_default_pii)BAGGAGE_HEADER_NAMESENTRY_TRACE_HEADER_NAMETransactionSource)capture_internal_exceptionsensure_integration_enabledevent_from_exceptionSENSITIVE_DATA_SUBSTITUTEreraise)TYPE_CHECKING)AnyCallableOptionalUnionTypeVar)EventProcessorEventHint)ExcInfoF.)bound)HueyResultResultGroupTaskPeriodicTask)CancelExecution	RetryTaskTaskLockedExceptionzHuey is not installedc                   4    e Zd ZdZde Zedd            ZdS )HueyIntegrationhueyzauto.queue.returnNc                  >    t                       t                       d S N)patch_enqueuepatch_execute     Y/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/sentry_sdk/integrations/huey.py
setup_oncezHueyIntegration.setup_once.   s    r1   r+   N)__name__
__module____qualname__
identifieroriginstaticmethodr3   r0   r1   r2   r)   r)   *   sD        J':''F   \  r1   r)   r+   c                      t           j        t          t                    	 	 	 	 	 	 dfd            } | t           _        d S )	Nselfr    taskr#   r+   $Optional[Union[Result, ResultGroup]]c                 :   t          j        t          j        |j        t
          j                  5  t          |t                    s0t          t                      t          t                      i|j        d<    | |          cd d d            S # 1 swxY w Y   d S )N)opnamer9   sentry_headers)
sentry_sdk
start_spanr   QUEUE_SUBMIT_HUEYrA   r)   r9   
isinstancer$   r   r   r   r   kwargs)r<   r=   old_enqueues     r2   _sentry_enqueuez&patch_enqueue.<locals>._sentry_enqueue7   s     "#")
 
 
 	+ 	+
 dL11 
 (,o.?.?1,- ;tT**	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   ABBB)r<   r    r=   r#   r+   r>   )r    enqueuer   r)   )rI   rH   s    @r2   r.   r.   4   sb    ,K==++"+	/+ + + + + >=+$ #DLLLr1   r=   r   r   c                      d fd}|S )	Neventr   hintr   r+   Optional[Event]c                    t                      5  |                     di           }j        |d<   j        j        k    |d<   |                     di           }j        t                      rj        nt          t                      rj	        nt          j        pdj        z
  d|d<   d d d            n# 1 swxY w Y   | S )Ntagshuey_task_idhuey_task_retryextrar   )r=   argsrG   retryzhuey-job)
r   
setdefaultiddefault_retriesretriesrA   r   rT   r   rG   )rL   rM   rP   rS   r=   s       r2   event_processorz._make_event_processor.<locals>.event_processorN   s   (** 	 	##FB//D#'7D &*&:T\&ID"#$$Wb11E	 /003DII2 /003DKK2.3!t|C! !E*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	( s   BB88B<?B<)rL   r   rM   r   r+   rN   r0   )r=   rZ   s   ` r2   _make_event_processorr[   M   s)         . r1   exc_infor   c                 |   t          j                    }| d         t          v r&|j                            t
          j                   d S |j                            t
          j                   t          | t          j	                    j
        t          j        dd          \  }}|                    ||           d S )Nr   F)typehandled)client_options	mechanism)rM   )rC   get_current_scopeHUEY_CONTROL_FLOW_EXCEPTIONStransaction
set_statusr   ABORTEDINTERNAL_ERRORr   
get_clientoptionsr)   r8   capture_event)r\   scoperL   rM   s       r2   _capture_exceptionrl   h   s    (**E{222$$Z%7888	  !:;;;&!,..6*5%HH  KE4
 
D)))))r1   funcc                 J     t          t                     d fd            }|S )NrT   r   rG   r+   c                      	  | i |}n;# t           $ r. t          j                    }t          |           t	          |  Y nw xY w|S r-   )	Exceptionsysr\   rl   r   )rT   rG   resultr\   rm   s       r2   _sentry_executez+_wrap_task_execute.<locals>._sentry_executey   sj    	T4*6**FF 	 	 	|~~Hx(((X	
 s    5AA)rT   r   rG   r   r+   r   )r   r)   )rm   rs   s   ` r2   _wrap_task_executert   x   s>    66     76 r1   c                      t           j        t          t                    	 d
	 	 	 	 	 	 	 dfd	            } | t           _        d S )Nr<   r    r=   r#   	timestampOptional[datetime]r+   r   c                    t          j                    5 }t                      5  d|_        |                                 |                    t          |                     d d d            n# 1 swxY w Y   |j                            dd           }t          |pi |j
        t          j        t          j        t          j                  }|                    t$          j                   t)          |dd          s t+          |j                  |_        d|_        t          j        |          5   | ||          cd d d            cd d d            S # 1 swxY w Y   	 d d d            d S # 1 swxY w Y   d S )Nr*   rB   )rA   r@   sourcer9   _sentry_is_patchedFT)rC   isolation_scoper   _nameclear_breadcrumbsadd_event_processorr[   rG   popr   rA   r   QUEUE_TASK_HUEYr   TASKr)   r9   re   r   OKgetattrrt   executerz   start_transaction)r<   r=   rv   rk   rB   rd   old_executes         r2   rs   z&patch_execute.<locals>._sentry_execute   sR    ')) 	:U,.. G G$'')))))*?*E*EFFFG G G G G G G G G G G G G G G
 "[__-=tDDN($"Y%(-&-  K "":=1114!5u== /1$,??*.'-k:: : :"{4y99: : : : : : :+	: 	: 	: 	: 	: 	: 	: 	:*: : : : : : : : :+	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:sY   E0>A."E0.A2	2E05A2	6B;E01E>E0E	E0E	E00E47E4r-   )r<   r    r=   r#   rv   rw   r+   r   )r    _executer   r)   )rs   r   s    @r2   r/   r/      sm    -K==FJ::":/C:	: : : : : >=:6 $DMMMr1   r4   )r=   r   r+   r   )r\   r   r+   N)rm   r   r+   r   )8rq   r   rC   sentry_sdk.apir   r   r   sentry_sdk.constsr   r   sentry_sdk.integrationsr	   r
   sentry_sdk.scoper   sentry_sdk.tracingr   r   r   sentry_sdk.utilsr   r   r   r   r   typingr   r   r   r   r   r   sentry_sdk._typesr   r   r   r   r   huey.apir    r!   r"   r#   r$   huey.exceptionsr%   r&   r'   ImportErrorrc   r)   r.   r[   rl   rt   r/   r0   r1   r2   <module>r      s   



           G G G G G G G G G G , , , , , , , , = = = = = = = = 4 4 4 4 4 4         
              !           />>>>>>>>>>>>>>==========((((((8CH-...A0FFFFFFFFFFFFFFOOOOOOOOOOO 0 0 0
,.
/
//0 !0<OP     k   # # # #2   6* * * *    $ $ $ $ $ $s   B B-