
    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Jr  S/r " S	 S
5      r " S S5      r\S:X  Ga
  S SKr\R,                  " S5      r\R1                  S\SSS9  \R1                  S\SSS9  \R7                  5       r0 rSr \ R>                  " \R@                  S5       r!S\RD                  " 5       l#         \RH                  " \!5      r%\RL                  " \%5        \RH                  " \!5      r'\RD                  " 5       ?# SSS5        \'RQ                  5       r\!b  \!R]                  5         \R^                  " \5        gg! \RD                  " 5       ?#f = f! , (       d  f       N[= f! \) aK    \*" S5        \*" \RV                   S35        \*" S5        S SK,r,\*" \,RZ                  " 5       5        \*" S5         Nf = f! \!b  \!R]                  5         \R^                  " \5        f = f)    N)BytesIO)utilprocess)wait)set_spawning_popen   )	reductionresource_trackerspawnPopenc                        \ rS rSrS rS rSrg)_DupFd   c                 :    [         R                  " U5      U l        g N)r	   _mk_inheritablefdselfr   s     a/var/www/html/venv/lib/python3.13/site-packages/joblib/externals/loky/backend/popen_loky_posix.py__init___DupFd.__init__   s    ++B/    c                     U R                   $ r   r   r   s    r   detach_DupFd.detach   s    wwr   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__ r   r   r   r      s    0r   r   c                   n    \ rS rSrSr\rS rS r\	R                  4S jrSS jrS rS	 r\S
 5       rSrg)r   '   lokyc                     [         R                  R                  5         [         R                  R                  5         S U l        / U l        U R                  U5        g r   )sysstdoutflushstderr
returncode_fds_launch)r   process_objs     r   r   Popen.__init__+   s<    



	[!r   c                 d    U R                   R                  U5        [        R                  " U5      $ r   )r.   appendr	   r   r   s     r   duplicate_for_childPopen.duplicate_for_child2   s%    		((,,r   c                    U R                   c    [        R                  " U R                  U5      u  p# X R                  :X  a{  [        R
                  " U5      (       a(  [        R                  " U5      * U l         U R                   $ [        R                  " U5      (       d   e[        R                  " U5      U l         U R                   $ ! [         a     g f = fr   )	r-   oswaitpidpidOSErrorWIFSIGNALEDWTERMSIG	WIFEXITEDWEXITSTATUS)r   flagr9   stss       r   poll
Popen.poll6   s    ??"!zz$((D9HC hh>>#&&'){{3'7&7DO  <<,,,,&(nnS&9DO      s   #C
 

CCNc                     U R                   cK  Ub  [        U R                  /U5      (       d  g U R                  US:X  a  [        R
                  5      $ S5      $ U R                   $ )Ng        r   )r-   r   sentinelrA   r7   WNOHANG)r   timeouts     r   r   
Popen.waitI   sS    ??""T]]OW55997c>RZZAAqAAr   c                     U R                   c1   [        R                  " U R                  [        R
                  5        g g ! [         a     g [         a    U R                  SS9c  e  g f = f)Ng?)rF   )	r-   r7   killr9   signalSIGTERMProcessLookupErrorr:   r   r   s    r   	terminatePopen.terminateR   sa    ??"&..1 # &  99S9)1 2s   /A   
A)A)(A)c                    [         R                  R                  5       n[        5       n[	        U 5         [
        R                  " UR                  [        USS5      5      n[        R                  " XC5        [        R                  " X5        [	        S 5         [        R                  " 5       u  pV[        R                  " 5       u  px[        R                  /n	U	SU R                  /-  n	U	S[!        UR"                  5      /-  n	U	S[!        [        R$                  " U5      5      /-  n	[        R$                  " U5        [        R$                  " U5        U =R&                  XvU/-  sl        [        R"                  S:X  a  US   n
U R)                  U
5        SS	KJn  U" XR&                  UR,                  S
9n[.        R0                  " SU SU	 35        XPl        Sn[5        X=5      (       d  Sn[        R6                  " US5       nUR9                  [        X=5      " 5       5        S S S 5        Xl        Ub'  [.        R<                  " U [        R>                  U45        Xv4 H  nUc  M  [        R>                  " U5        M      g ! [	        S 5        f = f! , (       d  f       Nt= f! Wb'  [.        R<                  " U [        R>                  U45        WW4 H  nUc  M  [        R>                  " U5        M      f = f)Ninit_main_moduleTz-m--process-name--pipeposixmp_tracker_fdr   )	fork_exec)envzlaunched python with pid z
 and cmd:
	getbuffergetvaluewb) r
   _resource_trackergetfdr   r   r   get_preparation_data_namegetattrr	   dumpr7   piper)   
executabler    strnamer   r.   r4   rU   rV   r   debugrD   hasattrfdopenwriter9   Finalizeclose)r   r0   
tracker_fdfp	prep_dataparent_rchild_wchild_rparent_w
cmd_pythonrT   rU   r9   methodfr   s                   r   r/   Popen._launch\   sM   %77==?
Y4 		%22!!%7>I NN9)NN;+ t$$	! "	H "	G ..)J411J+S1A1A-BCCJ8S)B)B7)K%LMMJ%%g.%%j1II'J77Iww'! )/ :((7,J		{GCJJ+C5J<H %M F2&&#8T*a+-. +H#dBHHxk:(>HHRL )I t$< +* #dBHHxk:(>HHRL )s7   AJ  E)J!  J"J!  J
JJ! !3K3K3c                      g)NTr$   r$   r   r   thread_is_spawningPopen.thread_is_spawning   s    r   )r.   r9   r-   rD   r   )r   r    r!   r"   rr   r   DupFdr   r4   r7   rE   rA   r   rM   r/   staticmethodrv   r#   r$   r   r   r   r   '   sH    FE"- 

 &5!n  r   __main__zCommand line parserrR   TzFile handle for the pipe)typerequiredhelprQ   z Identifier for debugging purpose)r{   defaultr}   rbzR

--------------------------------------------------------------------------------z failed with traceback: zP--------------------------------------------------------------------------------zQ
--------------------------------------------------------------------------------)0r7   r)   rJ   pickleior   multiprocessingr   r   multiprocessing.connectionr   multiprocessing.contextr    r	   r
   r   __all__r   r   r   argparseArgumentParserparseradd_argumentintrb   
parse_argsargsinfoexitcoderf   r`   from_parentcurrent_process_inheritingloadrl   preparer0   
_bootstrap	Exceptionprintprocess_name	traceback
format_excri   exitr$   r   r   <module>r      s   
 
    ) + 6 0 0 ) n nb z$$%:;F
sT0J   /	   DDHYYtyy$';48G##%1:"KK4	i($kk+6++-9 ( ))+ "S 4 ++-9 ('   ""##;<=hi""$%o "sU   "F ?E46EE4F E11E44
F>F AGG GG 'H 