g(%fddlmZddlZddlZddlZddlZddlZddlZddlZddl m Z gdZ ejdk(xs)e edxre edxre ejd ZGd d ejZej"Zd)d Zejdk(r'e gd z Z ddlZd*dddZdZdZdZGddeZn)e gdz Z ddlZejdk(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_handle recv_handleForkingPicklerregisterdumpwin32CMSG_LEN SCM_RIGHTSsendmsgcxeZdZdZiZej ZfdZe dZ e ddZ e jZ xZS)rz)Pickler subclass used by multiprocessing.ct|||jj|_|jj |j yN)super__init___copyreg_dispatch_tablecopydispatch_tableupdate_extra_reducers)selfargs __class__s @/opt/alt/python312/lib64/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.jjl C$}}rr)__name__ __module__ __qualname____doc__rcopyregrrr classmethodr 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)zsource_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<|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)s 1BB)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 |jddk7r tdyy)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//1B1BCHIJ 499Q<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_UNIX SOCK_STREAMr`)rLr>rMss rrrs> ]]4;;=&..&:L:L MQR Ax N M Ms AA"ctj|jtjtj5}t |ddcdddS#1swYyxYw)rPrrN)rjrrrrra)rLrs rrrs@ ]]4;;=&..&:L:L MQR1a=#N M Ms 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_descriptorrs Q^^QZZ0 00rc\t|j|j|jxsiffSr)_rebuild_partialfuncrkeywords)ps r_reduce_partialrs% affaffajj.>B? ??rc4tj|g|i|Sr) functoolspartial)rrrs rrrs   T 5D 5H 55rc,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<ckk"$=>""O4/rN)r*r+r,r-rr r rrsysplatformr7r6r5r`rar_rrrrrrr^rrrrsl $NH DKK ||w#   #N 9'#N%O0rr) metaclassr)NF).abcrr.rr#rUr0rjrrr__all__rhasattrrPicklerrr r r:r6r7rrobjectr5rgrlr`rar_rrr rrrzrrrrrrrrrr^rrrs  NLLG+8VZ07V\27V]]I6V^^.  " "-<<7 99G ;$( ; 7 $*F*F ..G,,(*KH48! $ G:    bdff~&1dkk 56ckk 56@6  O, <<70 V]]N+@= V]]N+00r