
    \j                        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r-d 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/ e-e.e/fZ1 G d de      Z2ddZ3ddZ4ddZ5ddZ6ddZ7y# e0$ r	  ed      w xY w)    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                   ,    e Zd ZdZde Zedd       Zy)HueyIntegrationhueyzauto.queue.Nc                  ,    t                t                y N)patch_enqueuepatch_execute     F/root/env/lib/python3.12/site-packages/sentry_sdk/integrations/huey.py
setup_oncezHueyIntegration.setup_once.   s    r0   returnN)__name__
__module____qualname__
identifieroriginstaticmethodr2   r/   r0   r1   r)   r)   *   s%    J:,'F r0   r)   c                  z    t         j                  t        t              	 	 	 	 	 	 dfd       } | t         _        y )Nc                 4   t        j                  t        j                  |j                  t
        j                        5  t        |t              s+t        t               t        t               i|j                  d<    | |      cd d d        S # 1 sw Y   y xY w)N)opnamer9   sentry_headers)
sentry_sdk
start_spanr   QUEUE_SUBMIT_HUEYr>   r)   r9   
isinstancer$   r   r   r   r   kwargs)selftaskold_enqueues     r1   _sentry_enqueuez&patch_enqueue.<locals>._sentry_enqueue7   s{     ""##"))
 	+
 dL1
 (,o.?1,- tT*	+ 	+ 	+s    ABB)rE   r    rF   r#   r4   z$Optional[Union[Result, ResultGroup]])r    enqueuer   r)   )rH   rG   s    @r1   r-   r-   4   sF    ,,K=++"+	/+ >+$ #DLr0   c                      d fd}|S )Nc                    t               5  | j                  di       }j                  |d<   j                  j                  kD  |d<   | j                  di       }j
                  t               rj                  nt        t               rj                  nt        j                  xs dj                  z
  d|d<   d d d        | S # 1 sw Y   | S xY w)Ntagshuey_task_idhuey_task_retryextrar   )rF   argsrD   retryzhuey-job)
r   
setdefaultiddefault_retriesretriesr>   r   rP   r   rD   )eventhintrL   rO   rF   s       r1   event_processorz._make_event_processor.<locals>.event_processorN   s    (* 	##FB/D#'77D &*&:&:T\\&ID"#$$Wb1E		 /0 II2 /0 KK2..3!t||C!E*	( )	( s   B3C		C)rV   r   rW   r   r4   zOptional[Event]r/   )rF   rX   s   ` r1   _make_event_processorrY   M   s    . r0   c                    t        j                         }| d   t        v r*|j                  j	                  t
        j                         y |j                  j	                  t
        j                         t        | t        j                         j                  t        j                  dd      \  }}|j                  ||       y )Nr   F)typehandled)client_options	mechanism)rW   )r@   get_current_scopeHUEY_CONTROL_FLOW_EXCEPTIONStransaction
set_statusr   ABORTEDINTERNAL_ERRORr   
get_clientoptionsr)   r8   capture_event)exc_infoscoperV   rW   s       r1   _capture_exceptionrj   h   s    ((*E{22$$Z%7%78	  !:!:;&!,,.66*55%HKE4
 
D)r0   c                 :     t        t               d fd       }|S )Nc                      	  | i |}|S # t         $ r+ t        j                         }t        |       t	        |  Y S w xY wr,   )	Exceptionsysrh   rj   r   )rP   rD   resultrh   funcs       r1   _sentry_executez+_wrap_task_execute.<locals>._sentry_executey   sO    	4*6*F   	||~Hx(X	s    0A A)rP   r   rD   r   r4   r   )r   r)   )rp   rq   s   ` r1   _wrap_task_executerr   x   s$    6 7 r0   c                      t         j                  t        t              	 d	 	 	 	 	 	 	 dfd       } | t         _        y )Nc                    t        j                         5 }t               5  d|_        |j	                          |j                  t        |             d d d        |j                  j                  dd       }t        |xs i |j                  t        j                  t        j                  t        j                         }|j#                  t$        j&                         t)        |dd      s!t+        |j,                        |_        d|_        t        j0                  |      5   | ||      cd d d        cd d d        S # 1 sw Y   xY w# 1 sw Y   nxY w	 d d d        y # 1 sw Y   y xY w)Nr*   r?   )r>   r=   sourcer9   _sentry_is_patchedFT)r@   isolation_scoper   _nameclear_breadcrumbsadd_event_processorrY   rD   popr   r>   r   QUEUE_TASK_HUEYr   TASKr)   r9   rb   r   OKgetattrrr   executerv   start_transaction)rE   rF   	timestampri   r?   ra   old_executes         r1   rq   z&patch_execute.<locals>._sentry_execute   s5    '') 	:U,. G$'')))*?*EFG
 "[[__-=tDN($"YY%%(--&--K "":==14!5u=1$,,?*.'--k: :"4y9: :+	: 	:G G(: : :+	: 	: 	:s;   E 2D>CE !
E
+	E >E	E 
E	E  E)r,   )rE   r    rF   r#   r   zOptional[datetime]r4   r   )r    _executer   r)   )rq   r   s    @r1   r.   r.      sQ    --K=FJ::":/C:	: >:6 $DMr0   r3   )rF   r   r4   r   )rh   r   r4   N)rp   r   r4   r   )8rn   r   r@   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'   ImportErrorr`   r)   r-   rY   rj   rr   r.   r/   r0   r1   <module>r      s    
   G G , = 4 
  !>>==(8CH-.A0FFOO
 !0<OP k #26* $I  0
.
//0s   =B: :C