o
    0 iC                     @   s~  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rvd 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 dZ%zd dl&m'Z'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z-m.Z.m/Z/ W n e0y   edw e-e.e/fZ1G d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                   @   s&   e Zd ZdZde Zedd ZdS )HueyIntegrationhueyzauto.queue.c                   C   s   t   t  d S N)patch_enqueuepatch_execute r,   r,   h/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/sentry_sdk/integrations/huey.py
setup_once.   s   
zHueyIntegration.setup_onceN)__name__
__module____qualname__
identifieroriginstaticmethodr.   r,   r,   r,   r-   r'   *   s
    
r'   c                     s&   t j tt  fdd} | t _d S )Nc                    sd   t jtj|jtjd t|tst	t
 tt i|jd<  | |W  d    S 1 s+w   Y  d S )N)opnamer3   sentry_headers)
sentry_sdkZ
start_spanr   ZQUEUE_SUBMIT_HUEYr6   r'   r3   
isinstancer#   r   r   r   r   kwargs)selftaskZold_enqueuer,   r-   _sentry_enqueue9   s   

$z&patch_enqueue.<locals>._sentry_enqueue)r   enqueuer   r'   )r>   r,   r=   r-   r*   5   s   
r*   c                    s    fdd}|S )Nc                    s   t  > | di } j|d<  j jk|d< | di } jt r% jntt r, j	nt jp1d j d|d< W d    | S 1 sDw   Y  | S )NtagsZhuey_task_idZhuey_task_retryextrar   )r<   argsr:   retryzhuey-job)
r   
setdefaultidZdefault_retriesretriesr6   r
   rB   r   r:   )eventhintr@   rA   r<   r,   r-   event_processorP   s$   

z._make_event_processor.<locals>.event_processorr,   )r<   rJ   r,   rI   r-   _make_event_processorN   s   rK   c                 C   sf   t  }| d tv r|jtj d S |jtj t| t 	 j
tjddd\}}|j||d d S )Nr   F)typeZhandled)Zclient_optionsZ	mechanism)rH   )r8   Zget_current_scopeHUEY_CONTROL_FLOW_EXCEPTIONStransaction
set_statusr   ZABORTEDINTERNAL_ERRORr   Z
get_clientoptionsr'   r2   Zcapture_event)exc_infoscoperG   rH   r,   r,   r-   _capture_exceptionl   s   

rT   c                    s   t t  fdd}|S )Nc                     sB   z
 | i |}W |S  t y    t }t| t|  Y |S w r)   )	ExceptionsysrR   rT   r   )rB   r:   resultrR   funcr,   r-   _sentry_execute   s   
z+_wrap_task_execute.<locals>._sentry_execute)r   r'   )rY   rZ   r,   rX   r-   _wrap_task_execute}   s   r[   c                     s(   t j tt d fdd	} | t _d S )Nc              	      s
  t  w}t  d|_|  |t| W d    n1 s!w   Y  |jdd }t	|p1i |j
tjtjtjd}|tj t|ddsQt|j|_d|_t |  | ||W  d    W  d    S 1 snw   Y  W d    d S 1 s~w   Y  d S )Nr(   r7   )r6   r5   sourcer3   _sentry_is_patchedFT)r8   Zisolation_scoper   _nameZclear_breadcrumbsZadd_event_processorrK   r:   popr   r6   r   ZQUEUE_TASK_HUEYr   ZTASKr'   r3   rO   r   OKgetattrr[   executer]   Zstart_transaction)r;   r<   	timestamprS   r7   rN   Zold_executer,   r-   rZ      s0   

"z&patch_execute.<locals>._sentry_executer)   )r   Z_executer   r'   )rZ   r,   rd   r-   r+      s   
r+   )8rV   r   r8   Zsentry_sdk.apir   r   r   Zsentry_sdk.constsr   r   Zsentry_sdk.integrationsr   r	   Zsentry_sdk.scoper
   Zsentry_sdk.tracingr   r   r   Zsentry_sdk.utilsr   r   r   r   r   typingr   r   r   r   r   r   Zsentry_sdk._typesr   r   r   r   r   Zhuey.apir   r    r!   r"   r#   Zhuey.exceptionsr$   r%   r&   ImportErrorrM   r'   r*   rK   rT   r[   r+   r,   r,   r,   r-   <module>   s8    
