Viewing File: /opt/hc_python/lib/python3.12/site-packages/sentry_sdk/__pycache__/client.cpython-312.pyc

�

h0is���f�ddlZddlZddlZddlZddlmZddlmZmZddlm	Z	ddl
mZmZm
Z
mZmZddlZddlZddlmZmZddlmZddlmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'dd	l(m)Z)dd
l*m+Z+ddl,m-Z-m.Z.ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5dd
l6m7Z7m8Z8ddl9m:Z:ddl;m<Z<ddl=m>Z>ddl?m@Z@ddlAmBZBmCZCmDZDddlEmFZFddlGmHZHernddl
mIZIddl
mJZJddl
mKZKddl
mLZLddl
mMZMddl
mNZNddl
mOZOddlPmQZQmRZRmSZSmTZTmUZUmVZVddl6mWZWddlXmYZYddlZm[Z[dd l\m]Z]dd!l,m^Z^dd"l_m`Z`ddlmZeOd#eW�$�Zaed%�Zbd&e4d'e4d(�gd)�Zcd*�Zd	eeZfGd+�d,�ZiGd-�d.ei�ZjGd/�d0ei�Zkdd1l
mZerGd2�d3e5e
eleIf�ZmGd4�d5e5ek�Znyd6��Zmd7��Zny#eg$rehZfY�`wxYw)8�N)�Mapping)�datetime�timezone)�
import_module)�
TYPE_CHECKING�List�Dict�cast�overload)�PY37�check_uwsgi_thread_support)�MetricsBatcher)�AnnotatedValue�
ContextVar�capture_internal_exceptions�current_stacktrace�env_to_bool�format_timestamp�get_sdk_name�
get_type_name�get_default_release�
handle_in_app�	is_gevent�logger�get_before_send_log�get_before_send_metric�has_logs_enabled�has_metrics_enabled)�	serialize)�trace)�BaseHttpTransport�make_transport)�SPANDATA�DEFAULT_MAX_VALUE_LENGTH�DEFAULT_OPTIONS�INSTRUMENTER�VERSION�ClientConstructor)�_DEFAULT_INTEGRATIONS�setup_integrations)�DedupeIntegration)�SessionFlusher)�Envelope)�setup_continuous_profiler)�has_profiling_enabled�Profile�setup_profiler)�
EventScrubber)�Monitor)�Any)�Callable)�Optional)�Sequence)�Type)�Union)�TypeVar)�Event�Hint�SDKInfo�Log�Metric�EventDataCategory)�Integration)�Scope)�Session)�SpotlightClient)�	Transport��
LogBatcher�I)�bound�client_init_debugz
sentry.pythonzpypi:sentry-sdk)�name�version)rKrL�packagesc���|r)t|dttf�s|d�|d}|dd}nd}t|�dkDrt	d��tt�}t|i|��}|�|jd��||d<|j�D]\}}||vrt	d|����|||<�|d�"tjjd�|d<|d�
t�|d<|d�&tjjd	�xsd
|d<|d�1ttjjd�d
��xsd|d<|d�'ttd�rtj�|d<|d�t j"|d<|d�	tj$�}||d<|dd
ur
|d�d|d<|d�t)|d�dn|d��|d<|dr-t|dt*�st-j.d�d|d<|d�1ttjjd�d
��xsd|d<|d�t1j2dt4d� �|S#t&$rd}Y��wxYw)!Nr�z+Only single positional argument is expected�dsnzUnknown option �
SENTRY_DSN�release�environment�SENTRY_ENVIRONMENT�
production�debug�SENTRY_DEBUGT��strictF�server_name�gethostname�instrumenter�project_root�enable_tracing�traces_sample_rate��?�event_scrubber�send_default_pii)rb�socket_optionszxIgnoring socket_options because of unexpected format. See urllib3.HTTPConnection.socket_options for the expected format.�
keep_alive�SENTRY_KEEP_ALIVEzVThe `enable_tracing` parameter is deprecated. Please use `traces_sample_rate` instead.�)�
stacklevel)�
isinstance�bytes�str�len�	TypeError�dictr%�get�items�os�environrr�hasattr�socketr[r&�SENTRY�getcwd�	Exceptionr2�listr�warning�warnings�warn�DeprecationWarning)�args�kwargsrP�rv�options�key�valuer]s        �@/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/client.py�_get_optionsr�Vs�����D��G�e�S�\�2�d�1�g�o��1�g���A�B�x����
�4�y�1�}��E�F�F�	
�o�	�B��D�#�F�#�G�
��7�;�;�u�-�5������m�m�o�
��U��b�=��3�8�9�9���3��	&�
�%�y���J�J�N�N�<�0��5�	�	�)�}��+�-��9�
�	�-�� ��J�J�N�N�+?�@�P�L��=��	�'�{��!�"�*�*�.�.��"@��N�W�RW��7��	�-�� �W�V�]�%C�"�.�.�0��=��	�.��!�)�0�0��>��	�.��!�	 ��9�9�;�L�*��>��	�
��t�#��+?�(@�(H�#&��� �	�
��#�,��.�/�7��R�@R�=S� 
����
�
��J�r�2B�/C�T�$J����
G�	
� $����	�,�����
�
���':�;�D�I�R�U�	�<��
�
��'��
�
�d���	
��I��C�	 ��L�	 �s�I�I-�,I-c��eZdZdZdZdd�Zd�Zd�Zed��Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zered
��Zed��Zd�Zd�Zd�Zd�Zd�Zy)�
BaseClientzp
    .. versionadded:: 2.0.0

    The basic definition of a client that is used for sending data to Sentry.
    Nc�Z�|�|nt|_d|_d|_d|_d|_y�N)r%r�	transport�monitor�log_batcher�metrics_batcher)�selfrs  r��__init__zBaseClient.__init__�s.��")�"5�w�?������������#���c�
�diiS�Nr��r�r|r}s   r��__getstate__zBaseClient.__getstate__�s���2��r�c��yr�r�r�s   r��__setstate__zBaseClient.__setstate__����r�c��yr�r��r�s r�rPzBaseClient.dsn�s��r�c��y)NFr�r�s r��should_send_default_piiz"BaseClient.should_send_default_pii�s��r�c��y)�u
        .. versionadded:: 2.0.0

        Returns whether the client is active (able to send data to Sentry)
        Fr�r�s r��	is_activezBaseClient.is_active�s��r�c��yr�r�r�s   r��
capture_eventzBaseClient.capture_event����r�c��yr�r�)r��logs  r��_capture_logzBaseClient._capture_log�r�r�c��yr�r�)r��metrics  r��_capture_metriczBaseClient._capture_metric�r�r�c��yr�r�r�s   r��capture_sessionzBaseClient.capture_session�r�r�c��yr�r��r��
name_or_classs  r��get_integrationzBaseClient.get_integration����
r�c��yr�r�r�s  r�r�zBaseClient.get_integration�r�r�c��yr�r�r�s  r�r�zBaseClient.get_integration�r�r�c��yr�r�r�s   r��closezBaseClient.close�r�r�c��yr�r�r�s   r��flushzBaseClient.flush�r�r�c��|Sr�r�r�s r��	__enter__zBaseClient.__enter__����r�c��yr�r��r��exc_type�	exc_value�tbs    r��__exit__zBaseClient.__exit__r�r�r�)�__name__�
__module__�__qualname__�__doc__�	spotlightr�r�r��propertyrPr�r�r�r�r�r�rrr�r�r�r�r�r�r�r�r�r��s�����I�$��
��������
�
���	�	�
�	�
�	�
�	�����r�r�c��eZdZdZy)�NonRecordingClientz�
    .. versionadded:: 2.0.0

    A client that does not send any events to Sentry. This is used as a fallback when the Sentry SDK is not yet initialized.
    N)r�r�r�r�r�r�r�r�r�
s���	r�r�c����eZdZdZ�fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
ed	��Zd
�Z
d�Z	dd�Zd
�Zd�Z		dd�Zd�Zd�Zd�Zered��Zed��Zd�Z		dd�Z		dd�Zd�Zd�Z�xZS)�_ClientaI
    The client is internally responsible for capturing the events and
    forwarding them to sentry through the configured transport.  It takes
    the client options as keyword arguments and optionally the DSN as first
    argument.

    Alias of :py:class:`sentry_sdk.Client`. (Was created for better intelisense support)
    c�`��tt|�t|i|����|j	�y)N�r)�superr�r��get_options�
_init_impl)r�r|r}�	__class__s   �r�r�z_Client.__init__s)���
�g�t�%�k�4�.J�6�.J�%�K����r�c��d|jiSr�r�r�s r�r�z_Client.__getstate__#s���4�<�<�(�(r�c�8�|d|_|j�yr�)rr�)r��states  r�r�z_Client.__setstate__'s���Y�'������r�c���|D]b}d}|d}|jdd�\}}	t|�}t||�}t||t	|��tjd|��dy#t$r�	|jdd�\}}t|�}t||�}	t|	|�}t|	j|�}
t	|�}|
ttfvrt|�}t|	||�t|||	�tjd|�n-#t$r!}tjd||�Yd}~nd}~wwxYwY��Et$r"}tjd||�Yd}~��jd}~wwxYw)z�
        Instruments the functions given in the list `functions_to_trace` with the `@sentry_sdk.tracing.trace` decorator.
        N�qualified_name�.rOzEnabled tracing for %szWCan not enable tracing for '%s'. (%s) Please check your `functions_to_trace` parameter.)�rsplitr�getattr�setattrr rrV�module_not_found_error�type�__dict__�staticmethod�classmethodrvrx)
r��functions_to_trace�function�
class_name�function_qualname�module_name�
function_name�
module_obj�function_obj�	class_obj�
function_type�traced_function�es
             r��_setup_instrumentationz_Client._setup_instrumentation,sr��
+�H��J� (�)9� :��):�)A�)A�#�q�)I�&�K��'
�+�;�7�
�&�z�=�A���
�M�5��3F�G����5�7H�I�+��*�
��/:�.@�.@��a�.H�+�K��!.�{�!;�J� '�
�J� ?�I�#*�9�m�#D�L�$(��);�);�M�)J�$K�M�&+�L�&9�O�$��{�(C�C�*6��*G���I�}�o�F��J�
�I�>��L�L�!9�;L�M�� ���N�N�q�)��������
����m�%�����
�sI�AA)�)	E2�3B$D�E2�	E�!D=�8E2�=E�E2�E2�E-�-E2c���tjd�}�fd�}	d(�fd�	}	tj�jd�t	�j��_d�_�j
r)�jdrt�j
��_t|���_	d�_
t�j�rddlm
}|||�	��_
d�_t�j�rt!||�	��_d
}�jd|vrt#dj%|����jd
jdd�rOt'j(d�t*j,�jd<dt.vrt/j0d�t3�jd�jd�jd�jd�j���_�jjd�}|�Edt6j8vr3t6j8d}t;|d��}|�|n|�jd<�jjd�rkddlm}|�j��_ �jds?d�}	d�jd<|	�jd<|	�jd <|	�jd!<tCtE�j4jG���}
|
tHd"<t'j(d#|
�tK�j�r	tM�j�n	tQ�jtH|�%�tj|��jS�jjd'g���js;�js/tK�j�stU�j
tV�rtY�yy#tN$r }t'j(d$|�Yd}~��d}~wwxYw#tN$r }t'j(d&|�Yd}~��d}~wwxYw#tj|�wxYw))NFc�V���j��jj|�yyr�)r��capture_envelope)�enveloper�s �r��_capture_envelopez-_Client._init_impl.<locals>._capture_envelopecs$����~�~�)����/�/��9�*r�c�\���j��jj|||��yy)N��reason�
data_category�quantity)r��record_lost_event)r�r�r�r�s   �r��_record_lost_eventz._Client._init_impl.<locals>._record_lost_evenths4����~�~�)����0�0�!�"/�%�1��*r�rV�enable_backpressure_handling)�capture_funcrrF)r��record_lost_func)�always�never�small�medium�max_request_body_sizez:Invalid value for max_request_body_size. Must be one of {}�_experiments�otel_powered_performancezA[OTel] Enabling experimental OTel-powered performance monitoring.r\zJsentry_sdk.integrations.opentelemetry.integration.OpenTelemetryIntegration�integrations�default_integrations�auto_enabling_integrations�disabled_integrations)�
with_defaults�with_auto_enabling_integrationsrrr��SENTRY_SPOTLIGHTTrX)�setup_spotlightrPc��y)Nr`r�)�_args�_kwargss  r��<lambda>z$_Client._init_impl.<locals>.<lambda>�s��3r�rb�
error_sampler�traces_sampler�profiles_samplerrKzSetting SDK name to '%s'zCan not set up profiler. (%s))�sdk_infor�z(Can not set up continuous profiler. (%s)r�)rO)-�_client_init_debugrn�setrr"r�r�r3r,�session_flusherr�r�sentry_sdk._log_batcherrGr�rr�
ValueError�formatrrVr&�OTELr)�appendr*r�rprqr�sentry_sdk.spotlightrr�rrw�keys�SDK_INFOr/r1rvr.r�rhr!r
)r��	old_debugr�r�rGr��spotlight_config�spotlight_env_valuer�
sample_all�sdk_namer�s`           r�r�z_Client._init_impl_s����&�*�*�5�1�	�	:��	�f	.��"�"�4�<�<��#8�9�+�D�L�L�9�D�N��D�L��~�~��<�<� >�?�#*�4�>�>�#:�D�L�#1�?P�#Q�D� �#�D������-�>�#-�!2�%7�$�� �
$(�D� �"�4�<�<�0�'5�!2�%7�(��$�
%K�!��|�|�3�4�<Q�Q� �P�W�W�-�����|�|�N�+�/�/�0J�E�R����W��0<�/@�/@����^�,�`�0�1�*�0�0�d��!3����^�,�"�l�l�+A�B�04���0�1�'+�l�l�3J�&K����!�D�� $�|�|�/�/��<���'�,>�"�*�*�,L�&(�j�j�1C�&D�#�#.�/B�4�#P� �(�3�%�,����[�)��|�|����,�A�!0����!>����|�|�E�*�!>�J�7;�D�L�L�!3�4�4>�D�L�L��1�5?�D�L�L�!1�2�7A�D�L�L�!3�4�#�D��):�):�)?�)?�)A�$B�C�H�'�H�V���L�L�3�X�>�$�T�\�\�2�E�"�4�<�<�0�P�-����!)�%6��
�"�"�9�-��#�#�D�L�L�$4�$4�5I�2�$N�O�
�L�L����$�T�\�\�2��$�.�.�*;�<�
'�(�	=��+!�E��L�L�!@�!�D�D��E��!�P��L�L�!K�Q�O�O��P��
�"�"�9�-�sZ�LQ!�P	�Q!�P5�		P2�P-�(Q!�-P2�2Q!�5	Q�>Q�Q!�Q�Q!�!Q8c��y)r�Tr�r�s r�r�z_Client.is_active�s��r�c�@�|jjd�xsdS)z�
        .. versionadded:: 2.0.0

        Returns whether the client should send default PII (Personally Identifiable Information) data to Sentry.
        rbF)rrnr�s r�r�z_Client.should_send_default_pii�s���|�|��� 2�3�<�u�<r�c� �|jdS)z%Returns the configured DSN as string.rPr�r�s r�rPz_Client.dsn�s���|�|�E�"�"r�c��d}d}|jd��&tjtj�|d<|jd�dk(}|���tt
ttttf|jdg���}|j|||j�}|�Q|jrD|jjd|rdnd��|r!|jjdd|d	z�
�y|}|tt
ttttf|jdg���z
}	|r/|	dkDr*|j�|jjdd|	�
�|jdd�|	z}
|
dkDr||
z}|j dkDrN|jd
i�}t#|t$�s|jdg�ng}t|�|j z}|s}|jdrnd|vrjd|vrfd|vrbt'�5dt)|jjdd�|jjdt*���ddd�gi|d<ddd�dD]M}
|j|
���|j|
��%t|j|
�j-�||
<�O|jd��:t/t0�}t3|j4j7��|d<||d<|jd��d|d<t9||jd|jd|jd �}|�"|jd!}|r|j;|�|��|j<r�|jdg�}t#|t>�r�|D]�}|jd"d�}|jd#i�}|s�*||j<vs�9t@jB|vs�Lt%|t@jBd$|j<|i�|t@jB<��|�!t%|jdg�d$|i�|d<|�#t%|jd
dgi�d$|i�|d
<|�nt
d%tEt
d&|�|jjd'�|jjd�|jjd(��)��}|jd*}|��|��|jd�dk7r�d}t'�5|||xsi�}ddd�|�ctGjHd+�|jr|jjd*d��|jd�rtKjL�|}|jd,}|��(|��%|jd�dk(�rd}tt
ttttf|jdg���}t'�5|||xsi�}ddd�|�`tGjHd-�|jr�|jjd*d�.�|jjd*d|d	z�/�nM|t|jdg��z
}	|	dkDr*|j�|jjd*d|	�/�|}|S#1swY��wxYw#1swY���xYw#1swY��xYw)0N�	timestampr��transaction�spans�event_processor�error�r��spanrO)r�r�r�_dropped_spans�breadcrumbs�values�attach_stacktrace�	exception�
stacktrace�threads�include_local_variablesT�max_value_length)r0r1F)r.�crashed�current)rRrSrZ�dist�sdkr��platform�python�in_app_exclude�in_app_includer]ra�span_id�datarkr;zDict[str, Any]r��custom_repr)r�r1r<�before_sendzbefore send dropped event�before_send_transactionz%before send transaction dropped event)r�r�r�)'rnr�nowr�utcrkr
rr	rj�object�apply_to_eventrr�r��pop�_n_breadcrumbs_truncatedrhrrrr$�striprmr�sortedr�rr�scrub_event�_gen_ai_original_message_countrwr#�GEN_AI_REQUEST_MESSAGESrr�infor+�reset_last_seen)r��event�hint�scope�previous_total_spans�previous_total_breadcrumbs�is_transaction�spans_before�event_�spans_delta�
dropped_spansr*r+r�r
rar$r(r:�	span_datar=�	new_eventr>s                       r��_prepare_eventz_Client._prepare_events��� $��%)�"��9�9�[�!�)�!)���h�l�l�!;�E�+�����6�*�m�;�����t�D��c�6�k�):�$;�U�Y�Y�w�PR�=S�T�U�L��)�)�%��t�|�|�D�F��~��>�>��N�N�4�4�)�8F�}�G�5��&����8�8�-�*0�%1�A�%5�9��
��E�&���T�$�s�F�{�+�,�e�i�i���.D�E�*��K��+��/�d�n�n�6P����0�0�%�V�k�1��"�I�I�&6��:�[�H�M��q� �'3�m�'C�$��-�-��1�#�i�i�
�r�:��&�k�>�B� �O�O�H�b�1�����K�%�"@�"@�@�+�
����0�1��5�(��E�)���&�,�.��*<�8<���8H�8H�$=�t�9"�26���1A�1A�$6�8P�2"�	+�(-�'+��
�$��i� �/�$C�C��y�y��~�%�$�,�,�s�*;�*G� ����c�!2�3�9�9�;��c�
�C��9�9�U��#��H�~�H�'-�d�.?�.?�.D�.D�.F�'G�H�^�$�#�E�%�L��9�9�Z� �(� (�E�*�����L�L�)�*��L�L�)�*��L�L��(�	
����!�\�\�*:�;�N���*�*�5�1����!E�!E��I�I�g�r�*�E��%��&�!�D�"�h�h�y�$�7�G� $����� 4�I��#�u�'K�'K�K�$�<�<�	�I�FT�%�h�&F�&F�G�"�E�$H�$H��$Q�R�G�	�(�"B�"B�C�"� �+�+��	�	�'�2�&��0D�(E��E�'�N�&�1�#1��	�	�-�(�B��8��2�3�$�E�-� �������)�5�1�*.�,�,�*:�*:�;R�*S�%)�\�\�%5�%5�6H�%I� $��� 0� 0�� ?�	��E��l�l�=�1���#��!��	�	�&�!�]�2��I�,�.�'��t�z�r�:�	�/�� ����7�8��>�>��N�N�4�4�%�W�5���9�9�[�)�%�5�5�7��E�"&�,�,�/H�"I��#�/��!��	�	�&�!�]�2��I��t�D��c�6�k�):�$;�U�Y�Y�w�PR�=S�T�U�L�,�.�3�E�4�:�2�F�	�/�� ����C�D��>�>��N�N�4�4�,�M�5���N�N�4�4�,�&,�!-��!1�5��+�S����w��1K�-L�L����?�t�~�~�'A��N�N�4�4�,�F�[�5���E���M/�.��l/�.��4/�.�s%�A[�"[(�[5�[%�([2�5[>c��|jd�}|�y|d}t|d�}|dj�d|��}|jdD]-}t	|t
�r
||k(s||k(s�yt
||�s�-yy)N�exc_infoFrr��
ignore_errorsT)rnrr�rrhrj�
issubclass)r�rLrMrZr&�error_type_name�error_full_name�
ignored_errors        r��_is_ignored_errorz_Client._is_ignored_error�s����8�8�J�'���������'����4��%-�a�[�%;�%;�_�M��!�\�\�/�:�M��-��-� �O�3�}��7W���e�]�3��;�r�c��|jd�dk(}|ry|duxr
|j}|ry|j||�}|ryy)Nr�r#TF)rn�_should_capturer`)r�rLrMrNrQ�ignoring_prevents_recursion�ignored_by_config_options       r�rbz_Client._should_capture�sX�����6�*�m�;����&+�4�&7�&U��@U�@U�<U�#�&��#'�#9�#9�%��#F� �#��r�c�0�|jjdd�}t|�rt�5|||�}ddd�n|jd}	dkxrt	j�|k\}|r*|jr|jjdd�
�yy#1swY�UxYw#t
$rt
jd�d}Y�[t$r?t|�rdnd\}}t
jd|�d	|�d
t��d��d}Y��wxYw)Nr
�sample_rater`zMThe provided error_sampler raised an error. Defaulting to sampling the event.F)r
�returned)rf�containsz
The provided � z an invalid value of zJ. The value should be a float or a bool. Defaulting to sampling the event.r&r'T)rrn�callabler�random�	NameErrorrrxrl�reprr�r�)r�rLrMr
rf�not_in_sample_rate�	parameter�verbs        r��_should_sample_errorz_Client._should_sample_error�s�����(�(��$�?�
��M�"�,�.�+�E�4�8��/�.��,�,�}�5�K�	'�!,�s�!2�!U�v�}�}��+�7U��0��~�~����0�0��g�0�V���K/�.���	'��N�N�_�
�"'���
	'��M�*�.�0�
�I�t�

�N�N��d�D��$5�7�
�"'��
	'�s$�
B �B,� B)�, D�AD�Dc�|�d}d}d}|jd�xsijd�}|rbd}|D][}t|t�r|jxsi}|jd�}t|t�s�E|jd�dus�Yd}n|jd�}	|j
�g|jd�xsijd	�}
t|
t�r|
ni}|j�D]\}}
|j�d
k(s�|
}n|j|rdnd|	||j|xs|z��y)
NFr-r+T�	mechanism�handled�user�request�headersz
user-agentr2)�statusru�
user_agent�errors)rnrhrr�rryrmro�lower�updaterz)r��sessionrLr2�erroredry�
exceptionsr&rsrurw�headers_dict�k�vs              r��_update_session_from_eventz"_Client._update_session_from_event&s4�������
��i�i��,�2��7�7��A�
���G�#���e�^�4�!�K�K�-�2�E�!�I�I�k�2�	��i��1�i�m�m�I�6N�RW�6W�"�G��
$��y�y�� �����%��y�y��+�1�r�6�6�y�A�G�&0��$�&?�7�R�L�$�*�*�,���1��7�7�9��,�!"�J��-�
	��� '�9�T��!��>�>�W�%7��8�		�	
r�c���t|xsd�}|j|||�sy|jdd�}|jd�}|�#t	j
�jx|d<}|j|||�}|�y|r|jnd}|r|j||�|jd�dk(}|jd�dk(}	|s|	s|j||�sy|jd�}
|jd	i�jd
�xsi}|jdi�}|dttjtj��d�}
|r||
d
<t!|
�
�}|rMt#|t$�r+|j'|j)||j*��|j-|�n%|	r|j/|�n|j1|�|
xsdD]!}|j3|j5���#d}|j6r|j6j9|�|}|j:�|j:j9|�|}|S)aCaptures an event.

        :param event: A ready-made event that can be directly sent to Sentry.

        :param hint: Contains metadata about the event that can be read from `before_send`, such as the original exception object or a HTTP request object.

        :param scope: An optional :py:class:`sentry_sdk.Scope` to apply to events.

        :returns: An event ID. May be `None` if there is no DSN set or of if the SDK decided to discard the event for other reasons. In such situations setting `debug=True` on `init()` may help.
        r�N�profile�event_idr�r#�check_in�attachments�contextsr �dynamic_sampling_context)r��sent_at)rw)rmrbrCrn�uuid�uuid4�hexrX�_sessionr�rqrrr?rr@r-rhr0�add_profile�to_jsonr�add_transaction�add_checkin�	add_event�add_item�to_envelope_itemr�r�r�)r�rLrMrNr�r��	event_optr}rQ�
is_checkinr��
trace_contextr�rwr��
attachment�return_values                 r�r�z_Client.capture_eventMs4��"�D�J�B����#�#�E�4��7���)�)�I�t�,���9�9�Z�(����+/�:�:�<�+;�+;�;�E�*����'�'��t�U�;�	����%*�%�.�.�t����+�+�G�U�;�"���v�.�-�?���]�]�6�*�j�8�
����-�-�e�T�:���h�h�}�-��!�
�
�j�"�5�9�9�'�B�H�b�
�#0�#4�#4�5O�QS�#T� �"�*�-�'����X�\�\�(B�C�
��
$�7�G�G���G�,����'�7�+��$�$�W�_�_�Y����%M�N��$�$�Y�/�
�� � ��+����y�)�%�+��+�J����j�9�9�;�<�,����>�>��N�N�+�+�H�5�#�L��>�>�%��N�N�+�+�H�5�#�L��r�c�~�t|j�r|�ytj�}tj�}t
d|dd<t
d|dd<|jj
d�}|�+tj|dvr||dtj<|jj
d�}|�d|dvr||dd<|jj
d	�}|�d
|dvr||dd
<|j�}|j
d�}|j
d�}	|�|j
d��||d<|	�d
|dvr|	|dd
<|j�6dD]1\}
}||jvs�|
|dvs�|j||d|
<�3|jj
dd�}|r9tjd|j
d��d|j
d����t|j�}
|
�	|
|i�}|�y|jr|jj|�yy)NrK�
attributes�sentry.sdk.namerL�sentry.sdk.versionrZrS�sentry.environmentrR�sentry.release�trace_idr:zsentry.trace.parent_span_id�)zuser.id�id)z	user.name�username)z
user.email�emailrVFz[Sentry Logs] [�
severity_text�] �body)rr�
sentry_sdk�get_current_scope�get_isolation_scoperrnr#�SERVER_ADDRESS�get_trace_context�_userrrVrr��add)r�r��
current_scope�isolation_scoperZrSrRr�r�r:�
log_attribute�user_attributerV�before_send_logs              r�r�z_Client._capture_log�si������-����"�4�4�6�
�$�8�8�:��/7��/?��L��+�,�2:�9�2E��L��.�/��l�l�&�&�}�5���"�x�'>�'>�c�,�FW�'W�9D�C���h�5�5�6��l�l�&�&�}�5���"�';�3�|�CT�'T�6A�C���2�3��,�,�"�"�9�-����#3�3�|�;L�#L�29�C���.�/�%�7�7�9�
� �$�$�Z�0���#�#�I�.����C�G�G�J�$7�$?�&�C�
�O�
��-�S��5F�F�?F�C���;�<�� � �,�2�-�
�~�#�o�&;�&;�;�%�S��->�>�7F�7L�7L�&�8�C��%�m�4�2���� � ��%�0����L�L�!�#�'�'�/�":�!;�2�c�g�g�f�o�=N�O�
�.�d�l�l�;���&�!�#�r�*�C��;�������� � ��%�r�c
�p�t|j�r|�ytj�}tj�}t
d|dd<t
d|dd<|jj
d�}|�+tj|dvr||dtj<|jj
d�}|�d|dvr||dd<|jj
d	�}|�d
|dvr||dd
<|j�}|j
d�}|j
d�}	|xsd
|d<|	�|	|d<|j�6dD]1\}
}||jvs�|
|dvs�|j||d|
<�3|jj
dd�}|rKtjd|j
d��d|j
d��d|j
d����t|j�}
|
�	|
|i�}|�y|jr|jj|�yy)NrKr�r�rLr�rZrSr�rRr�r�r:z$00000000-0000-0000-0000-000000000000r�rVFz[Sentry Metrics] [r�r�z: r�)rrr�r�r�rrnr#r�r�r�rrVrr�r�)r�r�r�r�rZrSrRr�r�r:�metric_attributer�rV�before_send_metrics              r�r�z_Client._capture_metric�s^��"�4�<�<�0�F�N��"�4�4�6�
�$�8�8�:��2:�6�2B��|��.�/�5=�i�5H��|��1�2��l�l�&�&�}�5���#��'�'�v�l�/C�C�<G�F�<� ��!8�!8�9��l�l�&�&�}�5���"�';�6�,�CW�'W�9D�F�<� �!5�6��,�,�"�"�9�-����#3�6�,�;O�#O�5<�F�<� �!1�2�%�7�7�9�
� �$�$�Z�0���#�#�I�.��%�O�)O��z���� '�F�9��� � �,�5�0� �.�#�o�&;�&;�;�(��|�0D�D�=L�=R�=R�&�>�F�<�(�)9�:�5���� � ��%�0����L�L�$�V�Z�Z��%7�$8��6�:�:�f�;M�:N�b�QW�Q[�Q[�\c�Qd�Pe�f�
�4�D�L�L�A���)�'���3�F��>������ � �$�$�V�,� r�c�~�|jstjd�y|jj	|�y)Nz3Discarded session update because of missing release)rRrrJr�add_session)r�r}s  r�r�z_Client.capture_session&s,��
����K�K�M�N�� � �,�,�W�5r�c��yr�r�r�s  r�r�z_Client.get_integration2r�r�c��yr�r�r�s  r�r�z_Client.get_integration7r�r�c��t|t�r|}n$|j�
|j}ntd��|jj|�S)z�Returns the integration for this client by name or class.
        If the client does not have that integration then `None` is returned.
        zIntegration has no name)rhrj�
identifierrr�rn)r�r��integration_names   r�r�z_Client.get_integration<sP���m�S�)�,��
�
%�
%�
1�,�7�7���6�7�7�� � �$�$�%5�6�6r�c��|j��|j||��|jj�|j�|jj�|j
�|j
j�|jr|jj�|jj�d|_yy)z�
        Close the client and shut down the transport. Arguments have the same
        semantics as :py:meth:`Client.flush`.
        N��timeout�callback)r�r�r�killr�r�r��r�r�r�s   r�r�z
_Client.closeMs����>�>�%��J�J�w��J�:�� � �%�%�'����+�� � �%�%�'��#�#�/��$�$�)�)�+��|�|����!�!�#��N�N���!�!�D�N�&r�c�F�|j��|�|jd}|jj�|j�|jj�|j
�|j
j�|jj||��yy)a#
        Wait for the current events to be sent.

        :param timeout: Wait for at most `timeout` seconds. If no `timeout` is provided, the `shutdown_timeout` option value is used.

        :param callback: Is invoked with the number of pending events and the configured timeout.
        N�shutdown_timeoutr�)r�rrr�r�r�r�s   r�r�z
_Client.flushcs����>�>�%����,�,�'9�:��� � �&�&�(����+�� � �&�&�(��#�#�/��$�$�*�*�,��N�N� � ��8� �D�&r�c��|Sr�r�r�s r�r�z_Client.__enter__zr�r�c�$�|j�yr�)r�r�s    r�r�z_Client.__exit__~s���
�
�r�r�)NN)r�r�r�r�r�r�r�r�r�r�r�r�rPrXr`rbrqr�r�r�r�r�rrr�r�r�r�r��
__classcell__)r�s@r�r�r�s������
)��
1�fH)�T�=��#��#�
G�R�4�	�,.�`%
�T��	S�jB&�H>-�@6��	�	�
�	�
�	�
�	�7�&��"�0��E�.�r�r�)rc��eZdZy)r�N�r�r�r�r�r�r�r�r�����r�r�c��eZdZy)�ClientNr�r�r�r�r�r��r�r�r�c��tSr�)r�r�r�r�r	r	�s��<r�c��tSr�)r�r�r�r�r	r	�s��gr�)orpr�rkrs�collections.abcrrr�	importlibr�typingrrr	r
rryr��sentry_sdk._compatrr
�sentry_sdk._metrics_batcherr�sentry_sdk.utilsrrrrrrrrrrrrrrrr�sentry_sdk.serializerr�sentry_sdk.tracingr �sentry_sdk.transportr!r"�sentry_sdk.constsr#r$r%r&r'r(�sentry_sdk.integrationsr)r*�sentry_sdk.integrations.deduper+�sentry_sdk.sessionsr,�sentry_sdk.enveloper-�'sentry_sdk.profiler.continuous_profilerr.�(sentry_sdk.profiler.transaction_profilerr/r0r1�sentry_sdk.scrubberr2�sentry_sdk.monitorr3r4r5r6r7r8r9r:�sentry_sdk._typesr;r<r=r>r?r@rA�sentry_sdk.scoperB�sentry_sdk.sessionrCrrDrErrGrHrrr��ModuleNotFoundErrorr�rv�ImportErrorr�r�r�rjr�r�r�r�r��<module>r�su��	��
�
�#�'�#�<�<���?�6������$,�$�B���N�<�.�(�M���
.�&���������V�V�3�&�*�4�.�2�:���;�'�A�� 3�4��
��+��@�A���L�^)�0��Z�Z�z	��	�l
�j�l
�^!��
�'��c�3�h��
�
�"�G�
�(�*�K��
 �F��c�)�(��)�s�
F&�&F0�/F0
Back to Directory File Manager