관리-도구
편집 파일: sessions.cpython-311.pyc
� ���k�m����������������������������d�dl�Z�d�dlZd�dlZd�dlmZ�d�dlmZmZ�d�dlmZ�d�dl m Z �d�dlmZ�e r(d�dl Z d�dlmZ�d�dlmZ�d�d lmZ�d�d lmZ�d�dlmZ�d�dl mZ�dd �Zedd���������������Zd��ZdZ�G�d��de������������Z�G�d��de������������ZdS�)�����N)�datetime)�Thread�Lock)�contextmanager)�MYPY)�format_timestamp)�Optional)�Union)�Any)�Dict)� Generator)� SessionStatusc�����������������������|��t�����������j��������j��������}�|�j��������j��������}|�0|�j��������r|�j��������j��������d���������ni�}|���������������������d������������}|S�)z<Utility function to find out if session tracking is enabled.N�_experiments�auto_session_tracking)� sentry_sdk�Hub�current�scope�_force_auto_session_tracking�client�options�get)�hub�should_track�exps��� �s/builddir/build/BUILD/imunify360-venv-2.5.2/opt/imunify360/venv/lib/python3.11/site-packages/sentry_sdk/sessions.py� is_auto_session_tracking_enabledr������sV��������{��n�$���9�9�L���47�J�F�c�j� ��0�0�B���w�w�6�7�7��������c��������������#��������K����|��t�����������j��������j��������}�t����������|�������������}|r|������������������������������������� �dV���|r|�������������������������������������dS�dS�#�|r|�������������������������������������w�w�xY�w)z8Starts and stops a session automatically around a block.N)r���r���r���r���� start_session�end_session)r���r���s��� r���r���r���#���s�������������{��n�$��3�C�8�8�L����������� ������ ��O�O������ �� ��<�� ��O�O����� ���s����A��A3c������������������b�����t����������|�t����������j��������������������r|�S�t����������j��������|�������������S��N)� isinstance�uuid�UUID)�vals��� r���� _make_uuidr)���3���s+��������#�t�y�!�!���� ��9�S�>�>�r���)�exited�abnormal�crashedc��������������������6�����e�Zd�Z �d d�Zd��Zd��Zd��Zd��Zd��ZdS�) �SessionFlusher� ���c�����������������������||�_���������||�_��������i�|�_��������d�|�_��������t ������������������������|�_��������d�|�_��������d|�_��������d�S�)NT)� flush_func�flush_interval�pending�_threadr����_thread_lock�_thread_for_pid�_running)�selfr1���r2���s��� r����__init__zSessionFlusher.__init__@���s@�������%���,��������� �F�F���#����� � � r���c�����������������������|�j���������}i�|�_���������|����������������������t����������|������������������������������������������������������������d�S�r$���)r3���r1����list�values)r8���r3���s��� r����flushzSessionFlusher.flushN���s:�������,���������W�^�^�-�-�.�.�/�/�/�/�/r���c��������������������������j���������t����������j����������������������k����r ��j���������d�S���j��������5����j���������t����������j����������������������k����r��j��������� �d�d�d��������������d�S���fd�}t����������|�������������}d|_��������|������������������������������������|��_��������t����������j������������������������_���������d�d�d��������������n#�1�swxY�w�Y���d�S�)Nc���������������������������j���������rDt����������j����������j�����������������������j��������r��j���������r����������������������������������������j����������Bd�S�d�S�r$���)r7����time�sleepr2���r3���r=����r8���s����r���r4���z/SessionFlusher._ensure_running.<locals>._thread\���s`��������m��%��J�t�2�3�3�3��|��%�� ��%�� � ������m��%��%��%��%��%r���)�targetT)r6����os�getpidr4���r5���r����daemon�start)r8���r4����threads���` r����_ensure_runningzSessionFlusher._ensure_runningT���s"��������2�9�;�;�.�.�4�<�3K��4� � �� /�� /��#�r�y�{�{�2�2�t�|�7O�� /�� /�� /�� /�� /�� /�� /�� /� %�� %�� %�� %�� %���7�+�+�+�F� �F�M��L�L�N�N�N�!�D�L�#%�9�;�;�D� � /�� /�� /�� /�� /�� /�� /�� /�� /�� /�� /����� /�� /�� /�� /� ��ts����%B;� AB;�;B?�B?c������������������z�����|������������������������������������|�j��������|j��������j��������<���|�������������������������������������d�S�r$���)�to_jsonr3����sid�hexrI���)r8����sessions��� r����add_sessionzSessionFlusher.add_sessionj���s6�������)0���(9�(9���W�[�_�%��������r���c�����������������������d|�_���������d�S�)NF)r7���rB���s��� r����killzSessionFlusher.killq���s �������� � � r���c������������������.�����|��������������������������������������d�S�r$���)rQ���rB���s��� r����__del__zSessionFlusher.__del__u���s������� � �����r���N)r/���) �__name__� __module__�__qualname__r9���r=���rI���rO���rQ���rS�����r���r���r.���r.���?���sx�����������������������0��0��0������,������������������r���r.���c��������������������^�����e�Zd�Z � � � � � � � � � � � �dd�Z � � � � � � � � � � � �dd�Z �dd�Zd��ZdS�)�SessionNc ����������������������|�t����������j����������������������}|�t����������j����������������������}|�d}||�_��������d�|�_��������||�_��������d�|�_��������d�|�_��������d�|�_ ��������d�|�_ ��������d�|�_��������d|�_��������|�� ��������������������||||||| | ||�� ��� ���������d�S�)N�okr���) rL����did� timestamp�duration�release�environment� user_agent� ip_address�errors�user)r&����uuid4r����utcnow�statusr\����startedr_���r`���r^���ra���rb���rc����update� r8���rL���r\���r]���rh���r^���rg���r_���r`���ra���rb���rc���rd���s ��� r���r9���zSession.__init__{���s������� ��;��*�,�,�C��?��o�'�'�G��>��F������������������ ������������������#�!�!���� �� �� �� �� �� r���c �����������������������|rX| �|����������������������d������������} |�?|����������������������d������������p)|����������������������d������������p|����������������������d������������}|�t����������|������������|�_��������|�t����������|������������|�_��������|�t����������j����������������������}||�_��������|�||�_��������|�||�_ ��������|�||�_ ��������|�||�_��������| �| |�_��������| �| |�_ ��������|�||�_��������|� ||�_��������d�S�d�S�)Nrb����id�email�username)r���r)���rL����strr\���r���rf���r]���rh���r^���r_���r`���rb���ra���rc���rg���rj���s ��� r���ri���zSession.update����s �����"��� R��!�!�X�X�l�3�3� ��{��h�h�t�n�n�Q�����(9�(9�Q�T�X�X�j�=Q�=Q���?�!�#���D�H��?��3�x�x�D�H��� ��)�)�I�"�����"�D�L���$�D�M���"�D�L��"�*�D���!�(�D�O��!�(�D�O��� �D�K��� �D�K�K�K���r���c������������������X�����|� |�j���������dk����rd}|�|����������������������|��������������d�S�d�S�)Nr[���r*���)rg���)rg���ri���)r8���rg���s��� r����closez Session.close����sB��������>�d�k�T�1�1��F����K�K�v�K�&�&�&�&�&���r���c����������������������t����������|�j��������������������dt����������|�j��������������������t����������|�j��������������������|�j��������d�}|�j��������r |�j��������|d<���|�j��������� |�j��������|d<���|�j��������� |�j��������|d<���i�}|�j ��������� |�j ��������|d<���|�j ��������� |�j ��������|d<���|�j��������� |�j��������|d<���|�j��������� |�j��������|d <���|r||d <���|S�)NT)rL����initrh���r]���rg���rc���r\���r^���r_���r`���rb���ra����attrs) ro���rL���r���rh���r]���rg���rc���r\���r^���r_���r`���rb���ra���)r8����rvrt���s��� r���rK���zSession.to_json����s���������t�x�=�=��'���5�5�)�$�.�9�9��k� �� ����;�� '��;�B�x�L��8����B�u�I��=�$�!�]�B�z�N����<�#�#�|�E�)����'�#'�#3�E�-� ��?�&�"&�/�E�,���?�&�"&�/�E�,���� ��B�w�K�� r���)NNNNNNNNNNNNr$���)rT���rU���rV���r9���ri���rq���rK���rW���r���r���rY���rY���z���s���������������� ����������� �+ ��+ ��+ ��+ �^� ����������� �.!��.!��.!��.!�b��'��'��'��'���������r���rY���r$���)rD���r&���r@���r���� threadingr���r���� contextlibr����sentry_sdk._typesr����sentry_sdk.utilsr���r����typingr ���r ���r���r���r ���r���r���r���r)����TERMINAL_SESSION_STATES�objectr.���rY���rW���r���r����<module>r}������s������ � � � ������������������������"��"��"��"��"��"��"��"��%��%��%��%��%��%��"��"��"��"��"��"��-��-��-��-��-��-��� 0����������������������������� � � � � � �/�/�/�/�/�/� �� �� �� ������������������<���8��8��8��8��8�V��8��8��8�vB��B��B��B��B�f��B��B��B��B��Br���