add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

�Wc�'���	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 )�RCS�CVS�tagsz.gitz.hgz.bzr�_darcs�__pycache__c�4�	tj�dS�N)�_cache�clear��� /usr/lib64/python3.12/filecmp.pyrrs��"�
�L�L�N�N�N�NrTc���	ttj|��}ttj|��}|dtjks|dtjkrdS|r||krdS|d|dkrdStj||||f�}|�>t
||�}tt�dkrt�|t||||f<|S)NrFT��d)	�_sig�os�stat�S_IFREGr�get�_do_cmp�lenr)�f1�f2�shallow�s1�s2�outcomes      rrrs����,
�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�~���Nrc�r�tj|j�|j|jfSr)r�S_IFMT�st_mode�st_size�st_mtime)�sts rrrFs*���K�K��
�
�#��J�J��K�K��rc�D�t}t|d�5}t|d�5}	|j|�}|j|�}||kr	ddd�ddd�dS|s	ddd�ddd�dS�W#1swYnxYwddd�dS#1swYdSxYw)N�rbTF)�BUFSIZE�open�read)r r!�bufsize�fp1�fp2�b1�b2s       rrrKs^���G�	
�b�$���3��R����#�����'�"�B����'�"�B��R�x�x���������������2����������������������������������������������s4�B�-A>�	B�&A>�)	B�=A>�>B	�B�Bc��eZdZ	dd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Ze
eeeeeeeeeeee��Zd
�Zee�ZdS)rNc��||_||_|�(tjtjg|_n||_|�t|_dS||_dSr)�left�rightr�curdir�pardir�hider	�ignore)�self�a�br=r<s     r�__init__zdircmp.__init__|sM����	���
��<����B�I�I�.�D�I�I��D�I��>�)�D�K�K�K� �D�K�K�Krc��ttj|j�|j|j
z�|_ttj|j�|j|j
z�|_|jj�|jj�dSr)
�_filterr�listdirr8r<r=�	left_listr9�
right_list�sort�r>s r�phase0z
dircmp.phase0�s��� ����D�I�I�!6�!%���4�;�;�!6�8���!�"�*�*�T�Z�Z�"8�"&�)�)�D�K�K�"7�9������������������rc	���ttttjj
|j�|j��}ttttjj
|j�|j��}tt|jt|j|���|_tt|jt|j|���|_tt|jt|j|���|_dSr)�dict�zip�mapr�path�normcaserErF�list�__getitem__�filter�__contains__�commonr�	left_only�
right_only)r>r?r@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����rc���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_funnyrTrrN�joinr8r9r�OSErrorr'r(�append�S_ISDIR�S_ISREG)	r>�x�a_path�b_path�ok�a_stat�b_stat�a_type�b_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"c��t|j|j|j�}|\|_|_|_dSr)rr8r9rZ�
same_files�
diff_files�funny_files)r>�xxs  r�phase3z
dircmp.phase3�s7��
�d�i�i����T�->�->�
?��=?�:�����$�*:�*:�*:rc�P�i|_|jD]�}tjj	|j
|�}tjj	|j|�}|j|||j|j�|j|<��dSr)
�subdirsrYrrNr\r8r9�	__class__r=r<)r>ra�a_x�b_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�	Prc��|j�|jj�D]}|j��dSr)rurq�values�phase4_closure�r>�sds  rrxzdircmp.phase4_closure�sE�����
�
��,�,�%�%�'�	 �	 �B�������	 �	 rc���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)	N�diffzOnly in�:zIdentical files :zDiffering files :zTrouble with common files :zCommon subdirectories :zCommon funny cases :)�printr8r9rUrGrVrkrlrmrYr[rHs r�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�-=�-=�>�>��������"�"�$�$��(�$�*;�*;�<�<�<�<��rc��|j�|jj�D]}t�|j��!dSr)rrqrwr~rys  r�report_partial_closurezdircmp.report_partial_closure�sG�����
�
��,�,�%�%�'�	�	�B��G�G��I�I�K�K�K�	�	rc��|j�|jj�D]}t�|j	��!dSr)rrqrwr~�report_full_closurerys  rr�zdircmp.report_full_closure�sL�����
�
��,�,�%�%�'�	%�	%�B��G�G��"�"�$�$�$�	%�	%r)rqrkrlrmrYrZr[rTrUrVrErFc��||jvr
t|��|j||�t||�Sr)�	methodmap�AttributeError�getattr)r>�attrs  r�__getattr__zdircmp.__getattr__�s?���t�~�~�%�%� ��&�&�����t��T�"�"��t�T�"�"r)NN)�__name__�
__module__�__qualname__rArIrWrirorurxrr�r�rKr�r��classmethodr�__class_getitem__rrrrrXs������!	�F
!�
!�
!�
!����S�S�S�!,�!,�!,�F@�@�@�	P�	P�	P� � � �
=�=�=�2���%�%�%���V� &�6�v�!'�f�6�"�f��%�&�	:�:�I�#�#�#�$��L�1���rrc���	gggf}|D]k}tjj||�}tjj||�}|t|||�j	|��m|Sr)rrNr\�_cmpr^)r?r@rTr"�resra�ax�bxs        rrrsr����r�2�,�C�
�-�-��
�W�W�\�\�!�Q�
��
�W�W�\�\�!�Q�
���D��R��!�"�)�)�!�,�,�,��Jrc�L�	|||||��S#t$rYdSwxYw)N�)r])r?r@�sh�absrs     rr�r�sC����3�s�s�1�a��}�%�%�%�������q�q����s��
#�#c�H�tt|j|��Sr)rPrrS)�flist�skips  rrCrC&s����D�-�-�u�5�6�6rc�(�ddl}ddl}|j|jddd�\}}t|�dkr|j	dd��t|d|d�}d|vr|j
�dS|j�dS)Nrr�rr�zneed exactly two args)z-r�)�sys�getopt�argvr�GetoptErrorrr�r)r�r��options�args�dds     r�demor�,s����J�J�J��M�M�M��M�M�#�(�(�1�2�,��4�M�G�T�
�4�y�A�~�~�� � �!8�$�?�?�	��Q���a��	!�B��W���
��� � � � �
�	�	����r�__main__)T)rr�	itertoolsr�typesr�__all__rr.r	rrrrrrr�r�rCr�r�rrr�<module>r�sG��
�
�	�	�	�����!�!�!�!�!�!�������
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