Sindbad~EG File Manager
�
�=OgF���ddlmZmZddlmZddlZddlZddlZddl Z ddl
Tddl
mZmZd�Z
Gd�d��ZGd �d
��Zd�ZeGd�d
����ZeGd�de����Zd�ZGd�d��ZGd�de��Zd�ZGd�d��ZGd�de��ZGd�de��ZGd�d��Zd�ZdS)�)�Sequence�Iterable)�total_orderingN)�*)�_get_object_traceback�_get_tracesc���dD]a}t|��dkr|dkr|r d||fzcSd||fzcSt|��dks|dkr|r d||fzcSd ||fzcS|d
z}�bdS)N)�B�KiB�MiB�GiB�TiB�dr
z%+.1f %sz%.1f %si(rz%+.0f %sz%.0f %si)�abs)�size�sign�units �$/usr/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�:�eZdZdZdZd�Zd�Zd�Zd�Zd�Z d�Z
d S)
� StatisticzS
Statistic difference on memory allocations between two Snapshot instance.
�� tracebackr�countc�0�||_||_||_dS�Nr)�selfrrrs r�__init__zStatistic.__init__%s��"����� ���
�
�
rc�D�t|j|j|jf��Sr)�hashrrr�rs r�__hash__zStatistic.__hash__*s���T�^�T�Y��
�;�<�<�<rc��t|t��stS|j|jko|j|jko|j|jkSr)�
isinstancer�NotImplementedrrr�r�others r�__eq__zStatistic.__eq__-sM���%��+�+� "�!�!���%�/�1�.��I���+�.��J�%�+�-� /rc��d|jt|jd��|jfz}|jr%|j|jz}|dt|d��zz
}|S)Nz%s: size=%s, count=%iF�, average=%s)rrrr�r�text�averages r�__str__zStatistic.__str__4sc��'��N� ���E�2�2��J� � ���:� B��i�$�*�,�G��N�\�'�5�%A�%A�A�A�D��rc�0�d|j|j|jfzS)Nz)<Statistic traceback=%r size=%i count=%i>rr"s r�__repr__zStatistic.__repr__>s��;��>�4�9�d�j�9�:� ;rc�*�|j|j|jfSr)rrrr"s r� _sort_keyzStatistic._sort_keyBs��� �4�:�t�~�6�6rN��__name__�
__module__�__qualname__�__doc__� __slots__rr#r)r/r1r3�rrrrs��������/�I����
=�=�=�/�/�/����;�;�;�7�7�7�7�7rrc�:�eZdZdZdZd�Zd�Zd�Zd�Zd�Z d�Z
d S)
�
StatisticDiffzd
Statistic difference on memory allocations between an old and a new
Snapshot instance.
�rr� size_diffr�
count_diffc�L�||_||_||_||_||_dSrr=)rrrr>rr?s rrzStatisticDiff.__init__Ms)��"����� �"�����
�$����rc�\�t|j|j|j|j|jf��Sr)r!rrr>rr?r"s rr#zStatisticDiff.__hash__Ts.���T�^�T�Y����Z���2�3�3� 3rc���t|t��stS|j|jko?|j|jko/|j|jko|j|jko|j|jkSr)r%r<r&rrr>rr?r's rr)zStatisticDiff.__eq__Xst���%��/�/� "�!�!���%�/�1�8��I���+�8��N�e�o�5�8��J�%�+�-�8��O�u�'7�7� 9rc���d|jt|jd��t|jd��|j|jfz}|jr%|j|jz}|dt|d��zz
}|S)Nz %s: size=%s (%s), count=%i (%+i)FTr+)rrrr>rr?r,s rr/zStatisticDiff.__str__asw��2��>��� �5�1�1�����5�5��:��?� $�$���:� B��i�$�*�,�G��N�\�'�5�%A�%A�A�A�D��rc�H�d|j|j|j|j|jfzS)Nz9<StatisticDiff traceback=%r size=%i (%+i) count=%i (%+i)>r=r"s rr1zStatisticDiff.__repr__ms*��K��>�4�9�d�n��:�t��0�0� 1rc�v�t|j��|jt|j��|j|jfSr)rr>rr?rrr"s rr3zStatisticDiff._sort_keyrs3���D�N�#�#�T�Y��D�O�$�$�d�j��� � rNr4r:rrr<r<Fs���������J�I�%�%�%�3�3�3�9�9�9�
�
�
�1�1�1�
� � � � rr<c ���g}|���D]�\}}|�|d��}|�8t||j|j|jz
|j|j|jz
��}n't||j|j|j|j��}|�|����|���D]9\}}t|d|jd|j��}|�|���:|S�Nr)�items�popr<rr�append)� old_group� new_group�
statisticsr�stat�previouss r�_compare_grouped_statsrPxs���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�����$������rc�f�eZdZdZdZd�Zed���Zed���Zd�Z d�Z
d�Zd �Zd
�Z
dS)�Framez
Frame of a traceback.
��_framec��||_dSrrS�r�frames rrzFrame.__init__�s
������rc��|jdSrGrSr"s r�filenamezFrame.filename�����{�1�~�rc��|jdS�N�rSr"s r�linenozFrame.lineno�rZrc�Z�t|t��stS|j|jkSr�r%rRr&rTr's rr)zFrame.__eq__��)���%��'�'� "�!�!���u�|�+�,rc�Z�t|t��stS|j|jkSrr`r's r�__lt__zFrame.__lt__�s)���%��'�'� "�!�!���e�l�*�+rc�*�t|j��Sr)r!rTr"s rr#zFrame.__hash__�����D�K� � � rc�$�|j�d|j��S)N�:�rYr^r"s rr/z
Frame.__str__�s���-�-�-����5�5rc�(�d|j�d|j�d�S)Nz<Frame filename=z lineno=�>rhr"s rr1zFrame.__repr__�s���26�-�-�-�����M�MrN)r5r6r7r8r9r�propertyrYr^r)rcr#r/r1r:rrrRrR�s����������I��������X������X��-�-�-�
,�,�,�
!�!�!�6�6�6�N�N�N�N�NrrRc�l�eZdZdZdZdd�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�~�tj|��tt|����|_||_dSr)rr�tuple�reversedrnro)r�frames�total_nframes rrzTraceback.__init__�s:����$����
�X�f�-�-�.�.���)����rc��|jSr)ror"s rrtzTraceback.total_nframe�s���!�!rc�*�t|j��Sr)�lenrnr"s r�__len__zTraceback.__len__�����4�<� � � rc��t|t��r$td�|j|D����St |j|��S)Nc3�4K�|]}t|��V��dSr)rR��.0�traces r� <genexpr>z(Traceback.__getitem__.<locals>.<genexpr>��(����G�G�%��u���G�G�G�G�G�Gr)r%�slicerqrnrR�r�indexs r�__getitem__zTraceback.__getitem__��M���e�U�#�#� .��G�G�4�<��3F�G�G�G�G�G�G����e�,�-�-�-rc��|j|jvSr)rTrnrVs r�__contains__zTraceback.__contains__�����|�t�|�+�+rc�*�t|j��Sr)r!rnr"s rr#zTraceback.__hash__�s���D�L�!�!�!rc�Z�t|t��stS|j|jkSr�r%rmr&rnr's rr)zTraceback.__eq__�s)���%��+�+� "�!�!����
�-�.rc�Z�t|t��stS|j|jkSrr�r's rrczTraceback.__lt__�s)���%��+�+� "�!�!���u�}�,�-rc�,�t|d��SrG)�strr"s rr/zTraceback.__str__�s���4��7�|�|�rc�`�dt|����}|j�|dz
}n|d|j�d�z
}|S)Nz<Traceback rjz total_nframe=)rqrort)r�ss rr1zTraceback.__repr__�sG��'�%��+�+�'�'����%�
��H�A�A�
�6�$�"3�6�6�6�6�A��rFc�X�g}|�|dkr||d�}n
|d|�}n|}|rt|��}|D]r}|�d|j�d|j����t j|j|j�����}|r|�d|z���s|S)Nrz File "z", line z %s)rrrJrYr^� 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��_�-�-�-���rr)NF)r5r6r7r8r9rrkrtrxr�r�r#r)rcr/r1r�r:rrrmrm�s���������-�I�*�*�*�*��"�"��X�"�!�!�!�.�.�.�,�,�,�"�"�"�/�/�/�
.�.�.�
�����������rrmc�F�t|��}|�t|��SdS)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)rrm)�objrss r�get_object_tracebackr�s*��#�3�
'�
'�F�
���� � � ��trc�v�eZdZdZdZd�Zed���Zed���Zed���Z d�Z
d�Zd �Zd
�Z
dS)�Tracez"
Trace of a memory block.
��_tracec��||_dSrr��rr~s rrzTrace.__init__s������rc��|jdSrGr�r"s r�domainzTrace.domainrZrc��|jdSr\r�r"s rrz
Trace.sizerZrc�.�t|jdd��S)N�)rmr�r"s rrzTrace.traceback#s���$�+�a�b�b�/�*�*rc�Z�t|t��stS|j|jkSr)r%r�r&r�r's rr)zTrace.__eq__'rarc�*�t|j��Sr)r!r�r"s rr#zTrace.__hash__,rerc�@�|j�dt|jd����S)Nz: F)rrrr"s rr/z
Trace.__str__/s"���>�>�>�<�� �5�+I�+I�+I�J�Jrc�T�d|j�dt|jd���d|j�d�S)Nz<Trace domain=z size=Fz, traceback=rj)r�rrrr"s rr1zTrace.__repr__2s5����;�;�;��T�Y�� >� >� >� >�����P� QrN)r5r6r7r8r9rrkr�rrr)r#r/r1r:rrr�r�s����������I����
����X������X���+�+��X�+�-�-�-�
!�!�!�K�K�K�Q�Q�Q�Q�Qrr�c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�_Tracesc�<�tj|��||_dSr)rr�_traces)r�tracess rrz_Traces.__init__8s����$��������rc�*�t|j��Sr)rwr�r"s rrxz_Traces.__len__=ryrc��t|t��r$td�|j|D����St |j|��S)Nc3�4K�|]}t|��V��dSr)r�r|s rrz&_Traces.__getitem__.<locals>.<genexpr>Br�r)r%r�rqr�r�r�s rr�z_Traces.__getitem__@r�rc��|j|jvSr)r�r�r�s rr�z_Traces.__contains__Fr�rc�Z�t|t��stS|j|jkSr)r%r�r&r�r's rr)z_Traces.__eq__Is)���%��)�)� "�!�!����
�-�.rc�&�dt|��zS)Nz<Traces len=%s>)rwr"s rr1z_Traces.__repr__Ns�� �3�t�9�9�,�,rN) r5r6r7rrxr�r�r)r1r:rrr�r�7sn���������
!�!�!�.�.�.�,�,�,�/�/�/�
-�-�-�-�-rr�c��tj�|��}|�d��r
|dd�}|S)Nz.pyc���)�os�path�normcase�endswith)rYs r�_normalize_filenamer�Rs?���w����)�)�H����� � �!��C�R�C�=���Orc��eZdZd�Zd�ZdS)�
BaseFilterc��||_dSr)� inclusive)rr�s rrzBaseFilter.__init__Zs
��"����rc��t�r)�NotImplementedErrorr�s r�_matchzBaseFilter._match]s��!�!rN)r5r6r7rr�r:rrr�r�Ys2������#�#�#�"�"�"�"�"rr�c�P��eZdZ d �fd� Zed���Zd�Zd�Zd�Zd�Z �xZ
S)
�FilterNFc���t���|��||_t|��|_||_||_||_dSr)�superrr�r��_filename_patternr^�
all_framesr�)rr��filename_patternr^r�r�� __class__s �rrzFilter.__init__bsL���
������#�#�#�"���!4�5E�!F�!F������$�������rc��|jSr)r�r"s rr�zFilter.filename_patternks���%�%rc��t|��}tj||j��sdS|j�dS||jkS)NFT)r��fnmatchr�r^�rrYr^s r�_match_frame_implzFilter._match_frame_implosE��&�x�0�0����x��)?�@�@� ��5��;���4��d�k�)�*rc�@�|�||��|jzSr)r�r�r�s r�_match_framezFilter._match_framexs"���%�%�h��7�7�t�~�;M�N�Nrc����jr*t�fd�|D����r�jS�jS|d\}}��||��S)Nc3�J�K�|]\}}��||��V��dSr)r�)r}rYr^rs �rrz*Filter._match_traceback.<locals>.<genexpr>}sK�����6�6�'�x���)�)�(�F�;�;�6�6�6�6�6�6rr)r��anyr�r�)rrrYr^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�6rc��|\}}}}|�|��}|j�!|jr
|o
||jkS|p
||jkS|Sr)r�r�r�)rr~r�rrrt�ress rr�z
Filter._match�s^��05�-���i���#�#�I�.�.���;�"��~�
6��6��$�+� 5�6��5�v���4�5��
r)NFN)r5r6r7rrkr�r�r�r�r��
__classcell__�r�s@rr�r�as��������7;��������&�&��X�&�+�+�+�O�O�O� 7� 7� 7�������rr�c�:��eZdZ�fd�Zed���Zd�Z�xZS)�DomainFilterc�X��t���|��||_dSr)r�r�_domain)rr�r�r�s �rrzDomainFilter.__init__�s&���
������#�#�#�����rc��|jSr)r�r"s rr�zDomainFilter.domain�s
���|�rc�8�|\}}}}||jk|jzSr)r�r�)rr~r�rrrts rr�zDomainFilter._match�s'��05�-���i���$�+�%�d�n�*<�=�=r)r5r6r7rrkr�r�r�r�s@rr�r��sb����������������X��>�>�>�>�>�>�>rr�c�V�eZdZdZd�Zd�Zed���Zd�Zd�Z d�Z
dd �Zdd
�ZdS)
�SnapshotzB
Snapshot of traces of memory blocks allocated by Python.
c�<�t|��|_||_dSr)r�r��traceback_limit)rr�r�s rrzSnapshot.__init__�s���f�o�o���.����rc��t|d��5}tj||tj��ddd��dS#1swxYwYdS)z1
Write the snapshot into a file.
�wbN)�open�pickle�dump�HIGHEST_PROTOCOL)rrY�fps rr�z
Snapshot.dump�s����(�D�
!�
!� ;�R��K��b�&�"9�:�:�:� ;� ;� ;� ;� ;� ;� ;� ;� ;� ;� ;� ;���� ;� ;� ;� ;� ;� ;s�!?�A�Ac�~�t|d��5}tj|��cddd��S#1swxYwYdS)z.
Load a snapshot from a file.
�rbN)r�r��load)rYr�s rr�z
Snapshot.load�s���
�(�D�
!�
!� #�R��;�r�?�?� #� #� #� #� #� #� #� #� #� #� #� #���� #� #� #� #� #� #s�2�6�6c���|rt�fd�|D����sdS|rt�fd�|D����rdSdS)Nc3�B�K�|]}|����V��dSr�r��r}�trace_filterr~s �rrz)Snapshot._filter_trace.<locals>.<genexpr>�sE�����<�<�'�$�*�*�5�1�1�<�<�<�<�<�<rFc3�D�K�|]}|����V��dSrr�r�s �rrz)Snapshot._filter_trace.<locals>.<genexpr>�sH�����8�8�#�$�*�*�5�1�1�1�8�8�8�8�8�8rT)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��trc�����t|t��s$tdt|��jz���|rVg�g�|D]4}|jr��|�����|���5���fd��jjD��}n�jj� ��}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|]}����|���|��Sr:)r�)r}r~r�r�rs ���r�
<listcomp>z*Snapshot.filter_traces.<locals>.<listcomp>�sE���8�8�8�E�!�/�/��0?�05�7�7�8�%�8�8�8r)r%r� TypeError�typer5r�rJr�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�9rc�>�|dvrtd|�����|r|dvrtd|z���i}i}|s�|jjD]�}|\}}}} ||}
nO#t$rB|dkr|}n"|dkr|dd�}n|dddff}t |��}
|
||<YnwxYw ||
}|xj|z
c_|xjdz
c_��#t$rt|
|d��||
<Y��wxYwn�|jjD]�}|\}}}} |D]�}
||
}
n9#t$r,|dkr|
f}n|
ddff}t |��}
|
||
<YnwxYw ||
}|xj|z
c_|xjdz
c_�o#t$rt|
|d��||
<Y��wxYw��|S) N)rrYr^zunknown key_type: )r^rYz/cumulative mode cannot by used with key type %rrr^r]r)�
ValueErrorr�r��KeyErrorrmrrr)r�key_type�
cumulative�stats�
tracebacksr~r�r�trace_tracebackrtrrsrNrWs 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|�����}|�dtj���|S)zd
Group statistics by key_type. Return a sorted list of Statistic
instances.
T��reverse�key)r�list�values�sortrr3)rrr�groupedrMs rrMzSnapshot.statisticssM��
�.�.��:�6�6���'�.�.�*�*�+�+�
�����)�*=��>�>�>��rc��|�||��}|�||��}t||��}|�dtj���|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
)rrPrr<r3)r�old_snapshotrrrLrKrMs r�
compare_tozSnapshot.compare_tosZ���N�N�8�Z�8�8� � �*�*�8�Z�@�@� �+�I�y�A�A�
�����-�*A��B�B�B��rN)F)
r5r6r7r8rr��staticmethodr�r�rrrMrr:rrr�r��s���������/�/�/�;�;�;��#�#��\�#� � � �:�:�:�21�1�1�f����
�
�
�
�
�
rr�c��t��std���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.abcrr� functoolsrr�r��os.pathr�r��_tracemallocrrrrr<rPrRrmr�r�r�r�r�r�r�r�rr:rr�<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
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists