add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

�Wc�'cs��	ddlZddlZddlmZddlmZgd�ZiZdZgd�Z	d�Z
dd	�Zd
�Zd�Z
Gd�d
�Zdd�Zeefd�Zd�Zd�Zedkr
e�dSdS)�N)�filterfalse)�GenericAlias)�clear_cache�cmp�dircmp�cmpfiles�DEFAULT_IGNORESi )ZRCSZCVSZtagsz.gitz.hgz.bzrZ_darcsZ__pycache__cs4�	tj�dS�N)�_cacheZclear��� /usr/lib64/python3.12/filecmp.pyrrs��"�
�L�L�N�N�N�NrTcs��	ttj|��}ttj|��}|dtjks|dtjkrdS|r||krdS|d|dkrdStj||||f�}|�>t
||�}tt�dkrt�|t||||f<|S)NrFT�id)	�_sig�os�statZS_IFREGr	Zget�_do_cmp�lenr)�f1�f2�shallowZs1Zs2Zoutcomes      rrrs����,
�b�g�g�b�k�	�B�	
�b�g�g�b�k�	�B�	�!�u�������1����� 5� 5��u��w�2��8�8��t�	�!�u��1��~�~��u��j�j�"�b�"�b�)�*�G����"�b�/���v�;�����M�M�!(��r�2�r�2�~���Nrcsr�tj|j�|j|jfSr)r�S_IFMT�st_modeZst_sizeZst_mtime)Zst� rrrFs*���K�K��
�
�#��J�J��K�K��rcsD�t}t|d�5}t|d�5}	|j|�}|j|�}||kr	ddd�ddd�dS|s	ddd�ddd�dS�W#1swYnxYwddd�dS#1swYdSxYw)NZrbTF)�BUFSIZEZopenZread)rrZbufsizeZfp1Zfp2Zb1Zb2s       rrrKs^���G�	
�b�$���3��R����#�����'�"�B����'�"�B��R�x�x���������������2����������������������������������������������s4�B�-A>�	B�&A>�)	B�=A>�>B	�B�Bcs��eZdZ	dd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Ze
eeeeeeeeeeee��Zd
�Zee�ZdS)rNcs��||_||_|�(tjtjg|_n||_|�t|_dS||_dSr)�left�rightrZcurdirZpardir�hider�ignore)�self�a�brr�     r�__init__zdircmp.__init__|sM����	���
��<����B�I�I�.�D�I�I��D�I��>�)�D�K�K�K� �D�K�K�Krcs��ttj|j�|j|j
z�|_ttj|j�|j|j
z�|_|jj�|jj�dSr)
�_filterrZlistdirrrr�	left_listr�
right_list�sort�rrr�phase0z
dircmp.phase0�s��� ����D�I�I�!6�!%���4�;�;�!6�8���!�"�*�*�T�Z�Z�"8�"&�)�)�D�K�K�"7�9������������������rc	s��ttttjj
|j�|j��}ttttjj
|j�|j��}tt|jt|j|���|_tt|jt|j|���|_tt|jt|j|���|_dSr)�dictZzipZmapr�pathZnormcaser$r%�listZ__getitem__Zfilter�__contains__�commonr�	left_only�
right_only)rrr s   r�phase1z
dircmp.phase1�s�����S����)�)�4�>�>�:�D�N�N�K�L����S����)�)�4�?�?�;�T�_�_�M�N���3�q�}�}�f�Q�^�^�Q�.G�H�I����c�!�-�-��Q�^�^�Q�1O�P�Q����s�1�=�=�+�a�n�n�a�2P�Q�R����rcs��g|_g|_g|_|jD�]�}tj
j
|j|�}tj
j
|j|�}d}	t	j|�}	t	j|�}|r�tjj�}tjj�}||kr|jj|���tj|�r|jj|���*tj|�r|jj|���_|jj|���}|jj|����dS#t$rd}Y��6wxYw#t$rd}Y��1wxYw)NTF)�common_dirs�common_files�common_funnyr-rr*�joinrrr�OSErrorrr�appendZS_ISDIRZS_ISREG)	r�xZa_pathZb_pathZokZa_statZb_statZa_typeZb_types	         r�phase2z
dircmp.phase2�s���������������	,�	,�A��W�W�\�\�$�)�)�Q�/�F��W�W�\�\�$�*�*�a�0�F��B�
�������
�������
�r����V�^�^�4�����V�^�^�4���V�#�#��%�%�,�,�Q�/�/�/��\�\�&�)�)��$�$�+�+�A�.�.�.��\�\�&�)�)��%�%�,�,�Q�/�/�/��%�%�,�,�Q�/�/�/��!�!�(�(��+�+�+�9	,�	,���
�
�
�����
�����
�
�
�
�����
���s$�F?�G�?G�G�G"�!G"cs��t|j|j|j�}|\|_|_|_dSr)rrrr2�
same_files�
diff_files�funny_files)rZxx�  r�phase3z
dircmp.phase3�s7��
�d�i�i����T�->�->�
?��=?�:�����$�*:�*:�*:rcsP�i|_|jD]�}tjj	|j
|�}tjj	|j|�}|j|||j|j�|j|<��dSr)
�subdirsr1rr*r4rrZ	__class__rr)rr7Za_xZb_xs    r�phase4z
dircmp.phase4�s���
����!�!�	P�	P�A��'�'�,�,�t�y�y�!�,�C��'�'�,�,�t�z�z�1�-�C�#�~�~�c�3����T�Y�Y�O�D�L�L��O�O�	P�	Prcs��|j�|jj�D]}|j��dSr)r?r>�values�phase4_closure�rZsdr<rrAzdircmp.phase4_closure�sE�����
�
��,�,�%�%�'�	 �	 �B�������	 �	 rcs��td|j|j�|jr?|jj	�td|jd|j�|j
r?|j
j	�td|jd|j
�|jr3|jj	�td|j�|jr3|jj	�td|j�|jr3|jj	�td|j�|jr3|jj	�td|j�|jr5|jj	�td|j�dSdS)	NZdiffzOnly inz:zIdentical files :zDiffering files :zTrouble with common files :zCommon subdirectories :zCommon funny cases :)�printrrr.r&r/r9r:r;r1r3r'rr�reportz
dircmp.report�s���
�f�d�i�i����,�,��>�>�>��N�N���!�!��)�T�Y�Y��T�^�^�<�<��?�?�?��O�O� � �"�"��)�T�Z�Z��d�o�o�>�>��?�?�?��O�O� � �"�"��%�t���7�7��?�?�?��O�O� � �"�"��%�t���7�7��������!�!�#�#��/��1A�1A�B�B��������!�!�#�#��+�T�-=�-=�>�>��������"�"�$�$��(�$�*;�*;�<�<�<�<��rcs��|j�|jj�D]}t�|j��!dSr)rDr>r@rCrBr<r�report_partial_closurezdircmp.report_partial_closure�sG�����
�
��,�,�%�%�'�	�	�B��G�G��I�I�K�K�K�	�	rcs��|j�|jj�D]}t�|j	��!dSr)rDr>r@rC�report_full_closurerBr<rrFzdircmp.report_full_closure�sL�����
�
��,�,�%�%�'�	%�	%�B��G�G��"�"�$�$�$�	%�	%r)r>r9r:r;r1r2r3r-r.r/r$r%cs��||jvr
t|��|j||�t||�Sr)�	methodmapZAttributeErrorZgetattr)rZattrr<r�__getattr__zdircmp.__getattr__�s?���t�~�~�%�%� ��&�&�����t��T�"�"��t�T�"�"r)NN)�__name__Z
__module__Z__qualname__r"r(r0r8r=r?rArDrErFr)rGrHZclassmethodrZ__class_getitem__r
rrrrXs������!	�F
!�
!�
!�
!����S�S�S�!,�!,�!,�F@�@�@�	P�	P�	P� � � �
=�=�=�2���%�%�%���V� &�6�v�!'�f�6�"�f��%�&�	:�:�I�#�#�#�$��L�1���rrcs��	gggf}|D]k}tjj||�}tjj||�}|t|||�j	|��m|Sr)rr*r4�_cmpr6)rr r-rZresr7ZaxZbxs        rrrsr����r�2�,�C�
�-�-��
�W�W�\�\�!�Q�
��
�W�W�\�\�!�Q�
���D��R��!�"�)�)�!�,�,�,��JrcsL�	|||||��S#t$rYdSwxYw)N�)r5)rr Zsh�absrr!rrJrJsC����3�s�s�1�a��}�%�%�%�������q�q����s��
#�#csH�tt|j|��Sr)r+rr,)ZflistZskipr<rr#r#&s����D�-�-�u�5�6�6rcs(�ddl}ddl}|j|jddd�\}}t|�dkr|j	dd��t|d|d�}d|vr|j
�dS|j�dS)Nrr
ZrrKzneed exactly two args)z-rZ)�sys�getoptZargvrZGetoptErrorrrFrD)rMrNZoptionsZargsZddr!r�demorO,s����J�J�J��M�M�M��M�M�#�(�(�1�2�,��4�M�G�T�
�4�y�A�~�~�� � �!8�$�?�?�	��Q���a��	!�B��W���
��� � � � �
�	�	����rZ__main__)T)rrZ	itertoolsrZtypesrZ__all__r	rrrrrrrrrLrJr#rOrIr
rr�<module>rPsG��
�
�	�	�	�����!�!�!�!�!�!�������
I�
I�
I��	��
��J�J�J�����&�&�&�&�P���
	�	�	�g2�g2�g2�g2�g2�g2�g2�T����6������7�7�7�
�
�
��z����D�F�F�F�F��r