
    ht                     D   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  S SK	J
r
JrJrJrJrJrJrJrJrJrJrJrJr  SSKJr  / SQrSrSrS rS	rS
rSrSr Sr!Sr"Sr#Sr$Sq%Sq&S r'S r(S r)S r*S r+S r,S r-SS jr.S r/S r0S r1g! \ a    S SKr Nyf = f! \ a    S r Nf = f)    N)_args_from_interpreter_flagsc                     SSSSSSSSS	S
S.
n / nU R                  5        H=  u  p#[        [        R                  U5      nUS:  d  M'  UR	                  SX4-  -   5        M?     [        R
                   H  nUR	                  SU-   5        M     U$ )zjReturn 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        5D:\TimeStamps\venv\Lib\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                 Z    [         (       a   [         R                  " [        U /UQ70 UD6  g g N)_loggerlogr:   msgr!   kwargss      r$   r5   r5   `   s$    wHc3D3F3 r%   c                 Z    [         (       a   [         R                  " [        U /UQ70 UD6  g g rE   )rF   rG   DEBUGrH   s      r$   r   r   e   $    wE3000 r%   c                 Z    [         (       a   [         R                  " [        U /UQ70 UD6  g g rE   )rF   rG   INFOrH   s      r$   r6   r6   j   s$    wD#/// r%   c                 Z    [         (       a   [         R                  " [        U /UQ70 UD6  g g rE   )rF   rG   r;   rH   s      r$   r7   r7   o   s$    wJ5d5f5 r%   c                 Z    [         (       a   [         R                  " [        U /UQ70 UD6  g g rE   )rF   rG   WARNINGrH   s      r$   warningrS   s   s$    wGS24262 r%   c                 Z    [         (       a   [         R                  " [        U /UQ70 UD6  g g rE   )rF   rG   ERRORrH   s      r$   errorrV   w   rM   r%   c                     SSK n  U R                  U R                  p!U" 5          [        (       d  U R                  [        5      qS[        l	        U R                  [        S5        U R                  [        S5        [        [        S5      (       a5  [        R                  " [         5        [        R"                  " [         5        OL[        R$                  R'                  [         S0 45        [        R$                  R)                  [         S0 45        U" 5         [        $ ! [         a    U R                  U R
                  p! GN&f = f! U" 5         f = f)z(
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w''4G !G  :6  \: v|,,!!.1/$$++^R,DE$$++^R,DE	N+  F"//1E1EF& 		s   D C-E !EE	Ec                     SSK n[        5       nUR                  [        5      nUR	                  5       nUR                  U5        UR                  U5        U (       a  UR                  U 5        Sq[        $ )z:
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                  R   [         R                  R                  S5      (       d
  [        5       e S[         R                  ;   ac  [
        R                  " 5       n U R                  S5        U R                  S5      nU R                  S5      nUR                  [        U5        US   $ [        R                  " 5       n[        R                  R                  S5      nUR                  [        [        R                   " U5      5        UR"                  $ ! [$         a    [        5       ef = f)z=
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   A6D 'A)D D&c                    [         R                  R                  S5      (       d  [        S5      e S[         R                  ;   a^  [
        R                  " 5       nUR                  S5        UR                  S5      nUR                  [        UR                  SU 5      5        g[        R                  R                  S5      nUR                  [        [        R                  " U 5      5        g! [          a  n[        S5      UeSnAff = f)	aU  
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 occurred 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++<==
JS[[ ((*CHH56

4 AGG$chhuc&:;;;**;7DJJ'c):; JABIJs   A1C- #A	C- -
D7DDc                 F   ^  [         R                  " T 5      U 4S j5       nU$ )z
Automatic retry after EINTR.
c                     >   T" U 0 UD6$ ! [          a(  n[        U5      [        R                  :w  a  e  S nAOS nAff = fM@  rE   )r~   r4   errnoEINTR)r!   rJ   excfuncs      r$   wrapped_eintr_retry.<locals>.wrapped   sH    T,V,, S>U[[0 1 s    
>9>)	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J._  
  s"   B B 
BB	BB