Viewing File: /opt/hc_python/lib/python3.12/site-packages/sentry_sdk/__pycache__/_span_batcher.cpython-312.pyc
�
_�*j} � �� � d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZmZ d dl m
Z
d dlmZ d dl
mZmZmZ d dlmZmZ e
rd dl mZmZmZ d d lmZ G d
� ded � Zy)
� N)�defaultdict)�datetime�timezone)�
TYPE_CHECKING)�Batcher)�Envelope�Item�
PayloadRef)�format_timestamp�serialize_attribute)�Any�Callable�Optional)�SpanJSONc � � e Zd ZdZdZdZdZdZdZdZ dd �Z
dd
�Zdd�Zdd
�Z
edddefd�� Zedd�� Zddeddfd�Zy)�SpanBatcheri� i� i P g @�spanz)application/vnd.sentry.items.span.v2+json�returnNc � �� t t � | _ t d� � | _ || _ || _ d| _ t j � | _ t j � | _ t j � | _ t j � | _ t# � | _ d | _ d | _ t+ t, d� r<t/ j0 | j2 � �d�fd�}t- j4 |�� y y )Nc � � y�Nr � r � �G/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/_span_batcher.py�<lambda>z&SpanBatcher.__init__.<locals>.<lambda>/ s � �r T�register_at_forkc �( �� �� } | � | � y y )Nr )�method�
weak_resets �r �_reset_in_childz-SpanBatcher.__init__.<locals>._reset_in_childA s �� �#����%��H� &r )�after_in_child�r N)r �list�_span_buffer�
_running_size�
_capture_func�_record_lost_func�_running� threading�Lock�_lock�local�_active�time� monotonic�_last_full_flush�Event�_flush_event�set�_pending_flush�_flusher�_flusher_pid�hasattr�os�weakref�
WeakMethod�_reset_thread_stater )�self�capture_func�record_lost_funcr r s @r �__init__zSpanBatcher.__init__$ s� �� � :E�T�9J���-8��-C���)���!1�����
��^�^�%��
�*3�/�/�*;���'+�~�~�'7���%�O�O�-���(+����6:��
�-1��� �2�)�*� �+�+�D�,D�,D�E�J�
�
����?� +r c �^ � t t � | _ t d� � | _ d| _ t j � | _ t j � | _ t j � | _ t j � | _ t � | _ d | _ d | _ y )Nc � � yr r r r r r z1SpanBatcher._reset_thread_state.<locals>.<lambda>J s � �r T)r r# r$ r% r( r) r* r+ r, r- r. r/ r0 r1 r2 r3 r4 r5 r6 )r<