ó
    F\h¤-  ã                   óâ  • S SK r S SKrS SKrSSKJr  SSKJr  Sr " S S\5      r " S S	\5      r	 " S
 S\5      r
 " S S\5      r " S S\5      r " S S\R                  5      r " S S\5      r\R"                  S:w  a�   " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\5      r " S S\5      r " S S \5      r\" 5       \" 5       \" 5       S!.r\R"                  S":X  a  \" \S#   5      rO@\" \S$   5      rO4 " S% S\R                  5      r " S& S\5      rS#\" 5       0r\" \S#   5      rS' r\R6                  " 5       rS( rS) rS* rg)+é    Né   )Úprocess)Ú	reduction© c                   ó   • \ rS rSrSrg)ÚProcessErroré   r   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    Ú./usr/lib/python3.13/multiprocessing/context.pyr   r      ó   † Úr   r   c                   ó   • \ rS rSrSrg)ÚBufferTooShorté   r   Nr
   r   r   r   r   r      r   r   r   c                   ó   • \ rS rSrSrg)ÚTimeoutErroré   r   Nr
   r   r   r   r   r      r   r   r   c                   ó   • \ rS rSrSrg)ÚAuthenticationErroré   r   Nr
   r   r   r   r   r      r   r   r   c                   ó°  • \ rS rSr\r\r\r\r\" \	R                  5      r
\" \	R                  5      r\" \	R                  5      rS rS rS$S jrS rS rS%S	 jrS&S
 jrS&S jrS rS'S jrS(S jrS(S jrS r  S)S jrS rS rSS.S jrSS.S jrS rS r S%S jr!S r"S r#S r$S%S jr%S*S jr&S*S  jr'\(S! 5       r)\)RT                  S" 5       r)S# r+Sr,g)+ÚBaseContexté   c                 óL   • [         R                  " 5       nUc  [        S5      eU$ )z(Returns the number of CPUs in the systemzcannot determine number of cpus)ÚosÚ	cpu_countÚNotImplementedError)ÚselfÚnums     r   r!   ÚBaseContext.cpu_count)   s#   € ä�lŠl‹nˆØ‰;Ü%Ð&GÓHÐHàˆJr   c                 óZ   • SSK Jn  U" U R                  5       S9nUR                  5         U$ )z¥Returns a manager associated with a running server process

The managers methods such as `Lock()`, `Condition()` and `Queue()`
can be used to create shared objects.
r   )ÚSyncManager©Úctx)Úmanagersr'   Úget_contextÚstart)r#   r'   Úms      r   ÚManagerÚBaseContext.Manager1   s(   € õ 	*Ù˜D×,Ñ,Ó.Ñ/ˆØ	�‰Œ	Øˆr   Tc                 ó   • SSK Jn  U" U5      $ )z1Returns two connection object connected by a piper   )ÚPipe)Ú
connectionr1   )r#   Úduplexr1   s      r   r1   ÚBaseContext.Pipe<   s   € å$Ù�F‹|Ðr   c                 ó6   • SSK Jn  U" U R                  5       S9$ )z#Returns a non-recursive lock objectr   )ÚLockr(   )Úsynchronizer6   r+   )r#   r6   s     r   r6   ÚBaseContext.LockA   s   € å%Ù˜×(Ñ(Ó*Ñ+Ð+r   c                 ó6   • SSK Jn  U" U R                  5       S9$ )zReturns a recursive lock objectr   )ÚRLockr(   )r7   r:   r+   )r#   r:   s     r   r:   ÚBaseContext.RLockF   ó   € å&Ù˜×)Ñ)Ó+Ñ,Ð,r   Nc                 ó6   • SSK Jn  U" XR                  5       S9$ )zReturns a condition objectr   )Ú	Conditionr(   )r7   r>   r+   )r#   Úlockr>   s      r   r>   ÚBaseContext.ConditionK   s   € å*Ù˜×#3Ñ#3Ó#5Ñ6Ð6r   c                 ó6   • SSK Jn  U" XR                  5       S9$ )zReturns a semaphore objectr   )Ú	Semaphorer(   )r7   rB   r+   )r#   ÚvaluerB   s      r   rB   ÚBaseContext.SemaphoreP   s   € å*Ù˜×$4Ñ$4Ó$6Ñ7Ð7r   c                 ó6   • SSK Jn  U" XR                  5       S9$ )z"Returns a bounded semaphore objectr   )ÚBoundedSemaphorer(   )r7   rF   r+   )r#   rC   rF   s      r   rF   ÚBaseContext.BoundedSemaphoreU   s   € å1Ù ×+;Ñ+;Ó+=Ñ>Ð>r   c                 ó6   • SSK Jn  U" U R                  5       S9$ )zReturns an event objectr   )ÚEventr(   )r7   rI   r+   )r#   rI   s     r   rI   ÚBaseContext.EventZ   r<   r   c                 ó8   • SSK Jn  U" XX0R                  5       S9$ )zReturns a barrier objectr   )ÚBarrierr(   )r7   rL   r+   )r#   ÚpartiesÚactionÚtimeoutrL   s        r   rL   ÚBaseContext.Barrier_   s   € å(Ù�w¨×5EÑ5EÓ5GÑHÐHr   c                 ó6   • SSK Jn  U" XR                  5       S9$ )úReturns a queue objectr   )ÚQueuer(   )ÚqueuesrS   r+   )r#   ÚmaxsizerS   s      r   rS   ÚBaseContext.Queued   s   € å!Ù�W×"2Ñ"2Ó"4Ñ5Ð5r   c                 ó6   • SSK Jn  U" XR                  5       S9$ )rR   r   )ÚJoinableQueuer(   )rT   rX   r+   )r#   rU   rX   s      r   rX   ÚBaseContext.JoinableQueuei   s   € å)Ù˜W×*:Ñ*:Ó*<Ñ=Ð=r   c                 ó6   • SSK Jn  U" U R                  5       S9$ )rR   r   )ÚSimpleQueuer(   )rT   r[   r+   )r#   r[   s     r   r[   ÚBaseContext.SimpleQueuen   s   € å'Ù˜t×/Ñ/Ó1Ñ2Ð2r   r   c                 ó:   • SSK Jn  U" XX4U R                  5       S9$ )zReturns a process pool objectr   )ÚPool)Úcontext)Úpoolr^   r+   )r#   Ú	processesÚinitializerÚinitargsÚmaxtasksperchildr^   s         r   r^   ÚBaseContext.Pools   s$   € õ 	Ù�I¨HØ ×,Ñ,Ó.ñ0ð 	0r   c                 ó    • SSK Jn  U" U/UQ76 $ )zReturns a shared objectr   )ÚRawValue)Úsharedctypesrg   )r#   Útypecode_or_typeÚargsrg   s       r   rg   ÚBaseContext.RawValuez   s   € å*ÙÐ(Ð0¨4Ò0Ð0r   c                 ó   • SSK Jn  U" X5      $ )zReturns a shared arrayr   )ÚRawArray)rh   rm   )r#   ri   Úsize_or_initializerrm   s       r   rm   ÚBaseContext.RawArray   s   € å*ÙÐ(Ó>Ð>r   )r?   c                óD   • SSK Jn  U" U/UQ7UU R                  5       S.6$ )z$Returns a synchronized shared objectr   )ÚValue©r?   r)   )rh   rq   r+   )r#   ri   r?   rj   rq   s        r   rq   ÚBaseContext.Value„   s/   € å'ÙÐ%ð -¨ñ -°4Ø×)Ñ)Ó+ò-ð 	-r   c                ó:   • SSK Jn  U" XUU R                  5       S9$ )z#Returns a synchronized shared arrayr   )ÚArrayrr   )rh   ru   r+   )r#   ri   rn   r?   ru   s        r   ru   ÚBaseContext.ArrayŠ   s#   € å'ÙÐ%ÀØ×)Ñ)Ó+ñ-ð 	-r   c                 óv   • U R                  5       S:X  a%  [        [        SS5      (       a  SSKJn  U" 5         ggg)z{Check whether this is a fake forked process in a frozen executable.
If so then run code specified by commandline and exit.
ÚspawnÚfrozenFr   )Úfreeze_supportN)Úget_start_methodÚgetattrÚsysrx   rz   )r#   rz   s     r   rz   ÚBaseContext.freeze_support�   s5   € ð × Ñ Ó" gÓ-´'¼#¸xÈ×2OÑ2OÝ-ÙÕð 3PÐ-r   c                 ó   • SSK Jn  U" 5       $ )zJReturn package logger -- if it does not already exist then
it is created.
r   )Ú
get_logger)Úutilr€   )r#   r€   s     r   r€   ÚBaseContext.get_logger˜   s   € õ 	%Ù‹|Ðr   c                 ó   • SSK Jn  U" U5      $ )z8Turn on logging and add a handler which prints to stderrr   )Úlog_to_stderr)r�   r„   )r#   Úlevelr„   s      r   r„   ÚBaseContext.log_to_stderrŸ   s   € å'Ù˜UÓ#Ð#r   c                 ó   • SSK Jn  g)zFInstall support for sending connections and sockets
between processes
r   )r2   N)Ú r2   )r#   r2   s     r   Úallow_connection_picklingÚ%BaseContext.allow_connection_pickling¤   s   € ö 	!r   c                 ó    • SSK Jn  U" U5        g)z´Sets the path to a python.exe or pythonw.exe binary used to run
child processes instead of sys.executable when using the 'spawn'
start method.  Useful for people embedding Python.
r   )Úset_executableN)rx   rŒ   )r#   Ú
executablerŒ   s      r   rŒ   ÚBaseContext.set_executable¬   s   € õ
 	*Ù�zÕ"r   c                 ó    • SSK Jn  U" U5        g)z[Set list of module names to try to load in forkserver process.
This is really just a hint.
r   )Úset_forkserver_preloadN)Ú
forkserverr�   )r#   Úmodule_namesr�   s      r   r�   Ú"BaseContext.set_forkserver_preload´   s   € õ 	7Ù˜|Õ,r   c                 ó~   • Uc  U $  [         U   nUR                  5         U$ ! [         a    [        SU-  5      S ef = f)Nzcannot find context for %r)Ú_concrete_contextsÚKeyErrorÚ
ValueErrorÚ_check_available)r#   Úmethodr)   s      r   r+   ÚBaseContext.get_context»   sU   € Ø‰>ØˆKð	NÜ$ VÑ,ˆCð 	×ÑÔØˆ
øô ó 	NÜÐ9¸FÑBÓCÈÐMð	Nús   ‡	" ¢<c                 ó   • U R                   $ ©N)Ú_name©r#   Ú
allow_nones     r   r{   ÚBaseContext.get_start_methodÅ   s   € Ø�z‰zÐr   c                 ó   • [        S5      e)Nz+cannot set start method of concrete context)r—   ©r#   r™   Úforces      r   Úset_start_methodÚBaseContext.set_start_methodÈ   s   € ÜÐFÓGÐGr   c                 ó4   • [        5       R                  S5      $ )zWControls how objects will be reduced to a form that can be
shared with other processes.r   )ÚglobalsÚget©r#   s    r   ÚreducerÚBaseContext.reducerË   s   € ô ‹y�}‰}˜[Ó)Ð)r   c                 ó   • U[        5       S'   g )Nr   )r§   )r#   r   s     r   rª   r«   Ñ   s   € à!*Œ‹	�+Òr   c                 ó   • g rœ   r   r©   s    r   r˜   ÚBaseContext._check_availableÕ   s   € Ør   )Trœ   )r   )NN)r   )NNr   N©F)-r   r   r   r   r   r   r   r   Ústaticmethodr   Úcurrent_processÚparent_processÚactive_childrenr!   r.   r1   r6   r:   r>   rB   rF   rI   rL   rS   rX   r[   r^   rg   rm   rq   ru   rz   r€   r„   r‰   rŒ   r�   r+   r{   r¤   Úpropertyrª   Úsetterr˜   r   r   r   r   r   r      s  † à€LØ#€NØ€LØ-Ðá" 7×#:Ñ#:Ó;€OÙ! '×"8Ñ"8Ó9€NÙ" 7×#:Ñ#:Ó;€Oòò	ôò
,ò
-ô
7ô
8ô
?ò
-ô
Iô
6ô
>ò
3ð
 ?AØ"ô0ò1ò
?ð
 37õ -ð DHõ -òòô$ò
!ò#ò-ôôôHð ñ*ó ð*ð
 ‡^�^ñ+ó ð+õr   r   c                   ó8   • \ rS rSrSr\S 5       r\S 5       rSrg)ÚProcesséÜ   Nc                 ó\   • [         R                  5       R                  R                  U 5      $ rœ   )Ú_default_contextr+   r·   Ú_Popen)Úprocess_objs    r   r»   ÚProcess._PopenÞ   s"   € ä×+Ñ+Ó-×5Ñ5×<Ñ<¸[ÓIÐIr   c                  óZ   • [         R                  5       R                  R                  5       $ rœ   )rº   r+   r·   Ú_after_forkr   r   r   r¿   ÚProcess._after_forkâ   s    € ä×+Ñ+Ó-×5Ñ5×AÑAÓCÐCr   r   ©	r   r   r   r   Ú_start_methodr°   r»   r¿   r   r   r   r   r·   r·   Ü   s1   † Ø€MØñJó ðJð ñDó óDr   r·   c                   óP   ^ • \ rS rSr\rS rSU 4S jjrS	S jrS	S jrS r	Sr
U =r$ )
ÚDefaultContextéæ   c                 ó   • Xl         S U l        g rœ   )rº   Ú_actual_context)r#   r_   s     r   Ú__init__ÚDefaultContext.__init__é   s   € Ø 'ÔØ#ˆÕr   c                 ó|   >• Uc*  U R                   c  U R                  U l         U R                   $ [        TU ]  U5      $ rœ   )rÇ   rº   Úsuperr+   )r#   r™   Ú	__class__s     €r   r+   ÚDefaultContext.get_contextí   s>   ø€ Ø‰>Ø×#Ñ#Ñ+Ø'+×'<Ñ'<�Ô$Ø×'Ñ'Ð'ä‘7Ñ& vÓ.Ð.r   c                 ó’   • U R                   b  U(       d  [        S5      eUc  U(       a  S U l         g U R                  U5      U l         g )Nzcontext has already been set)rÇ   ÚRuntimeErrorr+   r¢   s      r   r¤   ÚDefaultContext.set_start_methodõ   sA   € Ø×ÑÑ+¶EÜÐ=Ó>Ð>Ø‰>žeØ#'ˆDÔ ØØ#×/Ñ/°Ó7ˆÕr   c                 óz   • U R                   c  U(       a  g U R                  U l         U R                   R                  $ rœ   )rÇ   rº   r�   rž   s     r   r{   ÚDefaultContext.get_start_methodý   s4   € Ø×ÑÑ'ÞØØ#'×#8Ñ#8ˆDÔ Ø×#Ñ#×)Ñ)Ð)r   c                 ó¸   • [         R                  S:X  a  S/$ [         R                  S:X  a  SS/OSS/n[        R                  (       a  UR	                  S5        U$ )z=Returns a list of the supported start methods, default first.Úwin32rx   ÚdarwinÚforkr‘   )r}   Úplatformr   ÚHAVE_SEND_HANDLEÚappend)r#   Úmethodss     r   Úget_all_start_methodsÚ$DefaultContext.get_all_start_methods  sM   € ä�<‰<˜7Ó"Ø�9Ðä+.¯<©<¸8Ó+C�w Ñ'È&ÐRYÐIZˆGÜ×)×)Ø—‘˜|Ô,ØˆNr   )rÇ   rº   rœ   r¯   )r   r   r   r   r·   rÈ   r+   r¤   r{   rÛ   r   Ú__classcell__)rÌ   s   @r   rÄ   rÄ   æ   s&   ø† Ø€Gò$÷/ô8ô*÷ð r   rÄ   rÔ   c                   ó(   • \ rS rSrSr\S 5       rSrg)ÚForkProcessi  rÖ   c                 ó   • SSK Jn  U" U 5      $ ©Nr   )ÚPopen)Ú
popen_forkrâ   ©r¼   râ   s     r   r»   ÚForkProcess._Popen  s   € å)Ù˜Ó%Ð%r   r   N©r   r   r   r   rÂ   r°   r»   r   r   r   r   rß   rß     s   † ØˆØ	ñ	&ó 
ó	&r   rß   c                   ó8   • \ rS rSrSr\S 5       r\S 5       rSrg)ÚSpawnProcessi  rx   c                 ó   • SSK Jn  U" U 5      $ rá   )Úpopen_spawn_posixrâ   rä   s     r   r»   ÚSpawnProcess._Popen  ó   € å0Ù˜Ó%Ð%r   c                  ó   • g rœ   r   r   r   r   r¿   ÚSpawnProcess._after_fork#  ó   € ð r   r   NrÁ   r   r   r   rè   rè     ó-   † ØˆØ	ñ	&ó 
ð	&ð 
ñ	ó 
ó	r   rè   c                   ó(   • \ rS rSrSr\S 5       rSrg)ÚForkServerProcessi(  r‘   c                 ó   • SSK Jn  U" U 5      $ rá   )Úpopen_forkserverrâ   rä   s     r   r»   ÚForkServerProcess._Popen*  s   € å/Ù˜Ó%Ð%r   r   Nræ   r   r   r   rò   rò   (  s   † Ø$ˆØ	ñ	&ó 
ó	&r   rò   c                   ó   • \ rS rSrSr\rSrg)ÚForkContexti/  rÖ   r   N)r   r   r   r   r�   rß   r·   r   r   r   r   r÷   r÷   /  s   † ØˆØ‹r   r÷   c                   ó   • \ rS rSrSr\rSrg)ÚSpawnContexti3  rx   r   N©r   r   r   r   r�   rè   r·   r   r   r   r   rù   rù   3  ó   † ØˆØ‹r   rù   c                   ó"   • \ rS rSrSr\rS rSrg)ÚForkServerContexti7  r‘   c                 óD   • [         R                  (       d  [        S5      eg )Nz%forkserver start method not available)r   rØ   r—   r©   s    r   r˜   Ú"ForkServerContext._check_available:  s   € Ü×-×-Ü Ð!HÓIÐIð .r   r   N)	r   r   r   r   r�   rò   r·   r˜   r   r   r   r   rý   rý   7  s   † ØˆØ#ˆõ	Jr   rý   )rÖ   rx   r‘   rÕ   rx   rÖ   c                   ó8   • \ rS rSrSr\S 5       r\S 5       rSrg)rè   iL  rx   c                 ó   • SSK Jn  U" U 5      $ rá   )Úpopen_spawn_win32râ   rä   s     r   r»   rë   N  rì   r   c                  ó   • g rœ   r   r   r   r   r¿   rî   S  rï   r   r   NrÁ   r   r   r   rè   rè   L  rð   r   c                   ó   • \ rS rSrSr\rSrg)rù   iX  rx   r   Nrú   r   r   r   rù   rù   X  rû   r   c                 ó(   • [         U    [        l        g rœ   )r•   rº   rÇ   )r™   s    r   Ú_force_start_methodr  e  s   € Ü'9¸&Ñ'AÔÕ$r   c                  ó$   • [        [        SS 5      $ )NÚspawning_popen)r|   Ú_tlsr   r   r   Úget_spawning_popenr
  n  s   € Ü”4Ð)¨4Ó0Ð0r   c                 ó   • U [         l        g rœ   )r	  r  )Úpopens    r   Úset_spawning_popenr  q  s
   € Ø„DÕr   c                 ó\   • [        5       c!  [        S[        U 5      R                  -  5      eg )NzF%s objects should only be shared between processes through inheritance)r
  rÏ   Útyper   )Úobjs    r   Úassert_spawningr  t  s4   € ÜÓÑ#Üð#Ü%)¨#£Y×%7Ñ%7ñ8óð 	ð $r   ) r    r}   Ú	threadingrˆ   r   r   Ú__all__Ú	Exceptionr   r   r   r   Úobjectr   ÚBaseProcessr·   rÄ   r×   rß   rè   rò   r÷   rù   rý   r•   rº   r  Úlocalr	  r
  r  r  r   r   r   Ú<module>r     s”  ðÛ 	Û 
Û å Ý à
€ô	�9ô 	ô	�\ô 	ô	�<ô 	ô	˜,ô 	ôx�&ô xô|Dˆg×!Ñ!ô Dô&�[ô &ðZ ‡<�<�7Óô&�g×)Ñ)ô &ô
�w×*Ñ*ô 
ô&˜G×/Ñ/ô &ô�kô ô�{ô ôJ˜Kô Jñ “Ù“Ù'Ó)ñÐð
 ‡|�|�xÓñ *Ð*<¸WÑ*EÓFÑá)Ð*<¸VÑ*DÓEÑô
�w×*Ñ*ô 
ô�{ô ð
 	‘“ðÐñ &Ð&8¸Ñ&AÓBÐòBð ‡‚Ó€ò1ò ór   