§
    xÅj€  ã                   óF  — d dl Z d dlZd dlmZmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlZd dlmZ d dlmZmZ d dlmZmZmZmZ er4d d	l
mZmZmZmZ d d
lmZ  ededef         ¬¦  «        Z ede¬¦  «        Z G d„ de¦  «        Z	 	 	 	 	 	 	 	 dd„Z ddde!ddfd„Z"dd„Z#dS )é    N)ÚFutureÚThreadPoolExecutor©Úwraps)ÚThreadÚcurrent_thread)ÚTYPE_CHECKING)ÚIntegration©Úuse_isolation_scopeÚ	use_scope)Úcapture_internal_exceptionsÚevent_from_exceptionÚloggerÚreraise)ÚAnyÚCallableÚOptionalÚTypeVar)ÚExcInfoÚF.)ÚboundÚTc                   óB   — e Zd ZdZ	 d
dddeddfd„Zedd	„¦   «         ZdS )ÚThreadingIntegrationÚ	threadingNTÚpropagate_hubzOptional[bool]Úpropagate_scopeÚreturnc                 óV   — |�t          j        d¦  «         || _        |�	|| _        d S d S )NzLDeprecated: propagate_hub is deprecated. This will be removed in the future.)r   Úwarningr   )Úselfr   r   s      úRC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/threading.pyÚ__init__zThreadingIntegration.__init__   sG   € ð Ð$ÝŒNØ^ñô ð ð  /ˆÔàÐ$Ø#0ˆDÔ Ð Ð ð %Ð$ó    c                  óŽ  ‡‡— t           j        Š	 ddlm}  n# t          $ r d } Y nw xY w	 dd l}|j        }n# t          t          f$ r d }Y nw xY wt          j	        dk     o|d uo|dk     o| d uo| dk    o| dk     Št          ‰¦  «        dˆˆfd„¦   «         }|t           _        t          t          j        ‰¦  «        t          _        d S )Nr   )ÚVERSION)é   é	   z4.0.0)r(   r   )é   r   r"   r   Úar   Úkwr   c           
      óf  •— t          j        ¦   «                              t          ¦  «        }|€ ‰| g|¢R i |¤ŽS |j        rŠ‰r=t          j        dd¬¦  «         t          j        ¦   «         }t          j        ¦   «         }nOt          j        ¦   «          	                    ¦   «         }t          j        ¦   «          	                    ¦   «         }nd }d }t          ¦   «         5  t          ||t          | j        d| j        ¦  «        ¦  «        }|| _        d d d ¦  «         n# 1 swxY w Y    ‰| g|¢R i |¤ŽS )NaV  There is a known issue with Django channels 2.x and 3.x when using Python 3.8 or older. (Async support is emulated using threads and some Sentry data may be leaked between those threads.) Please either upgrade to Django channels 4.0+, use Django's async features available in Django 3.1+ instead of Django channels, or upgrade to Python 3.9+.é   )Ú
stacklevelÚ__func__)Ú
sentry_sdkÚ
get_clientÚget_integrationr   r   ÚwarningsÚwarnÚget_isolation_scopeÚget_current_scopeÚforkr   Ú	_wrap_runÚgetattrÚrun)	r"   r+   r,   ÚintegrationÚisolation_scopeÚcurrent_scopeÚnew_runÚis_async_emulated_with_threadsÚ	old_starts	          €€r#   Úsentry_startz5ThreadingIntegration.setup_once.<locals>.sentry_startH   s–  ø€ å$Ô/Ñ1Ô1×AÒAÕBVÑWÔWˆKØÐ"Ø �y Ð0¨Ð0Ð0Ð0¨RÐ0Ð0Ð0àÔ*ð %Ø1ð JÝ”Mðjð $%ðñ ô ð õ '1Ô&DÑ&FÔ&F�OÝ$.Ô$@Ñ$BÔ$B�M�Mõ '1Ô&DÑ&FÔ&F×&KÒ&KÑ&MÔ&M�OÝ$.Ô$@Ñ$BÔ$B×$GÒ$GÑ$IÔ$I�M�Mà"&�Ø $�õ -Ñ.Ô.ð #ð #Ý#Ø#Ø!Ý˜DœH j°$´(Ñ;Ô;ñô �ð
 #�”ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð �9˜TÐ, AÐ,Ð,Ð,¨Ð,Ð,Ð,s   Ã2DÄD Ä#D )r"   r   r+   r   r,   r   r   r   )r   ÚstartÚdjangor'   ÚImportErrorÚchannelsÚ__version__ÚAttributeErrorÚsysÚversion_infor   Ú _wrap_threadpool_executor_submitr   Úsubmit)Údjango_versionrF   Úchannels_versionrB   r@   rA   s       @@r#   Ú
setup_oncezThreadingIntegration.setup_once/   sL  øø€ å”Lˆ	ð	"Ø8Ð8Ð8Ð8Ð8Ð8Ð8øÝð 	"ð 	"ð 	"Ø!ˆNˆNˆNð	"øøøð	$ØˆOˆOˆOà'Ô3ÐÐøÝ�^Ð,ð 	$ð 	$ð 	$Ø#ÐÐÐð	$øøøõ Ô˜vÒ%ð (Ø ¨Ð,ð(à  7Ò*ð(ð  dÐ*ð(ð  &Ò(ð	(ð
  Ò'ð 	'õ 
ˆyÑ	Ô	ð&	-ð &	-ð &	-ð &	-ð &	-ð &	-ñ 
Ô	ð&	-ðP $�ŒÝ$DÝÔ%Ð'Eñ%
ô %
ÕÔ!Ð!Ð!s   � —&¥&ª6 ¶AÁA)NT)r   N)Ú__name__Ú
__module__Ú__qualname__Ú
identifierÚboolr$   ÚstaticmethodrO   © r%   r#   r   r      sw   € € € € € Ø€Jð OSð1ð 1Ø-ð1ØGKð1à	ð1ð 1ð 1ð 1ð" ðD
ð D
ð D
ñ „\ðD
ð D
ð D
r%   r   Úisolation_scope_to_useúOptional[sentry_sdk.Scope]Úcurrent_scope_to_useÚold_run_funcr   c                 óF   ‡ ‡‡— t          ‰¦  «        dˆˆ ˆfd„¦   «         }|S )Nr+   r   r,   r   c                  ó  •‡ ‡— dˆ ˆˆfd„}‰�j‰�ht          ‰¦  «        5  t          ‰¦  «        5   |¦   «         cd d d ¦  «         cd d d ¦  «         S # 1 swxY w Y   	 d d d ¦  «         d S # 1 swxY w Y   d S  |¦   «         S )Nr   r   c                  ó–   •— 	 t          ¦   «         }  ‰| g‰dd …         ¢R i ‰¤ŽS # t          $ r t          t          ¦   «         Ž  Y d S w xY w)Né   )r   Ú	Exceptionr   Ú_capture_exception)r"   r+   r,   rZ   s    €€€r#   Ú_run_old_run_funcz1_wrap_run.<locals>.run.<locals>._run_old_run_func~   sq   ø€ ð/Ý%Ñ'Ô'�Ø#�| DÐ7¨1¨Q¨R¨R¬5Ð7Ð7Ð7°BÐ7Ð7Ð7øÝð /ð /ð /ÝÕ+Ñ-Ô-Ð.Ð.Ð.Ð.Ð.ð/øøøs   ƒ!% ¥AÁA)r   r   r   )r+   r,   ra   rY   rW   rZ   s   `` €€€r#   r;   z_wrap_run.<locals>.run|   s\  øøø€ ð	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð "Ð-Ð2FÐ2RÝ$Ð%;Ñ<Ô<ð /ð /ÝÐ3Ñ4Ô4ð /ð /Ø,Ð,Ñ.Ô.ð/ð /ð /ð /ñ /ô /ð /ð/ð /ð /ð /ñ /ô /ð /ð /ð/ð /ð /ð /øøøð /ð /ð /ð /ð /ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /ð %Ð$Ñ&Ô&Ð&s3   ŸA+¯
A¹A+ÁA	ÁA+ÁA	ÁA+Á+A/Á2A/)r+   r   r,   r   r   r   r   )rW   rY   rZ   r;   s   ``` r#   r9   r9   w   sI   øøø€ õ
 ˆ<ÑÔð'ð 'ð 'ð 'ð 'ð 'ð 'ñ Ôð'ð €Jr%   ÚfunczCallable[..., Future[T]]r@   c                 óV   ‡ ‡— t          ‰ ¦  «        	 	 	 	 	 	 	 	 	 	 dˆ ˆfd
„¦   «         }|S )zB
    Wrap submit call to propagate scopes on task submission.
    r"   r   ÚfnúCallable[..., T]Úargsr   Úkwargsr   ú	Future[T]c                 ó´  •‡‡‡— t          j        ¦   «                              t          ¦  «        }|€ ‰| ‰g|¢R i |¤ŽS |j        r)‰	r't          j        ¦   «         Št          j        ¦   «         ŠnV|j        rKt          j        ¦   «                              ¦   «         Št          j        ¦   «                              ¦   «         Šnd Šd Šdˆˆˆfd„} ‰| |g|¢R i |¤ŽS )Nrf   r   rg   r   c                  óâ   •— ‰�e‰�ct          ‰¦  «        5  t          ‰¦  «        5   ‰| i |¤Žcd d d ¦  «         cd d d ¦  «         S # 1 swxY w Y   	 d d d ¦  «         n# 1 swxY w Y    ‰| i |¤ŽS )Nr   )rf   rg   r>   rd   r=   s     €€€r#   Ú
wrapped_fnzK_wrap_threadpool_executor_submit.<locals>.sentry_submit.<locals>.wrapped_fn«   s*  ø€ ØÐ*¨}Ð/HÝ(¨Ñ9Ô9ð 3ð 3Ý" =Ñ1Ô1ð 3ð 3Ø!˜r 4Ð2¨6Ð2Ð2ð3ð 3ð 3ð 3ñ 3ô 3ð 3ð3ð 3ð 3ð 3ñ 3ô 3ð 3ð 3ð3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð �2�tÐ&˜vÐ&Ð&Ð&s3   •A¥A­AÁA
	Á
AÁA
	ÁAÁA"Á%A")rf   r   rg   r   r   r   )r1   r2   r3   r   r   r6   r7   r8   )
r"   rd   rf   rg   r<   rk   r>   r=   rb   r@   s
    `    @@€€r#   Úsentry_submitz7_wrap_threadpool_executor_submit.<locals>.sentry_submit–   s  øøøø€ õ !Ô+Ñ-Ô-×=Ò=Õ>RÑSÔSˆØÐØ�4˜˜bÐ2 4Ð2Ð2Ð2¨6Ð2Ð2Ð2àÔ&ð 	!Ð+Ið 	!Ý(Ô<Ñ>Ô>ˆOÝ&Ô8Ñ:Ô:ˆMˆMØÔ(ð 	!Ý(Ô<Ñ>Ô>×CÒCÑEÔEˆOÝ&Ô8Ñ:Ô:×?Ò?ÑAÔAˆMˆMà"ˆOØ ˆMð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð ˆt�D˜*Ð6 tÐ6Ð6Ð6¨vÐ6Ð6Ð6r%   )
r"   r   rd   re   rf   r   rg   r   r   rh   r   )rb   r@   rl   s   `` r#   rK   rK   �   so   øø€ õ ˆ4�[„[ð7Ø"ð7àð7ð ð7ð ð	7ð
 
ð7ð 7ð 7ð 7ð 7ð 7ñ „[ð7ð< Ðr%   r   c                  óì   — t          j        ¦   «         } t          j        ¦   «         }|                     t
          ¦  «        �3t          | |j        dddœ¬¦  «        \  }}t          j        ||¬¦  «         | S )Nr   F)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)Úhint)	rI   Úexc_infor1   r2   r3   r   r   ÚoptionsÚcapture_event)rs   ÚclientÚeventrr   s       r#   r`   r`   ¸   sx   € ÝŒ|‰~Œ~€HåÔ"Ñ$Ô$€FØ×ÒÕ2Ñ3Ô3Ð?Ý*ØØ!œ>Ø*°uÐ=Ð=ð
ñ 
ô 
‰ˆˆtõ
 	Ô  ¨TÐ2Ñ2Ô2Ð2à€Or%   )rW   rX   rY   rX   rZ   r   r   r   )r   r   )$rI   r4   Úconcurrent.futuresr   r   Ú	functoolsr   r   r   r   Útypingr	   r1   Úsentry_sdk.integrationsr
   Úsentry_sdk.scoper   r   Úsentry_sdk.utilsr   r   r   r   r   r   r   r   Úsentry_sdk._typesr   r   r   r   r9   rT   rK   r`   rV   r%   r#   ú<module>r      s  ðØ 
€
€
€
Ø €€€Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ð ð ð ð ð ð ð ð ð ð ð  Ø7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7à)Ð)Ð)Ð)Ð)Ð)àˆ�˜8 C¨ HÔ-Ð.Ñ.Ô.€AØˆ�˜3ÐÑÔ€AðY
ð Y
ð Y
ð Y
ð Y
˜;ñ Y
ô Y
ð Y
ðxØ8ðà6ðð ðð 	ð	ð ð ð ð0&Ø
$ð&ØFJð&àð&ð &ð &ð &ðRð ð ð ð ð r%   