U 췀g@sddlZddlZddlmZmZddlmZmZddlm Z ddl m Z ddl m Z mZddlmZmZmZmZmZmZz._sentry_enqueue_job)rZ enqueue_job)rEr1rDr2r.Gs r.cstjfdd}|t_dS)Nc stt}|dkr(|||IdHStf}d|_|tddtj t tj d}t |,|||IdHW5QRW5QRSQRXW5QRXdS)Nr$zunknown arq taskok)r;statusr:sourcer8) r<r=r>r#Zisolation_scope_nameZclear_breadcrumbsrrZQUEUE_TASK_ARQr r8Zstart_transaction)r?job_idZscorerCscope transactionZ old_run_jobr1r2_sentry_run_job]s  z&patch_run_job.._sentry_run_job)rZrun_job)rNr1rMr2r/Ys r/cCspt}|jdk r>|dtkr0|jtjdS|jtjt|t j t j ddd\}}tj ||ddS)NrF)typeZhandled)Zclient_optionsZ mechanism)hint)r<get_current_scoperLARQ_CONTROL_FLOW_EXCEPTIONSZ set_statusrZABORTEDINTERNAL_ERRORr r=optionsr#r7Z capture_event)exc_inforKeventrPr1r1r2_capture_exceptionus   rWcsfdd}|S)Nc stt}|jdk r2d|j_d|d<|di}d|d<ddk|d<|d i}dtrvnttrntdd |d <W5QRX|S) Njob_namerLtagsrJZ arq_task_idZjob_tryZarq_task_retryextra)taskrArBretryzarq-job)r r<rQrLr; setdefaultrr )rVrPrKrYr[rActxrBr1r2event_processors         z._make_event_processor..event_processorr1)r`rArBrar1r_r2_make_event_processorsrbcsfdd}|S)Ncstt}|dkr,|f||IdHStt|dif||z|f||IdH}Wn,tk rt }t |t |YnX|S)NrX) r<r=r>r#Zget_isolation_scopeZadd_event_processorrb ExceptionsysrUrWr)r`rArBrCresultrU coroutiner;r1r2_sentry_coroutinesz*_wrap_coroutine.._sentry_coroutiner1)r;rgrhr1rfr2_wrap_coroutinesrics*tjjttfdd}|tj_dS)Ncs|d}t|trNd|kr0dd|dD|d<d|krNdd|dD|d<t|drjdd|jD|_t|drdd|jD|_d|krd d|dD|d<d|krd d|dD|d<||S) Nr functionscSsg|] }t|qSr1_get_arq_function.0funcr1r1r2 szFpatch_create_worker.._sentry_create_worker.. cron_jobscSsg|] }t|qSr1_get_arq_cron_jobrncron_jobr1r1r2rpscSsg|] }t|qSr1rkrmr1r1r2rpscSsg|] }t|qSr1rrrtr1r1r2rpscSsg|] }t|qSr1rkrmr1r1r2rpscSsg|] }t|qSr1rrrtr1r1r2rps)r'dicthasattrrjrq)rArBZ settings_clsZold_create_workerr1r2_sentry_create_workers6       z2patch_create_worker.._sentry_create_worker)r$workerZ create_workerr r#)ryr1rxr2r0s#r0cCs tj|}t|j|j|_|SN)r$rzrorir;rg)roZarq_funcr1r1r2rls rlcCst|j|j|_|Sr{)rir;rg)rur1r1r2rssrs)>rdr<Zsentry_sdk.constsrrZsentry_sdk.integrationsrrZsentry_sdk.integrations.loggingrZsentry_sdk.scoperZsentry_sdk.tracingrr Zsentry_sdk.utilsr r r r rrZ arq.workerr$Z arq.versionrr(Zarq.connectionsrrrrr ImportErrortypingrrrrrZsentry_sdk._typesrrrrZarq.cronrZarq.jobsr Z arq.typingr!r"rRr#r.r/rWrbrir0rlrsr1r1r1r2s@           +