
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    „á§\«k  ã                   @   sô  d dl Z d dlZd dl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mZmZmZ errd dlmZmZ nd dlmZmZ edddƒZe  d¡Z!e"ƒ Z#g Z$d	d
„ Z%dd„ Z&edd„ ƒZ'dd„ Z(dudd„Z)G dd„ de*ƒZ+e
G dd„ de"ƒƒZ,G dd„ de"ƒZ-dd„ Z.dd„ Z/dd„ Z0dd „ Z1dvd"d#„Z2dwd$d%„Z3d&d'„ Z4d(d)„ Z5d*d+„ Z6dxd-d.„Z7d/d0„ Z8d1d2„ Z9dyd4d5„Z:dzd6d7„Z;d{d8d9„Z<d:d;„ Z=d|d<d=„Z>e?e@d>ƒZAeA�r´d?d@„ ZBndAd@„ ZBd}dBdC„ZCdDdE„ ZDdFdG„ ZEdHdI„ ZFd~dJdK„ZGdLdM„ ZHdNdO„ ZIddPdQ„ZJdRdS„ ZKG dTdU„ dUe"ƒZLdVdW„ ZMdXdY„ ZNdZd[„ ZOd\d]„ ZPd^d_„ ZQd`da„ ZRG dbdc„ dce"ƒZSddde„ ZTd€dgdh„ZUd�didj„ZVeVfdkdl„ZWd3ZXz*d dmlYmZZZ e�s®ej[dnk �r®d dl\Z\W n6 e]k
�ræ   doZXd dpl^m_Z_ G dqdr„ dre"ƒZZY nX dsdt„ Z`dS )‚é    N)Úcontextmanager)Údatetime)ÚurlparseÚ	text_typeÚimplements_strÚstring_typesÚnumber_typesÚ	int_typesÚPY2)ÚMappingÚSequencei²  é   zsentry_sdk.errorsc                 C   s   t  | ¡ d S ©N)Úglobal_repr_processorsÚappend)Ú	processor© r   úA/opt/alt/python38/lib/python3.8/site-packages/sentry_sdk/utils.pyÚadd_global_repr_processor9   s    r   c                   C   s   d S r   r   r   r   r   r   Ú_get_debug_hub=   s    r   c                  c   s@   z
d V  W n0 t k
r:   tƒ } | d k	r6|  t ¡ ¡ Y nX d S r   )Ú	Exceptionr   Z_capture_internal_exceptionÚsysÚexc_info)Zhubr   r   r   Úcapture_internal_exceptionsB   s    
r   c                 C   s   | t   ¡ S r   )ÚepochÚtotal_seconds©Úvaluer   r   r   Úto_timestampM   s    r   c                 C   s2   | dkrt  ¡ } nt| ƒ} | d dkr*d} d| iS )z+Creates a hint with the exc info filled in.Nr   r   )r   r   Úexc_info_from_error©r   r   r   r   Úevent_hint_with_exc_infoQ   s    
r!   c                   @   s   e Zd ZdZdS )ÚBadDsnzRaised on invalid DSNs.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r"   ]   s   r"   c                   @   s6   e Zd ZdZdd„ Zedd„ ƒZddd„Zd	d
„ ZdS )ÚDsnzRepresents a DSN.c              	   C   s   t |tƒrt|jƒ| _d S t t|ƒ¡}|jdkr@td|j ƒ‚|j| _|j	| _
|j| _| jd krv| jdkrpdprd| _|j| _| jsŒtdƒ‚|j| _|j dd¡}ztt| ¡ ƒƒ| _W n2 ttfk
rê   td	|jpØd
dd …  ƒ‚Y nX d |¡d | _d S )N)ÚhttpÚhttpszUnsupported scheme %rr)   é»  éP   zMissing public keyú/r   zInvalid project in DSN (%r)Ú )Ú
isinstancer'   ÚdictÚ__dict__r   Úurlsplitr   Úschemer"   ÚhostnameÚhostÚportÚusernameÚ
public_keyÚpasswordÚ
secret_keyÚpathÚrsplitÚintÚpopÚ
project_idÚ
ValueErrorÚ	TypeErrorÚjoin)Úselfr   Úpartsr:   r   r   r   Ú__init__e   s*    


 zDsn.__init__c                 C   s(   | j }| j| jfdkr$d|| jf }|S )zThe netloc part of a DSN.))r(   r+   )r)   r*   z%s:%s)r4   r2   r5   )rB   Úrvr   r   r   Únetloc   s    z
Dsn.netlocNc              	   C   s"   t | j| j| j| j| j| j|d�S )z*Returns the auth info object for this dsn.)r2   r4   r:   r>   r7   r9   Úclient)ÚAuthr2   rF   r:   r>   r7   r9   )rB   rG   r   r   r   Úto_auth‡   s    ùzDsn.to_authc                 C   s.   d| j | j| jrd| j pd| j| j| jf S )Nz%s://%s%s@%s%s%sú@r-   )r2   r7   r9   rF   r:   r>   ©rB   r   r   r   Ú__str__“   s    úzDsn.__str__)N)	r#   r$   r%   r&   rD   ÚpropertyrF   rI   rL   r   r   r   r   r'   a   s   

r'   c                   @   s0   e Zd ZdZddd„Zedd„ ƒZdd	d
„ZdS )rH   z,Helper object that represents the auth info.Né   r,   c	           	      C   s4   || _ || _|| _|| _|| _|| _|| _|| _d S r   )r2   r4   r:   r>   r7   r9   ÚversionrG   )	rB   r2   r4   r>   r7   r9   rO   rG   r:   r   r   r   rD   ¡   s    zAuth.__init__c                 C   s   d| j | j| j| jf S )z'Returns the API url for storing events.z%s://%s%sapi/%s/store/)r2   r4   r:   r>   rK   r   r   r   Ústore_api_urlµ   s    üzAuth.store_api_urlc                 C   s~   d| j fd| jfg}|dk	r2| dtt|ƒƒf¡ | jdk	rL| d| jf¡ | jdk	rf| d| jf¡ dd d	d
„ |D ƒ¡ S )z!Returns the auth header a string.Z
sentry_keyZsentry_versionNZsentry_timestampZsentry_clientZsentry_secretzSentry z, c                 s   s   | ]\}}d ||f V  qdS )z%s=%sNr   )Ú.0Úkeyr   r   r   r   Ú	<genexpr>È   s     z!Auth.to_header.<locals>.<genexpr>)r7   rO   r   Ústrr   rG   r9   rA   )rB   Ú	timestamprE   r   r   r   Ú	to_header¿   s    

zAuth.to_header)NrN   Nr,   )N)r#   r$   r%   r&   rD   rM   rP   rV   r   r   r   r   rH   ž   s       ÷

	rH   c                 C   s   t | dd ƒpt | dd ƒS )Nr%   r#   ©Úgetattr)Úclsr   r   r   Úget_type_nameË   s    rZ   c                 C   s   t | dd ƒ}|dkr|S d S )Nr$   )NÚbuiltinsÚ__builtins__rW   )rY   Úmodr   r   r   Úget_type_moduleÐ   s    r^   c              	   C   sj   z| j d }| d¡W S  ttfk
r.   Y nX dD ]0}z| j| rLW  dS W q4 tk
rb   Y q4X q4dS )Nr#   zsentry_sdk.)Z__traceback_hide__Ú__tracebackhide__TF)Ú	f_globalsÚ
startswithÚAttributeErrorÚKeyErrorÚf_localsr   )Úframer]   Z	flag_namer   r   r   Úshould_hide_frameØ   s    

rf   c                 c   s$   | d k	r t | jƒs| V  | j} q d S r   )rf   Útb_frameÚtb_next)Útbr   r   r   Úiter_stacksê   s    
rj   é   c                 C   s4   | s| S t | ƒ|kr(| d |d … d S | d |… S )Né   ú...)Úlen)r   Úlengthr   r   r   Úslim_stringò   s
    rp   c              	   C   s6  d}d }|d k	rVt |dƒrVz| |¡}W n ttfk
rD   d }Y nX |d k	rV| ¡ }|d kr�zt | ¡}W n" ttfk
rŽ   g d g f Y S X |sžg d g fS td|| ƒ}t	|d | t
|ƒƒ}zNdd„ |||… D ƒ}	t||  d¡ƒ}
dd„ ||d |… D ƒ}|	|
|fW S  tk
�r0   g d g f Y S X d S )	Né   Ú
get_sourcer   r   c                 S   s   g | ]}t | d ¡ƒ‘qS ©ú
©rp   Ústrip©rQ   Úliner   r   r   Ú
<listcomp>  s    z'get_lines_from_file.<locals>.<listcomp>rt   c                 S   s   g | ]}t | d ¡ƒ‘qS rs   ru   rw   r   r   r   ry     s   ÿ)Úhasattrrr   ÚImportErrorÚIOErrorÚ
splitlinesÚ	linecacheÚgetlinesÚOSErrorÚmaxÚminrn   rp   rv   Ú
IndexError)ÚfilenameÚlinenoÚloaderÚmoduleZcontext_linesÚsourceZ
source_strZlower_boundZupper_boundÚpre_contextÚcontext_lineÚpost_contextr   r   r   Úget_lines_from_fileû   s:    


ÿþrŒ   c                 C   s¨   z| j j}W n tk
r$   d }Y nX z| jd }W n tk
rR   g d g f Y S X z| jd }W n tk
rz   d }Y nX |d }|d k	rž|ržt||||ƒS g d g fS )Nr#   Ú
__loader__r   )Úf_codeÚco_filenamer   r`   rŒ   )re   Ú	tb_linenoÚabs_pathr‡   r†   r…   r   r   r   Úget_source_context'  s     

r’   c                 C   s,   z
t | ƒW S  tk
r&   t| ƒ Y S X d S r   )r   r   Ú	safe_reprr   r   r   r   Úsafe_str;  s    
r”   c                 C   sn   zRt | ƒ}t|tƒr | dd¡}z| d¡ d¡W W S  tk
rN   | Y W S X W n tk
rh   Y dS X d S )Núutf-8ÚreplaceÚlatin1zunicode-escapeú<broken repr>)Úreprr.   ÚbytesÚdecodeÚencoder   )r   rE   r   r   r   r“   C  s    

r“   é   c                    s6  t ƒ ��$ ˆ d krtƒ ‰ ˆ  | ¡r2tW  5 Q R £ S zèˆdk�rˆ ˆdœ}tD ]L}t ƒ �< || |ƒ}|tk	rŽ|W  5 Q R £   W ¢œW  5 Q R £ S W 5 Q R X qLt| tt	fƒrÌ‡ ‡fdd„| D ƒW ¢^W  5 Q R £ S t| t
ƒ�r‡ ‡fdd„t|  ¡ ƒD ƒW ¢&W  5 Q R £ S t| ƒW ¢W  5 Q R £ S ˆ  | ¡ X W 5 Q R X dS )Nr   ©ÚmemoÚremaining_depthc                    s   g | ]}t |ˆd  ˆ d�‘qS ©r   )r    rŸ   )Úobject_to_json)rQ   Úxrž   r   r   ry   r  s   ý  ÿz"object_to_json.<locals>.<listcomp>c                    s(   i | ] \}}t |ƒt|ˆd  ˆ d�“qS r¡   )r”   r¢   ©rQ   ÚkÚvrž   r   r   Ú
<dictcomp>z  s   ý   ÿz"object_to_json.<locals>.<dictcomp>r˜   )r   ÚMemoÚmemoizeÚCYCLE_MARKERÚ	unmemoizer   ÚNotImplementedr.   ÚlistÚtupler   Úitemsr“   )Úobjr    rŸ   Zhintsr   Úresultr   rž   r   r¢   _  s0    




0ü
ür¢   c                 C   s,   i }| j  ¡ D ]\}}t|ƒ|t|ƒ< q|S r   )rd   r¯   r¢   rT   )re   rE   rR   r   r   r   r   Úextract_locals‡  s    r²   c                 C   sŽ   zp|  d¡r|d d… }|  dd¡d }|| kr>tj |¡W S tj| j}| | tj	d¡d d¡d  
tj	¡W S  tk
rˆ   | Y S X d S )Nz.pycéÿÿÿÿÚ.r   r   é   )ÚendswithÚsplitÚosr:   Úbasenamer   ÚmodulesÚ__file__r;   ÚsepÚlstripr   )r‡   r‘   Úbase_moduleZbase_module_pathr   r   r   Úfilename_for_module�  s    
ÿr¿   Tc              	   C   s¸   t | dd ƒ}|r"| jj}| jj}nd }d }z| jd }W n tk
rP   d }Y nX |d kr`| j}t| |ƒ\}}}	t||ƒp|d |rŒt	j
 |¡nd |p”d|||||	dœ}
|r´t| ƒ|
d< |
S )NrŽ   r#   z	<unknown>)r„   r‘   Úfunctionr‡   r…   r‰   rŠ   r‹   Úvars)rX   rŽ   r�   Úco_namer`   r   Úf_linenor’   r¿   r¸   r:   Úabspathr²   )re   r�   Úwith_localsrŽ   r‘   rÀ   r‡   r‰   rŠ   r‹   rE   r   r   r   Úserialize_frame¡  s2    

ø
rÆ   c                    s   d‡ fdd„t | ƒD ƒiS )NÚframesc                    s   g | ]}t |j|jˆ d �‘qS ))r�   rÅ   )rÆ   rg   r�   )rQ   ri   ©rÅ   r   r   ry   Æ  s   ý  ÿz-stacktrace_from_traceback.<locals>.<listcomp>)rj   )ri   rÅ   r   rÈ   r   Ústacktrace_from_tracebackÃ  s
     
üÿrÉ   c                 C   sJ   d}g }t  ¡ }|d k	r:t|ƒs2| t|| d�¡ |j}q| ¡  d|iS )NTrÈ   rÇ   )r   Ú	_getframerf   r   rÆ   Úf_backÚreverse)rÅ   r_   rÇ   Úfr   r   r   Úcurrent_stacktraceÏ  s    rÎ   c                 C   s   t | dd ƒS )NÚerrnorW   )Ú	exc_valuer   r   r   Ú	get_errnoÞ  s    rÑ   c                 C   sz   |d k	rt |ƒ}nd }|d k	rB|p$i }| di ¡}| dd|i¡ |d krPd}n|d }t| ƒt| ƒt|ƒ|t||ƒdœS )NÚmetarÏ   ÚcodeTrÅ   )r‡   Útyper   Ú	mechanismÚ
stacktrace)rÑ   Ú
setdefaultr^   rZ   r”   rÉ   )Úexc_typerÐ   ri   Úclient_optionsrÕ   rÏ   Zmechanism_metarÅ   r   r   r   Ú!single_exception_from_error_tupleã  s     
ûrÚ   Ú__suppress_context__c                 c   s�   | \}}}g }t ƒ }|d k	rŒ|d k	rŒt|ƒ|krŒ|||fV  | |¡ | t|ƒ¡ |jrb|j}n|j}|d krrqŒt|ƒ}|}t|dd ƒ}qd S )NÚ__traceback__)	ÚsetÚidr   ÚaddrÛ   Ú	__cause__Ú__context__rÔ   rX   )r   rØ   rÐ   ri   Zseen_exceptionsZseen_exception_idsÚcauser   r   r   Úwalk_exception_chain  s(    
ÿþ
ý
rã   c                 c   s
   | V  d S r   r   r    r   r   r   rã   (  s    c              	   C   s<   | \}}}g }t | ƒD ] \}}}| t|||||ƒ¡ q|S r   )rã   r   rÚ   )r   rÙ   rÕ   rØ   rÐ   ri   rE   r   r   r   Úexceptions_from_error_tuple-  s    
    ÿÿrä   c                 C   s4   z
t | ƒW S  tk
r.   t| ƒdd…  Y S X d S )Nr   r³   )r   ÚUnicodeDecodeErrorr™   r   r   r   r   Ú	to_string>  s    
ræ   c                 c   sH   d| kr| d V  d| krD| d   d¡p*dD ]}d|kr,|d V  q,d S )NrÖ   Ú	exceptionÚvaluesr   )Úget©Úeventrç   r   r   r   Úiter_event_stacktracesF  s    
rì   c                 c   s,   t | ƒD ]}| d¡pdD ]
}|V  qqd S ©NrÇ   r   )rì   ré   )rë   rÖ   re   r   r   r   Úiter_event_framesP  s    rî   c                 C   s&   t | ƒD ]}t| d¡||d� q| S )NrÇ   )Úin_app_excludeÚin_app_include)rì   Úhandle_in_app_implré   )rë   rï   rð   rÖ   r   r   r   Úhandle_in_appW  s    ýrò   c                 C   s–   | sd S d}| D ]\}|  d¡}|d k	r0|rd}q|  d¡}|sBqqt||ƒrZd|d< d}qt||ƒrd|d< q|s’| D ]}|  d¡d krvd|d< qv| S )NFÚin_appTr‡   )ré   Ú_module_in_set)rÇ   rï   rð   Z
any_in_appre   ró   r‡   r   r   r   rñ   c  s,    





rñ   c                 C   s†   t | tƒr"t| ƒdkr"| \}}}nZt | tƒrvt| dd ƒ}|d k	rNt| ƒ}| }q|t ¡ \}}}|| k	r|d }| }t| ƒ}ntƒ ‚|||fS )Nrl   rÜ   )	r.   r®   rn   ÚBaseExceptionrX   rÔ   r   r   r?   )ÚerrorrØ   rÐ   ri   r   r   r   r   €  s    

r   c                 C   s*   t | ƒ} t| ƒ}ddt| ||ƒidœ|fS )Nrö   rè   )Úlevelrç   )r   r!   rä   )r   rÙ   rÕ   Zhintr   r   r   Úevent_from_exception–  s       ÿÿþ÷rø   c                 C   s6   |sdS |pdD ] }|| ks*|   |d ¡r dS qdS )NFr   r´   T)ra   )ÚnamerÝ   Úitemr   r   r   rô   «  s    rô   c                   @   s   e Zd Zdd„ ZdS )ÚAnnotatedValuec                 C   s   || _ || _d S r   ©r   Úmetadata)rB   r   rý   r   r   r   rD   ¶  s    zAnnotatedValue.__init__N)r#   r$   r%   rD   r   r   r   r   rû   µ  s   rû   c                    s,   ‡ fdd„‰ ˆ | ƒ\} }|d k	r(|| d< | S )Nc                    s  t | tƒrri }i }|  ¡ D ]J\}}|dkr,qˆ |ƒ\||< ||< || d krR||= || d kr||= q||pnd fS t | tƒrèt | ttfƒsèg }i }t| ƒD ]@\}}ˆ |ƒ\}|t|ƒ< | |¡ |t|ƒ d krš|t|ƒ= qš||päd fS t | t	ƒ�rˆ | j
ƒd d| jifS | d fS )Nr-   r   )r.   r   r¯   r   r   rš   Ú	enumeraterT   r   rû   r   rý   )r°   Zdict_rvrÒ   r¥   r¦   Zlist_rvÚiZnew_v©Úinnerr   r   r  ¾  s0    

zflatten_metadata.<locals>.innerZ_metar   )r°   rÒ   r   r   r   Úflatten_metadata¼  s
    r  c                 C   sj   t |  dd ¡ƒ |  dd ¡}|rF| dd ¡p.dD ]}t | dd ¡ƒ q0t|  dd ¡ƒ t|  dd ¡ƒ d S )NrÖ   rç   rè   r   ÚrequestÚbreadcrumbs)Ústrip_stacktrace_mutré   Ústrip_request_mutÚstrip_breadcrumbs_mutrê   r   r   r   Ústrip_event_mutâ  s    r  c                 C   s*   | sd S |   dd ¡pdD ]}t|ƒ qd S rí   )ré   Ústrip_frame_mut)rÖ   re   r   r   r   r  î  s    r  c                 C   s,   | sd S |   dd ¡}|sd S t|ƒ| d< d S )NÚdata)ré   Ústrip_databag)r  r
  r   r   r   r  ö  s    r  c                 C   s.   | sd S t t| ƒƒD ]}t| | ƒ| |< qd S r   )Úrangern   r  )r  rÿ   r   r   r   r     s    r  c                 C   s   d| krt | d ƒ| d< d S )NrÁ   )r  )re   r   r   r   r	    s    r	  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )r¨   c                 C   s
   i | _ d S r   )Ú_innerrK   r   r   r   rD     s    zMemo.__init__c                 C   s$   t |ƒ| jkrdS || jt |ƒ< dS )NTF)rÞ   r  ©rB   r°   r   r   r   r©     s    zMemo.memoizec                 C   s   | j  t|ƒd ¡ d S r   )r  r=   rÞ   r  r   r   r   r«     s    zMemo.unmemoizeN)r#   r$   r%   rD   r©   r«   r   r   r   r   r¨     s   r¨   c                 C   s¾   | d krd S | t krdS t| tƒr0t|  d¡ƒS t| tƒrLdd„ |  ¡ D ƒS t| tƒrrt| ttfƒsrdd„ | D ƒS t| t	ƒrŽt	t
| jƒ| jƒS t| tt ƒs¤t| ƒS t| tƒrº|  dd¡S | S )	Nz<cyclic>z%Y-%m-%dT%H:%M:%SZc                 S   s   i | ]\}}|t |ƒ“qS r   ©Úconvert_typesr¤   r   r   r   r§   %  s      z!convert_types.<locals>.<dictcomp>c                 S   s   g | ]}t |ƒ‘qS r   r  )rQ   r¦   r   r   r   ry   '  s     z!convert_types.<locals>.<listcomp>r•   r–   )rª   r.   r   r   Ústrftimer   r¯   r   rš   rû   r  r   rý   r   r   r“   r›   )r°   r   r   r   r    s"    



r  é   c                 C   sö   t | tƒrtdƒ‚|dkr.td dddggiƒS t | tƒr@t| ƒS t | tƒrœi }t|  ¡ ƒD ]<\}\}}||kr€t|d|iƒ  S t	||d |d�||< qZ|S t | t
ƒròg }t| ƒD ]:\}}||krÔt|d|iƒ  S | t	||d |d�¡ q²|S | S )	Nz(bytes should have been normalized beforer   Úremú!limitr£   rn   r   )r    Úmax_breadth)r.   rš   ÚAssertionErrorrû   r   Ústrip_stringr   rþ   r¯   r  r   r   )r°   r    r  Zrv_dictrÿ   r¥   r¦   Zrv_listr   r   r   r  3  s<    

  ÿ
  ÿÿr  c                 C   sL   | s| S t | ƒ}||krHt| d |d … d |dd|d |ggdœd�S | S )Nrl   rm   r  r£   ©rn   r  rü   )rn   rû   )r   Ú
max_lengthro   r   r   r   r  S  s    þþr  c           
         sD  |   d¡}|stdƒ‚tt|ƒƒ}g }d}d‰g }‡fdd„‰ |dd… D ]’}| |¡ ˆt|ƒ7 ‰|t|ƒ7 }|s|tdƒ‚| ¡ }||ƒ}	t|	tƒrº| 	‡ fd	d
„|	j
d D ƒ¡ |	j}	|t|ƒ7 }ˆt|	ƒ7 ‰| |	¡ qJ| |d ¡ ˆt|d ƒ7 ‰|t|d ƒ7 }d |¡}t|ƒˆk�s(t‚|�s2|S t|||dœd�S )zÓFormat a string containing %s for placeholders and call `strip_string`
    on each parameter. The string template itself does not have a maximum
    length.

    TODO: handle other placeholders, not just %s
    z%sz No formatting placeholders foundr   c                    s   ‡ fdd„t | ƒD ƒS )Nc                    s.   g | ]&\}}t |tƒr&|d k r&ˆ | n|‘qS )r�   )r.   r	   )rQ   rÿ   r£   ©Ú	rv_lengthr   r   ry   v  s   ÿz<format_and_strip.<locals>.realign_remark.<locals>.<listcomp>)rþ   )Úremarkr  r   r   Úrealign_remarku  s    
þz(format_and_strip.<locals>.realign_remarkNr³   zNot enough params.c                 3   s   | ]}ˆ |ƒV  qd S r   r   )rQ   r  )r  r   r   rS   …  s    z#format_and_strip.<locals>.<genexpr>r  r-   r  rü   )r·   r?   r­   Úreversedr   rn   r=   r.   rû   Úextendrý   r   rA   r  )
ÚtemplateÚparamsr  ÚchunksZ
rv_remarksZrv_original_lengthrE   ÚchunkÚparamZstripped_paramr   )r  r  r   Úformat_and_stripd  sH    


ÿ
 ÿr%  )Ú
ContextVar)rl   rN   F)Úlocalc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )r&  c                 C   s   || _ tƒ | _d S r   )Ú_namer'  Ú_local)rB   rù   r   r   r   rD   ¬  s    zContextVar.__init__c                 C   s   t | jd|ƒS ©Nr   )rX   r)  )rB   Údefaultr   r   r   ré   °  s    zContextVar.getc                 C   s   t | jd|ƒ d S r*  )Úsetattrr)  )rB   r   r   r   r   rÝ   ³  s    zContextVar.setN)r#   r$   r%   rD   ré   rÝ   r   r   r   r   r&  ©  s   r&  c                 C   s~   zd| j j| j j| jf W S  tk
r.   Y nX t| dd ƒpJt| dd ƒpJd }|sTd S zd| j|f W S  tk
rx   Y nX |S )Nz%s.%s.%sr%   r#   z%s.%s)Zim_classr$   r#   r   rX   )ÚfuncZfunc_qualnamer   r   r   Útransaction_from_function·  s"    ýÿr.  )N)rk   )NN)r�   N)NT)NT)T)NN)NN)NN)NN)r  r  )rk   )ar¸   r   r~   ZloggingÚ
contextlibr   r   Zsentry_sdk._compatr   r   r   r   r   r	   r
   ZAnyÚDictÚUnionÚIteratorZTupleÚOptionalZListÚSetZTypeZClientOptionsrõ   ZExcInfoÚcollectionsr   r   Úcollections.abcr   Z	getLoggerÚloggerÚobjectrª   r   r   r   r   r   r!   r?   r"   r'   rH   rZ   r^   rf   rj   rp   rŒ   r’   r”   r“   r¢   r²   r¿   rÆ   rÉ   rÎ   rÑ   rÚ   rz   r   ZHAS_CHAINED_EXCEPTIONSrã   rä   ræ   rì   rî   rò   rñ   r   rø   rô   rû   r  r  r  r  r  r	  r¨   r  r  r  r%  ZHAS_REAL_CONTEXTVARSZcontextvarsr&  Úversion_infoZaiocontextvarsr{   Ú	threadingr'  r.  r   r   r   r   Ú<module>   s¦   $



<-
  ü
,
(
"

	  û
 

!  ý


  ý

&

 
9