관리-도구
편집 파일: tracemalloc.cpython-311.opt-1.pyc
� ���� ��U���������������������������d�dl�mZmZ�d�dlmZ�d�dlZd�dlZd�dlZd�dl Z d�dl T�d�dl mZmZ�d��Z �G�d��d������������Z�G�d ��d ������������Zd��Ze�G�d��d ��������������������������Ze�G�d��de��������������������������Zd��Z�G�d��d������������Z�G�d��de������������Zd��Z�G�d��d������������Z�G�d��de������������Z�G�d��de������������Z�G�d��d������������Zd��ZdS�)�����)�Sequence�Iterable)�total_orderingN)�*)�_get_object_traceback�_get_tracesc������������������������dD�]a}t����������|�������������dk�����r|dk����r|r d|�|fz��c�S�d|�|fz��c�S�t����������|�������������dk�����s|dk����r|r d|�|fz��c�S�d |�|fz��c�S�|�d z��}��bd�S�)N)�B�KiB�MiB�GiB�TiB�d���r ���z%+.1f %sz%.1f %si�(��r���z%+.0f %sz%.0f %si���)�abs)�size�sign�units��� �2/opt/alt/python311/lib64/python3.11/tracemalloc.py�_format_sizer��� ���s�������1�� �� ���t�9�9�s�?�?�t�s�{�{��� 0�!�T�4�L�0�0�0�0� �D�$�<�/�/�/�/��t�9�9�y� � �D�E�M�M��� 0�!�T�4�L�0�0�0�0� �D�$�<�/�/�/�/������ �� �����c��������������������:�����e�Zd�ZdZdZd��Zd��Zd��Zd��Zd��Z d��Z d S�) � StatisticzS Statistic difference on memory allocations between two Snapshot instance. �� tracebackr����countc������������������0�����||�_���������||�_��������||�_��������d�S��Nr���)�selfr���r���r���s��� r����__init__zStatistic.__init__%���s������"����� ��� � � r���c������������������D�����t����������|�j��������|�j��������|�j��������f������������S�r���)�hashr���r���r����r���s��� r����__hash__zStatistic.__hash__*���s�������T�^�T�Y�� �;�<�<�<r���c�����������������������t����������|t����������������������st����������S�|�j��������|j��������k����o|�j��������|j��������k����o|�j��������|j��������k����S�r���)� isinstancer����NotImplementedr���r���r����r����others��� r����__eq__zStatistic.__eq__-���sM�������%��+�+�� "�!�!���%�/�1��.��I���+�.��J�%�+�-� /r���c�����������������������d|�j���������t����������|�j��������d������������|�j��������fz��}|�j��������r%|�j��������|�j��������z��}|dt����������|d������������z��z ��}|S�)Nz%s: size=%s, count=%iF�, average=%s)r���r���r���r����r����text�averages��� r����__str__zStatistic.__str__4���sc������'��N� ���E�2�2��J� � ����:�� B��i�$�*�,�G��N�\�'�5�%A�%A�A�A�D��r���c������������������0�����d|�j���������|�j��������|�j��������fz��S�)Nz)<Statistic traceback=%r size=%i count=%i>r���r"���s��� r����__repr__zStatistic.__repr__>���s������;��>�4�9�d�j�9�:�� ;r���c������������������*�����|�j���������|�j��������|�j��������fS�r���)r���r���r���r"���s��� r���� _sort_keyzStatistic._sort_keyB���s������� �4�:�t�~�6�6r���N��__name__� __module__�__qualname__�__doc__� __slots__r���r#���r)���r/���r1���r3�����r���r���r���r������s������������������/�I������ =��=��=�/��/��/������;��;��;�7��7��7��7��7r���r���c��������������������:�����e�Zd�ZdZdZd��Zd��Zd��Zd��Zd��Z d��Z d S�) � StatisticDiffzd Statistic difference on memory allocations between an old and a new Snapshot instance. �r���r���� size_diffr���� count_diffc������������������L�����||�_���������||�_��������||�_��������||�_��������||�_��������d�S�r���r=���)r���r���r���r>���r���r?���s��� r���r���zStatisticDiff.__init__M���s)������"����� �"����� �$����r���c������������������\�����t����������|�j��������|�j��������|�j��������|�j��������|�j��������f������������S�r���)r!���r���r���r>���r���r?���r"���s��� r���r#���zStatisticDiff.__hash__T���s.�������T�^�T�Y����Z���2��3��3�� 3r���c������������������������t����������|t����������������������st����������S�|�j��������|j��������k����o?|�j��������|j��������k����o/|�j��������|j��������k����o|�j��������|j��������k����o|�j��������|j��������k����S�r���)r%���r<���r&���r���r���r>���r���r?���r'���s��� r���r)���zStatisticDiff.__eq__X���st�������%��/�/�� "�!�!���%�/�1��8��I���+�8��N�e�o�5�8���J�%�+�-�8���O�u�'7�7� 9r���c������������������������d|�j���������t����������|�j��������d������������t����������|�j��������d������������|�j��������|�j��������fz��}|�j��������r%|�j��������|�j��������z��}|dt����������|d������������z��z ��}|S�)Nz %s: size=%s (%s), count=%i (%+i)FTr+���)r���r���r���r>���r���r?���r,���s��� r���r/���zStatisticDiff.__str__a���sw������2��>��� �5�1�1�����5�5��:��?� $�$����:�� B��i�$�*�,�G��N�\�'�5�%A�%A�A�A�D��r���c������������������H�����d|�j���������|�j��������|�j��������|�j��������|�j��������fz��S�)Nz9<StatisticDiff traceback=%r size=%i (%+i) count=%i (%+i)>r=���r"���s��� r���r1���zStatisticDiff.__repr__m���s*������K��>�4�9�d�n��:�t��0�0�� 1r���c������������������v�����t����������|�j��������������������|�j��������t����������|�j��������������������|�j��������|�j��������fS�r���)r���r>���r���r?���r���r���r"���s��� r���r3���zStatisticDiff._sort_keyr���s3�������D�N�#�#�T�Y��D�O�$�$�d�j��� �� r���Nr4���r:���r���r���r<���r<���F���s�������������������J�I�%��%��%�3��3��3�9��9��9� �� �� �1��1��1� �� �� �� �� r���r<���c����������� ������������g�}|������������������������������������D�]�\��}}|����������������������|d�������������}|�8t����������||j��������|j��������|j��������z ��|j��������|j��������|j��������z ��������������}n't����������||j��������|j��������|j��������|j��������������������}|���������������������|���������������|�������������������������������������D�]9\��}}t����������|d|j���������d|j���������������������}|���������������������|��������������:|S��Nr���)�items�popr<���r���r����append)� old_group� new_group� statisticsr����stat�previouss��� r����_compare_grouped_statsrP���x���s������J�$�?�?�,�,�� �� �� �4��=�=��D�1�1���� ��!%��D�I�� �,E�!%��T�Z�(�.�-H�J��J�D�D��!��!%��D�I�!%��T�Z�9��9�D�� ���$�����$�?�?�,�,�� �� �� �4��Y��D�I�:�q�4�:�+�F�F�����$������r���c��������������������f�����e�Zd�ZdZdZd��Zed����������������Zed����������������Zd��Z d��Z d��Zd ��Zd ��Z dS�)�Framez Frame of a traceback. ��_framec�����������������������||�_���������d�S�r���rS����r����frames��� r���r���zFrame.__init__����s ����������r���c�����������������������|�j���������d���������S�rG���rS���r"���s��� r����filenamezFrame.filename������������{�1�~�r���c�����������������������|�j���������d���������S��N����rS���r"���s��� r����linenozFrame.lineno����rZ���r���c������������������Z�����t����������|t����������������������st����������S�|�j��������|j��������k����S�r����r%���rR���r&���rT���r'���s��� r���r)���zFrame.__eq__�����)�������%��'�'�� "�!�!���u�|�+�,r���c������������������Z�����t����������|t����������������������st����������S�|�j��������|j��������k�����S�r���r`���r'���s��� r����__lt__zFrame.__lt__����s)�������%��'�'�� "�!�!���e�l�*�+r���c������������������*�����t����������|�j��������������������S�r���)r!���rT���r"���s��� r���r#���zFrame.__hash__������������D�K� � � r���c������������������$�����|�j����������d|�j����������S�)N�:�rY���r^���r"���s��� r���r/���z Frame.__str__����s�������-�-�-����5�5r���c������������������(�����d|�j����������d|�j���������d�S�)Nz<Frame filename=z lineno=�>rh���r"���s��� r���r1���zFrame.__repr__����s��������26�-�-�-�����M�Mr���N)r5���r6���r7���r8���r9���r����propertyrY���r^���r)���rc���r#���r/���r1���r:���r���r���rR���rR�������s��������������������I�������������X���������X��-��-��-� ,��,��,� !��!��!�6��6��6�N��N��N��N��Nr���rR���c��������������������l�����e�Zd�ZdZdZdd�Zed����������������Zd��Zd��Z d��Z d ��Zd ��Zd��Z d��Zd ��Zdd�ZdS�)� Tracebackz` Sequence of Frame instances sorted from the oldest frame to the most recent frame. )�_frames� _total_nframeNc������������������~�����t����������j��������|��������������t����������t����������|������������������������|�_��������||�_��������d�S�r���)r���r����tuple�reversedrn���ro���)r����frames�total_nframes��� r���r���zTraceback.__init__����s:��������$���� ��X�f�-�-�.�.���)����r���c�����������������������|�j���������S�r���)ro���r"���s��� r���rt���zTraceback.total_nframe����s�������!�!r���c������������������*�����t����������|�j��������������������S�r���)�lenrn���r"���s��� r����__len__zTraceback.__len__������������4�<� � � r���c�����������������������t����������|t����������������������r$t����������d��|�j��������|���������D���������������������������S�t ����������|�j��������|���������������������S�)Nc��������������3����4���K����|�]}t����������|������������V����d�S�r���)rR�����.0�traces��� r���� <genexpr>z(Traceback.__getitem__.<locals>.<genexpr>�����(����������G�G�%��u���G�G�G�G�G�Gr���)r%����slicerq���rn���rR����r����indexs��� r����__getitem__zTraceback.__getitem__�����M�������e�U�#�#�� .��G�G�4�<��3F�G�G�G�G�G�G����e�,�-�-�-r���c�����������������������|j���������|�j��������v�S�r���)rT���rn���rV���s��� r����__contains__zTraceback.__contains__������������|�t�|�+�+r���c������������������*�����t����������|�j��������������������S�r���)r!���rn���r"���s��� r���r#���zTraceback.__hash__����s�������D�L�!�!�!r���c������������������Z�����t����������|t����������������������st����������S�|�j��������|j��������k����S�r����r%���rm���r&���rn���r'���s��� r���r)���zTraceback.__eq__����s)�������%��+�+�� "�!�!���� �-�.r���c������������������Z�����t����������|t����������������������st����������S�|�j��������|j��������k�����S�r���r����r'���s��� r���rc���zTraceback.__lt__����s)�������%��+�+�� "�!�!���u�}�,�-r���c������������������,�����t����������|�d���������������������S�rG���)�strr"���s��� r���r/���zTraceback.__str__����s�������4��7�|�|�r���c������������������`�����dt����������|����������������}|�j���������|dz ��}n|d|�j����������d�z ��}|S�)Nz<Traceback rj���z total_nframe=)rq���ro���rt���)r����ss��� r���r1���zTraceback.__repr__����sG������'�%��+�+�'�'����%� ��H�A�A� �6�$�"3�6�6�6�6�A��r���Fc������������������X����g�}|�|dk����r|�|�d�����������}n |�d�|����������}n|�}|rt����������|������������}|D�]r}|���������������������d|j���������d|j�����������������������t ����������j��������|j��������|j�������������������������������������������������������}|r|���������������������d|z����������������s|S�)Nr���z File "z", line z %s)rr���rJ���rY���r^���� linecache�getline�strip)r����limit�most_recent_first�lines�frame_slicerW����lines��� r����formatzTraceback.format����s������������q�y�y�"�E�6�7�7�m���"�6�E�6�l����K��� 0�"�;�/�/�K� �� .�� .�E��L�L�L�!�N�N�N�E�L�L�:�� ;�� ;�� ;��$�U�^�U�\�B�B�H�H�J�J�D��� .����X��_�-�-�-���r���r���)NF)r5���r6���r7���r8���r9���r���rk���rt���rx���r����r����r#���r)���rc���r/���r1���r����r:���r���r���rm���rm�������s�������������������-�I�*��*��*��*���"��"���X�"�!��!��!�.��.��.�,��,��,�"��"��"�/��/��/� .��.��.� ��������������������r���rm���c������������������F�����t����������|�������������}|�t����������|������������S�dS�)z� Get the traceback where the Python object *obj* was allocated. Return a Traceback instance. Return None if the tracemalloc module is not tracing memory allocations or did not trace the allocation of the object. N)r���rm���)�objrs���s��� r����get_object_tracebackr������s*�������#�3� '� '�F� ���� � � ��tr���c��������������������v�����e�Zd�ZdZdZd��Zed����������������Zed����������������Zed����������������Z d��Z d��Zd ��Zd ��Z dS�)�Tracez" Trace of a memory block. ��_tracec�����������������������||�_���������d�S�r���r�����r���r~���s��� r���r���zTrace.__init__��s�����������r���c�����������������������|�j���������d���������S�rG���r����r"���s��� r����domainzTrace.domain��rZ���r���c�����������������������|�j���������d���������S�r\���r����r"���s��� r���r���z Trace.size��rZ���r���c������������������.�����t����������|�j��������dd�������������S�)N����)rm���r����r"���s��� r���r���zTrace.traceback#��s�������$�+�a�b�b�/�*�*r���c������������������Z�����t����������|t����������������������st����������S�|�j��������|j��������k����S�r���)r%���r����r&���r����r'���s��� r���r)���zTrace.__eq__'��ra���r���c������������������*�����t����������|�j��������������������S�r���)r!���r����r"���s��� r���r#���zTrace.__hash__,��re���r���c������������������@�����|�j����������dt����������|�j��������d��������������S�)Nz: F)r���r���r���r"���s��� r���r/���z Trace.__str__/��s"�������>�>�>�<�� �5�+I�+I�+I�J�Jr���c������������������T�����d|�j����������dt����������|�j��������d�������������d|�j���������d�S�)Nz<Trace domain=z size=Fz, traceback=rj���)r����r���r���r���r"���s��� r���r1���zTrace.__repr__2��s5���������;�;�;��T�Y�� >� >� >� >�����P�� Qr���N)r5���r6���r7���r8���r9���r���rk���r����r���r���r)���r#���r/���r1���r:���r���r���r����r������s��������������������I������ �������X���������X����+��+���X�+�-��-��-� !��!��!�K��K��K�Q��Q��Q��Q��Qr���r����c��������������������2�����e�Zd�Zd��Zd��Zd��Zd��Zd��Zd��ZdS�)�_Tracesc������������������<�����t����������j��������|��������������||�_��������d�S�r���)r���r����_traces)r����tracess��� r���r���z_Traces.__init__8��s��������$��������r���c������������������*�����t����������|�j��������������������S�r���)rw���r����r"���s��� r���rx���z_Traces.__len__=��ry���r���c�����������������������t����������|t����������������������r$t����������d��|�j��������|���������D���������������������������S�t ����������|�j��������|���������������������S�)Nc��������������3����4���K����|�]}t����������|������������V����d�S�r���)r����r|���s��� r���r���z&_Traces.__getitem__.<locals>.<genexpr>B��r����r���)r%���r����rq���r����r����r����s��� r���r����z_Traces.__getitem__@��r����r���c�����������������������|j���������|�j��������v�S�r���)r����r����r����s��� r���r����z_Traces.__contains__F��r����r���c������������������Z�����t����������|t����������������������st����������S�|�j��������|j��������k����S�r���)r%���r����r&���r����r'���s��� r���r)���z_Traces.__eq__I��s)�������%��)�)�� "�!�!���� �-�.r���c������������������&�����dt����������|�������������z��S�)Nz<Traces len=%s>)rw���r"���s��� r���r1���z_Traces.__repr__N��s������ �3�t�9�9�,�,r���N) r5���r6���r7���r���rx���r����r����r)���r1���r:���r���r���r����r����7��sn������������������� !��!��!�.��.��.�,��,��,�/��/��/� -��-��-��-��-r���r����c�����������������������t�����������j�����������������������������|�������������}�|����������������������d������������r |�d�d����������}�|�S�)Nz.pyc���)�os�path�normcase�endswith)rY���s��� r����_normalize_filenamer����R��s?�������w����)�)�H����� � ��!��C�R�C�=���Or���c�������������������������e�Zd�Zd��Zd��ZdS�)� BaseFilterc�����������������������||�_���������d�S�r���)� inclusive)r���r����s��� r���r���zBaseFilter.__init__Z��s ������"����r���c�����������������������t������������r���)�NotImplementedErrorr����s��� r����_matchzBaseFilter._match]��s������!�!r���N)r5���r6���r7���r���r����r:���r���r���r����r����Y��s2��������������#��#��#�"��"��"��"��"r���r����c��������������������P�������e�Zd�Z �d ��fd� Zed����������������Zd��Zd��Zd��Zd��Z ��xZ S�) �FilterNFc������������������������t���������������������������������������������|�������������||�_��������t����������|������������|�_��������||�_��������||�_��������||�_��������d�S�r���)�superr���r����r�����_filename_patternr^���� all_framesr����)r���r�����filename_patternr^���r����r����� __class__s��� �r���r���zFilter.__init__b��sL������� ������#�#�#�"���!4�5E�!F�!F������$�������r���c�����������������������|�j���������S�r���)r����r"���s��� r���r����zFilter.filename_patternk��s�������%�%r���c�����������������������t����������|������������}t����������j��������||�j��������������������sdS�|�j���������dS�||�j��������k����S�)NFT)r�����fnmatchr����r^����r���rY���r^���s��� r����_match_frame_implzFilter._match_frame_implo��sE������&�x�0�0����x��)?�@�@�� ��5��;���4��d�k�)�*r���c������������������@�����|�����������������������||������������|�j���������z��S�r���)r����r����r����s��� r����_match_framezFilter._match_framex��s"�������%�%�h��7�7�t�~�;M�N�Nr���c���������������������������j���������r*t������������fd�|D���������������������������r��j��������S���j���������S�|d���������\��}}�����������������������||������������S�)Nc��������������3����J����K����|�]\��}}�����������������������||������������V����d�S�r���)r����)r}���rY���r^���r���s��� �r���r���z*Filter._match_traceback.<locals>.<genexpr>}��sK������������6��6�'�x����)�)�(�F�;�;��6��6��6��6��6��6r���r���)r�����anyr����r����)r���r���rY���r^���s���` r����_match_tracebackzFilter._match_traceback{��s|��������?�� 7���6��6��6��6�+4�6��6��6��6��6�� ,��~�%� �N�*�+�(��|��H�f��$�$�X�v�6�6�6r���c�����������������������|\��}}}}|�����������������������|������������}|�j���������!|�j��������r |o ||�j��������k����S�|p ||�j��������k����S�|S�r���)r����r����r����)r���r~���r����r���r���rt����ress��� r���r����z Filter._match���s^������05�-���i���#�#�I�.�.���;�"��~�� 6��6��$�+� 5�6��5�v���4�5�� r���)NFN)r5���r6���r7���r���rk���r����r����r����r����r����� __classcell__�r����s���@r���r����r����a��s����������������7;��������������&��&���X�&�+��+��+�O��O��O� 7�� 7�� 7�������������r���r����c��������������������:�������e�Zd�Z��fd�Zed����������������Zd��Z��xZS�)�DomainFilterc������������������X������t���������������������������������������������|�������������||�_��������d�S�r���)r����r����_domain)r���r����r����r����s��� �r���r���zDomainFilter.__init__���s&������� ������#�#�#�����r���c�����������������������|�j���������S�r���)r����r"���s��� r���r����zDomainFilter.domain���s �������|�r���c������������������8�����|\��}}}}||�j���������k����|�j���������z��S�r���)r����r����)r���r~���r����r���r���rt���s��� r���r����zDomainFilter._match���s'������05�-���i���$�+�%�d�n�*<�=�=r���)r5���r6���r7���r���rk���r����r����r����r����s���@r���r����r�������sb�������������������������������X��>��>��>��>��>��>��>r���r����c��������������������V�����e�Zd�ZdZd��Zd��Zed����������������Zd��Zd��Z d��Z dd �Zdd �ZdS�) �SnapshotzB Snapshot of traces of memory blocks allocated by Python. c������������������<�����t����������|������������|�_��������||�_��������d�S�r���)r����r�����traceback_limit)r���r����r����s��� r���r���zSnapshot.__init__���s��������f�o�o���.����r���c�����������������������t����������|d������������5�}t����������j��������|�|t����������j���������������������ddd�������������dS�#�1�swxY�w�Y���dS�)z1 Write the snapshot into a file. �wbN)�open�pickle�dump�HIGHEST_PROTOCOL)r���rY����fps��� r���r����z Snapshot.dump���s���������(�D� !� !�� ;�R��K��b�&�"9�:�:�:� ;�� ;�� ;�� ;�� ;�� ;�� ;�� ;�� ;�� ;�� ;�� ;����� ;�� ;�� ;�� ;�� ;�� ;s����!?�A�Ac������������������~�����t����������|�d������������5�}t����������j��������|������������cddd�������������S�#�1�swxY�w�Y���dS�)z. Load a snapshot from a file. �rbN)r����r�����load)rY���r����s��� r���r����z Snapshot.load���s������� ��(�D� !� !�� #�R��;�r�?�?� #�� #�� #�� #�� #�� #�� #�� #�� #�� #�� #�� #����� #�� #�� #�� #�� #�� #s����2�6�6c������������������������|rt�����������fd�|D���������������������������sdS�|rt�����������fd�|D���������������������������rdS�dS�)Nc��������������3����B����K����|�]}|�����������������������������������V����d�S�r����r�����r}����trace_filterr~���s��� �r���r���z)Snapshot._filter_trace.<locals>.<genexpr>���sE������������<��<�'��$�*�*�5�1�1��<��<��<��<��<��<r���Fc��������������3����D����K����|�]}|������������������������������������V����d�S�r���r����r����s��� �r���r���z)Snapshot._filter_trace.<locals>.<genexpr>���sH������������8��8�#��$�*�*�5�1�1�1��8��8��8��8��8��8r���T)r����)r����include_filters�exclude_filtersr~���s��� `r���� _filter_tracezSnapshot._filter_trace���s���������� ���<��<��<��<�+:�<��<��<��<��<�� ��u��� ���8��8��8��8�'6�8��8��8��8��8�� ��u��tr���c��������������������������t����������|t����������������������s$t����������dt����������|������������j��������z���������������|rVg��g��|D�]4}|j��������r����������������������|������������������������������������|��������������5����fd���j��������j��������D���������������}n��j��������j��������� ����������������������������������}t����������|��j��������������������S�)z� Create a new Snapshot instance with a filtered traces sequence, filters is a list of Filter or DomainFilter instances. If filters is an empty list, return a new Snapshot instance with a copy of the traces. z)filters must be a list of filters, not %sc������������������B������g�|�]}�������������������������|�������������|��S�r:���)r����)r}���r~���r����r����r���s��� ���r���� <listcomp>z*Snapshot.filter_traces.<locals>.<listcomp>���sE��������8��8��8�E�!�/�/��0?�05�7��7�8�%��8��8��8r���)r%���r���� TypeError�typer5���r����rJ���r����r�����copyr����r����)r����filtersr����� new_tracesr����r����s���` @@r���� filter_traceszSnapshot.filter_traces���s������������'�8�,�,�� 6��G�"�7�m�m�4�5��6��6�� 6��� 4� �O� �O� '�� 9�� 9���)��9�#�*�*�<�8�8�8�8�#�*�*�<�8�8�8�8�8��8��8��8��8��8�T�[�-@��8��8��8�J�J� ���,�1�1�3�3�J�� �D�$8�9�9�9r���c������������������>����|dvrt����������d|���������������|r|dvrt����������d|z���������������i�}i�}|s�|�j��������j��������D�]�}|\��}}}} �||���������} nO#�t����������$�rB�|dk����r|}n"|dk����r|d�d����������}n|d���������d���������dff}t ����������|������������} | ||<���Y�nw�xY�w �|| ���������}|xj��������|z ��c_��������|xj��������dz ��c_����������#�t����������$�r�t����������| |d������������|| <���Y���w�xY�wn�|�j��������j��������D�]�}|\��}}}} |D�]�} �|| ���������} n9#�t����������$�r,�|dk����r| f}n| d���������dff}t ����������|������������} | || <���Y�nw�xY�w �|| ���������}|xj��������|z ��c_��������|xj��������dz ��c_���������o#�t����������$�r�t����������| |d������������|| <���Y���w�xY�w��|S�) N)r���rY���r^���zunknown key_type: )r^���rY���z/cumulative mode cannot by used with key type %rr���r^���r]���r���)� ValueErrorr����r�����KeyErrorrm���r���r���r���)r����key_type� cumulative�stats� tracebacksr~���r����r����trace_tracebackrt���r���rs���rN���rW���s��� r���� _group_byzSnapshot._group_by���s�������>�>�>��*�x�x�A�B�B�B��� <�(�*@�@�@���0�2:�;��<��<�� <����� ���' I���,�� E�� E��>C�;���o�|� <� *�?� ;�I�I����<��<��<��;�.�.�!0���!�X�-�-�!0��!��!4���#2�1�#5�a�#8�!�"<�!>�� )�&� 1� 1�I�2;�J��/�/�/�<����E� ��+�D��I�I��%�I�I��J�J�!�O�J�J�J����E��E��E�'0��D�!�'D�'D�E�)�$�$�$�E����# E�*���,�� I�� I��>C�;���o�|�,��I��I�E�6�$.�u�$5� � ��#��6��6��6�#�x�/�/�&+�X�F�F�',�Q�x��m�%5�F�$-�f�$5�$5� �,5� �5�)�)�)� 6����I�$�Y�/��� � �T�)� � �� � �a�� � � ��#��I��I��I�+4�Y��a�+H�+H��i�(�(�(�I����I� ��sI����A�A B �B �$(C � C.�-C.�D�3E� E�(E8�8F�FFc�����������������������|�����������������������||������������}t����������|�����������������������������������������������}|���������������������dt����������j����������������������|S�)zd Group statistics by key_type. Return a sorted list of Statistic instances. T��reverse�key)r���list�values�sortr���r3���)r���r��r���groupedrM���s��� r���rM���zSnapshot.statistics��sM������ ��.�.��:�6�6���'�.�.�*�*�+�+� �����)�*=��>�>�>��r���c�����������������������|�����������������������||������������}|����������������������||������������}t����������||������������}|���������������������dt����������j����������������������|S�)z� Compute the differences with an old snapshot old_snapshot. Get statistics as a sorted list of StatisticDiff instances, grouped by group_by. Tr ��)r��rP���r��r<���r3���)r����old_snapshotr��r��rL���rK���rM���s��� r���� compare_tozSnapshot.compare_to��sZ��������N�N�8�Z�8�8� � �*�*�8�Z�@�@� �+�I�y�A�A� �����-�*A��B�B�B��r���N)F) r5���r6���r7���r8���r���r�����staticmethodr����r����r��r��rM���r��r:���r���r���r����r�������s������������������/��/��/�;��;��;���#��#���\�#� �� �� �:��:��:�21��1��1�f������� �� �� �� �� �� r���r����c������������������������t������������������������st����������d�������������t������������������������}�t������������������������}t ����������|�|������������S�)zI Take a snapshot of traces of memory blocks allocated by Python. zLthe tracemalloc module must be tracing memory allocations to take a snapshot)� is_tracing�RuntimeErrorr����get_traceback_limitr����)r����r����s��� r���� take_snapshotr��'��sK��������<�<��=���<��=��=�� =� �]�]�F�)�+�+�O��F�O�,�,�,r���)�collections.abcr���r���� functoolsr���r����r�����os.pathr����r�����_tracemallocr���r���r���r���r<���rP���rR���rm���r����r����r����r����r����r����r����r����r��r:���r���r����<module>r!�����s������.��.��.��.��.��.��.��.��$��$��$��$��$��$�������������������� � � � ����������;��;��;��;��;��;��;��;������"%7��%7��%7��%7��%7��%7��%7��%7�P/ ��/ ��/ ��/ ��/ ��/ ��/ ��/ �d�����(��#N��#N��#N��#N��#N��#N��#N����#N�L��J��J��J��J��J���J��J����J�Z�����$Q��$Q��$Q��$Q��$Q��$Q��$Q��$Q�N-��-��-��-��-�h��-��-��-�6�����"��"��"��"��"��"��"��"�-��-��-��-��-�Z��-��-��-�`>��>��>��>��>�:��>��>��>�E��E��E��E��E��E��E��E�P -�� -�� -�� -�� -r���