o
    hC                     @   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,   ^/var/www/html/pro-man-master/venv/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_sdk
start_spanr   QUEUE_SUBMIT_HUEYr6   r'   r3   
isinstancer#   r   r   r   r   kwargs)selftaskold_enqueuer,   r-   _sentry_enqueue9   s   

$z&patch_enqueue.<locals>._sentry_enqueue)r   enqueuer   r'   )rA   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tagshuey_task_idhuey_task_retryextrar   )r>   argsr<   retryzhuey-job)
r   
setdefaultiddefault_retriesretriesr6   r
   rG   r   r<   )eventhintrC   rF   r>   r,   r-   event_processorP   s$   

z._make_event_processor.<locals>.event_processorr,   )r>   rP   r,   rO   r-   _make_event_processorN   s   rQ   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)typehandled)client_options	mechanism)rN   )r8   get_current_scopeHUEY_CONTROL_FLOW_EXCEPTIONStransaction
set_statusr   ABORTEDINTERNAL_ERRORr   
get_clientoptionsr'   r2   capture_event)exc_infoscoperM   rN   r,   r,   r-   _capture_exceptionl   s   

ra   c                    s   t t  fdd}|S )Nc                     sB   z
 | i |}W |S  t y    t }t| t|  Y |S w r)   )	Exceptionsysr_   ra   r   )rG   r<   resultr_   funcr,   r-   _sentry_execute   s   
z+_wrap_task_execute.<locals>._sentry_execute)r   r'   )rf   rg   r,   re   r-   _wrap_task_execute}   s   rh   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   isolation_scoper   _nameclear_breadcrumbsadd_event_processorrQ   r<   popr   r6   r   QUEUE_TASK_HUEYr   TASKr'   r3   rY   r   OKgetattrrh   executerj   start_transaction)r=   r>   	timestampr`   r7   rX   old_executer,   r-   rg      s0   

"z&patch_execute.<locals>._sentry_executer)   )r   _executer   r'   )rg   r,   rw   r-   r+      s   
r+   )8rc   r   r8   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&   ImportErrorrW   r'   r*   rQ   ra   rh   r+   r,   r,   r,   r-   <module>   s8    
