add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

�Wc 2cs��	ddlZddlZddlZddlZddlmZddlmZmZddl	m
Z
Gd�d�Zd�Zejfd�Zd	�Zdd�ZdS)
�N��convert_path)�DistutilsTemplateError�DistutilsInternalError)�logcsx�eZdZ	dd�Zd�Zejfd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zdd�Z	dd�ZdS)�FileListNcs"�d|_g|_dS�N)�allfiles�files)�self�warn�debug_print�   �+/usr/lib64/python3.12/distutils/filelist.py�__init__zFileList.__init__s����
���
�
�
�cs�||_dSr)r)r
r�  r�set_allfileszFileList.set_allfiles#s
�� ��
�
�
rcs*�t|�|_dSr)�findallr)r
�dirrrrzFileList.findall&s������
�
�
rcs6�	ddlm}|rt|�dSdS)Nr)�DEBUG)Zdistutils.debugrZprint)r
Zmsgrr
rrzFileList.debug_print)s4��	�	*�)�)�)�)�)��5��#�J�J�J�J��5rc�>�|jj|�dSr)r	�append)r
ZitemrrrzFileList.append3s���
�
���$����rcrr)r	�extend)r
ZitemsrrrzFileList.extend6s���
�
���%� � � � rcs�tttjj|j
��}g|_|D]9}|j
j
tjj|���;dSr)Zsorted�map�os�path�splitr	r�join)r
Zsortable_filesZ
sort_tupler
r�sortz
FileList.sort9sd����B�G�G�M�M�4�:�:� >�?����
�(�	9�	9�J��J�J���b�g�g�l�l�J�7�8�8�8�	9�	9rcs��tt|j�dz
dd�D]9}|j||j|dz
ks�-|j|=�;dS)N�r�����)�range�lenr	)r
�irr�remove_duplicateszFileList.remove_duplicatesCs_���s�4�:�:���*�A�r�2�	"�	"�A��z�z�!�}��
�
�1�q�5� 1�1�1���J�J�q�M�M�	"�	"rcs��|j�}|d}dx}x}}|dvr/t|�dkrtd|z��d�|ddD�}n�|dvrBt|�dkrtd	|z��t|d�}d
�|ddD�}nI|dvr5t|�dkrtd|z��t|d�}ntd
|z��||||fS)Nr)�include�exclude�global-include�global-excludeiz&'%s' expects <pattern1> <pattern2> ...c�*�g|]}t|���S�r��.0Zwrr�
<listcomp>�1FileList._parse_template_line.<locals>.<listcomp>W���;�;�;�A��Q����;rr)�recursive-include�recursive-excludeiz,'%s' expects <dir> <pattern1> <pattern2> ...cr)r*rr+rrr-r.]r/r)�graft�prunez#'%s' expects a single <dir_pattern>zunknown action '%s')rr"rr)r
�lineZwords�action�patternsr�dir_pattern�       r�_parse_template_linezFileList._parse_template_lineLs)���
�
����q���'+�+��+�3���:�:�:��5�z�A�~�~�,�>��G�I�I�;�;��q�r��;�;�H�H�
�A�
A�
A��5�z�A�~�~�,�D�v�M�O�O��u�Q�x�(�C�;�;��q�r��;�;�H�H�
�)�
)�
)��5�z�Q���,�;�f�D�F�F�&�u�Q�x�0�K�K�(�)>��)G�H�H���#�{�3�3rcs�|j|�\}}}}|dkrZ|jddj|�z�|D]/}|j|d��r�t	j
d|��1dS|dkrZ|jddj|�z�|D]/}|j
|d��r�t	j
d	|��1dS|d
krZ|jddj|�z�|D]/}|j|d��r�t	j
d
|��1dS|dkrZ|jddj|�z�|D]/}|j
|d��r�t	j
d|��1dS|dkr^|jd|�ddj|����|D]0}|j||��r�t	j
d||��2dS|dkr^|jd|�ddj|����|D]0}|j
||��r�t	j
d||��2dS|dkrE|jd|z�|jd|��st	j
d|�dSdS|dkrE|jd|z�|j
d|��st	j
d|�dSdStd|z��)Nr%zinclude z r)�anchorz%warning: no files found matching '%s'r&zexclude z9warning: no previously-included files found matching '%s'r'zglobal-include rz>warning: no files found matching '%s' anywhere in distributionr(zglobal-exclude zRwarning: no previously-included files matching '%s' found anywhere in distributionr0zrecursive-include )�prefixz:warning: no files found matching '%s' under directory '%s'r1zrecursive-exclude zNwarning: no previously-included files matching '%s' found under directory '%s'r2zgraft z+warning: no directories found matching '%s'r3zprune z6no previously-included directories found matching '%s'z'this cannot happen: invalid action '%s')r9rr�include_patternrr�exclude_patternr)r
r4r5r6rr7�patternr8r�process_template_linezFileList.process_template_linehs
��04�/H�/H��/N�,���3��
�Y������Z�#�(�(�8�*<�<�=�=�#�
&�
&���+�+�G�A�+�>�>���H�H�D�$�&�&�&�
&�
&�
�y�
 �
 ����Z�#�(�(�8�*<�<�=�=�#�
?�
?���+�+�G�A�+�>�>���H�H�4�6=�?�?�?�
?�
?�
�'�
'�
'����.����(�1C�C�D�D�#�
D�
D���+�+�G�A�+�>�>���H�H�9�;B�D�D�D�
D�
D�
�'�
'�
'����.����(�1C�C�D�D�#�
&�
&���+�+�G�A�+�>�>���H�H�D�$�&�&�&�
&�
&��*�
*�
*�����!�c�c�3�8�8�H�#5�#5�7�
8�
8�#�
+�
+���+�+�G�C�+�@�@���H�H�7�$�c�+�+�+�
+�
+��*�
*�
*�����!�c�c�3�8�8�H�#5�#5�7�
8�
8�#�
+�
+���+�+�G�C�+�@�@���H�H�@�$�c�+�+�+�
+�
+��w�
�
����X��3�4�4��'�'��[�'�A�A����F�$�&�&�&�&�B�A��w�
�
����X��3�4�4��'�'��[�'�A�A����*�,7�9�9�9�9�B�A�)�;�f�D�F�
FrrrcsP�	d}t||||�}|jd|jz�|j�|j	�|jD]H}|j|�s�|jd|z�|jj|�d}�J|S)NFz%include_pattern: applying regex r'%s'z adding T)�translate_patternrr>rr�searchr	r)r
r>r:r;�is_regex�files_found�
pattern_reZname�        rr<zFileList.include_pattern�s���	�2��&�w����I�
����@�#�+�+�,�	-�	-��=�=� ��L�L�N�N��M�M�	#�	#�D�� � ��&�&��� � ��d�!2�3�3��
�
�!�!�$�'�'�"����rcsn�	d}t||||�}|jd|jz�tt	|j
�dz
dd�D]Y}|j
|j
|�s�&|jd|j
|z�|j
|=d}�[|S)NFz%exclude_pattern: applying regex r'%s'rr z
 removing T)r@rr>r!r"r	rA)r
r>r:r;rBrCrDr#rErr=zFileList.exclude_pattern�s���	���&�w����I�
����@�#�+�+�,�	-�	-��s�4�:�:��q�(�"�b�1�	#�	#�A�� � ����A��/�/��� � ���
�
�1�
�!=�>�>��J�J�q�M�"����r)NN�rNr)Z__name__Z
__module__Z__qualname__rrr�curdirrrrrrr$r9r?r<r=r*rrrrs������������!�!�!��)�)�%�%�%�%���� � � �!�!�!�9�9�9�"�"�"�4�4�4�8GF�GF�GF�X(�(�(�(�X:;������rrcs��	d�tj|d��D�}ttjj|�S)Nc3spK�|]0\}}}|D]&}tjj||����(�2dSr)rrr)r,ZbaseZdirsr	Zfiles     rz	<genexpr>z#_find_all_simple.<locals>.<genexpr>�sX�������D�$�����
�	�����T�4� � � � � � ��rT)Zfollowlinks)rZwalkZfilterrZisfile)rZresultsrr�_find_all_simplerH�sE�����!#����4�!@�!@���G�
�"�'�'�.�.�'�*�*rcs��	t|�}|tjkr@tjtj
j|��}t||�}t|�S)N)�start)	rHrrG�	functoolsZpartialrZrelpathrZlist)rr	Zmake_relr
rrrsU���
�S�!�E�
�b�i�i����$�$�R�W�W�_�_�C�@�@���H�e�$����;�rcs��	tj|�}tj}tjdkrd}d|z}t	j
d||�}|S)N�\z\\\\z\1[^%s]z((?<!\\)(\\\\)*)\.)�fnmatchZ	translater�sep�reZsub)r>rDrMZescapeds    r�
glob_to_rerOs[���
�"�"�7�+�J�
�&�&�C�	�v�v��~�~����3��G����-�w�
�C�J��rrcsR�	|r,t|t�rtj|�S|St	d�jd�\}}}|rt	|�}nd}|��t	|�}|t
|�t
|�t
|�z
}tj}	tjdkrd}	|t
|�t
|�t
|�z
}|�d|�|	�d|�|��}n|r|�d|t
|�d��}tj|�S)N�_ZrKz\\z\Az.*)	Z
isinstanceZstrrNZcompilerOZ	partitionr"rrM)
r>r:r;rBrIrPZendrDZ	prefix_rerMs
          rr@r@%s���
�x��g�s�#�#��:�:�g�&�&��N��s�O�-�-�c�2�M�E�1�c��w���(�
�
��
�
���v�&�	��c�%�j�#�i�.�3�s�8�*C�D�	��f�f��
�6�6�T�>�>��C���E�
�C�
�O�c�#�h�,F�G�
�*/�%�%���C�C�C���S�S�Q�
�
��6�&+�e�e�Z��E�
��-D�-D�E�J�
�:�:�j�!�!rrF)rrNrLrJZdistutils.utilrZdistutils.errorsrrZ	distutilsrrrHrGrrOr@r*rr�<module>rQs�����
�
�
�
�
�
�
���������'�'�'�'�'�'�K�K�K�K�K�K�K�K�������b�b�b�b�b�b�b�P	+�	+�	+��	�	�	�	�	�	����.""�""�""�""�""�""r