
    ⾙hs                     >   d dl Z 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mZmZmZmZmZmZmZmZmZmZmZ ddlmZ g dZdZdZd Zd	Zd
ZdZdZ dZ!dZ"dZ#dZ$da%da&d Z'd Z(d Z)d Z*d Z+d Z,d Z-ddZ.d Z/d Z0d Z1y# e$ r d dlZY ww xY w# e$ r d ZY ~w xY w)    N)_args_from_interpreter_flagsc                     ddddddddd	d
d
} g }| j                         D ]<  \  }}t        t        j                  |      }|dkD  s&|j	                  d||z  z          > t        j
                  D ]  }|j	                  d|z           |S )zrReturn a list of command-line arguments reproducing the current
        settings in sys.flags and sys.warnoptions.dOBsSEvbR3)
debugoptimizedont_write_bytecodeno_user_siteno_siteignore_environmentverbosebytes_warninghash_randomizationpy3k_warningr   -z-W)itemsgetattrsysflagsappendwarnoptions)flag_opt_mapargsflagoptr   s        I/var/www/Befach/backend/env/lib/python3.12/site-packages/billiard/util.pyr   r      s     #&"% "%
 %++-ID#		4(A1uC#'M* . ??CKKs
# #    )_afterfork_registry_afterfork_counter_exit_function_finalizer_registry_finalizer_counterFinalizeForkAwareLocalForkAwareThreadLockget_temp_dir
is_exitingregister_after_fork_run_after_forkers_run_finalizers   )	get_errno)	sub_debugr   infosub_warning
get_loggerlog_to_stderrr.   r0   r/   r+   r-   r,   SUBDEBUG
SUBWARNING      
            (   multiprocessingz+[%(levelname)s/%(processName)s] %(message)sFc                 N    t         rt        j                  t        | g|i | y y N)_loggerlogr:   msgr!   kwargss      r$   r5   r5   `   s"    Hc3D3F3 r%   c                 N    t         rt        j                  t        | g|i | y y rE   )rF   rG   DEBUGrH   s      r$   r   r   e   "    E3000 r%   c                 N    t         rt        j                  t        | g|i | y y rE   )rF   rG   INFOrH   s      r$   r6   r6   j   s"    D#/// r%   c                 N    t         rt        j                  t        | g|i | y y rE   )rF   rG   r;   rH   s      r$   r7   r7   o   s"    J5d5f5 r%   c                 N    t         rt        j                  t        | g|i | y y rE   )rF   rG   WARNINGrH   s      r$   warningrS   s   s"    GS24262 r%   c                 N    t         rt        j                  t        | g|i | y y rE   )rF   rG   ERRORrH   s      r$   errorrV   w   rM   r%   c                     ddl } 	 | j                  | j                  }} |        	 t        s| j                  t              adt        _	        | j                  t        d       | j                  t        d       t        t        d      r3t        j                  t                t        j"                  t                nLt        j$                  j'                  t         di f       t        j$                  j)                  t         di f        |        t        S # t        $ r | j                  | j
                  }}Y w xY w#  |        w xY w)z0
    Returns logger used by multiprocessing
    r   Nr:   r;   
unregister )logging_prepareFork
_afterForkAttributeError_acquireLock_releaseLockrF   	getLoggerLOGGER_NAME	propagateaddLevelNamer:   r;   hasattratexitrX   r(   register_exithandlersremover   )rZ   acquirereleases      r$   r8   r8   |   s    
 F"//1C1C I''4G !G  :6  \: v|,!!.1/$$++^R,DE$$++^R,DE	N+  F"//1E1EF& 		s   D C!D< !D98D9<	Ec                     ddl }t               }|j                  t              }|j	                         }|j                  |       |j                  |       | r|j                  |        dat        S )zB
    Turn on logging and add a handler which prints to stderr
    r   NT)
rZ   r8   	FormatterDEFAULT_LOGGING_FORMATStreamHandlersetFormatter
addHandlersetLevel_log_to_stderrrF   )levelrZ   logger	formatterhandlers        r$   r9   r9      sb    
 \F!!"89I##%G#
gNNr%   c                  <   t         j                  j                  d      s
t               	 dt         j                  v rbt        j                         } | j                  d       | j                  d      }| j                  d      }|j                  t        |       |d   S t        j                         }t        j                  j                  d      }|j                  t        t        j                   |             |j"                  S # t$        $ r t               w xY w)zE
    Return the current value of the parent process death signal
    linuxcffiint prctl (int __option, ...);zint *Nr   	libc.so.6)r   platform
startswithOSErrormodulesry   FFIcdefnewdlopenprctlPR_GET_PDEATHSIGctypesc_intcdllLoadLibrarybyrefvalue	Exception)ffiargCsiglibcs        r$   get_pdeathsigr      s     <<""7+iS[[ ((*CHH56'''"C

4 AGG$c*q6M,,.C;;**;7DJJ'c):;99 is   A3D A'D Dc                    t         j                  j                  d      st        d      	 dt         j                  v r]t        j                         }|j                  d       |j                  d      }|j                  t        |j                  d|              yt        j                  j                  d      }|j                  t        t        j                  |              y# t         $ r}t        d      |d}~ww xY w)	am  
    Set the parent process death signal of the calling process to sig
    (either a signal value in the range 1..maxsig, or 0 to clear).
    This is the signal that the calling process will get when its parent dies.
    This value is cleared for the child of a fork(2) and
    (since Linux 2.4.36 / 2.6.23) when executing a set-user-ID or set-group-ID binary.
    rx   z$pdeathsig is only supported on linuxry   rz   Nintr{   z(An error occured while setting pdeathsig)r   r|   r}   r~   r   ry   r   r   r   r   PR_SET_PDEATHSIGcastr   r   r   r   r   )r   r   r   r   es        r$   set_pdeathsigr      s     <<""7+<==
IS[[ ((*CHH56

4 AGG$chhuc&:;;;**;7DJJ'c):; I@AqHIs   A.C$ AC$ $	C>-C99C>c                 B     t        j                          fd       }|S )z&
    Automatic retry after EINTR.
    c                      	 	  | i |S # t         $ r'}t        |      t        j                  k7  r Y d }~nd }~ww xY w=rE   )r~   r4   errnoEINTR)r!   rJ   excfuncs      r$   wrappedz_eintr_retry.<locals>.wrapped   sH    T,V,, S>U[[0 1 s    	<7<)	functoolswraps)r   r   s   ` r$   _eintr_retryr      s'    
 __T  Nr%   rE   )2r   r   r   re   ry   ImportErrorr   
subprocessr   multiprocessing.utilr&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   compatr4   __all__r   r   NOTSETr:   rL   rO   r;   rR   rU   ra   rm   rF   rr   r5   r   r6   r7   rS   rV   r8   r9   r   r   r   rY   r%   r$   <module>r      s       74         

	


F 
4
1
0
631
D&0I._  
  s"   B B 	BBBB