add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

�Wc�cs*�dZddlZejdkr	ed��ddlZddlZddlZddlZddlZddl	Z	ddl
Z
dZdZejZ
ejZej�Zdded	�d
�ZGd�d�ZGd
�dej&�ZdS)z)Various Windows specific bits and pieces.�NZwin32z
win32 only)�pipe�Popen�PIPE�
PipeHandlei F)TT)�duplex�
overlapped�bufsizec
s��tjdjtj�tt����}|r9tj}tjtjz}||}}n&tj}tj}d|}}|tjz}|dr|tjz}|drtj}nd}dx}	}
	tj||tjd||tj tj"�}	tj$||dtj"tj&|tj"�}
tj(|	d��}|j+d�|	|
fS#|	�tj,|	�|
�tj,|
��xYw)zELike os.pipe() but with overlapped support and using handles not fds.z\\.\pipe\python-pipe-{:d}-{:d}-)ZprefixriNT�r)�tempfileZmktempZformat�osZgetpidZnext�
_mmap_counter�_winapiZPIPE_ACCESS_DUPLEXZGENERIC_READZ
GENERIC_WRITEZPIPE_ACCESS_INBOUNDZFILE_FLAG_FIRST_PIPE_INSTANCEZFILE_FLAG_OVERLAPPEDZCreateNamedPipeZ	PIPE_WAITZNMPWAIT_WAIT_FOREVERZNULLZ
CreateFileZ
OPEN_EXISTINGZConnectNamedPipeZGetOverlappedResult�CloseHandle)rrrZaddressZopenmodeZaccessZobsizeZibsizeZflags_and_attribsZh1Zh2Zovs            �./usr/lib64/python3.12/asyncio/windows_utils.pyrr s����o�o�1�8�8��I�I�K��m�,�.�/�/�G��v��-�-���%�%��(=�(=�=�� �'�����.�.���&�&���G�����5�5�5�H��!�}�}��G�0�0�0���!�}�}�#�8�8������N�B���
�
$�
$��X�w�0�0�
�v�v�w�;�;�W�\�\�K���
�
��V�Q����g�.C�.C��w�|�|�-���
%�
%�b�T�
:�
:��
���t�$�$��2�v�
���
�>�����#�#�
�>�����#�#�
���s
�CG�5G9cs��eZdZdZd�Zd�Zed��Zd�Ze	jd�d�Zejfd�Zd	�Zd
�ZdS)rz�Wrapper for an overlapped pipe handle which is vaguely file-object like.

    The IOCP event loop can use these instead of socket objects.
    cs�||_dS�N��_handle��self�handle�  r�__init__zPipeHandle.__init__Vs
�������csx�|j�d|j��}nd}d|jj�d|�d�S)Nzhandle=Zclosedz<z z>)r�	__class__�__name__rrr�__repr__zPipeHandle.__repr__YsG���<�<�#�/�t�|�|�/�/�F�F��F�6�4�>�>�*�*�6�6�V�6�6�6�6rcs�|jSrr�r� rrzPipeHandle.handle`s���|�|�rcsL�|j�
td��|jS)NzI/O operation on closed pipe)rZ
ValueErrorrrr�filenozPipeHandle.filenods"���<�<���;�<�<��|�|�r)r
csV�|j�||j�d|_dSdSrr)rr
rr�closezPipeHandle.closeis0���<�<�#��K����%�%��D�L�L�L�$�#rcsl�|j�'|d|��t|��|j�dSdS)Nz	unclosed )Zsource)rZResourceWarningr)rZ_warnrr�__del__zPipeHandle.__del__ns@���<�<�#��E�&�d�&�&���E�E�E��J�J�L�L�L�L�$�#rcs�|Sr�rrr�	__enter__zPipeHandle.__enter__ss���rcs(�|j�dSr)r)rZtZvZtbs    r�__exit__zPipeHandle.__exit__vs���
�
����rN)r�
__module__�__qualname__�__doc__rrZpropertyrrrr
r�warningsZwarnrr!r"r rrrrQs������������7�7�7���������
$+�#6�#6� � � � � �
%�M�M�����
�������rrcs$��eZdZdZd�fd�	Z�xZS)rz�Replacement for subprocess.Popen using overlapped pipe handles.

    The stdin, stdout, stderr are None or instances of PipeHandle.
    Ncs\��dx}x}}dx}	x}
}|tkr:tdd��\}}	tj|tj
�}n|}|tkr*td��\}
}
tj|
d�}n|}|tkr*td��\}}tj|d�}n|tkr|}n|}	t�j|f|||d�|��|	�t|	�|_
|
�t|
�|_|�t|�|_	|tkrt	j|�|tkrt	j|�|tkrt	j|�dSdS#|	|
|fD]}|��tj|���xYw#|tkrt	j|�|tkrt	j|�|tkrt	j|�wxYw)N)FTT)rr)TFrr)�stdin�stdout�stderr)rr�msvcrtZopen_osfhandler
ZO_RDONLY�STDOUTZsuperrrr'r(r)rr
r)rZargsr'r(r)ZkwdsZ	stdin_rfdZ
stdout_wfdZ
stderr_wfdZstdin_whZ	stdout_rhZ	stderr_rhZstdin_rhZ	stdout_whZ	stderr_whZhrs                �rrzPopen.__init__�s=���/3�2�	�2�J��+/�/��/�9�y��D�=�=�!%��t�!L�!L��H�h��-�-�h����D�I�I��I��T�>�>�#'�=�#A�#A� �I�y��.�.�y�!�<�J�J��J��T�>�>�#'�=�#A�#A� �I�y��.�.�y�!�<�J�J�
�v�
�
�#�J�J��J�	%��E�G���T�
8��:�$.�
8�
8�26�
8�
8�
8��#�'��1��
��$�(��3����$�(��3������}�}�����#�#���~�~�����$�$���~�~�����$�$�$�$��~��#	��	�9�5�
+�
+���=���'�'��*�*�*��������}�}�����#�#���~�~�����$�$���~�~�����$�$�
%�
%�
%�
%s%�!F�3=G�G�'G�G�A(H+)NNN)rr#r$r%rZ
__classcell__)rs@rrr}sG���������+%�+%�+%�+%�+%�+%�+%�+%�+%�+%rr)r%ZsysZplatformZImportErrorrZ	itertoolsr*r
Z
subprocessr	r&Z__all__ZBUFSIZErr+Zcountrrrrr rr�<module>r,s!��/�/�
�
�
�
��<�<�7���
�+�l�
#�#���������
�
�
�
�	�	�	�	�������������0��������	�	�	���	���!�
��\�7�+�+�+�+�+�b&�&�&�&�&�&�&�X0%�0%�0%�0%�0%�J���0%�0%�0%�0%r