eSS/rSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK r SSK J r SSK J r J r SSKJr SrS rS rS r\R("5rS rS r"SS\5r"SS5rSr"SS\5rS#SjrSr"SS\5r "SS\!5r""SS\!5r#\#r$"SS\#5r%"SS\!5r&"S S!\&5r'"S"S\"5r(g)$Pool ThreadPoolN)util) get_context TimeoutError)waitINITRUNCLOSE TERMINATEc$[[U65$N)listmapargss :/opt/imh/python3.13/lib/python3.13/multiprocessing/pool.pymapstarr/s T cN[[R"USUS55$)Nrr)r itertoolsstarmaprs r starmapstarr2s"  !!$q'473 44rc \rSrSrSrSrSrg)RemoteTraceback9cXlgrtb)selfr s r__init__RemoteTraceback.__init__:srcUR$rrr!s r__str__RemoteTraceback.__str__<s wwrrN)__name__ __module__ __qualname____firstlineno__r"r&__static_attributes__rrrr9s rrc \rSrSrSrSrSrg)ExceptionWithTraceback?c[R"[U5X5nSRU5nXlSU-Ulg)Nz """ %s""") tracebackformat_exceptiontypejoinexcr )r!r7r s rr"ExceptionWithTraceback.__init__@s6  ' 'S 3 ; WWR[ 2%rc>[URUR44$r) rebuild_excr7r r%s r __reduce__!ExceptionWithTraceback.__reduce__EsTXXtww///rr7r N)r(r)r*r+r"r;r,r-rrr/r/?s & 0rr/c&[U5UlU$r)r __cause__r=s rr:r:Hs#B'CM Jrc8^\rSrSrSrU4SjrSrSrSrU=r $)MaybeEncodingErrorPzRWraps possible unpickleable errors, so they can be safely sent through the socket.c>[U5Ul[U5Ul[[U]URUR5 gr)reprr7valuesuperrAr")r!r7rE __class__s rr"MaybeEncodingError.__init__Ts39%[   $04::Frc@SUR<SUR<S3$)NzError sending result: 'z '. Reason: '')rEr7r%s rr&MaybeEncodingError.__str__Ys=AZZ=AXXG Grc@SURR<SU<S3$)N)rGr(r%s r__repr__MaybeEncodingError.__repr__]s!^^44d;;r)r7rE) r(r)r*r+__doc__r"r&rOr, __classcell__rGs@rrArAPs'G G<n[%UUS5n[R"S U-5 U"XSU445 SnANSnAff=f) NrzMaxtasks {!r} is not valid_writerrz)worker got EOFError or OSError -- exitingzworker got sentinel -- exitingTFz0Possible encoding error while sending result: %szworker exiting after %d tasks) isinstanceintAssertionErrorformatputgethasattrrUclose_readerEOFErrorOSErrorrdebug Exception_helper_reraises_exceptionr/ __traceback__rA)inqueueoutqueue initializerinitargsmaxtaskswrap_exceptionrZr[ completedtaskjobifuncrkwdsresultewrappeds rworkerrtasz(C'@'@+3q=9@@JKK ,,C ++Cw "" XI  xI,@ 5D < JJ7 8 #' D D$/$/0F  ,  !4877s7V7d7TQ 7  xI,@8 JJ.:;3'"  JJB C   $.H"H*1aoo>QZF  ,(F1I6G JJI  %)* + +  ,sB0D* E# F*&EE F!*FF G "4GG cUe)z@Pickle-able helper function for use by _guarded_task_generation.r-)exs rrcrcs Hrc@^\rSrSrSrSS.U4SjjrU4SjrSrU=r$) _PoolCachez Class that implements a cache for the Pool class that will notify the pool management threads every time the cache is emptied. The notification is done by the use of a queue that is provided when instantiating the cache. Nnotifierc2>Xl[TU]"U0UD6 gr)r{rFr")r!r{rrprGs rr"_PoolCache.__init__s  $'$'rcj>[TU]U5 U(dURRS5 ggr)rF __delitem__r{rZ)r!itemrGs rr_PoolCache.__delitem__s, D! MM  d #r) r(r)r*r+rQr"rr,rRrSs@rrxrxs! +/(( $ $rrxc\rSrSrSrSr\S5rS*Sjr\ R\ 4Sjr S r S r\S 5r\S 5rS r\S5r\S5rSrSrS04SjrS+SjrS+SjrS,SjrSrS-SjrS-SjrS0SS4SjrS,SjrS,Sjr\S+Sj5r \!S5r"\S5r#\S5r$\S 5r%S!r&S"r'S#r(S$r)\S%5r*\!S&5r+S'r,S(r-S)r.g).rzK Class which supports an async version of applying functions to arguments. Tc&UR"U0UD6$rProcess)ctxrrps rr Pool.Processs{{D)D))rNr-c/Ul[UlU=(d [5UlUR 5 [ R"5UlURR5Ul [URS9Ul X@l X l X0lUc[R "5=(d SnUS:a [#S5eUb&[%U[&5(aUS::a [#S5eUb[)U5(d [+S5eXlUR/5 UR95n[:R<"[>R@URURURURBUR,URURDURFURURURURHXpR4S9Ul%SURJl&[NURJlURJRQ5 [:R<"[>RRURURTURFURUR4S9Ul+SURVl&[NURVlURVRQ5 [:R<"[>RXURFURZUR4S9Ul.SUR\l&[NUR\lUR\RQ5 [^R`"XRbURURDURFURURURJURVUR\UR4 S S 9Ul2[NUlg![0aW URH"nUR2bMUR55 M$ URHnUR75 M ef=f) Nrzrz&Number of processes must be at least 1rz/maxtasksperchild must be a positive int or Nonezinitializer must be a callabletargetrT)r exitpriority)3_poolr _stater_ctx _setup_queuesqueue SimpleQueue _taskqueue_change_notifierrx_cache_maxtasksperchild _initializer _initargsosprocess_cpu_count ValueErrorrVrWcallable TypeError _processes_repopulate_poolrbexitcode terminater6_get_sentinels threadingThreadr_handle_workersr_inqueue _outqueue_wrap_exception_worker_handlerdaemonr start _handle_tasks _quick_put _task_handler_handle_results _quick_get_result_handlerrFinalize_terminate_pool _terminate)r! processesrgrhmaxtasksperchildcontextp sentinelss rr" Pool.__init__sI  ,{}  ++-!% 5 5 7 $*?*?@ !1'!  ,,.3!I q=EF F  '.448HA8M !RSS  "8K+@+@<= =#   ! ! #'') (//''++t 4<<//4::t}}dnn##T^^T5K5K&& 3H3HJ '+#&)# ""$'--%%//4??DNN**dkk+ %)!$'!   "(//''..$//4;;? '+#&)# ""$-- &&//4==$..$**'')=)=t?Q?Q&& 5  ] ZZ::%KKM ZZ   sO11$Q9QcURU:Xa;U"SU<3[US9 [USS5bURR S5 ggg)Nz&unclosed running multiprocessing pool )sourcer)rResourceWarninggetattrrrZ)r!_warnr s r__del__ Pool.__del__ sT ;;#  :4(C!$ 0t/6B%%))$/C rc URnSURSURSURS[ UR 5S3 $)NrM.z state=z pool_size=rN)rGr)r*rlenr)r!clss rrO Pool.__repr__sQnnCNN#1S%5%5$67 & _-Q0 1rcjURR/nURR/n/UQUQ$r)rr^r)r!task_queue_sentinelsself_notifier_sentinelss rrPool._get_sentinelss< $ 6 67#'#8#8#@#@"A@%@(?@@rclUVs/sH"n[US5(dMURPM$ sn$s snf)Nsentinel)r\r)workersrts r_get_worker_sentinelsPool._get_worker_sentinelss<8%+"6:6 8 88s11cSn[[[U555HCnXnURcM[R "SU-5 UR 5 SnX ME U$)zCleanup after any worker processes which have exited due to reaching their specified lifetime. Returns True if any workers were cleaned up. Fcleaning up worker %dT)reversedrangerrrrar6)poolcleanedrnrts r_join_exited_workersPool._join_exited_workers!s^ %D *+AWF* 2Q67 G,rc URURURURURUR UR URURURUR5 $r) _repopulate_pool_staticrrrrrrrrrrr%s rrPool._repopulate_pool1s_++DIIt||,0OO,0JJ ,0NNDbI I Js)A #A  AAA AA cUR5 US:XaN[U5nURRUR UR X5UR 45 U$US:a[SRU55e[RXU5n[U5nURRUR UR [U5UR 45 SU5$)z@ Equivalent of `map()` -- can be MUCH slower than `Pool.map()`. rzChunksize must be 1+, not {0:n}c36# UHoHo"v M M g7frr-.0chunkrs r Pool.imap..?fUDDf) r IMapIteratorrrZr_job _set_lengthrrYr _get_tasksrr!rorrrq task_batchess rimap Pool.imaps  >!$'F OO  11&++tN&&  M1} 5<<!#$$ ??49EL!$'F OO  11&++292>@&&  @f? ?rcUR5 US:XaN[U5nURRUR UR X5UR 45 U$US:a[SRU55e[RXU5n[U5nURRUR UR [U5UR 45 SU5$)z< Like `imap()` method but ordering of results is arbitrary. rzChunksize must be 1+, not {0!r}c36# UHoHo"v M M g7frr-rs rr &Pool.imap_unordered..r r) rIMapUnorderedIteratorrrZrrrrrYrrrrs rimap_unorderedPool.imap_unordereds  >*40F OO  11&++tN&&  M1} 5<@&&  @f? ?rcUR5 [XU5nURRURSXU4/S45 U$)z+ Asynchronous version of `apply()` method. rN)r ApplyResultrrZr)r!rorrprrrqs rrPool.apply_asyncsH T^< v{{At4@A4HI rc2URX[X4U5$)z) Asynchronous version of `map()` method. )rrrs r map_asyncPool.map_asyncs tw  rcUR5 [US5(d [U5nUc9[[ U5[ UR 5S-5upGU(aUS- n[ U5S:XaSn[ RXU5n[X[ U5UUS9n URRURU RUU5S45 U $)zI Helper function to implement map, starmap and their async counterparts. __len__Nrrr) rr\rdivmodrrrr MapResultrrZrr) r!rormapperrrrextrarrqs rrPool._map_asyncs x++H~H  %c(mS_q5HI IQ x=A ItyA 4CM8*8: --fkk.4.:<    rc[XS9 UR5(d(UR5 UR5(dM'gg)N)timeout)r emptyr[)rchange_notifierr-s r_wait_for_updatesPool._wait_for_updatess6 Y(!''))    !"''))rc [R"5nUR[:XdU(aUR[:wapUR X4XVUXU X5 /UR U5QU QnURUU5 UR[:XaMSU(aUR[:waMpURS5 [R"S5 g)Nzworker handler exiting) rcurrent_threadrr r rrr0rZrra)rcache taskqueuerrrrrerfrgrhrrjrr/threadcurrent_sentinelss rrPool._handle_workerss ))+mms"u)1K   sYg'h/ A!O#";";D"A NI N   ! !"3_ Emms"u)1K  d +,rcf[R"5n[URS5HupgSnUH8nUR[ :wa[ R"S5 OKU"U5 M: U(a/[ R"S5 U(aUSOSn U"U S-5 S=n=pjMS=n=pj O [ R"S5 [ R"S5 URS5 [ R"S 5 UH n U"S5 M [ R"S 5 g![a@n USSupXJRU SU 45 Sn A GM/![a Sn A GMAf=fSn A ff=f!S=n=pjf=f![a [ R"S 5 Nf=f) Nz'task handler found thread._state != RUNFzdoing set_length()rrztask handler got sentinelz/task handler sending sentinel to result handlerz(task handler sending sentinel to workersz/task handler got OSError when sending sentinelsztask handler exiting) rr3iterr[rr rrarb_setKeyErrorrZr`) r5rZrfrr4r6taskseq set_lengthrlrrrmidxrs rrPool._handle_taskss))+#' t#< GD ,#D}}+ #LM!D $" #78)-d1g2"37+(,++w'+++w1$=4 JJ2 3 J JJH I LL  JJA BD  )*=%!#'8!!JOOC%<<'! ! !(,++w J JJH I Jsl1F&D6.:FAF 6 FE;E%F% E8 /E;0F7E8 8E;;FFF  F0/F0cn[R"5nU"5nUR [:wa2UR [:XdS5e[R "S5 O:Uc[R "S5 O UupVnX%RXg5 S=n=pWMU(arUR [:wa^U"5nUc[R "S5 M>UupVnX%RXg5 S=n=pWU(aUR [:waM^[US5(aR[R "S5 [S5H+nURR5(d O U"5 M- [R "S [U5UR 5 g![[4a [R "S5 gf=f![a GNHf=f![[4a [R "S5 gf=f![a GN'f=f![[4a Nf=f) Nz.result handler got EOFError/OSError -- exitingzThread not in TERMINATEz,result handler found thread._state=TERMINATEzresult handler got sentinelz&result handler ignoring extra sentinelr^z"ensuring that outqueue is not full z7result handler exiting: len(cache)=%s, thread._state=%s)rr3r`r_rrarr r r<r=r\rr^pollr)rfr[r4r6rlrmrnobjs rrPool._handle_results=s))+ u }}#}} 1L3LL1 IJ| 89KCC  ' $ #D #3+. 2 u | CDKCC  ' $ #D #3 2" 8Y ' ' JJ; < rA#++0022E# L%j&-- )eX&  KL    X&  KL   X&  s_F'G;G$#H.H!/ H!'&GG G! G!$&H  H  HH!H43H4c#~# [U5n[[R"X55nU(dgX4v M.7fr)r;tuplerislice)roitsizers rrPool._get_tasksys8 "Xi&&r01A)O s;=c[S5e)Nz:pool objects cannot be passed between processes or pickled)NotImplementedErrorr%s rr;Pool.__reduce__s!J rc[R"S5 UR[:Xa<[Ul[UR lUR RS5 gg)Nz closing pool)rrarr r rrrZr%s rr] Pool.closesH >" ;;# DK*/D '  ! ! % %d + rcf[R"S5 [UlUR 5 g)Nzterminating pool)rrar rrr%s rrPool.terminates  %&  rc[R"S5 UR[:Xa [ S5eUR[ [ 4;a [ S5eURR5 URR5 URR5 URHnUR5 M g)Nz joining poolzPool is still runningzIn unknown state) rrarr rr r rr6rrr)r!rs rr6 Pool.joins >" ;;# 45 5 [[ 2 2/0 0 !!# ! !!#A FFHrc[R"S5 URR5 UR 5(aUR R 5(ahUR R5 [R"S5 UR 5(a"UR R 5(aMfgggg)Nz7removing tasks from inqueue until task handler finishedr) rra_rlockacquireis_aliver^rDrtimesleep)re task_handlerrKs r_help_stuff_finishPool._help_stuff_finishs LM ##%%'//*>*>*@*@ OO " JJqM##%%'//*>*>*@*@%*@%rc [R"S5 [UlUR S5 [Ul[R"S5 UR X'[ U55 UR5(d[ U 5S:wa [S5e[UlUR S5 UR S5 [R"S5 [R"5ULaUR5 U(aR[USS5(a>[R"S5 UH"n U RbMU R5 M$ [R"S5 [R"5ULaUR5 [R"S 5 [R"5ULaUR5 U(a[USS5(aj[R"S 5 UHMn U R5(dM[R"S U R-5 U R5 MO ggg) Nzfinalizing poolz&helping task handler/workers to finishrz/Cannot have cache with result_handler not alivezjoining worker handlerrzterminating workerszjoining task handlerzjoining result handlerzjoining pool workersr)rrar rrZr]rrYrXrr3r6r\rrpid) rr5rerfrr/worker_handlerr\result_handlerr4rs rrPool._terminate_pools $% !*D!'  ;< wc$i@''))E a AC C!*D! T +,  # # %^ ;    ! GDG[11 JJ, -::%KKM )*  # # %\ 9     +,  # # %^ ;    ! GDG[11 JJ- .::<<JJ6>?FFH 24rc&UR5 U$r)rr%s r __enter__Pool.__enter__s  rc$UR5 gr)r)r!exc_typeexc_valexc_tbs r__exit__ Pool.__exit__s  r)rrrrrrrrrrrrrrrrrr)NNr-NNr)NNN)r)/r(r)r*r+rQr staticmethodrr"warningswarnr rrOrrrrrrrrrrrrrrrrr!rr0 classmethodrrrrr;r]rr6r]rrerkr,r-rrrrsO**CE04Of%MMs01 A 88  B''$ 9 96 1 "8IMFJ9 J@:@8&(b4BFKO:"" --(++++Z9)9)v , 33jrcd\rSrSrSrSrSrS SjrS SjrSr \ "\ R5r S rg) ricXl[R"5Ul[ [ 5UlURUlX lX0l XRUR 'gr) rrEvent_eventnext job_counterrr _callback_error_callback)r!rrrs rr"ApplyResult.__init__sG oo' % kk !-!% DIIrc6URR5$r)rtis_setr%s rreadyApplyResult.readys{{!!##rcxUR5(d[SRU55eUR$)Nz{0!r} not ready)r|rrY_successr%s r successfulApplyResult.successfuls.zz||.55d;< <}}rNc:URRU5 gr)rtr r!r-s rr ApplyResult.waits !rcURU5 UR5(d[eUR(a UR$URer)r r|rr_valuers rr[ApplyResult.gets: 'zz||  ==;; ++ rcUuUlUlUR(a,UR(aURUR5 UR(a,UR(dURUR5 URR 5 UR UR SUlgr) rrrwrxrtsetrrrr!rnrEs rr<ApplyResult._setss%(" t{ >>dmm NN4;; '      -  KK " r)rrwrxrtrrrrr)r(r)r*r+r"r|rr r[r<rptypes GenericAlias__class_getitem__r,r-rrrrs3&$ "$E$6$67rrc \rSrSrSrSrSrg)r(ic [RXUUS9 SUlS/U-UlX lUS::a9SUlUR R5 URUR gX2-[X2-5-Ulg)Nr&Tr) rr"rr _chunksize _number_leftrtrrrbool)r!rrlengthrrs rr"MapResult.__init__szT,:  < fvo # > !D  KKOO  DII& & 1D9K4L LD rcU=RS-slUup4U(aUR(aX@RXR-US-UR-&URS:XaeUR(aUR UR5 UR UR URR5 SUl ggU(dUR(a SUlX@lURS:XaeUR(aURUR5 UR UR URR5 SUl gg)NrrF) rrrrrwrrrtrrrx)r!rnsuccess_resultsuccessrqs rr<MapResult._set)s Q( t}}CIKK//)1Q3*? @  A%>>NN4;;/KK * !! &t}} % $   A%''((5KK * !! &r)rrrrrN)r(r)r*r+r"r<r,r-rrr(r(s  M"rr(c:\rSrSrSrSrS Sjr\rSrSr Sr g) riEcDXl[R"[R"55Ul[ [ 5UlURUl[R"5Ul SUl SUl 0UlXRUR'g)Nr)rr ConditionLock_condrurvrr collectionsdeque_items_index_length _unsorted)r!rs rr"IMapIterator.__init__Gsl (()9: % kk !'')   !% DIIrcU$rr-r%s r__iter__IMapIterator.__iter__Rs rNcUR URR5nSSS5 Wup4U(aU$Ue![a URUR :XaSUl[SeURRU5 URR5nN![a0 URUR :XaSUl[Se[Sef=ff=f!,(df  N=fr) rrpopleft IndexErrorrrr StopIterationr r)r!r-rrrEs rruIMapIterator.nextUs ZZ 1{{**,  L ! 1;;$,,.!%DJ'T1 (1;;..0D!1{{dll2%) +5&D0 1 1Zs5C+AA C(B*(C+*:C$$C((C++ C9cUR URU:XaURRU5 U=RS- slURUR;aqURR UR5nURRU5 U=RS- slURUR;aMqURR 5 OX RU'URUR:XaURUR SUl SSS5 g!,(df  g=fNr) rrrrrpopnotifyrrrrrs rr<IMapIterator._setms ZZ{{a ""3' q kkT^^3..,,T[[9CKK&&s+KK1$KkkT^^3 !!#$'q!{{dll*KK *! ZZsC EA!E EcUR XlURUR:Xa8URR5 URUR SUlSSS5 g!,(df  g=fr)rrrrrrr)r!rs rrIMapIterator._set_length~sO ZZ!L{{dll* !!#KK *! ZZs AA// A=)rrrrrrrrr) r(r)r*r+r"rru__next__r<rr,r-rrrrEs" &,H"""rrc\rSrSrSrSrg)ricTUR URRU5 U=RS- slURR 5 URUR :XaUR UR SUlSSS5 g!,(df  g=fr) rrrrrrrrrrs rr<IMapUnorderedIterator._setsj ZZ KK  s # KK1 K JJ   {{dll*KK *! ZZs BB B')rN)r(r)r*r+r<r,r-rrrrs"rrcd\rSrSrSr\S5rS SjrSrSr \S5r \S 5r S r S r g) riFcSSKJn U"U0UD6$)Nrr)dummyr)rrrprs rrThreadPool.Processs"%%%rNc0[RXX#5 gr)rr")r!rrgrhs rr"ThreadPool.__init__s d{=rc[R"5Ul[R"5UlURRUlURR Ulgr)rrrrrZrr[rr%s rrThreadPool._setup_queuessD))+ **,--++..,,rc0URR/$r)rr^r%s rrThreadPool._get_sentinelss%%--..rc/$rr-)rs rr ThreadPool._get_worker_sentinelss rcURSS9 M![Ra Of=f[U5HnUR S5 M g)NF)block)r[rEmptyrrZ)rer\rKrns rr]ThreadPool._help_stuff_finishsM  % ({{   tA KK s ++c0[R"U5 gr)rZr[)r!rr/r-s rr0ThreadPool._wait_for_updatess 7r)rrrr)NNr-)r(r)r*r+rrmrr"rrrr]r0r,r-rrrrsUO&&>- /r)Nr-NF))__all__rrrrrrZr3rrnr2rrr connectionr r r r r countrvrrrbrr/r:rArtrcdictrxobjectrr AsyncResultr(rrrr-rrrs <     '    oo 5i 00<<"GK+