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

�

_�*j����ddlZddlmZddlmZddlmZddlmZerrddl	m
Z
ddlmZmZm
Z
mZmZddlmZdd	lmZeZeeZed
ee
eeee
ed��Zedd
ei�ZeeeefZeedfZeeefZeeeeefZeeeefZdZdZ er	dddefd�Z!ndddefd�Z!d"d�Z"dddddedd
fd�Z#e fdddddededd f
d!�Z$y)#�N)�deque)�
TYPE_CHECKING)�PY311)�filename_for_module)�	FrameType)�Deque�List�Optional�Sequence�Tuple)�	TypedDict)�LRUCache�ProcessedFrame)�abs_path�filename�function�lineno�module�ProcessedThreadMetadata�name.�e��framer�returnc�.�|jjS�N)�f_code�co_qualname)rs �H/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/profiler/utils.py�get_frame_namer ?s���|�|�'�'�'�c�B�|j}|j}|j}	|ri|ddk(rad|jvrSt	|jd�j
D].}||jvs�dj|j|�cS	|r`|ddk(rXd|jvrJ|jdj
D].}||jvs�dj|j|�cS|S#ttf$rY�vwxYw#ttf$rY|SwxYw)Nr�selfz{}.{}�cls)r�co_varnames�co_name�f_locals�type�__mro__�__dict__�format�__name__�AttributeError�
ValueError)rrr%rr$s     rr r Ds�������(�(���~�~��
	���A��&� 8�V�u�~�~�=U�����v� 6�7�?�?�C��s�|�|�+�&�~�~�c�l�l�D�A�A�@�
	���A��%� 7�E�U�^�^�<S� �>�>�%�0�8�8�C��s�|�|�+�&�~�~�c�l�l�D�A�A�9����)�
�+�	��	���
�+�	��
��
	�s=�AC6�2C6�C6�AD�D�3D�6D�D�D�D�	raw_frame�FrameIdc�Z�|jj|jt|�fSr)r�co_filename�f_linenor )r/s r�frame_idr4ns&�����(�(�)�*<�*<�n�Y�>W�X�Xr!�fid�cwdc���|jj}	|jd}tj
j
||�|t||�xsd|d|jd�S#t$rd}Y�NwxYw)Nr,�)rrrrr)	rr2�	f_globals�	Exception�os�path�joinrr3)r5r/r6rrs     r�
extract_framer>rs~�����+�+�H���$�$�Z�0�� �G�G�L�L��h�/��'���9�A�T���F��$�$���������s�A(�(A6�5A6zOptional[FrameType]�cacher�max_stack_depth�ExtractedStackc�r�t|��}|�"|j}|j|�|}|��"td�|D��}g}t	|�D]K\}}	|j|	�}
|
�"t
|	|||�}
|j|	|
�|j|
��Mt|�t|�f}|||fS)aA
    Extracts the stack starting the specified frame. The extracted stack
    assumes the specified frame is the top of the stack, and works back
    to the bottom of the stack.

    In the event that the stack is more than `MAX_STACK_DEPTH` frames deep,
    only the first `MAX_STACK_DEPTH` frames will be returned.
    )�maxlenc3�2K�|]}t|����y�wr)r4)�.0r/s  r�	<genexpr>z extract_stack.<locals>.<genexpr>�s����F�:�i�h�y�)�:�s�)
r�f_back�append�tuple�	enumerate�getr>�set�len�hash)r/r?r6r@�
raw_framesrG�	frame_ids�frames�ir5r�stack_ids            r�
extract_stackrT�s���&+�/�%B�J�
�
��!�!�����)�$��	��
�
�F�:�F�F�I�
�F��I�&���3��	�	�#����=�!�#�z�!�}�c�:�E��I�I�c�5�!��
�
�e��'�$�:���Y��/�H��Y��&�&r!)r/rrr0)%r;�collectionsr�typingr�sentry_sdk._compatr�sentry_sdk.utilsr�typesrrr	r
rr�typing_extensionsr
�sentry_sdk._lru_cacher�str�ThreadId�int�ProcessedStackrrr0�FrameIds�StackIdrA�ExtractedSample�DEFAULT_SAMPLING_FREQUENCY�MAX_STACK_DEPTHr r4r>rT�r!r�<module>rfss��	�� �$�0���=�=�+�.��H��#�Y�N���� ��
����s�m�	
�	�N�(�!�	��
���
����	
��G�
�W�c�\�"�H��C��H�o�G��7�H�d�>�.B�B�C�N��u�X�~�%=�>�?�O�!����	�(�k�(�c�(�
'�k�'�c�'�TY��y��[��s��GW��@+�	,'�$�,'��,'�

�,'��	,'�
�,'r!
Back to Directory File Manager