o
    Zhq                     @   s  d dl mZ d dl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mZmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZmZmZ d dlmZmZ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 dZ'zd dl(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/m0Z0m1Z1 W n e2y   edw e/e0e1fZ3G dd deZ4dd Z5dd Z6dd Z7dd Z8d d! Z9dS )"    )absolute_importN)datetime)reraise)TYPE_CHECKING)Hub)continue_traceget_baggageget_traceparent)OP)_should_send_default_pii)DidNotEnableIntegration)BAGGAGE_HEADER_NAMESENTRY_TRACE_HEADER_NAMETRANSACTION_SOURCE_TASK)capture_internal_exceptionsevent_from_exceptionSENSITIVE_DATA_SUBSTITUTE)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edd ZdS )HueyIntegrationhueyc                   C   s   t   t  d S N)patch_enqueuepatch_execute r,   r,   S/var/www/html/lang_env/lib/python3.10/site-packages/sentry_sdk/integrations/huey.py
setup_once-   s   
zHueyIntegration.setup_onceN)__name__
__module____qualname__
identifierstaticmethodr.   r,   r,   r,   r-   r'   *   s    r'   c                     s   t j  fdd} | t _d S )Nc                    s~   t j}|td u r | |S |jtj|jd t|t	s)t
t tt i|jd<  | |W  d    S 1 s8w   Y  d S )N)opdescriptionsentry_headers)r   currentget_integrationr'   Z
start_spanr
   ZQUEUE_SUBMIT_HUEYname
isinstancer#   r   r   r   r	   kwargs)selftaskhubZold_enqueuer,   r-   _sentry_enqueue8   s   


$z&patch_enqueue.<locals>._sentry_enqueue)r   enqueue)r@   r,   r?   r-   r*   4   s   
r*   c                        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retriesr9   r   rE   r   r;   )eventhintrC   rD   r=   r,   r-   event_processorO   s$   

z._make_event_processor.<locals>.event_processorr,   )r=   rM   r,   rL   r-   _make_event_processorM   s   rN   c                 C   sl   t j}| d tv r|jjd d S |jjd t| |jr"|jjnd t	j
ddd\}}|j||d d S )Nr   ZabortedZinternal_errorF)typeZhandled)Zclient_optionsZ	mechanism)rK   )r   r7   HUEY_CONTROL_FLOW_EXCEPTIONSscopetransaction
set_statusr   clientoptionsr'   r2   Zcapture_event)exc_infor>   rJ   rK   r,   r,   r-   _capture_exceptionk   s   

rW   c                    rB   )Nc                     sd   t j}|td u r | i |S z
 | i |}W |S  ty1   t }t| t|  Y |S w r)   )	r   r7   r8   r'   	ExceptionsysrV   rW   r   )rE   r;   r>   resultrV   funcr,   r-   _sentry_execute~   s   
z+_wrap_task_execute.<locals>._sentry_executer,   )r\   r]   r,   r[   r-   _wrap_task_execute|   s   r^   c                     s   t j d fdd	} | t _d S )Nc              	      s"  t j}|td u r | ||S | s}t  d|_|  |t	| W d    n1 s1w   Y  |j
dd }t|pAi |jtjtd}|d t|dds]t|j|_d|_||  | ||W  d    W  d    S 1 szw   Y  W d    d S 1 sw   Y  d S )Nr(   r6   )r9   r4   sourceok_sentry_is_patchedFT)r   r7   r8   r'   Z
push_scoper   _nameZclear_breadcrumbsZadd_event_processorrN   r;   popr   r9   r
   ZQUEUE_TASK_HUEYr   rS   getattrr^   executera   Zstart_transaction)r<   r=   	timestampr>   rQ   r6   rR   Zold_executer,   r-   r]      s4   


"z&patch_execute.<locals>._sentry_executer)   )r   Z_execute)r]   r,   rg   r-   r+      s   
r+   ):
__future__r   rY   r   Zsentry_sdk._compatr   Zsentry_sdk._typesr   Z
sentry_sdkr   Zsentry_sdk.apir   r   r	   Zsentry_sdk.constsr
   Zsentry_sdk.hubr   Zsentry_sdk.integrationsr   r   Zsentry_sdk.tracingr   r   r   Zsentry_sdk.utilsr   r   r   typingr   r   r   r   r   r   r   r   r   r   Zhuey.apir   r    r!   r"   r#   Zhuey.exceptionsr$   r%   r&   ImportErrorrP   r'   r*   rN   rW   r^   r+   r,   r,   r,   r-   <module>   s<    

