
    F\h                     j   S SK r S SKrS SKrS SKrS SKrS SKJrJr  SSKJ	r	J
r
Jr  SSKJr  SSKJr  S/rSr\R"                  S	:H  =(       a
    \" \S
S5      r\R(                  R+                  5       R-                  S5      rS r\" \R(                  \R2                  5      (       + rS r " S S\5      rg)    N)STARTUPINFOSTARTF_FORCEOFFFEEDBACK   )	reductionget_spawning_popenset_spawning_popen)spawn)utilPopeni   win32frozenFzpythonservice.exec                     X:H  =(       d?    [         R                  R                  U 5      [         R                  R                  U5      :H  $ N)ospathnormcase)p1p2s     8/usr/lib/python3.13/multiprocessing/popen_spawn_win32.py_path_eqr      s2    8Crww''+rww/?/?/CCC    c                  B    U  H  n[         R                  " U5        M     g r   )_winapiCloseHandle)handleshandles     r   _close_handlesr      s    F# r   c                   H    \ rS rSrSrSrS rS rSS jrS r	S	 r
\
rS
 rSrg)r   (   z8
Start a subprocess to run the code of a process object
r	   c                    [         R                  " UR                  5      n[        R                  " S S5      u  p4[
        R                  " US5      n[         R                  " [        R                  " 5       US9n[         R                  " 5       n[        (       af  [        U[        R                  5      (       aG  [        R                  =US'   n[        R                   R#                  5       n[        R                  US'   OS nSR%                  S U 5       5      n['        USSS9 n	 [        R(                  " XvS S S	SUS [+        [,        S
95	      u  pp[        R.                  " U5        Xl        S U l        Xl        [7        U
5      U l        [:        R<                  " U [>        U R8                  [7        U5      45      U l         [C        U 5         [D        RF                  " X)5        [D        RF                  " X5        [C        S 5         S S S 5        g !   [        R.                  " U5        e = f! [C        S 5        f = f! , (       d  f       g = f)Nr   )
parent_pidpipe_handle__PYVENV_LAUNCHER__ c              3   ,   #    U  H
  nS U-  v   M     g7f)z"%s"N ).0xs     r   	<genexpr>!Popen.__init__.<locals>.<genexpr>G   s     /3avz3s   wbT)closefdF)dwFlags)$r	   get_preparation_data_namer   
CreatePipemsvcrtopen_osfhandleget_command_liner   getpidget_executableWINENVr   sys
executable_base_executableenvironcopyjoinopenCreateProcessr   r   r   pid
returncode_handleintsentinelr
   Finalizer   	finalizerr   r   dump)selfprocess_obj	prep_datarhandlewhandlewfdcmd
python_exeenvto_childhphtr?   tids                 r   __init__Popen.__init__.   s   ..{/@/@A	 #--dA6##GQ/$$		18: ))+
 6hz3>>::"%"6"66CFZ**//#C),C%&Chh/3//#tT*h#*#8#8$q#t(?@$B  ##B' H"DOLGDM!]]4,0MM3w<+HJDN t$)y3{5"4(5 +*##G,  #4(5 +*s>   $H9&AH'A$H9,H)8H9H&&H9)H66H99
Ic                 `    U [        5       L d   e[        R                  " XR                  5      $ r   )r   r   	duplicaterC   )rG   r   s     r   duplicate_for_childPopen.duplicate_for_childe   s)    )++++""6==99r   Nc                    U R                   b  U R                   $ Uc  [        R                  nO[        S[	        US-  S-   5      5      n[        R
                  " [	        U R                  5      U5      nU[        R                  :X  aA  [        R                  " U R                  5      nU[        :X  a  [        R                  * nX@l         U R                   $ )Nr   i  g      ?)r@   r   INFINITEmaxrB   WaitForSingleObjectrA   WAIT_OBJECT_0GetExitCodeProcess	TERMINATEsignalSIGTERM)rG   timeoutmsecsrescodes        r   wait
Popen.waiti   s    ??&??"?$$E3w~345E))#dll*;UC''''--dll;Dy "Or   c                      U R                  SS9$ )Nr   )rc   )rg   rG   s    r   poll
Popen.poll{   s    yyy##r   c                    U R                   b  g  [        R                  " [        U R                  5      [
        5        g ! [         aA    [        R                  " [        U R                  5      5      nU[        R                  :X  a  e  g f = fr   )	r@   r   TerminateProcessrB   rA   r`   PermissionErrorr_   STILL_ACTIVE)rG   rf   s     r   	terminatePopen.terminate~   sm    ??&	$$S%6	B 	 --c$,,.?@Dw+++ ,		s   .? AB
	B
c                 $    U R                  5         g r   )rE   rj   s    r   closePopen.close   s    r   )rA   rE   r?   r@   rC   r   )__name__
__module____qualname____firstlineno____doc__methodrT   rX   rg   rk   rq   killrt   __static_attributes__r&   r   r   r   r   (   s4     F5)n:$$$ Dr   )r   r1   ra   r7   r   
subprocessr   r   contextr   r   r    r	   r
   __all__r`   platformgetattrWINEXEr8   lowerendswith
WINSERVICEr   r9   r6   r   objectr   r&   r   r   <module>r      s    	   
  ; F F  ) 	
,,'
!
Cgc8U&C^^!!#,,-@A
D cnnc&:&:;	;$kF kr   