add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

��VcFcs��ddlmZmZddlmZddlZddlZddlZddl	Z	ddl
Tddl
mZmZd�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)Z*)�_get_object_traceback�_get_tracescs��dD]a}t|��dkr|dkr|r	d||fzcSd||fzcSt|��dks|dkr|r	d||fzcSd	||fzcS|d
z}�bdS)N)�BZKiBZMiBZGiB�TiBidrz%+.1f %sz%.1f %si(rz%+.0f %sz%.0f %si)�abs)�sizeZsignZunit�   �$/usr/lib64/python3.11/tracemalloc.py�_format_sizer
s���1�
�
���t�9�9�s�?�	0�t�s�{�	0��
0�!�T�4�L�0�0�0�0� �D�$�<�/�/�/�/��t�9�9�y� �	0�D�E�M�	0��
0�!�T�4�L�0�0�0�0� �D�$�<�/�/�/�/������
�
�c�8�eZdZ	dZd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�	Statistic��	tracebackr	�countcs0�||_||_||_dS�Nr)�selfrr	rs    r�__init__zStatistic.__init__%s��"�����	���
�
�
r
csD�t|j|j|jf��Sr)�hashrr	r�r� r�__hash__zStatistic.__hash__*s���T�^�T�Y��
�;�<�<�<r
cs��t|t��stS|j|jko|j|jko|j|jkSr)�
isinstancer�NotImplementedrr	r�rZother�  r�__eq__zStatistic.__eq__-sM���%��+�+�	"�!�!���%�/�1�.��I���+�.��J�%�+�-�	/r
cs��d|jt|jd��|jfz}|jr%|j|jz}|dt|d��zz
}|S)Nz%s: size=%s, count=%iF�, average=%s)rrr	r�rZtextZaverager
r�__str__zStatistic.__str__4sc��'��N� ���E�2�2��J� � ���:�	B��i�$�*�,�G��N�\�'�5�%A�%A�A�A�D��r
cs0�d|j|j|jfzS)Nz)<Statistic traceback=%r size=%i count=%i>rrrr�__repr__zStatistic.__repr__>s��;��>�4�9�d�j�9�:�	;r
cs*�|j|j|jfSr)r	rrrrr�	_sort_keyzStatistic._sort_keyBs���	�4�:�t�~�6�6r
N�
�__name__�
__module__�__qualname__�	__slots__rrrr!r"r#�r
rrrsz�������/�I����
=�=�=�/�/�/����;�;�;�7�7�7�7�7r
rcr)	�
StatisticDiff�rr	�	size_diffr�
count_diffcsL�||_||_||_||_||_dSrr+)rrr	r,rr-�      rrzStatisticDiff.__init__Ms)��"�����	�"�����
�$����r
cs\�t|j|j|j|j|jf��Sr)rrr	r,rr-rrrrzStatisticDiff.__hash__Ts.���T�^�T�Y����Z���2�3�3�	3r
cs��t|t��stS|j|jko?|j|jko/|j|jko|j|jko|j|jkSr)rr*rrr	r,rr-rrrrzStatisticDiff.__eq__Xst���%��/�/�	"�!�!���%�/�1�8��I���+�8��N�e�o�5�8��J�%�+�-�8��O�u�'7�7�		9r
cs��d|jt|jd��t|jd��|j|jfz}|jr%|j|jz}|dt|d��zz
}|S)Nz %s: size=%s (%s), count=%i (%+i)FTr)rrr	r,rr-r r
rr!zStatisticDiff.__str__asw��2��>���	�5�1�1�����5�5��:��?�	$�$���:�	B��i�$�*�,�G��N�\�'�5�%A�%A�A�A�D��r
csH�d|j|j|j|j|jfzS)Nz9<StatisticDiff traceback=%r size=%i (%+i) count=%i (%+i)>r+rrrr"zStatisticDiff.__repr__ms*��K��>�4�9�d�n��:�t��0�0�	1r
csv�t|j��|jt|j��|j|jfSr)rr,r	r-rrrrrr#zStatisticDiff._sort_keyrs3���D�N�#�#�T�Y��D�O�$�$�d�j��� �	 r
Nr$r)r
rr*r*Fs{�������J�I�%�%�%�3�3�3�9�9�9�
�
�
�1�1�1�
 � � � � r
r*c	s��g}|���D]�\}}|�|d��}|�8t||j|j|jz
|j|j|jz
��}n't||j|j|j|j��}|�|����|���D]9\}}t|d|jd|j��}|�|���:|S�Nr)ZitemsZpopr*r	r�append)�	old_group�	new_group�
statisticsr�statZpreviousr.r�_compare_grouped_statsr5xs	���J�$�?�?�,�,�
 �
 ��	�4��=�=��D�1�1���	9� ��!%��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
csd�eZdZ	dZd�Zed���Zed���Zd�Zd�Z	d�Z
d�Zd	�Zd
S)�Frame��_framec��||_dSrr7�r�framerrrzFrame.__init__�s
������r
c��|jdSr/r7rrr�filenamezFrame.filename�����{�1�~�r
cr<�N�r7rrr�linenozFrame.lineno�r>r
c�Z�t|t��stS|j|jkSr�rr6rr8rrrrzFrame.__eq__��)���%��'�'�	"�!�!���u�|�+�,r
c�Z�t|t��stS|j|jkSrrCrrr�__lt__zFrame.__lt__�s)���%��'�'�	"�!�!���e�l�*�+r
c�*�t|j��Sr)rr8rrrrzFrame.__hash__�����D�K� � � r
cs$�|j�d|j��S)Nz:�r=rArrrr!z
Frame.__str__�s���-�-�-����5�5r
cs(�d|j�d|j�d�S)Nz<Frame filename=z lineno=�>rIrrrr"zFrame.__repr__�s���26�-�-�-�����M�Mr
N)
r%r&r'r(r�propertyr=rArrFrr!r"r)r
rr6r6�s���������I��������X������X��-�-�-�
,�,�,�
!�!�!�6�6�6�N�N�N�N�Nr
r6csj�eZdZ	dZdd�Zed���Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zdd�ZdS)�	Traceback)�_frames�
_total_nframeNcs~�tj|��tt|����|_||_dSr)rr�tuple�reversedrMrN)r�frames�total_nframer
rrzTraceback.__init__�s:����$����
�X�f�-�-�.�.���)����r
c��|jSr)rNrrrrRzTraceback.total_nframe�s���!�!r
crGr)�lenrMrrr�__len__zTraceback.__len__�����4�<� � � r
c��t|t��r$td�|j|D����St	|j|��S)Nc3�4K�|]}t|��V��dSr)r6��.0�tracerr�	<genexpr>z(Traceback.__getitem__.<locals>.<genexpr>��(����G�G�%��u���G�G�G�G�G�Gr
)r�slicerOrMr6�rZindexrr�__getitem__zTraceback.__getitem__��M���e�U�#�#�	.��G�G�4�<��3F�G�G�G�G�G�G����e�,�-�-�-r
c��|j|jvSr)r8rMr:rr�__contains__zTraceback.__contains__�����|�t�|�+�+r
crGr)rrMrrrrzTraceback.__hash__�s���D�L�!�!�!r
crBr�rrLrrMrrrrzTraceback.__eq__�s)���%��+�+�	"�!�!����
�-�.r
crErrerrrrFzTraceback.__lt__�s)���%��+�+�	"�!�!���u�}�,�-r
cs,�t|d��Sr/)Zstrrrrr!zTraceback.__str__�s���4��7�|�|�r
cs`�dt|����}|j�|dz
}n|d|j�d�z
}|S)Nz<Traceback rJz total_nframe=)rOrNrR)rZsrrr"zTraceback.__repr__�sI��'�%��+�+�'�'����	7�
��H�A�A�
�6�$�"3�6�6�6�6�A��r
FcsX�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)rPr0r=rA�	linecacheZgetlineZstrip)rZlimitZmost_recent_firstZlinesZframe_slicer;Zline�       r�formatzTraceback.format�s������	��q�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)r%r&r'r(rrKrRrUr`rcrrrFr!r"rhr)r
rrLrL�s��������-�I�*�*�*�*��"�"��X�"�!�!�!�.�.�.�,�,�,�"�"�"�/�/�/�
.�.�.�
�����������r
rLcsH�	t|��}|�t|��SdSr)rrL)ZobjrQrr�get_object_tracebackris1���#�3�
'�
'�F�
���� � � ��tr
cst�eZdZ	dZd�Zed���Zed���Zed���Zd�Z	d�Z
d�Zd	�Zd
S)�Trace��_tracecr9rrk�rr[rrrzTrace.__init__s������r
cr<r/rkrrr�domainzTrace.domainr>r
cr<r?rkrrrr	z
Trace.sizer>r
cs.�t|jdd��S)Ni)rLrlrrrrzTrace.traceback#s���$�+�a�b�b�/�*�*r
crBr)rrjrrlrrrrzTrace.__eq__'rDr
crGr)rrlrrrrzTrace.__hash__,rHr
cs@�|j�dt|jd����S)Nz: F)rrr	rrrr!z
Trace.__str__/s"���>�>�>�<��	�5�+I�+I�+I�J�Jr
csT�d|j�dt|jd���d|j�d�S)Nz<Trace domain=z size=Fz, traceback=rJ)rnrr	rrrrr"zTrace.__repr__2s5����;�;�;��T�Y�� >� >� >� >�����P�	Qr
N)
r%r&r'r(rrKrnr	rrrr!r"r)r
rrjrjs���������I����
����X������X���+�+��X�+�-�-�-�
!�!�!�K�K�K�Q�Q�Q�Q�Qr
rjcs2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�_Tracescs<�tj|��||_dSr)rr�_traces)r�tracesrrrz_Traces.__init__8s����$��������r
crGr)rTrprrrrUz_Traces.__len__=rVr
crW)Nc3rXr)rjrYrrr\z&_Traces.__getitem__.<locals>.<genexpr>Br]r
)rr^rOrprjr_rrr`z_Traces.__getitem__@rar
crbr)rlrprmrrrcz_Traces.__contains__Frdr
crBr)rrorrprrrrz_Traces.__eq__Is)���%��)�)�	"�!�!����
�-�.r
cs&�dt|��zS)Nz<Traces len=%s>)rTrrrr"z_Traces.__repr__Ns�� �3�t�9�9�,�,r
N)	r%r&r'rrUr`rcrr"r)r
rroro7sn���������
!�!�!�.�.�.�,�,�,�/�/�/�
-�-�-�-�-r
rocs��tj�|��}|�d��r
|dd�}|S)Nz.pyci����)�osZpathZnormcaseZendswith)r=rr�_normalize_filenamersRs?���w����)�)�H����� � �!��C�R�C�=���Or
cs�eZdZd�Zd�ZdS)�
BaseFiltercr9r)�	inclusive)rrurrrzBaseFilter.__init__Zs
��"����r
cs�t�r)ZNotImplementedErrorrmrr�_matchzBaseFilter._match]s��!�!r
N)r%r&r'rrvr)r
rrtrtYs2������#�#�#�"�"�"�"�"r
rtcsP��eZdZ	d	�fd�	Zed���Zd�Zd�Zd�Zd�Z	�xZ
S)
�FilterNFcs���t���|��||_t|��|_||_||_||_dSr)�superrrurs�_filename_patternrA�
all_framesrn)rru�filename_patternrArzrn�	__class__s      �rrzFilter.__init__bsL���
������#�#�#�"���!4�5E�!F�!F������$�������r
crSr)ryrrrr{zFilter.filename_patternks���%�%r
cs��t|��}tj||j��sdS|j�dS||jkS)NFT)rs�fnmatchryrA�rr=rAr
r�_match_frame_implzFilter._match_frame_implosG��&�x�0�0����x��)?�@�@�	��5��;�	+��4��d�k�)�*r
cs@�|�||��|jzSr)rrur~r
r�_match_framezFilter._match_framexs"���%�%�h��7�7�t�~�;M�N�Nr
cs����jr*t�fd�|D����r�jS�jS|d\}}��||��S)Nc3sJ�K�|]\}}��||��V��dSr)r)rZr=rAr�   �rr\z*Filter._match_traceback.<locals>.<genexpr>}sK�����6�6�'�x���)�)�(�F�;�;�6�6�6�6�6�6r
r)rz�anyrur�)rrr=rAs`   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
cs��|\}}}}|�|��}|j�!|jr
|o
||jkS|p
||jkS|Sr)r�rnru)rr[rnr	rrRZresrgrrvz
Filter._match�s`��05�-���i���#�#�I�.�.���;�	6��~�
6��6��$�+� 5�6��5�v���4�5��
r
)NFN)r%r&r'rrKr{rr�r�rv�
__classcell__�r|�@rrwrwas��������7;��������&�&��X�&�+�+�+�O�O�O�	7�	7�	7�������r
rwcs:��eZdZ�fd�Zed���Zd�Z�xZS)�DomainFiltercsX��t���|��||_dSr)rxr�_domain)rrurnr|r�rrzDomainFilter.__init__�s&���
������#�#�#�����r
crSr)r�rrrrnzDomainFilter.domain�s
���|�r
cs8�|\}}}}||jk|jzSr)rnru)rr[rnr	rrRr.rrvzDomainFilter._match�s'��05�-���i���$�+�%�d�n�*<�=�=r
)r%r&r'rrKrnrvr�r�r�rr�r��sb����������������X��>�>�>�>�>�>�>r
r�csT�eZdZ	d�Zd�Zed���Zd�Zd�Zd�Z	dd�Z
dd	�Zd
S)�Snapshotcs<�t|��|_||_dSr)rorq�traceback_limit)rrqr�r
rrzSnapshot.__init__�s���f�o�o���.����r
cs��	t|d��5}tj||tj��ddd��dS#1swxYwYdS)NZwb)�open�pickle�dumpZHIGHEST_PROTOCOL)rr=�fpr
rr�z
Snapshot.dump�s���	��(�D�
!�
!�	;�R��K��b�&�"9�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;s�!A�A�Acs��	t|d��5}tj|��cddd��S#1swxYwYdS)NZrb)r�r��load)r=r�rrr�z
Snapshot.load�s���	��(�D�
!�
!�	#�R��;�r�?�?�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#s�3�7�7cs���|rt�fd�|D����sdS|rt�fd�|D����rdSdS)Nc3sB�K�|]}|����V��dSr�rv�rZ�trace_filterr[�  �rr\�)Snapshot._filter_trace.<locals>.<genexpr>�sE�����<�<�'�$�*�*�5�1�1�<�<�<�<�<�<r
Fc3sD�K�|]}|����V��dSrr�r�r�rr\r��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
cs�����	t|t��s$tdt|��jz���|rVg�g�|D]4}|jr��|�����|���5���fd��jjD��}n�jj�	��}t|�j��S)Nz)filters must be a list of filters, not %scsB��g|]}����|���|��Sr))r�)rZr[r�r�rs  ���rz
<listcomp>z*Snapshot.filter_traces.<locals>.<listcomp>�sE���8�8�8�E�!�/�/��0?�05�7�7�8�%�8�8�8r
)rrZ	TypeErrorZtyper%rur0rqrpZcopyr�r�)rZfiltersr�Z
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
cs>�|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)rr=rAzunknown key_type: )rAr=z/cumulative mode cannot by used with key type %rrrAr@r)Z
ValueErrorrqrpZKeyErrorrLr	rr)r�key_type�
cumulativeZstatsZ
tracebacksr[rnr	Ztrace_tracebackrRrrQr4r;s              r�	_group_byzSnapshot._group_by�s����>�>�	C��*�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�/�6�&+�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�FFcs��	|�||��}t|�����}|�dtj���|S�NT)ZreverseZkey)r�ZlistZvalues�sortrr#)rr�r�Zgroupedr3s     rr3zSnapshot.statisticssR��	��.�.��:�6�6���'�.�.�*�*�+�+�
�����)�*=��>�>�>��r
cs��	|�||��}|�||��}t||��}|�dtj���|Sr�)r�r5r�r*r#)rZold_snapshotr�r�r2r1r3rgr�
compare_tozSnapshot.compare_tos_��	�
�N�N�8�Z�8�8�	� �*�*�8�Z�@�@�	�+�I�y�A�A�
�����-�*A��B�B�B��r
N)F)r%r&r'rr�Zstaticmethodr�r�r�r�r3r�r)r
rr�r��s��������/�/�/�;�;�;��#�#��\�#�	�	�	�:�:�:�21�1�1�f����
�
�
�
�
�
r
r�cs��	t��std���t��}t��}t	||��S)NzLthe tracemalloc module must be tracing memory allocations to take a snapshot)Z
is_tracingZRuntimeErrorrZget_traceback_limitr�)rqr�rr�
take_snapshotr�'sP����<�<�=��<�=�=�	=�
�]�]�F�)�+�+�O��F�O�,�,�,r
)Zcollections.abcrrZ	functoolsrr}rfZos.pathrrr�Z_tracemallocrrrrr*r5r6rLrirjrorsrtrwr�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