Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/multiprocessing/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/multiprocessing/__pycache__/connection.cpython-39.pyc

a

��g�{�@sgd�ZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddl
mZm
Z
ddlmZejZz$ddlZddlmZmZmZmZWn"ey�ejdkr��dZYn0d	Zd
Ze��ZdZdgZeed�r�dZedg7Zejdk�rd
Zed
g7Zefdd�Z dd�Z!dd�Z"dd�Z#dd�Z$Gdd�d�Z%e�rbGdd�de%�Z&Gdd�de%�Z'Gdd�de(�Z)dPd d!�Z*ejdk�r�dQd#d$�Z+n
dRd%d$�Z+Gd&d'�d'e(�Z,d(d)�Z-ejdk�r�Gd*d+�d+e(�Z.d,d-�Z/d.Z0d/Z1d0Z2d1Z3d2d3�Z4d4d5�Z5Gd6d7�d7e(�Z6d8d9�Z7d:d;�Z8Gd<d=�d=e)�Z9d>d?�Z:ejdk�rnd@dA�Z;ej<ej=hZ>dSdBdC�Z?n,ddl@Z@ee@dD��r�e@jAZBne@jCZBdTdEdC�Z?ejdk�r�dFdG�ZDdHdI�ZEe�Fe'eD�dJdK�ZGdLdM�ZHe�Fe&eG�ndNdG�ZDdOdI�ZEe�Fe'eD�dS)U)�Client�Listener�Pipe�wait�N�)�util)�AuthenticationError�BufferTooShort)�	reduction)�
WAIT_OBJECT_0�WAIT_ABANDONED_0�WAIT_TIMEOUT�INFINITE�win32i g4@�AF_INET�AF_UNIX�AF_PIPEcCst��|S�N��time�	monotonic)�timeout�r�6/usr/local/lib/python3.9/multiprocessing/connection.py�
_init_timeout;srcCst��|kSrr)�trrr�_check_timeout>srcCsX|dkrdS|dkr&tjdt��d�S|dkrLtjdt��tt�fdd�Std	��d
S)z?
    Return an arbitrary free address for the given family
    r)�	localhostrrz	listener-)�prefix�dirrz\\.\pipe\pyc-%d-%d-�zunrecognized familyN)	�tempfile�mktempr�get_temp_dir�os�getpid�next�
_mmap_counter�
ValueError��familyrrr�arbitrary_addressEs��r+cCsJtjdkr|dkrtd|��tjdkrF|dkrFtt|�sFtd|��dS)zD
    Checks if the family is valid for the current environment.
    rrzFamily %s is not recognized.rN)�sys�platformr(�hasattr�socketr)rrr�_validate_familySs

r0cCsTt|�tkrdSt|�tur*|�d�r*dSt|�tus@t�|�rDdStd|��dS)z]
    Return the types of the address

    This can be 'AF_INET', 'AF_UNIX', or 'AF_PIPE'
    rz\\rrzaddress type of %r unrecognizedN)�type�tuple�str�
startswithr�is_abstract_socket_namespacer()�addressrrr�address_type_sr7c@s�eZdZdZd+dd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	e
dd��Ze
dd��Ze
dd��Z
dd�Zdd�Zd,dd�Zdd�Zd-dd�Zd.d d!�Zd"d#�Zd/d%d&�Zd'd(�Zd)d*�ZdS)0�_ConnectionBaseNTcCs>|��}|dkrtd��|s(|s(td��||_||_||_dS)Nrzinvalid handlez6at least one of `readable` and `writable` must be True)�	__index__r(�_handle�	_readable�	_writable)�self�handle�readable�writablerrr�__init__us�z_ConnectionBase.__init__cCs|jdur|��dSr�r:�_close�r=rrr�__del__�s
z_ConnectionBase.__del__cCs|jdurtd��dS)Nzhandle is closed)r:�OSErrorrDrrr�
_check_closed�s
z_ConnectionBase._check_closedcCs|jstd��dS)Nzconnection is write-only)r;rFrDrrr�_check_readable�sz_ConnectionBase._check_readablecCs|jstd��dS)Nzconnection is read-only)r<rFrDrrr�_check_writable�sz_ConnectionBase._check_writablecCs"|jrd|_n|��td��dS)NFzbad message length)r<r;�closerFrDrrr�_bad_message_length�sz#_ConnectionBase._bad_message_lengthcCs
|jduS)z True if the connection is closedN�r:rDrrr�closed�sz_ConnectionBase.closedcCs|jS)z"True if the connection is readable)r;rDrrrr?�sz_ConnectionBase.readablecCs|jS)z"True if the connection is writable)r<rDrrrr@�sz_ConnectionBase.writablecCs|��|jS)z+File descriptor or handle of the connection)rGr:rDrrr�fileno�sz_ConnectionBase.filenocCs*|jdur&z|��Wd|_nd|_0dS)zClose the connectionNrBrDrrrrJ�s

z_ConnectionBase.closercCs�|��|��t|�}|jdkr.tt|��}t|�}|dkrFtd��||krVtd��|durh||}n&|dkrztd��n|||kr�td��|�||||��dS)z,Send the bytes data from a bytes-like objectrrzoffset is negativezbuffer length < offsetNzsize is negativezbuffer length < offset + size)rGrI�
memoryview�itemsize�bytes�lenr(�_send_bytes)r=�buf�offset�size�m�nrrr�
send_bytes�s"


z_ConnectionBase.send_bytescCs$|��|��|�t�|��dS)zSend a (picklable) objectN)rGrIrS�_ForkingPickler�dumps�r=�objrrr�send�sz_ConnectionBase.sendcCsJ|��|��|dur(|dkr(td��|�|�}|durB|��|��S)z7
        Receive bytes data as a bytes object.
        Nrznegative maxlength)rGrHr(�_recv_bytesrK�getvalue)r=�	maxlengthrTrrr�
recv_bytes�s
z_ConnectionBase.recv_bytescCs�|��|��t|���}|j}|t|�}|dkr>td��n||krNtd��|��}|��}|||krvt|�	���|�
d�|�||||||��|Wd�S1s�0YdS)zq
        Receive bytes data into a writeable bytes-like object.
        Return the number of bytes read.
        rznegative offsetzoffset too largeN)rGrHrOrPrRr(r_�tellr	r`�seek�readinto)r=rTrUrWrP�bytesize�resultrVrrr�recv_bytes_into�s$



�z_ConnectionBase.recv_bytes_intocCs&|��|��|��}t�|���S)zReceive a (picklable) object)rGrHr_rZ�loads�	getbuffer)r=rTrrr�recv�sz_ConnectionBase.recv�cCs|��|��|�|�S)z/Whether there is any input available to be read)rGrH�_poll�r=rrrr�poll�sz_ConnectionBase.pollcCs|SrrrDrrr�	__enter__sz_ConnectionBase.__enter__cCs|��dSr�rJ�r=�exc_type�	exc_value�exc_tbrrr�__exit__sz_ConnectionBase.__exit__)TT)rN)N)r)rl)�__name__�
__module__�__qualname__r:rArErGrHrIrK�propertyrMr?r@rNrJrYr^rbrhrkrorprvrrrrr8rs.








r8c@sDeZdZdZdZejfdd�Zdd�Zddd	�Z	d
d�Z
dd
�ZdS)�PipeConnectionz�
        Connection class based on a Windows named pipe.
        Overlapped I/O is used, so the handles must have been created
        with FILE_FLAG_OVERLAPPED.
        FcCs||j�dSrrL)r=Z_CloseHandlerrrrCszPipeConnection._closec	Cs�tj|j|dd�\}}zVz,|tjkrBt�|jgdt�}|tksBJ�Wn|���Yn0W|�	d�\}}n|�	d�\}}0|dks�J�|t
|�ks�J�dS)NT��
overlappedFr)�_winapiZ	WriteFiler:�ERROR_IO_PENDING�WaitForMultipleObjects�eventrr�cancel�GetOverlappedResultrR)r=rT�ov�err�waitresZnwrittenrrrrSs

�
 zPipeConnection._send_bytesNc	
Cs�|jrd|_t��S|dur dnt|d�}�ztj|j|dd�\}}z�z,|tjkrpt�|j	gdt
�}|tkspJ�Wn|���Yn0W|�
d�\}}|dkr�t��}|�|���|WS|tjkr�|�||�WSnh|�
d�\}}|dk�rt��}|�|���|YWS|tjk�r>|�||�YWS0Wn<t�y~}z"|jtjk�rht�n�WYd}~n
d}~00td��dS)NF�Tr|rz.shouldn't get here; expected KeyboardInterrupt)�_got_empty_message�io�BytesIO�minr~�ReadFiler:rr�r�rrr�r��writerjZERROR_MORE_DATA�_get_more_datarF�winerror�ERROR_BROKEN_PIPE�EOFError�RuntimeError)	r=�maxsizeZbsizer�r�r�Znread�f�errrr_&sH
�


�

�
 zPipeConnection._recv_bytescCs.|jst�|j�ddkrdStt|g|��S)NrT)r�r~�
PeekNamedPiper:�boolrrnrrrrmFs
�zPipeConnection._pollcCs�|��}t��}|�|�t�|j�d}|dks6J�|durVt|�||krV|��tj	|j|dd�\}}|�
d�\}}|dks�J�||ks�J�|�|���|S)NrrTr|)rjr�r�r�r~r�r:rRrKr�r�)r=r�r�rTr��leftr�Zrbytesrrrr�Ls
zPipeConnection._get_more_data)N)rwrxry�__doc__r�r~�CloseHandlerCrSr_rmr�rrrrr{s
 r{c@s|eZdZdZer,ejfdd�ZejZ	ej
Znej
fdd�ZejZ	ejZe	fdd�Zefdd�Zd	d
�Zddd
�Zdd�ZdS)�
Connectionzo
    Connection class based on an arbitrary file descriptor (Unix only), or
    a socket handle (Windows).
    cCs||j�dSrrL�r=rCrrrrCcszConnection._closecCs||j�dSrrLr�rrrrChscCs8t|�}||j|�}||8}|dkr&q4||d�}qdS�Nr)rRr:)r=rTr��	remainingrXrrr�_sendmszConnection._sendcCsbt��}|j}|}|dkr^|||�}t|�}|dkrJ||krBt�ntd��|�|�||8}q|S)Nrzgot end of file during message)r�r�r:rRr�rFr�)r=rV�readrTr>r��chunkrXrrr�_recvvs


zConnection._recvcCs�t|�}|dkrHt�dd�}t�d|�}|�|�|�|�|�|�n8t�d|�}|dkrr|�|�|�|�n|�||�dS)Ni����!i����!Qi@)rR�struct�packr�)r=rTrX�
pre_header�headerrrrrS�s


zConnection._send_bytesNcCs^|�d�}t�d|���\}|dkr@|�d�}t�d|���\}|durT||krTdS|�|�S)N�r�r��r�)r�r��unpackr`)r=r�rTrVrrrr_�s

zConnection._recv_bytescCst|g|�}t|�Sr)rr�)r=r�rrrrrm�szConnection._poll)N)rwrxryr�r~�_multiprocessingZclosesocketrCr^�_writerk�_readr$rJr�r�r�r�rSr_rmrrrrr�\s	

r�c@sReZdZdZddd�Zdd�Zdd	�Zed
d��Zedd
��Z	dd�Z
dd�ZdS)rz�
    Returns a listener object.

    This is a wrapper for a bound socket which is 'listening' for
    connections, or for a Windows named pipe.
    NrcCsp|p|rt|�pt}|pt|�}t|�|dkr>t||�|_nt|||�|_|durft|t�sft	d��||_
dS)Nr�authkey should be a byte string)r7�default_familyr+r0�PipeListener�	_listener�SocketListener�
isinstancerQ�	TypeError�_authkey)r=r6r*�backlog�authkeyrrrrA�s�zListener.__init__cCs>|jdurtd��|j��}|jr:t||j�t||j�|S)zz
        Accept a connection on the bound socket or named pipe of `self`.

        Returns a `Connection` object.
        Nzlistener is closed)r�rF�acceptr��deliver_challenge�answer_challenge)r=�crrrr��s

zListener.acceptcCs |j}|durd|_|��dS)zA
        Close the bound socket or named pipe of `self`.
        N)r�rJ)r=�listenerrrrrJ�szListener.closecCs|jjSr)r��_addressrDrrrr6�szListener.addresscCs|jjSr)r��_last_acceptedrDrrr�
last_accepted�szListener.last_acceptedcCs|SrrrDrrrrp�szListener.__enter__cCs|��dSrrqrrrrrrv�szListener.__exit__)NNrN)rwrxryr�rAr�rJrzr6r�rprvrrrrr�s
	

rcCsh|p
t|�}t|�|dkr&t|�}nt|�}|durHt|t�sHtd��|durdt||�t||�|S)z=
    Returns a connection to the address of a `Listener`
    rNr�)	r7r0�
PipeClient�SocketClientr�rQr�r�r�)r6r*r�r�rrrr�s


rTcCsj|r>t��\}}|�d�|�d�t|���}t|���}n$t��\}}t|dd�}t|dd�}||fS)�L
        Returns pair of connection objects at either end of a pipe
        TF�r@�r?)r/�
socketpair�setblockingr��detachr$�pipe)�duplex�s1�s2�c1�c2�fd1�fd2rrrrs

rc

Cs�td�}|r*tj}tjtjB}tt}}ntj}tj}dt}}t�||tjBtj	Btj
tjBtjBd||tj
tj�}t�||dtjtjtjtj�}t�|tjdd�tj|dd�}|�d�\}	}
|
dks�J�t||d�}t||d�}||fS)	r�rrrNTr|r�r�)r+r~�PIPE_ACCESS_DUPLEX�GENERIC_READ�
GENERIC_WRITE�BUFSIZEZPIPE_ACCESS_INBOUND�CreateNamedPipe�FILE_FLAG_OVERLAPPED�FILE_FLAG_FIRST_PIPE_INSTANCE�PIPE_TYPE_MESSAGE�PIPE_READMODE_MESSAGE�	PIPE_WAIT�NMPWAIT_WAIT_FOREVER�NULL�
CreateFile�
OPEN_EXISTING�SetNamedPipeHandleState�ConnectNamedPiper�r{)
r�r6Zopenmode�accessZobsizeZibsizeZh1Zh2r}�_r�r�r�rrrrs>

�
�
�	�
�c@s*eZdZdZd
dd�Zdd�Zdd�Zd	S)r�zO
    Representation of a socket which is bound to an address and listening
    rcCs�t�tt|��|_zRtjdkr2|j�tjtjd�|j�d�|j�	|�|j�
|�|j��|_Wnt
y�|j���Yn0||_d|_|dkr�t�|�s�tj|tj|fdd�|_nd|_dS)N�posixrTrr��args�exitpriority)r/�getattr�_socketr$�name�
setsockopt�
SOL_SOCKET�SO_REUSEADDRr��bind�listen�getsocknamer�rFrJ�_familyr�rr5�Finalize�unlink�_unlink)r=r6r*r�rrrrAGs(

�
�
zSocketListener.__init__cCs&|j��\}|_|�d�t|���S)NT)r�r�r�r�r�r��r=�srrrr�`s
zSocketListener.acceptcCsJz(|j��W|j}|durFd|_|�n|j}|durDd|_|�0dSr)r�rJr�)r=r�rrrrJes�zSocketListener.closeN)r)rwrxryr�rAr�rJrrrrr�Cs
r�cCs\t|�}t�tt|���0}|�d�|�|�t|���Wd�S1sN0YdS)zO
    Return a connection object connected to the socket given by `address`
    TN)r7r/r�r��connectr�r�)r6r*r�rrrr�os


r�c@s8eZdZdZddd�Zd
dd�Zdd	�Zed
d��ZdS)r�z0
        Representation of a named pipe
        NcCsL||_|jdd�g|_d|_t�d|j�tj|tj|j|jfdd�|_	dS)NT)�firstz listener created with address=%rrr�)
r��_new_handle�
_handle_queuer�r�	sub_debugr�r��_finalize_pipe_listenerrJ)r=r6r�rrrrA�s�zPipeListener.__init__Fc
CsHtjtjB}|r|tjO}t�|j|tjtjBtjBtj	t
t
tjtj�Sr)
r~r�r�r�r�r�r�r�r�ZPIPE_UNLIMITED_INSTANCESr�r�r�)r=r��flagsrrrr��s

��zPipeListener._new_handlec
Cs�|j�|���|j�d�}ztj|dd�}Wn2ty`}z|jtjkrL�WYd}~n~d}~00zVzt�	|j
gdt�}Wn |��t�
|��Yn0W|�d�\}}|dks�J�n|�d�\}}|dks�J�0t|�S)NrTr|F)r��appendr��popr~r�rFr�Z
ERROR_NO_DATAr�r�rr�r�r�r{)r=r>r�r��resr�r�rrrr��s(
�

�zPipeListener.acceptcCs$t�d|�|D]}t�|�qdS)Nz closing listener with address=%r)rr�r~r�)�queuer6r>rrrr��sz$PipeListener._finalize_pipe_listener)N)F)	rwrxryr�rAr�r��staticmethodr�rrrrr�s

r�c
Cs�t�}z6t�|d�t�|tjtjBdtjtjtjtj�}Wq�t	y|}z(|j
tjtjfvsft
|�rh�WYd}~qd}~00q�q�t�|tjdd�t|�S)zU
        Return a connection object connected to the pipe given by `address`
        ��rN)rr~Z
WaitNamedPiper�r�r�r�r�r�rFr�ZERROR_SEM_TIMEOUTZERROR_PIPE_BUSYrr�r�r{)r6r�hr�rrrr��s*
���
�r��s#CHALLENGE#s	#WELCOME#s	#FAILURE#cCs�ddl}t|t�s$td�t|����t�t�}|�	t
|�|�||d���}|�
d�}||krl|�	t�n|�	t�td��dS)Nr� Authkey must be bytes, not {0!s}�md5�zdigest received was wrong)�hmacr�rQr(�formatr1r$�urandom�MESSAGE_LENGTHrY�	CHALLENGE�new�digestrb�WELCOME�FAILUREr��
connectionr�r
�messager�responserrrr��s
�


r�cCs�ddl}t|t�s$td�t|����|�d�}|dtt��tksNJd|��|tt�d�}|�	||d��
�}|�|�|�d�}|tkr�t
d��dS)Nrrr	zmessage = %rrzdigest sent was rejected)r
r�rQr(rr1rbrRrrrrYrrrrrrr��s
�
 

r�c@s$eZdZdd�Zdd�Zdd�ZdS)�ConnectionWrappercCs6||_||_||_dD]}t||�}t|||�qdS)N)rNrJrorbrY)�_conn�_dumps�_loadsr��setattr)r=�connr[ri�attrr]rrrrA�s
zConnectionWrapper.__init__cCs|�|�}|j�|�dSr)rrrY)r=r]r�rrrr^s
zConnectionWrapper.sendcCs|j��}|�|�Sr)rrbrr�rrrrks
zConnectionWrapper.recvN)rwrxryrAr^rkrrrrr�srcCst�|fdddd��d�S)Nr�utf-8)�	xmlrpclibr[�encode)r]rrr�
_xml_dumpssr!cCst�|�d��\\}}|S)Nr)rri�decode)r�r]�methodrrr�
_xml_loadssr$c@seZdZdd�ZdS)�XmlListenercCs"ddlmat�|�}t|tt�Sr�)�
xmlrpc.client�clientrrr�rr!r$r\rrrr�s
zXmlListener.acceptN)rwrxryr�rrrrr%sr%cOs"ddlmatt|i|��tt�Sr�)r&r'rrrr!r$)r��kwdsrrr�	XmlClientsr)cCs�t|�}g}|r�t�|d|�}|tkr*q�n\t|krFtt|�krTnn
|t8}n2t|krptt|�kr~nn
|t8}ntd��|�||�||dd�}d}q|S)NFzShould not get hererr)	�listr~r�r
rrRrr�r�)Zhandlesr�L�readyrrrr�_exhaustive_wait%s 
 
r-c
s
|durt}n|dkrd}nt|dd�}t|�}i�g}t��t�}�z�|D�](}zt|d�}Wnty�|�|��<YqP0zt�|�dd�\}}Wn:t	y�}z"d|j
}}|tvr‚WYd}~n
d}~00|tjkr�|�
|�|�|j<qP|�rlt��dd�dk�rlz|�d	�\}	}Wn,t	�yR}z|j
}WYd}~n
d}~00|�slt|d
��rld|_��|�d}qPt���|�}W|D]}|���q�|D]�}z|�d�\}	}Wn8t	�y�}z|j
}|tv�rނWYd}~n
d}~00|tjk�r��|j}��|�|dk�r�t|d
��r�d|_�q�n�|D]}|���q:|D]�}z|�d�\}	}Wn8t	�y�}z|j
}|tv�r��WYd}~n
d}~00|tjk�rN�|j}��|�|dk�rNt|d
��rNd|_�qN0���fdd�|D���fd
d�|D�S)��
        Wait till an object in object_list is ready/readable.

        Returns list of those objects in object_list which are ready/readable.
        Nrrg�?rNT�)�r/Fr�c3s|]}�|VqdSrr)�.0r)�waithandle_to_objrr�	<genexpr>��zwait.<locals>.<genexpr>csg|]}|�vr|�qSrr)r1�o)�
ready_objectsrr�
<listcomp>�r4�wait.<locals>.<listcomp>)r�intr*�setr��AttributeErrorr9r~r�rFr��
_ready_errorsrr�r�r,�getwindowsversionr�r.r��addr-�keysr�ZERROR_OPERATION_ABORTED�update)
�object_listrZov_listZ
ready_handlesr5rNr�r�r�r�r)r6r2rr;s�







�



r�PollSelectorcCs�t���}|D]}|�|tj�q|dur4t��|}|�|�}|r^dd�|D�Wd�S|dur4|t��}|dkr4|Wd�Sq4Wd�n1s�0YdS)r.NcSsg|]\}}|j�qSr)�fileobj)r1�key�eventsrrrr7�r4r8r)�
_WaitSelector�register�	selectors�
EVENT_READrr�select)rAr�selectorr]�deadliner,rrrr�s
cCsf|��}t�|tjtj��8}ddlm}|�|�}t||j	|j
ffWd�S1sX0YdS)Nr)�resource_sharer)rNr/�fromfdr�SOCK_STREAMr rMZ	DupSocket�rebuild_connectionr?r@)rr>r�rM�dsrrr�reduce_connection�s

rRcCs|��}t|��||�Sr�r�r�)rQr?r@�sockrrrrP�srPcCsB|jrtjnd|jrtjndB}t�|��|�}t||j|jffSr�)	r?r~ZFILE_GENERIC_READr@ZFILE_GENERIC_WRITEr
Z	DupHandlerN�rebuild_pipe_connection)rr��dhrrr�reduce_pipe_connection�s
�rWcCs|��}t|||�Sr)r�r{)rVr?r@r>rrrrU�srUcCs t�|���}t||j|jffSr)r
�DupFdrNrPr?r@)r�dfrrrrR�scCs|��}t|||�SrrS)rYr?r@�fdrrrrP�s)NN)T)T)N)N)I�__all__r�r$r,r/r�rr!�	itertoolsr�r rrr	�contextr
�ForkingPicklerrZr~rrr
r�ImportErrorr-r��CONNECTION_TIMEOUT�countr'r��familiesr.rrr+r0r7r8r{r��objectrrrr�r�r�r�r
rrrr�r�rr!r$r%r)r-r�ZERROR_NETNAME_DELETEDr<rrHrBrF�SelectSelectorrRrPrGrWrUrrrr�<module>
s�




PT=

,,8	P


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists