
    zIf                     *   d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
 d dlmZ ddlmZmZmZ dgZ G d	 d
          Z G d d          Zedk    rd dlZ ej        d          Ze                    dedd           e                    dedd           e                                Zi ZdZ	  e j        ej         d          5 Z!d ej"                    _#        	  ej$        e!          Z% ej&        e%            ej$        e!          Z' ej"                    `#n#  ej"                    `#w xY w	 ddd           n# 1 swxY w Y   e'(                                Zn[# e)$ rS  e*d            e*ej+         d            e*d           d dl,Z, e* e,j-                                e*d           Y nw xY we!e!.                                  ej/        e           dS # e!e!.                                  ej/        e           w xY wdS )    N)BytesIO)utilprocess)wait)set_spawning_popen   )	reductionresource_trackerspawnPopenc                       e Zd Zd Zd ZdS )_DupFdc                 8    t          j        |          | _        d S N)r	   _mk_inheritablefdselfr   s     b/var/www/piapp/venv/lib/python3.11/site-packages/joblib/externals/loky/backend/popen_loky_posix.py__init__z_DupFd.__init__   s    +B//    c                     | j         S r   )r   r   s    r   detachz_DupFd.detach   s	    wr   N)__name__
__module____qualname__r   r    r   r   r   r      s2        0 0 0    r   r   c                   `    e Zd ZdZeZd Zd Zej	        fdZ
d
dZd Zd Zed	             ZdS )r   lokyc                     t           j                                         t           j                                         d | _        g | _        |                     |           d S r   )sysstdoutflushstderr
returncode_fds_launch)r   process_objs     r   r   zPopen.__init__+   sP    

	[!!!!!r   c                 ^    | j                             |           t          j        |          S r   )r'   appendr	   r   r   s     r   duplicate_for_childzPopen.duplicate_for_child2   s)    	(,,,r   c                 R   | j         	 	 t          j        | j        |          \  }}n# t          $ r Y d S w xY w|| j        k    r^t          j        |          rt          j        |           | _         n/t          j        |          sJ t          j        |          | _         | j         S r   )	r&   oswaitpidpidOSErrorWIFSIGNALEDWTERMSIG	WIFEXITEDWEXITSTATUS)r   flagr0   stss       r   pollz
Popen.poll6   s    ?"!z$(D99HC          44  dh>#&& :'){3'7'7&7DOO<,,,,,&(nS&9&9DOs   ( 
66Nc                     | j         A|t          | j        g|          sd S |                     |dk    rt          j        nd          S | j         S )Ng        r   )r&   r   sentinelr8   r.   WNOHANG)r   timeouts     r   r   z
Popen.waitI   sS    ?""T]OW55  4997c>>RZZqAAAr   c                     | j         [	 t          j        | j        t          j                   d S # t          $ r Y d S t          $ r |                     d           Y d S w xY wd S )Ng?)r<   )	r&   r.   killr0   signalSIGTERMProcessLookupErrorr1   r   r   s    r   	terminatezPopen.terminateR   s    ?"&.11111%      99S9))1 211 #"s   $/ 
A  A A c                    t           j                                        }t                      }t	          |            	 t          j        |j        t          |dd                    }t          j
        ||           t          j
        ||           t	          d            n# t	          d            w xY w	 t          j                    \  }}t          j                    \  }}t          j        g}	|	d| j        gz  }	|	dt!          |j                  gz  }	|	dt!          t          j        |                    gz  }	t          j        |           t          j        |           | xj        |||gz  c_        t          j        dk    r3t          j        dk    r#|d         d	         }
|                     |
           d
dlm}  ||	| j        |j                  }t1          j        d| d|	            || _        d}t7          ||          sd}t          j        |d          5 }|                     t          ||                                 d d d            n# 1 swxY w Y   || _        |!t1          j        | t          j         |f           ||fD ]}|t          j         |           d S # |!t1          j        | t          j         |f           ||fD ]}|t          j         |           w xY w)Ninit_main_moduleTz-m--process-name--pipe)      posixmp_tracker_argsr   r   )	fork_exec)envzlaunched python with pid z
 and cmd:
	getbuffergetvaluewb)!r
   _resource_trackergetfdr   r   r   get_preparation_data_namegetattrr	   dumpr.   piper"   
executabler   strnamer   r'   version_infor,   rK   rL   r   debugr:   hasattrfdopenwriter0   Finalizeclose)r   r)   
tracker_fdfp	prep_dataparent_rchild_wchild_rparent_w
cmd_pythonmp_tracker_fdrK   r0   methodfr   s                   r   r(   zPopen._launch\   sE   %7==??
YY4   		%2!%7>> I N9b)))N;+++ t$$$$t$$$$$	! "		Hg "		GX .)J411J+S1A-B-BCCJ8S)B7)K)K%L%LMMJ%g...%j111II'7J77II6))bg.@.@ )*; <T B((777,,,,,,)J	{GGGCJHCHHJHH   %DM F2v&& $#8T** /a+F++--.../ / / / / / / / / / / / / / /DH#dBHxk:::( ! !>HRLLL! ! #dBHxk:::( ! !>HRLLL!s>   AB   B15E*J+ ,IJ+ IJ+ I
J+ +AK-c                      dS )NTr   r   r   r   thread_is_spawningzPopen.thread_is_spawning   s    tr   r   )r   r   r   rj   r   DupFdr   r,   r.   r;   r8   r   rB   r(   staticmethodrm   r   r   r   r   r   '   s        FE" " "- - - 
    &     5! 5! 5!n   \  r   __main__zCommand line parserrF   TzFile handle for the pipe)typerequiredhelprE   z Identifier for debugging purpose)rq   defaultrs   rbzR

--------------------------------------------------------------------------------z failed with traceback: zP--------------------------------------------------------------------------------zQ
--------------------------------------------------------------------------------)0r.   r"   r?   pickleior   multiprocessingr   r   multiprocessing.connectionr   multiprocessing.contextr    r	   r
   r   __all__r   r   r   argparseArgumentParserparseradd_argumentintrX   
parse_argsargsinfoexitcoder]   rV   from_parentcurrent_process_inheritingloadrc   preparer)   
_bootstrap	Exceptionprintprocess_name	traceback
format_excr`   exitr   r   r   <module>r      s   
			 



         ) ) ) ) ) ) ) ) + + + + + + 6 6 6 6 6 6 0 0 0 0 0 0 0 0 0 0 )       n n n n n n n nb zOOO$X$%:;;F
sT0J     /	     DDHRYty$'' 	:;48#G#%%1:'FK44	i((()fk+66+G+--99+G+--999999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: ))++      "<<<===h"i"$$%%%o " "S sg   8E% E$0D$E$D55E9E% E		E% E	E% $G( %AF=:G( <F==G( ((H