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

�

h0i\�	�t�ddlZddlmZddlmZddlmZddlmZer�ddl	m
Z
ddlmZddlm
Z
dd	lmZdd
lmZddlmZddlmZdd
lmZeZeeZedeeeeeeed��Zeddei�ZeeeefZeedfZeeefZeeeeefZeeeefZdZdZ erd�Z!nd�Z!d�Z"d�Z#e fd�Z$y)�N)�deque)�PY311)�filename_for_module)�
TYPE_CHECKING)�LRUCache)�	FrameType)�Deque)�List)�Optional)�Sequence)�Tuple)�	TypedDict�ProcessedFrame)�abs_path�filename�function�lineno�module�ProcessedThreadMetadata�name.�e�c�.�|jjS�N)�f_code�co_qualname)�frames �H/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/profiler/utils.py�get_frame_namerBs���|�|�'�'�'�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     rrrHs�������(�(���~�~��
	���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�Dc�Z�|jj|jt|�fSr)r�co_filename�f_linenor)�	raw_frames r�frame_idr2ts&�����(�(�)�*<�*<�n�Y�>W�X�Xr c���|jj}	|jd}tj
j
||�|t||�xsd|d|jd�S#t$rd}Y�NwxYw)Nr+�)rrrrr)	rr/�	f_globals�	Exception�os�path�joinrr0)�fidr1�cwdrrs     r�
extract_framer<ys~�����+�+�H���$�$�Z�0�� �G�G�L�L��h�/��'���9�A�T���F��$�$���������s�A(�(A6�5A6c�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)r2)�.0r1s  r�	<genexpr>z extract_stack.<locals>.<genexpr>�s����F�:�i�h�y�)�:�s�)
r�f_back�append�tuple�	enumerate�getr<�set�len�hash)r1�cacher;�max_stack_depth�
raw_framesrB�	frame_ids�frames�ir:r�stack_ids            r�
extract_stackrQ�s��� �o�.�J�
�
��!�!�����)�$��	��
�
�F�:�F�F�I�
�F��I�&���3��	�	�#����=�!�#�z�!�}�c�:�E��I�I�c�5�!��
�
�e��'�$�:���Y��/�H��Y��&�&r )%r7�collectionsr�sentry_sdk._compatr�sentry_sdk.utilsr�typingr�sentry_sdk._lru_cacher�typesrr	r
rrr
�typing_extensionsr�str�ThreadId�int�ProcessedStackrr�FrameId�FrameIds�StackId�ExtractedStack�ExtractedSample�DEFAULT_SAMPLING_FREQUENCY�MAX_STACK_DEPTHrr2r<rQ�r r�<module>res��	��$�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�!����	�(�)�XY�
�B$�	-'r 
Back to Directory File Manager