HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/sentry_sdk/__pycache__/utils.cpython-37.pyc
B

Ta(k�@sXddlZddlZddlZddlZddlZddlZddlZddlmZddlZddl	m
Z
mZmZm
Z
ddlmZe�r"ddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZm Z eddd�Z!e�"d�Z#dZ$dZ%dd�Z&dd�Z'dd�Z(Gdd�de)�Z*e*�Z+d d!�Z,d"d#�Z-d$d%�Z.d&d'�Z/dvd(d)�Z0Gd*d+�d+e1�Z2eGd,d-�d-e)��Z3Gd.d/�d/e)�Z4Gd0d1�d1e)�Z5e�rdd2lm6Z6e6d3�Z7ee5e7fZ8d4d5�Z9d6d7�Z:d8d9�Z;d:d;�Z<dwd<d=�Z=d>d?�Z>d@dA�Z?e
�rLdBdC�Z@ndDdC�Z@dEdF�ZAdxdHdI�ZBdydJdK�ZCdLdM�ZDdzdNdO�ZEeFeGdP�ZHeH�r�dQdR�ZIndSdR�ZId{dTdU�ZJdVdW�ZKdXdY�ZLdZd[�ZMd|d\d]�ZNd^d_�ZOd`da�ZPd}dbdc�ZQddde�ZRd~dfdg�ZSdhdi�ZTdjdk�ZUdldm�ZVeV�\ZWZXdnZYdodp�ZZeXdq�Z[Gdrds�dseG�Z\Gdtdu�duej]�Z^dS)�N)�datetime)�urlparse�	text_type�implements_str�PY2)�MYPY)�	FrameType)�
TracebackType)�Any)�Callable)�Dict)�ContextManager)�Iterator)�List)�Optional)�Set)�Tuple)�Union)�Type)�ExcInfo�EndpointTypei��zsentry_sdk.errorsi�cCstj|ddd��d�S)zCSerialize data into a compact JSON representation encoded as UTF-8.F)�,�:)�	allow_nan�
separatorszutf-8)�json�dumps�encode)�data�r!�A/opt/alt/python37/lib/python3.7/site-packages/sentry_sdk/utils.py�
json_dumps,sr#cCsdS)Nr!r!r!r!r"�_get_debug_hub2sr$c
Cs�tj�d�}|r|Sttjjd��X}y0tjdddgtj||d��	�d�
��d�}Wntt
fk
rlYnX|rv|SWd	QRXx d
D]}tj�|�}|r�|Sq�Wd	S)zTry to guess a default release.ZSENTRY_RELEASEzw+�gitz	rev-parseZHEAD)�stdout�stderr�stdinrzutf-8N)ZHEROKU_SLUG_COMMITZSOURCE_VERSIONZ!CODEBUILD_RESOLVED_SOURCE_VERSIONZCIRCLE_SHA1ZGAE_DEPLOYMENT_ID)�os�environ�get�open�path�devnull�
subprocess�Popen�PIPE�communicate�strip�decode�OSError�IOError)�release�null�varr!r!r"�get_default_release8s,


r:c@s eZdZdZdd�Zdd�ZdS)�CaptureInternalExceptionr!cCs|S)Nr!)�selfr!r!r"�	__enter__bsz"CaptureInternalException.__enter__cCs"|dk	r|dk	rt|||f�dS)NT)�capture_internal_exception)r<�ty�value�tbr!r!r"�__exit__fsz!CaptureInternalException.__exit__N)�__name__�
__module__�__qualname__�	__slots__r=rBr!r!r!r"r;_sr;cCstS)N)�_CAPTURE_INTERNAL_EXCEPTIONr!r!r!r"�capture_internal_exceptionsqsrHcCst�}|dk	r|�|�dS)N)r$Z_capture_internal_exception)�exc_infoZhubr!r!r"r>vsr>cCs|t��S)N)�epoch�
total_seconds)r@r!r!r"�to_timestamp}srLcCs
|�d�S)Nz%Y-%m-%dT%H:%M:%S.%fZ)�strftime)r@r!r!r"�format_timestamp�srNcCs2|dkrt��}nt|�}|ddkr*d}d|iS)z+Creates a hint with the exc info filled in.NrrI)�sysrI�exc_info_from_error)rIr!r!r"�event_hint_with_exc_info�s
rQc@seZdZdZdS)�BadDsnzRaised on invalid DSNs.N)rCrDrE�__doc__r!r!r!r"rR�srRc@s6eZdZdZdd�Zedd��Zddd�Zd	d
�ZdS)�DsnzRepresents a DSN.c	Cst|t�rt|j�|_dSt�t|��}|jdkr@td|j��|j|_|j	dkrZtd��|j	|_
|jdkr�|jdkrzdp|d|_n|j|_|js�td��|j|_
|j|_|j�dd	�}ytt|����|_Wn2ttfk
r�td
|jp�dd	d���YnXd�|�d|_dS)N)�http�httpszUnsupported scheme %rzMissing hostnamerVi��PzMissing public key�/rzInvalid project in DSN (%r)�)�
isinstancerT�dict�__dict__r�urlsplitr�schemerR�hostname�host�port�username�
public_key�password�
secret_keyr-�rsplit�int�pop�
project_id�
ValueError�	TypeError�join)r<r@�partsr-r!r!r"�__init__�s.



 zDsn.__init__cCs(|j}|j|jfdkr$d||jf}|S)zThe netloc part of a DSN.))rUrW)rVi�z%s:%s)r`r^ra)r<�rvr!r!r"�netloc�sz
Dsn.netlocNc	Cs"t|j|j|j|j|j|j|d�S)z*Returns the auth info object for this dsn.)r^r`r-rircre�client)�Authr^rpr-rircre)r<rqr!r!r"�to_auth�szDsn.to_authcCs.d|j|j|jrd|jpd|j|j|jfS)Nz%s://%s%s@%s%s%s�@rY)r^rcrerpr-ri)r<r!r!r"�__str__�szDsn.__str__)N)	rCrDrErSrn�propertyrprsrur!r!r!r"rT�s
$	

rTc@s:eZdZdZddd�Zedd��Zdd
d�Zddd
�ZdS)rrz,Helper object that represents the auth info.N�rXc		Cs4||_||_||_||_||_||_||_||_dS)N)r^r`r-rircre�versionrq)	r<r^r`rircrerxrqr-r!r!r"rn�sz
Auth.__init__cCs|jdd�S)z^Returns the API url for storing events.

        Deprecated: use get_api_url instead.
        �store)�type)�get_api_url)r<r!r!r"�
store_api_url�szAuth.store_api_urlrycCsd|j|j|j|j|fS)z'Returns the API url for storing events.z%s://%s%sapi/%s/%s/)r^r`r-ri)r<rzr!r!r"r{szAuth.get_api_urlcCs~d|jfd|jfg}|dk	r2|�dtt|��f�|jdk	rL|�d|jf�|jdk	rf|�d|jf�dd�d	d
�|D��S)z!Returns the auth header a string.Z
sentry_keyZsentry_versionNZsentry_timestampZ
sentry_clientZ
sentry_secretzSentry z, css|]\}}d||fVqdS)z%s=%sNr!)�.0�keyr@r!r!r"�	<genexpr>sz!Auth.to_header.<locals>.<genexpr>)rcrx�append�strrLrqrerl)r<�	timestampror!r!r"�	to_headers

zAuth.to_header)NrwNrX)ry)N)	rCrDrErSrnrvr|r{r�r!r!r!r"rr�s


rrc@seZdZdZdd�ZdS)�AnnotatedValue)r@�metadatacCs||_||_dS)N)r@r�)r<r@r�r!r!r"rnszAnnotatedValue.__init__N)rCrDrErFrnr!r!r!r"r�sr�)�TypeVar�TcCst|dd�pt|dd�S)NrErC)�getattr)�clsr!r!r"�
get_type_name,sr�cCst|dd�}|dkr|SdS)NrD)N�builtins�__builtins__)r�)r��modr!r!r"�get_type_module1sr�c	Cspy|jd}|�d�rdSWnttfk
r4YnXx4dD],}y|j|rPdSWq<tk
rfYq<Xq<WdS)NrCzsentry_sdk.T)Z__traceback_hide__�__tracebackhide__F)�	f_globals�
startswith�AttributeError�KeyError�f_locals�	Exception)�framer�Z	flag_namer!r!r"�should_hide_frame9s




r�ccs,|}x"|dk	r&t|j�s|V|j}qWdS)N)r��tb_frame�tb_next)rAZtb_r!r!r"�iter_stacksLs


r�c	Cs,d}d}|dk	rVt|d�rVy|�|�}Wnttfk
rDd}YnX|dk	rV|��}|dkr�yt�|�}Wnttfk
r�gdgfSX|s�gdgfStd||�}t	|d|t
|��}yLdd�|||�D�}	t||�d��}
dd�||d|�D�}|	|
|fSt
k
�r&gdgfSXdS)	N��
get_sourcerrcSsg|]}t|�d���qS)z
)�strip_stringr3)r}�liner!r!r"�
<listcomp>tsz'get_lines_from_file.<locals>.<listcomp>z
cSsg|]}t|�d���qS)z
)r�r3)r}r�r!r!r"r�xs)�hasattrr��ImportErrorr6�
splitlines�	linecache�getlinesr5�max�min�lenr�r3�
IndexError)�filename�lineno�loader�moduleZ
context_lines�sourceZ
source_strZlower_boundZupper_bound�pre_context�context_line�post_contextr!r!r"�get_lines_from_fileUs4


r�cCs�y|jj}Wntk
r$d}YnXy|jd}Wntk
rNgdgfSXy|jd}Wntk
rvd}YnX|d}|dk	r�|r�t||||�SgdgfS)NrC�
__loader__r)�f_code�co_filenamer�r�r�)r��	tb_lineno�abs_pathr�r�r�r!r!r"�get_source_context�s 

r�cCs&yt|�Stk
r t|�SXdS)N)rr��	safe_repr)r@r!r!r"�safe_str�sr�cCsTy:t|��dd�}y|�d��d�Stk
r6|SXWntk
rNdSXdS)Nzutf-8�replace�latin1zunicode-escapez
<broken repr>)�reprr4rr�)r@ror!r!r"r��s

r�cCs"yt|�Stk
rdSXdS)Nz
<broken repr>)r�r�)r@r!r!r"r��scCs�|r|s|Syl|�d�r$|dd�}|�dd�d}||krHtj�|�Stj|j}|�|�tj	d�dd�d�
tj	�Stk
r�|SXdS)Nz.pyc����.rr�)�endswith�splitr)r-�basenamerO�modules�__file__rf�sep�lstripr�)r�r��base_moduleZbase_module_pathr!r!r"�filename_for_module�s
r�Tc	Cs�t|dd�}|sd}d}n|jj}|jj}y|jd}Wntk
rPd}YnX|dkr`|j}t||�\}}}	t||�p|d|r�t	j
�|�nd|p�d|||||	d�}
|r�|j|
d<|
S)Nr�rCz	<unknown>)r�r��functionr�r�r�r�r��vars)
r�r�r��co_namer�r��f_linenor�r�r)r-�abspathr�)r�r��with_localsr�r�r�r�r�r�r�ror!r!r"�serialize_frame�s0

r�cCsNd}g}t��}x,|dk	r<t|�s4|�t||d��|j}qW|��d|iS)NT)r��frames)rO�	_getframer�r�r��f_back�reverse)r�r�r��fr!r!r"�current_stacktrace�s

r�cCst|dd�S)N�errno)r�)�	exc_valuer!r!r"�	get_errnosr�cs�|dk	rt|�}nd}|dk	rF|p(ddi}|�di��di��d|�|dkrTd�n|d��fdd	�t|�D�}t|�t|�t|�|d
�}|r�d|i|d<|S)
NrzZgeneric�metar��numberTr�csg|]}t|j|j�d��qS))r�r�)r�r�r�)r}rA)r�r!r"r�,sz5single_exception_from_error_tuple.<locals>.<listcomp>)r�rzr@�	mechanismr��
stacktrace)r��
setdefaultr�r�r�r�)�exc_typer�rA�client_optionsr�r�r�ror!)r�r"�!single_exception_from_error_tuples&

r��__suppress_context__ccs�|\}}}g}t�}xz|dk	r�|dk	r�t|�|kr�|||fV|�|�|�t|��|jrd|j}n|j}|dkrtPt|�}|}t|dd�}qWdS)N�
__traceback__)	�set�idr��addr��	__cause__�__context__rzr�)rIr�r�rAZseen_exceptionsZseen_exception_ids�causer!r!r"�walk_exception_chainAs$

r�ccs
|VdS)Nr!)rIr!r!r"r�bsc	CsH|\}}}g}x,t|�D] \}}}|�t|||||��qW|��|S)N)r�r�r�r�)rIr�r�r�r�rAror!r!r"�exceptions_from_error_tuplegs
r�cCs.yt|�Stk
r(t|�dd�SXdS)Nrr�)r�UnicodeDecodeErrorr�)r@r!r!r"�	to_string{sr�ccs�d|kr|dVd|krHx,|d�d�p,dD]}d|kr.|dVq.Wd|kr~x,|d�d�pbdD]}d|krd|dVqdWdS)Nr��threads�valuesr!�	exception)r+)�event�threadr�r!r!r"�iter_event_stacktraces�s
r�ccs4x.t|�D]"}x|�d�pdD]
}|VqWq
WdS)Nr�r!)r�r+)r�r�r�r!r!r"�iter_event_frames�sr�cCs*x$t|�D]}t|�d�||d�q
W|S)Nr�)�in_app_exclude�in_app_include)r��handle_in_app_implr+)r�r�r�r�r!r!r"�
handle_in_app�sr�cCs�|sdSd}xd|D]\}|�d�}|dk	r2|rd}q|�d�}|sDqqt||�r\d|d<d}qt||�rd|d<qW|s�x"|D]}|�d�dkr|d|d<q|W|S)NF�in_appTr�)r+�_module_in_set)r�r�r�Z
any_in_appr�r�r�r!r!r"r��s,





r�cCs�t|t�r"t|�dkr"|\}}}ndt|t�rvt|dd�}|dk	rNt|�}|}q�t��\}}}||k	r�d}|}t|�}ntdt|���|||fS)N�r�z,Expected Exception object to report, got %s!)	rZ�tupler��
BaseExceptionr�rzrOrIrj)�errorr�r�rAr!r!r"rP�s

rPcCs*t|�}t|�}ddt|||�id�|fS)Nr�r�)�levelr�)rPrQr�)rIr�r��hintr!r!r"�event_from_exception�srcCs8|sdSx*|pdD]}||ks,|�|d�rdSqWdS)NFr!r�T)r�)�namer��itemr!r!r"r��sr�cCsX|s|S|dkrt}t|�}||krTt|d|d�d|dd|d|ggd�d�S|S)Nr�z...z!limit�x)r��rem)r@r�)�MAX_STRING_LENGTHr�r�)r@�
max_length�lengthr!r!r"r��sr�cCs�yhddl}ddlm}tdd�|j�d�dd�D��}|dd	�rftjd
krT|dks^|dd
�rbdSdSWntk
r|YnXyddl	m
}|d�r�dSWntk
r�YnXdS)z�
    Returns whether gevent/eventlet have patched the stdlib in a way where thread locals are now more "correct" than contextvars.
    rN)�is_object_patchedcSsg|]}t|��qSr!)rg)r}�partr!r!r"r�sz*_is_contextvars_broken.<locals>.<listcomp>r�r��	threading�local)r�rw)��	�contextvars�
ContextVarFT)�is_monkey_patchedr�)�geventZ
gevent.monkeyrr��__version__r�rO�version_infor�Zeventlet.patcherr)rrZ
version_tuplerr!r!r"�_is_contextvars_brokens$"
	
rcsG�fdd�dt�}|S)Ncs(eZdZ�fdd�Zdd�Zdd�ZdS)z1_make_threadlocal_contextvars.<locals>.ContextVarcs||_��|_dS)N)�_name�_local)r<r)rr!r"rn<sz:_make_threadlocal_contextvars.<locals>.ContextVar.__init__cSst|jd|�S)Nr@)r�r)r<�defaultr!r!r"r+Asz5_make_threadlocal_contextvars.<locals>.ContextVar.getcSs||j_dS)N)rr@)r<r@r!r!r"r�Esz5_make_threadlocal_contextvars.<locals>.ContextVar.setN)rCrDrErnr+r�r!)rr!r"r9sr)�object)rrr!)rr"�_make_threadlocal_contextvars7srcCs~t�sftjdkr<yddlm}d|fStk
r8YqfXn*yddlm}d|fStk
rdYnXddlm}dt	|�fS)z�
    Figure out the "right" contextvars installation to use. Returns a
    `contextvars.ContextVar`-like class with a limited API.

    See https://docs.sentry.io/platforms/python/contextvars/ for more information.
    )r�rwr)rT)rF)
rrOrZaiocontextvarsrr�rr
rr)rrr!r!r"�_get_contextvarsLs
rz�

With asyncio/ASGI applications, the Sentry SDK requires a functional
installation of `contextvars` to avoid leaking scope/context data across
requests.

Please refer to https://docs.sentry.io/platforms/python/contextvars/ for more information.
cCszyd|jj|jj|jfStk
r,YnXt|dd�pHt|dd�pHd}|sRdSyd|j|fStk
rtYnX|S)Nz%s.%s.%srErCz%s.%s)Zim_classrDrCr�r�)�funcZ
func_qualnamer!r!r"�transaction_from_function~s
r�disable_capture_eventc@seZdZdZdS)�ServerlessTimeoutWarningz>Raised when a serverless method is about to reach its timeout.N)rCrDrErSr!r!r!r"r�src@s(eZdZdZdd�Zdd�Zdd�ZdS)	�
TimeoutThreadz�Creates a Thread which runs (sleeps) for a time duration equal to
    waiting_time and raises a custom ServerlessTimeout exception.
    cCs&tj�|�||_||_t��|_dS)N)r
�Threadrn�waiting_time�configured_timeout�Event�_stop_event)r<r!r"r!r!r"rn�szTimeoutThread.__init__cCs|j��dS)N)r$r�)r<r!r!r"�stop�szTimeoutThread.stopcCsJ|j�|j�|j��rdSt|j�}||jkr8|d}td�|���dS)NrzZWARNING : Function is expected to get timed out. Configured timeout duration = {} seconds.)r$�waitr!�is_setrgr"r�format)r<Zinteger_configured_timeoutr!r!r"�run�s


zTimeoutThread.runN)rCrDrErSrnr%r)r!r!r!r"r�sr)N)NN)NT)T)NN)NN)NN)NN)N)_rr��loggingr)rOr
r/r�
sentry_sdkZsentry_sdk._compatrrrrZsentry_sdk._typesr�typesrr	�typingr
rrr
rrrrrrrrrrJ�	getLogger�loggerrZMAX_FORMAT_PARAM_LENGTHr#r$r:rr;rGrHr>rLrNrQrjrRrTrrr�r�r�Z	Annotatedr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�ZHAS_CHAINED_EXCEPTIONSr�r�r�r�r�r�r�rPrr�r�rrrZHAS_REAL_CONTEXTVARSrZCONTEXTVARS_ERROR_MESSAGErrrr rr!r!r!r"�<module>s�
'
I;	
(

#
	
%

!




)&