
    6-i                     
   S SK r S SKrS SKrS SKrS SKJr  S SKJrJr  S SK	J
r
  S SKJr  SSKJrJr  S/rS	 r\" \S
5      =(       a"    \" \R(                  \R*                  5      (       + rS r " S S\5      rS rS rSS jrg)    N)load)processutil)set_spawning_popen)Popen   )	reductionspawnr   c                     X:H  =(       d?    [         R                  R                  U 5      [         R                  R                  U5      :H  $ N)ospathnormcase)p1p2s     a/var/www/html/venv/lib/python3.13/site-packages/joblib/externals/loky/backend/popen_loky_win32.py_path_eqr      s2    8Crww''+rww/?/?/CCC    _base_executablec                  B    U  H  n[         R                  " U5        M     g r   )_winapiCloseHandle)handleshandles     r   _close_handlesr      s    F# r   c                   "    \ rS rSrSrSrS rSrg)r   (   a  
Start a subprocess to run the code of a process object.

We differ from cpython implementation with the way we handle environment
variables, in order to be able to modify then in the child processes before
importing any library, in order to control the number of threads in C-level
threadpools.

We also use the loky preparation data, in particular to handle main_module
inits and the loky resource tracker.
lokyc                    [         R                  " UR                  [        USS5      5      n[        R
                  " S S5      u  p4[        R                  " US5      n[        [        R                  " 5       US9n[         R                  " 5       n0 [        R                  EUR                  En[        (       aG  [        U[         R"                  5      (       a(  [         R$                  =US'   n[         R"                  US'   SR'                  S U 5       5      n[)        US5       n	 [        R*                  " UUS S S	SUS S 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 ! [.         a    [        R,                  " U5        e f = f! [C        S 5        f = f! , (       d  f       g = f)
Ninit_main_moduleTr   )
parent_pidpipe_handle__PYVENV_LAUNCHER__ c              3   .   #    U  H  nS U S 3v   M     g7f)"N ).0xs     r   	<genexpr>!Popen.__init__.<locals>.<genexpr>Q   s     -A1#Qxs   wbF)$r
   get_preparation_data_namegetattrr   
CreatePipemsvcrtopen_osfhandleget_command_liner   getpidget_executableenvironenvWINENVr   sys
executabler   joinopenCreateProcessr   BaseExceptionpid
returncode_handleintsentinelr   Finalizer   	finalizerr   r	   dump)selfprocess_obj	prep_datarhandlewhandlewfdcmd
python_exe	child_envto_childhphtr?   _s                 r   __init__Popen.__init__7   s   ..w{4FM
	 #--dA6##GQ/"))+7K))+
 6rzz5[__5	 6hz3>>::"%"6"66CFZ/2~~I+,hh---#t_!(!6!6
" ##B' H"DOLGDM!]]nt}}c'l&CDN
 t$)y3{5"4(E _ ! ##G,& #4(E _s=   #H7%7HA$H7,H'-H7"H$$H7'H44H77
I)rA   rE   r?   r@   rC   N)__name__
__module____qualname____firstlineno____doc__methodrT   __static_attributes__r'   r   r   r   r   (   s    
 F>)r   c                     [        [        SS5      (       a  [        R                  SU /$ SU  SU S3n[        R                  " 5       n[
        R                  " 5       /UQSPUPSP$ )zAReturns prefix of command line used for spawning a child process.frozenF--multiprocessing-forkzRfrom joblib.externals.loky.backend.popen_loky_win32 import main; main(pipe_handle=z, parent_pid=)z-c)r/   r9   r:   r   _args_from_interpreter_flagsr
   r5   )r"   r!   kwdsprogoptss        r   r3   r3   x   s    sHe$$ 8+FF  +}M*QH 	 002  "

 
 	

 %
 	
r   c                 6    [        U 5      S:  a
  U S   S:X  a  gg)z4Return whether commandline indicates we are forking.   r   r_   TF)len)argvs    r   
is_forkingri      s    
4yA~$q'%==r   c                    [        [        R                  5      (       d   S5       eUb8  [        R                  " [        R
                  [        R                  -  SU5      nOSn[        R                  " XS9n[        R                  " U[        R                  5      nUn[        R                  " USSS9 nS[        R                  " 5       l         [#        U5      n[$        R&                  " Xu5        [#        U5      n[        R                  " 5       ? SSS5        WR)                  U5      n	[        R*                  " U	5        g! [        R                  " 5       ?f = f! , (       d  f       NP= f)z.Run code specified by data received over pipe.zNot forkingNF)source_processrbT)closefd)ri   r9   rh   r   OpenProcessSYNCHRONIZEPROCESS_DUP_HANDLEr	   	duplicater1   r2   r   O_RDONLYfdopenr   current_process_inheritingr   r
   prepare
_bootstrapexit)
r"   r!   rk   
new_handlefdparent_sentinelfrom_parentpreparation_datarG   exitcodes
             r   mainr      s   chh.. ,,'"<"<<eZ
 $$J 
		z2;;	7B$O	2tT	*k04!-	6#K0MM*<$D'')5 
+ /HHHX '')5 
+	*s$   4E,E<EEE
E*r   )r   r9   r1   r   pickler   multiprocessingr   r   multiprocessing.contextr   !multiprocessing.popen_spawn_win32r   _Popen r	   r
   __all__r   hasattrr:   r   r8   r   r3   ri   r   r'   r   r   <module>r      s    	 
    ) 6 =  )D 
(	) 
(NNC((3 /
$M)F M)`
&r   