add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

��Vc(%csH�ddlmZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
gd�Zejdkp(e
ed��oe
ed��oe
ejd	��ZGd
�dej��ZejZd*d�Zejdkr*egd
�z
ZddlZd+dd�d�Zd�Zd�Zd�ZGd�de��Zn%egd�z
ZddlZejdkZd�Zd�Zd�Zd�Zd�Zd�ZGd�d��Z ee!e ��j"��e��d �Z#ee!e$j%��e#��ee!e&j'��e#��d!�Z(d"�Z)eej*e(��ejdkrd#�Z+d$�Z,eeje+��nd%�Z+d&�Z,eeje+��Gd'�d(e�)��Z-dS),�)�ABCMetaN�)�context)�send_handle�recv_handle�ForkingPickler�register�dump�win32ZCMSG_LEN�
SCM_RIGHTS�sendmsgcsp��eZdZdZiZejZ�fd�Ze	d���Z
e	dd���Zej
Z
�xZS)rz)Pickler subclass used by multiprocessing.cs���t��j|�|j���|_|j�|j��dS�N)Zsuper�__init__�_copyreg_dispatch_tableZcopy�dispatch_tableZupdate�_extra_reducers)�self�args�	__class__s  ��2/usr/lib64/python3.11/multiprocessing/reduction.pyr
zForkingPickler.__init__&sN��������$���"�:�?�?�A�A�����"�"�4�#7�8�8�8�8�8�cs�||j|<dS)z&Register a reduce function for a type.N)r)�cls�typeZreduce�   rrzForkingPickler.register+s��%+���D�!�!�!rNcs��tj��}|||���|��|���Sr)�ioZBytesIOrZ	getbuffer)r�obj�protocolZbuf�    r�dumpszForkingPickler.dumps0s;���j�l�l����C�������$�$�$��}�}���rr)�__name__�
__module__�__qualname__�__doc__r�copyregrrr
Zclassmethodrr�pickleZloadsZ
__classcell__)rs@rrr!s��������3�3��O�%�4��9�9�9�9�9�
�+�+��[�+������[��

�L�E�E�E�E�ErrcsL�t||���|��dS)z3Replacement for pickle.dump() using ForkingPickler.N)rr)rZfilerrrrr:s&���4��"�"�'�'��,�,�,�,�,r)�	DupHandle�	duplicate�steal_handleF)�source_processcs~�tj��}|�|}|�|}tj|||d|tj��S)z<Duplicate a handle.  (target_process is a handle not a pid!)Nr)�_winapi�GetCurrentProcess�DuplicateHandle�DUPLICATE_SAME_ACCESS)�handleZtarget_processZinheritabler'Zcurrent_process�     rr%r%GsR��"�3�5�5���	-�,�N��	-�,�N��&��F�N�
�{�G�9�;�;�	;rc	s �tjtjd|��}	tj||tj��ddtjtjz��tj|��S#tj|��wxYw)z5Steal a handle from process identified by source_pid.Fr)r(�OpenProcess�PROCESS_DUP_HANDLEr*r)r+�DUPLICATE_CLOSE_SOURCE�CloseHandle)Z
source_pidr,Zsource_process_handlerrr&r&Ss��� '� 3��&��z�!;�!;��	7��*�%�v��)�+�+�Q���-��0N�N�P�P�

�� 5�6�6�6�6��G�� 5�6�6�6�6���s�AA7�7B
csf�t|tj|��}|�|��dS�z&Send a handle over a local connection.N)r$r(r+�send)�connr,�destination_pidZdhrrrr_s)��
�v�w�<�o�
N�
N���	�	�"�
�
�
�
�
rcsN�|������S)�)Receive a handle over a local connection.)�recv�detach)r4� rrrds���y�y�{�{�!�!�#�#�#rcs �eZdZdZdd�Zd�ZdS)r$zPicklable wrapper for a handle.NcsH�|�tj��}tjtjd|��}	tjtj��|||dd��|_tj|��n#tj|��wxYw||_	||_
dS)NFr)�os�getpidr(r.r/r*r)�_handler1�_access�_pid)rr,ZaccessZpid�procr-rr
zDupHandle.__init__js����
"��i�k�k���&�w�'A�5�#�N�N�D�
*�&�6��-�/�/��D�&�%�� 4� 4����#�D�)�)�)�)���#�D�)�)�)�)����!�D�L��D�I�I�Is�/A;�;Bcsj�|jtj��kr|jSt	jtjd|j��}	t	j||jt	j��|j	dtj
��t	j|��S#t	j|��wxYw)z1Get the handle.  This should only be called once.F)r>r:r;r<r(r.r/r*r)r=r0r1)rr?�  rr8zDupHandle.detachys����y�B�I�K�K�'�
$��|�#��&�w�'A�5�'+�y�2�2�D�
*��.��$�,��(A�(C�(C��L�%��)G�I�I��#�D�)�)�)�)���#�D�)�)�)�)���s�
=B�B2r)rrr r!r
r8�rrr$r$hs=������-�-�
	�
	�
	�
	�	*�	*�	*�	*�	*rr$)�DupFd�sendfds�recvfdsZdarwincs0�tjd|��}tt|��dzg��}|�|gtjtj|fg��tr(|�d��dkrtd���dSdS)z,Send an array of fds over an AF_UNIX socket.�i�r�Az%did not receive acknowledgement of fdN)
�arrayZbytes�lenr�socket�
SOL_SOCKETr
�ACKNOWLEDGEr7�RuntimeError)�sockZfds�msgrrrCrC�s����k�#�s�#�#���S��X�X��^�$�%�%�����c�U�f�/��1B�C�H�I�J�J�J��	H�4�9�9�Q�<�<�4�/�	H��F�G�G�G�	H�	H�	H�	Hrcs"�tjd��}|j|z}|�dtj|����\}}}}|s	|st
�	tr|�d��t|��dkrtdt|��z���|d\}}	}
|tj
kr�|	tjkr�t|
��|jzdkrt�|�
|
��t|��dz|dkr6td�t|��|d�����t!|��Sn#tt"f$rYnwxYwtd���)	z/Receive an array of fds over an AF_UNIX socket.rErrGzreceived %d items of ancdatarrFz Len is {0:n} but msg[0] is {1!r}zInvalid data received)rHZitemsizeZrecvmsgrJZ
CMSG_SPACEZEOFErrorrLr3rIrMrKr
�
ValueErrorZ	frombytesZAssertionErrorZformat�listZ
IndexError)rNZsizeZaZ
bytes_sizerOZancdataZflagsZaddrZ
cmsg_levelZ	cmsg_typeZ	cmsg_datas           rrDrD�s����K������Z�$�&�
�$(�L�L��F�4E�j�4Q�4Q�$R�$R�!��W�e�T��	�7�	��N�	��
 ��	�	�$�����7�|�|�q� �
1�"�#A�#&�w�<�<�$0�1�1�1�/6�q�z�,�J�	�9��f�/�/�	
��V�.�.�	
��y�>�>�A�J�.�!�3�%�$�$����I�&�&�&��q�6�6�C�<�3�q�6�)�-�(�:�A�A���F�F�C��F�,�,�-�-�-��A�w�w�����J�'�	�	�	��D�	�����2�3�3�3s�DE+�+E?�>E?cs��tj|���tjtj��5}t||g��ddd��dS#1swxYwYdSr2)rJ�fromfd�fileno�AF_UNIX�SOCK_STREAMrC)r4r,r5�srrrr�s���
�]�4�;�;�=�=�&�.�&�:L�
M�
M�	!�QR��A��x� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	!�	!s�A�A �#A cs��tj|���tjtj��5}t|d��dcddd��S#1swxYwYdS)r6rrN)rJrRrSrTrUrD)r4rVr@rrr�s���
�]�4�;�;�=�=�&�.�&�:L�
M�
M�	$�QR��1�a�=�=��#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$s�A � A$�'A$cs��tj��}|�(|�|�|����Strddlm}|�|��Std���)zReturn a wrapper for an fd.Nr)�resource_sharerz&SCM_RIGHTS appears not to be available)rZget_spawning_popenrBZduplicate_for_child�HAVE_SEND_HANDLE�rWrP)�fdZ	popen_objrWrrrBrB�sw���.�0�0�	��	G��?�?�9�#@�#@��#D�#D�E�E�E�
�	G�)�)�)�)�)�)�"�(�(��,�,�,��E�F�F�Frcsx�|j�t|j|jjffSt|j|jjffSr)Z__self__�getattrrZ__func__r�Zmr9r�_reduce_methodr]�s:���z�:����a�j�&9�:�:�:����Q�Z�%8�9�9�9rcs�eZdZd�ZdS)�_Ccs�dSrrA)rr9r�fz_C.f�s���rN)rrr r_rArrr^r^�s#������
�
�
�
�
rr^cs,�t|j|jffSr)r[Z__objclass__rr\r9r�_reduce_method_descriptorr`�s���Q�^�Q�Z�0�0�0rcs<�t|j|j|jpiffSr)�_rebuild_partial�funcr�keywords)Zpr9r�_reduce_partialrd�s���a�f�a�f�a�j�.>�B�?�?�?rcs,�tj|g|�Ri|��Sr)�	functools�partial)rbrrcrrrara�s#����T�5�D�5�5�5�H�5�5�5rcs4�ddlm}t||��ffS)Nr)�	DupSocket)rWrg�_rebuild_socket)rVrgr@r�_reduce_socketri�s)��.�.�.�.�.�.����1����/�/rcs*�|���Sr)r8)Zdsr9rrhrh�s���y�y�{�{�rcs|�t|�����}t||j|j|jffSr)rBrSrh�familyr�proto)rV�dfr@rriri�s1��
�1�8�8�:�:�
�
����Q�X�q�v�q�w� ?�?�?rcsZ�|���}tj||||���S)N)rS)r8rJ)rlrjrrkrZr-rrhrh�s(��
�Y�Y�[�[���}�V�T�5��<�<�<�<rcsp�eZdZdZeZeZeZeZeZe	j
dkreZeZe
Z
neZeZeZeZeZeZeZeZd�ZdS)�AbstractReducerz�Abstract base class for use in implementing a Reduction class
    suitable for use in replacing the standard reduction mechanism
    used in multiprocessing.r	cs��ttt��j��t��ttt
j��t��tttj	��t��ttjt��ttj
t��dSr)rrr^r_r]rQ�appendr`�int�__add__rerfrdrJri)rrr@rr
zAbstractReducer.__init__s����b�d�d�f���~�.�.�.���d�k�"�"�$=�>�>�>���c�k�"�"�$=�>�>�>���"�O�4�4�4�����/�/�/�/�/rN)rrr r!rrrrr�sys�platformr&r%r$rCrDrBr]r`rarirhr
rArrrmrm�s������� � �$�N��H��D��K��K�
�|�w���#���	��	�	�������#�N� 9��'��#�N�%�O�0�0�0�0�0rrm)Z	metaclassr)NF).Zabcrr"rerr:r#rJrqrYrZ__all__rrZhasattrrXZPicklerrrrr(r%r&rrZobjectr$rHrLrCrDrBr]r^rr_r`rQrnrorprdrarfrirhrmrArr�<module>rss�����������������	�	�	�	�	�	�	�	�
�
�
�
�
�
�
�
�
�
�
�
�������
N�
N�
N���L�G�+�8��W�V�Z�0�0�7��W�V�\�2�2�7��W�V�]�I�6�6�������V�^����.�"��-�-�-�-��<�7��FG��9�9�9�9�G��N�N�N�
;�$(�
;�
;�
;�
;�
;�
7�
7�
7����
$�$�$�*�*�*�*�*�F�*�*�*�*�F�.�.�.�.�G��L�L�L��,�(�*�K�H�H�H�4�4�4�8!�!�!�
$�$�$�
	G�	G�	G�:�:�:�

�
�
�
�
�
�
�
�	����b�b�d�d�f���~�&�&�&�1�1�1�����d�k�	�	�5�6�6�6�����c�k�	�	�5�6�6�6�@�@�@�6�6�6����	�O�,�,�,��<�7��,�0�0�0�����H�V�]�N�+�+�+�+�@�@�@�=�=�=�
�H�V�]�N�+�+�+�0�0�0�0�0��0�0�0�0�0�0r