
    h                     Z   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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"                  \R,                  5      (       + rS r " S S\5      rg)    N   )	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     X/home/james-whalen/.local/lib/python3.13/site-packages/multiprocess/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 5	      u  pp[        R*                  " U5        Xl        S U l        Xl        [3        U
5      U l        [6        R8                  " U [:        U R4                  [3        U5      45      U l        [?        U 5         [@        RB                  " X)5        [@        RB                  " X5        [?        S 5         S S S 5        g !   [        R*                  " U5        e = f! [?        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>F   s     /3avz3s   wbT)closefdF)"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   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#tT$;  ##B' H"DOLGDM!]]4,0MM3w<+HJDN t$)y3{5"4(3 +*##G,  #4(3 +*s=   $H.&6HA$H.,H-H.HH.H++H..
H<c                 `    U [        5       L d   e[        R                  " XR                  5      $ r   )r   r   	duplicater@   )rD   r   s     r   duplicate_for_childPopen.duplicate_for_childc   s)    )++++""6==99r   Nc                    U R                   c  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maxr?   WaitForSingleObjectr>   WAIT_OBJECT_0GetExitCodeProcess	TERMINATEsignalSIGTERM)rD   timeoutmsecsrescodes        r   wait
Popen.waitg   s    ??"((As7T>C#789--c$,,.?GCg+++11$,,?9$"NN?D"&r   c                      U R                  SS9$ )Nr   )r`   )rd   rD   s    r   poll
Popen.pollw   s    yyy##r   c                 R   U R                   cF   [        R                  " [        U R                  5      [
        5        [        R                  * U l         g g ! [         aG    [        R                  " [        U R                  5      5      nU[        R                  :X  a  e Xl          g f = fr   )r=   r   TerminateProcessr?   r>   r]   r^   r_   PermissionErrorr\   STILL_ACTIVE)rD   rc   s     r   	terminatePopen.terminatez   s    ??"
2((T\\):IF $*>>/ # # ' 11#dll2CD7///"&'s   .A AB&%B&c                 $    U R                  5         g r   )rB   rg   s    r   closePopen.close   s    r   )r>   rB   r<   r=   r@   r   )__name__
__module____qualname____firstlineno____doc__methodrQ   rU   rd   rh   rn   killrq   __static_attributes__r$   r   r   r	   r	   '   s4     F4)l: $2 Dr   )r   r.   r^   r4   r   contextr   r   r    r   r   __all__r]   platformgetattrWINEXEr5   lowerendswith
WINSERVICEr   r6   r3   r   objectr	   r$   r   r   <module>r      s    	   
  F F  ) 	
,,'
!
Cgc8U&C^^!!#,,-@A
D cnnc&:&:;	;$dF dr   