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

�

_�*j
���ddlZddlmZddlmZmZddlZddlmZddl	m
Z
ddlmZerddlm
Z
e
deed	��Zd
ZGd�d�Zd
ededdfd�Zy)�N)�Lock)�
TYPE_CHECKING�Any)�LRUCache)�Span)�has_span_streaming_enabled)�	TypedDict�FlagData��flag�result�dc�H�eZdZdeddfd�Zdd�Zdd�Zd
d�Zded	e	ddfd
�Z
y)�
FlagBuffer�capacity�returnNc�P�||_t�|_t|�|_y�N)rr�lockr�_FlagBuffer__buffer)�selfrs  �G/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/feature_flags.py�__init__zFlagBuffer.__init__s �� ��
��F��	�!��*��
�c�8�t|j�|_yr)rrr)rs r�clearzFlagBuffer.clears�� ����/��
rc��|j5t|j�}tj|j
|�|_|cddd�S#1swYyxYwr)rrr�copy�deepcopyr)r�memo�buffers   r�__deepcopy__zFlagBuffer.__deepcopy__s:��
�Y�Y���
�
�.�F�"�m�m�D�M�M�4�@�F�O���Y�Y�s�<A�Ac��|j5|jj�D��cgc]
\}}||d���c}}cddd�Scc}}w#1swYyxYw)Nr)rr�get_all)r�key�values   r�getzFlagBuffer.get%sK��
�Y�Y�AE���AV�AV�AX��AX�:�3����.�AX���Y����Y�s�A
�A�A
�A
�
Arr
c��t|t�rtd��|j5|jj||�ddd�y#1swYyxYw)Nz=FlagBuffer instances can not be inserted into the dictionary.)�
isinstancer�
ValueErrorrr�set)rrr
s   rr+zFlagBuffer.set+sE���f�j�)�
�O��
��Y�Y��M�M���d�F�+��Y�Y�s�A�A)rN)r zdict[int, Any]rr)rzlist[FlagData])�__name__�
__module__�__qualname__�intrrr"r'�str�boolr+�rrrrs>��+��+��+�0���,��,�T�,�d�,rrrr
rc���tj�}tj�j}|j	||�t|j�r\tjj�}|r;t|tjj�r|jd|��|�yyytj�}|r't|t�r|jd|��|�yyy)z�
    Records a flag and its value to be sent on subsequent error events.
    We recommend you do this on flag evaluations. Flags are buffered per Sentry scope.
    zflag.evaluation.N)�
sentry_sdk�
get_client�get_isolation_scope�flagsr+r�options�traces�get_current_spanr)�StreamedSpan�
set_attributer�set_flag)rr
�clientr7�spans     r�add_feature_flagr@9s���
�
"�
"�
$�F��*�*�,�2�2�E�	�I�I�d�F��!�&�.�.�1�� � �1�1�3���J�t�Z�%6�%6�%C�%C�D����!1�$��8�&�A�E�4��*�*�,���J�t�T�*��M�M�,�T�F�3�V�<�+�4r)r�	threadingr�typingrrr4�sentry_sdk._lru_cacher�sentry_sdk.tracingr�sentry_sdk.tracing_utilsrr	r0r1r
�DEFAULT_FLAG_CAPACITYrr@r2rr�<module>rGs^����%��*�#�?�� ���c�T�%B�C�H���#,�#,�L=�3�=��=��=r
Back to Directory File Manager