python (3.12.0)

(root)/
lib/
python3.12/
multiprocessing/
__pycache__/
reduction.cpython-312.opt-1.pyc

̑e(%fddlmZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
gdZejdk(xs)e
edxre
edxre
ejd	ZGd
dejZej"Zd)dZejdk(r'egd
z
ZddlZd*dddZdZdZdZGddeZn)egdz
ZddlZejdk(ZdZdZdZdZdZdZGddZ ee!e jDedZ#ee!e$jJe#ee!e&jNe#d Z(d!Z)eejTe(ejdk(rd"Z+d#Z,eeje+nd$Z+d%Z,eeje+Gd&d'e(Z-y)+)ABCMetaN)context)send_handlerecv_handleForkingPicklerregisterdumpwin32CMSG_LEN
SCM_RIGHTSsendmsgcxeZdZdZiZejZfdZe	dZ
e	ddZejZ
xZS)rz)Pickler subclass used by multiprocessing.ct|||jj|_|jj|jyN)super__init___copyreg_dispatch_tablecopydispatch_tableupdate_extra_reducers)selfargs	__class__s  M/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/multiprocessing/reduction.pyrzForkingPickler.__init__&sA
$"::??A""4#7#78c"||j|<y)z&Register a reduce function for a type.N)r)clstypereduces   rr	zForkingPickler.register+s%+D!rcztj}|||j||jSr)ioBytesIOr
	getbuffer)robjprotocolbufs    rdumpszForkingPickler.dumps0s.jjlC$}}rr)__name__
__module____qualname____doc__rcopyregrrrclassmethodr	r)pickleloads
__classcell__)rs@rrr!sO3O%449
++

LLErrc:t||j|y)z3Replacement for pickle.dump() using ForkingPickler.N)rr
)r&filer's   rr
r
:s4"'',r)	DupHandle	duplicatesteal_handle)source_processctj}||}||}tj|||d|tjS)z<Duplicate a handle.  (target_process is a handle not a pid!)r)_winapiGetCurrentProcessDuplicateHandleDUPLICATE_SAME_ACCESS)handletarget_processinheritabler8current_processs     rr6r6GsO"335!,N!,N&&FN
{G99;	;rc	Btjtjd|}	tj||tjddtj
tjztj|S#tj|wxYw)z5Steal a handle from process identified by source_pid.Fr)r:OpenProcessPROCESS_DUP_HANDLEr<r;r=DUPLICATE_CLOSE_SOURCECloseHandle)
source_pidr>source_process_handles   rr7r7Ss~ ' 3 3&&z!;	7**%v))+Q--0N0NNP

 56G 56sA
BBc\t|tj|}|j|yz&Send a handle over a local connection.N)r5r:r=send)connr>destination_piddhs    rrr_s!
vw<<o
N		"
rc>|jjS))Receive a handle over a local connection.)recvdetach)rLs rrrdsyy{!!##rceZdZdZddZdZy)r5zPicklable wrapper for a handle.NcX|tj}tjtjd|}	tj
tj|||dd|_tj|||_	||_
y#tj|wxYw)NFr)osgetpidr:rCrDr<r;_handlerF_access_pid)rr>accesspidprocs     rrzDupHandle.__init__js{iik&&w'A'A5#ND
*&66--/D&% 4##D)!DLDI##D)s1BB)c|jtjk(r|jSt	j
tjd|j}	t	j||jt	j|jdtjt	j|S#t	j|wxYw)z1Get the handle.  This should only be called once.F)rYrUrVrWr:rCrDr<r;rXrErF)rr\s  rrRzDupHandle.detachysyyBIIK'||#&&w'A'A5'+yy2D
*..$,,(A(A(CLL%)G)GI##D)##D)s
A
CCr)r*r+r,r-rrRrrr5r5hs-
		*rr5)DupFdsendfdsrecvfdsdarwinctjd|}tt|dzg}|j|gtj
tj|fgtr |jddk7rtdyy)z,Send an array of fds over an AF_UNIX socket.irAz%did not receive acknowledgement of fdN)
arraybyteslenrsocket
SOL_SOCKETr
ACKNOWLEDGErQRuntimeError)sockfdsmsgs   rr`r`srkk#s#SX^$%cUf//1B1BCHIJ499Q<4/FGG0;rctjd}|j|z}|jdtj|\}}}}|s|st
	tr|jdt|dk7rtdt|z|d\}}	}
|tjk(r|	tjk(rxt|
|jzdk7rt|j|
t|dz|dk7r'tdjt||dt!|Std#tt"f$r
YtdwxYw)	z/Receive an array of fds over an AF_UNIX socket.rdrrfzreceived %d items of ancdatarrez Len is {0:n} but msg[0] is {1!r}zInvalid data received)rgitemsizerecvmsgrj
CMSG_SPACEEOFErrorrlrKrirmrkr

ValueError	frombytesAssertionErrorformatlist
IndexError)rnsizea
bytes_sizerpancdataflagsaddr
cmsg_level	cmsg_type	cmsg_datas           rrarasTKKZZ$&
$(LLF4E4Ej4Q$R!WeT7N			$7|q "#A#&w<$011/6qz,J	9f///V...y>AJJ.!3$$I&q6C<3q6)(:AAFCF,--Aw233J'	233	sC"EE$#E$ctj|jtjtj5}t||gdddy#1swYyxYwrJ)rjfromfdfilenoAF_UNIXSOCK_STREAMr`)rLr>rMss    rrrsF
]]4;;=&..&:L:L
M	!QRAx 	!	!	!sAA"ctj|jtjtj5}t|ddcdddS#1swYyxYw)rPrrN)rjrrrrra)rLrs  rrrsH
]]4;;=&..&:L:L
M	$QR1a=#	$	$	$sAA$ctj}| |j|j|Strddlm}|j|Std)zReturn a wrapper for an fd.r)resource_sharerz&SCM_RIGHTS appears not to be available)rget_spawning_popenr_duplicate_for_childHAVE_SEND_HANDLErrv)fd	popen_objrs   rr_r_sS..0	 ??9#@#@#DEE
)"((,,EFFrc|j(t|j|jjffSt|j|jjffSr)__self__getattrr__func__r*ms r_reduce_methodrsHzzajj&9&9:::QZZ%8%8999rceZdZdZy)_Ccyrr^)rs rfz_C.fsrN)r*r+r,rr^rrrrs
rrc>t|j|jffSr)r__objclass__r*rs r_reduce_method_descriptorrsQ^^QZZ000rc\t|j|j|jxsiffSr)_rebuild_partialfuncrkeywords)ps r_reduce_partialrs%affaffajj.>B???rc4tj|g|i|Sr)	functoolspartial)rrrs   rrrsT5D5H55rc,ddlm}t||ffS)Nr)	DupSocket)rr_rebuild_socket)rrs  r_reduce_socketrs.1//rc"|jSr)rR)dss rrrsyy{rct|j}t||j|j|j
ffSr)r_rrfamilyr proto)rdfs  rrrs2
188:
QXXqvvqww ???rcT|j}tj||||S)N)r)rRrj)rrr rrs     rrrs"
YY[}}VT5<<rcveZdZdZeZeZeZeZeZe	jdk(reZeZe
Z
neZeZeZeZeZeZeZeZdZy)AbstractReducerzAbstract base class for use in implementing a Reduction class
    suitable for use in replacing the standard reduction mechanism
    used in multiprocessing.rcntttjtttt
jttttjtttjtttjtyr)r	r rrrrzappendrint__add__rrrrjr)rrs  rrzAbstractReducer.__init__s\bdff~.dkk"$=>ckk"$=>""O4/rN)r*r+r,r-rr	r
rrsysplatformr7r6r5r`rar_rrrrrrr^rrrrsl $NHDKK
||w#		#N 9'#N%O0rr)	metaclassr)NF).abcrr.rr#rUr0rjrrr__all__rhasattrrPicklerrr	r
r:r6r7rrobjectr5rgrlr`rar_rrr rrrzrrrrrrrrrr^rr<module>rs		



NLLG+8VZ07V\27V]]I6V^^.""-<<799G
;$(
;
7
$*F*F..G,,(*KH48!
$
	G:


	bdff~&1dkk	56ckk	56@6		O,<<70V]]N+@=
V]]N+00r