
    lh                        d dl Z d dlZd dlmZ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mZmZmZ 	 d dlZd dlmZ d d	lmZ d d
lmZmZm Z m!Z! d dl#m$Z$ e$r0d dl#m%Z%m&Z&m'Z'm(Z( d dl)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3 d dlm4Z4 eee fZ5 G d de      Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>y# e"$ r	  ed      w xY w)    N)OP
SPANSTATUS)_check_minimum_versionDidNotEnableIntegration)ignore_logger)should_send_default_pii)TransactionTransactionSource)capture_internal_exceptionsensure_integration_enabledevent_from_exceptionSENSITIVE_DATA_SUBSTITUTEparse_versionreraise)VERSION)ArqRedis)JobExecutionFailedRetryRetryJobWorkerzArq is not installed)TYPE_CHECKING)AnyDictOptionalUnion)EventProcessorEventExcInfoHint)CronJob)Job)WorkerCoroutine)Functionc                   *    e Zd ZdZde Zed        Zy)ArqIntegrationarqzauto.queue.c                     	 t        t        t              rt        t              } nt        j                  d d } t        t        |        t                t                t                t        d       y # t
        t        f$ r d } Y Mw xY w)N   z
arq.worker)
isinstanceARQ_VERSIONstrr   version	TypeError
ValueErrorr   r&   patch_enqueue_jobpatch_run_jobpatch_create_workerr   )r-   s    m/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/sentry_sdk/integrations/arq.py
setup_oncezArqIntegration.setup_once-   sm    	+s+'4%--bq1
 	~w7l# :& 	G	s   7A3 3BBN)__name__
__module____qualname__
identifieroriginstaticmethodr4        r3   r&   r&   )   s%    J:,'F$ $r<   r&   c                  l    t         j                  j                  } fd}| |_        |t         _        y )Nc                 N  K   t        j                         j                  t              }| | |g|i | d {   S t        j                  t
        j                  |t        j                        5   | |g|i | d {   cd d d        S 7 W7 # 1 sw Y   y xY ww)N)opnamer9   )
sentry_sdk
get_clientget_integrationr&   
start_spanr   QUEUE_SUBMIT_ARQr9   )selffunctionargskwargsintegrationold_enqueue_jobs        r3   _sentry_enqueue_jobz.patch_enqueue_job.<locals>._sentry_enqueue_jobH   s      ++-==nM(xI$I&III"""".:O:O
 	J )xI$I&II	J 	J J
 J	J 	Js9   :B%B8B%6BBBB%BB"B%)r   enqueue_job__kwdefaults__)original_kwdefaultsrL   rK   s     @r3   r0   r0   C   s3    **O)88	J *=&.Hr<   c                  F    t         j                  fd} | t         _        y )Nc                   K   t        j                         j                  t              }| | ||       d {   S t        j                         5 }d|_        |j                          t        ddt        j                  t        j                  t        j                        }t        j                  |      5   | ||       d {   cd d d        cd d d        S 7 7 # 1 sw Y   nxY w	 d d d        y # 1 sw Y   y xY ww)Nr'   zunknown arq taskok)r@   statusr?   sourcer9   )rA   rB   rC   r&   isolation_scope_nameclear_breadcrumbsr
   r   QUEUE_TASK_ARQr   TASKr9   start_transaction)rF   job_idscorerJ   scopetransactionold_run_jobs         r3   _sentry_run_jobz&patch_run_job.<locals>._sentry_run_job[   s      ++-==nM$T65999'') 	>UEK##%%'$$(--%,,K --k: >(vu==> >	> 	> : >> > >	> 	> 	>sX   7DCDA'C9:C#C!	C#	C9D!C##C,	(C90	D9D>D)r   run_job)r`   r_   s    @r3   r1   r1   W   s    ..K>* %FNr<   c                    t        j                         }|j                  ^| d   t        v r*|j                  j	                  t
        j                         y |j                  j	                  t
        j                         t        | t        j                         j                  t        j                  dd      \  }}t        j                  ||       y )Nr   F)typehandled)client_options	mechanism)hint)rA   get_current_scoper^   ARQ_CONTROL_FLOW_EXCEPTIONS
set_statusr   ABORTEDINTERNAL_ERRORr   rB   optionsr&   r8   capture_event)exc_infor]   eventrg   s       r3   _capture_exceptionrq   s   s    ((*E$A;55((););<$$Z%>%>?&!,,.66)44GKE4
 U.r<   c                       fd}|S )Nc                    t               5  t        j                         }|j                  d   |j                  _        d   | d<   | j                  di       }d   |d<   d   dkD  |d<   | j                  d	i       }d   t               rnt        t               rnt        d   d
|d<   d d d        | S # 1 sw Y   | S xY w)Njob_namer^   tagsr[   arq_task_idjob_try   arq_task_retryextra)taskrH   rI   retryzarq-job)r   rA   rh   r^   r@   
setdefaultr	   r   )rp   rg   r]   ru   rz   rH   ctxrI   s        r3   event_processorz._make_event_processor.<locals>.event_processor   s     )* 	002E  ,),Z!!&'*:m$##FB/D"%h-D%(^a%7D!"$$Wb1EJ35D;T 67F=VY	 E)	* +	* s   B$B::Cr;   )r~   rH   rI   r   s   ``` r3   _make_event_processorr      s    4 r<   c                       fd}|S )Nc                   K   t        j                         j                  t              }| | g|i | d {   S t        j                         j                  t        i | dig|i |       	  | g|i | d {   }|S 7 Q7 # t        $ r+ t        j                         }t        |       t        |  Y S w xY ww)Nrt   )rA   rB   rC   r&   get_isolation_scopeadd_event_processorr   	Exceptionsysro   rq   r   )r~   rH   rI   rJ   resultro   	coroutiner@   s         r3   _sentry_coroutinez*_wrap_coroutine.<locals>._sentry_coroutine   s      ++-==nM"388888&&(<<!";S";*d";MdMfM	
	$S:4:6::F  9 ; 	||~Hx(X	sE   9C	B:C	8B BB C	B 0CC	CC	r;   )r@   r   r   s   `` r3   _wrap_coroutiner      s    & r<   c                      t         j                  j                  t        t              fd       } | t         j                  _        y )Nc                     | d   }t        |t              r`d|v r,|j                  dg       D cg c]  }t        |       c}|d<   d|v r,|j                  dg       D cg c]  }t	        |       c}|d<   t        |d      r(|j                  D cg c]  }t        |       c}|_        t        |d      r,|j                  xs g D cg c]  }t	        |       c}|_        d|v r,|j                  dg       D cg c]  }t        |       c}|d<   d|v r,|j                  dg       D cg c]  }t	        |       c}|d<    | i |S c c}w c c}w c c}w c c}w c c}w c c}w )Nr   	functions	cron_jobs)r*   dictget_get_arq_function_get_arq_cron_jobhasattrr   r   )rH   rI   settings_clsfunccron_jobold_create_workers        r3   _sentry_create_workerz2patch_create_worker.<locals>._sentry_create_worker   s    AwlD)l* !- 0 0b A- &d+-[) l* %1$4$4["$E-  &h/-[)
 <-4@4J4J&,0!$'&L" <- ".!7!7!=2& "(+&L"
 & 4:JJ{B4O#,0!$'#F; & <BJJ{TV<W#08!(+#F; !$1&11;-
-&&##s#   EEE	E;E+E$)r'   workercreate_workerr   r&   )r   r   s    @r3   r2   r2      s=    

000AB#2 C#2J  5CJJr<   c                     t         j                  j                  |       }t        |j                  |j
                        |_        |S N)r'   r   r   r   r@   r   )r   arq_funcs     r3   r   r      s2    zzt$H(8J8JKHOr<   c                 P    t        | j                  | j                        | _        | S r   )r   r@   r   )r   s    r3   r   r      s     (8J8JKHOr<   )?r   rA   sentry_sdk.constsr   r   sentry_sdk.integrationsr   r   r   sentry_sdk.integrations.loggingr   sentry_sdk.scoper	   sentry_sdk.tracingr
   r   sentry_sdk.utilsr   r   r   r   r   r   
arq.workerr'   arq.versionr   r+   arq.connectionsr   r   r   r   r   ImportErrortypingr   r   r   r   r   sentry_sdk._typesr   r   r   r    arq.cronr!   arq.jobsr"   
arq.typingr#   r$   ri   r&   r0   r1   rq   r   r   r2   r   r   r;   r<   r3   <module>r      s    
  , U U 9 4 = /2(FF !11FF *#15(C $[ $4/(%8/&>2*5Zy  /
-
../s    B= =C