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__/sessions.cpython-37.pyc
B

Ta��@s�ddlZddlZddlmZmZddlmZddlZddlm	Z	ddl
mZddlm
Z
ddlmZe
r�ddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddd�Zeddd��ZdZdZdd�ZGdd�de�ZdS)�N)�Thread�Lock)�contextmanager)�Envelope)�Session)�MYPY)�format_timestamp)�Callable)�Optional)�Any)�Dict)�List)�	GeneratorcCs>|dkrtjj}|jj}|dkr:|jr.|jjni}|d}|S)z<Utility function to find out if session tracking is enabled.N�auto_session_tracking)�
sentry_sdk�Hub�currentZscopeZ_force_auto_session_trackingZclient�options)�hub�should_trackZclient_options�r�D/opt/alt/python37/lib/python3.7/site-packages/sentry_sdk/sessions.py� is_auto_session_tracking_enabledsr�applicationccsF|dkrtjj}t|�}|r(|j|d�z
dVWd|r@|��XdS)z8Starts and stops a session automatically around a block.N)�session_mode)rrrrZ
start_sessionZend_session)rrrrrrr!s
r)�exited�abnormal�crashed�dcCst|�t|���d�S)N)�attrsZ
aggregates)�dict�list�values)Zaggregate_statesrrrr�make_aggregate_envelope5sr#c@sFeZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dS)�SessionFlusher�<cCs>||_||_g|_i|_d|_t�|_t�|_d|_d|_	dS)NT)
�capture_func�flush_interval�pending_sessions�pending_aggregates�_threadr�_thread_lock�_aggregate_lock�_thread_for_pid�_running)�selfr&r'rrr�__init__;szSessionFlusher.__init__c	Cs�|j}g|_|j�|j}i|_WdQRXt�}x4|D],}t|j�tkrX|�|�t�}|�|�q6WxB|��D]6\}}t|j�tkr�|�|�t�}|�	t
||��qpWt|j�dkr�|�|�dS)Nr)r(r,r)r�len�items�MAX_ENVELOPE_ITEMSr&�add_sessionZadd_sessionsr#)r/r(r)Zenvelope�sessionr�statesrrr�flushKs$


zSessionFlusher.flushc	s��jt��kr�jdk	rdS�j�V�jt��kr@�jdk	r@dS�fdd�}t|d�}d|_|��|�_t���_WdQRXdS)Ncs*x$�jr$t��j��jr���qWdS)N)r.�time�sleepr'r7r)r/rrr*nsz/SessionFlusher._ensure_running.<locals>._thread)�targetT)r-�os�getpidr*r+r�daemon�start)r/r*�threadr)r/r�_ensure_runningfs
zSessionFlusher._ensure_runningc	Cs�|j��|jdd�}tt|����}|j}|j�|i�}|�|i�}d|krZt|j�|d<|j	dkrz|�
dd�d|d<nT|j	dkr�|�
dd�d|d<n4|jdkr�|�
dd�d|d<n|�
d	d�d|d	<WdQRXdS)
NF)Zwith_user_info�startedrr�rZerroredr)r,Zget_json_attrs�tuple�sortedr2Ztruncated_startedr)�
setdefaultr�status�get�errors)r/r5rZprimary_keyZ
secondary_keyr6�staterrr�add_aggregate_session|s


z$SessionFlusher.add_aggregate_sessioncCs2|jdkr|�|�n|j�|���|��dS)NZrequest)rrJr(�appendZto_jsonr@)r/r5rrrr4�s
zSessionFlusher.add_sessioncCs
d|_dS)NF)r.)r/rrr�kill�szSessionFlusher.killcCs|��dS)N)rL)r/rrr�__del__�szSessionFlusher.__del__N)r%)
�__name__�
__module__�__qualname__r0r7r@rJr4rLrMrrrrr$:s


r$)N)Nr)r;r8�	threadingrr�
contextlibrrZsentry_sdk.enveloperZsentry_sdk.sessionrZsentry_sdk._typesrZsentry_sdk.utilsr�typingr	r
rrr
rrrZTERMINAL_SESSION_STATESr3r#�objectr$rrrr�<module>s,