<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
2an.                 @   s  d dl Z 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	 ddddd	d
dddddddddgZ
d ZdZdZdZdZdZdZdadadd Zdd Zdd Zdd Zdd	 Zd6d d
Zd!d Zej Zej Zd"d# Zd$d Z i Z!ej Z"G d%d de#Z$d7d&d'Z%d(d Z&da'eee%e	j(e	j)fd)d*Z*ej+e* G d+d de#Z,G d,d dej-Z.ye j/d-Z0W n e1k
r   d.Z0Y nX d/d Z2d0d1 Z3d2d3 Z4d4d5 Z5dS )8    N)_args_from_interpreter_flags   )process	sub_debugdebuginfosub_warning
get_loggerlog_to_stderrget_temp_dirregister_after_fork
is_exitingFinalizeForkAwareThreadLockForkAwareLocalclose_all_fds_exceptSUBDEBUG
SUBWARNING   
         Zmultiprocessingz+[%(levelname)s/%(processName)s] %(message)sFc             G   s   t rt jt| f|  d S )N)_loggerlogr   )msgargs r   )/opt/alt/python36/lib64/python3.6/util.pyr   ,   s    c             G   s   t rt jt| f|  d S )N)r   r   DEBUG)r   r   r   r   r   r   0   s    c             G   s   t rt jt| f|  d S )N)r   r   INFO)r   r   r   r   r   r   4   s    c             G   s   t rt jt| f|  d S )N)r   r   r   )r   r   r   r   r   r   8   s    c           
   C   s|   dd l } | j  z\tsj| jtadt_ttdrFtjt	 tj
t	 n$tjjt	f i f tjjt	f i f W d | j  X tS )Nr   
unregister)loggingZ_acquireLockr   Z	getLoggerLOGGER_NAMEZ	propagatehasattratexitr    _exit_functionregisterZ_exithandlersremoveappendZ_releaseLock)r!   r   r   r   r	   <   s    



c             C   sJ   dd l }t }|jt}|j }|j| |j| | rB|j|  dat	S )Nr   T)
r!   r	   Z	FormatterDEFAULT_LOGGING_FORMATZStreamHandlerZsetFormatterZ
addHandlerZsetLevel_log_to_stderrr   )levelr!   Zlogger	formatterZhandlerr   r   r   r
   W   s    



c              C   sd   t j jjd} | d kr`dd l}dd l}|jdd} td|  td |j	| gdd | t j jd< | S )	Ntempdirr   zpymp-)prefixzcreated temp directory %sd   )r   exitpriorityi)
r   current_processZ_configgetshutiltempfileZmkdtempr   r   Zrmtree)r-   r3   r4   r   r   r   r   m   s    
c              C   sj   t tj } | j  xP| D ]H\\}}}}y|| W q tk
r` } ztd| W Y d d }~X qX qW d S )Nz after forker raised exception %s)list_afterfork_registryitemssort	Exceptionr   )r7   indexZidentfuncobjer   r   r   _run_after_forkers   s    r>   c             C   s   | t ttt| |f< d S )N)r6   next_afterfork_counterid)r<   r;   r   r   r   r      s    c               @   sH   e Zd Zf ddfddZdeeejfddZdd Z	dd	 Z
d
d ZdS )r   Nc             C   sT   |d k	rt j|| | _n || _|| _|p*i | _|ttf| _t	j
 | _| t| j< d S )N)weakrefref_weakref	_callback_args_kwargsr?   _finalizer_counter_keyosgetpid_pid_finalizer_registry)selfr<   callbackr   kwargsr0   r   r   r   __init__   s    

zFinalize.__init__c             C   s   y|| j = W n tk
r(   |d Y nbX | j| krD|d d }n$|d| j| j| j | j| j| j}d  | _ | _ | _ | _| _ |S d S )Nzfinalizer no longer registeredz+finalizer ignored because different processz/finalizer calling %s with args %s and kwargs %s)rI   KeyErrorrL   rE   rF   rG   rD   )rN   wrrM   r   rK   resr   r   r   __call__   s    zFinalize.__call__c             C   sD   yt | j= W n tk
r    Y n X d  | _ | _ | _ | _| _d S )N)rM   rI   rR   rD   rE   rF   rG   )rN   r   r   r   cancel   s
    zFinalize.cancelc             C   s
   | j tkS )N)rI   rM   )rN   r   r   r   still_active   s    zFinalize.still_activec             C   s   y| j  }W n ttfk
r(   d }Y nX |d kr>d| jj S d| jjt| jd| jf }| jrr|dt| j 7 }| j	r|dt| j	 7 }| j
d d k	r|dt| j
d  7 }|d S )	Nz<%s object, dead>z<%s object, callback=%s__name__z, args=z	, kwargs=r   z, exitprority=>)rD   AttributeError	TypeError	__class__rX   getattrrE   rF   strrG   rI   )rN   r<   xr   r   r   __repr__   s     
zFinalize.__repr__)rX   
__module____qualname__rQ   rM   r   rJ   rK   rU   rV   rW   r`   r   r   r   r   r      s   c                s   t d krd S d krdd  nfdd  fddtt D }|jdd xX|D ]P}t j|}|d k	rRtd| y
|  W qR tk
r   d	d l}|j  Y qRX qRW d krt j  d S )
Nc             S   s   | d d k	S )Nr   r   )pr   r   r   <lambda>   s    z!_run_finalizers.<locals>.<lambda>c                s   | d d k	o| d  kS )Nr   r   )rc   )minpriorityr   r   rd      s    c                s   g | ]} |r|qS r   r   ).0key)fr   r   
<listcomp>   s    z#_run_finalizers.<locals>.<listcomp>T)reversez
calling %sr   )	rM   r5   r8   r2   r   r9   	traceback	print_excclear)re   keysrg   	finalizerrk   r   )rh   re   r   _run_finalizers   s$    




rp   c               C   s   t p
t d kS )N)_exitingr   r   r   r   r     s    c             C   s   t sda | d |d |d | d k	rzx*| D ] }|jr2| d|j |jj  q2W x"| D ]}| d|j |j  q^W |d |  d S )NTzprocess shutting downz2running all "atexit" finalizers with priority >= 0r   z!calling terminate() for daemon %szcalling join() for process %sz)running the remaining "atexit" finalizers)rq   ZdaemonnameZ_popenZ	terminatejoin)r   r   rp   active_childrenr1   rc   r   r   r   r%     s    	
r%   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
r   c             C   s   | j   t| tj  d S )N)_resetr   r   )rN   r   r   r   rQ   K  s    zForkAwareThreadLock.__init__c             C   s"   t j | _| jj| _| jj| _d S )N)	threadingZLock_lockacquirerelease)rN   r   r   r   ru   O  s    

zForkAwareThreadLock._resetc             C   s
   | j j S )N)rw   	__enter__)rN   r   r   r   rz   T  s    zForkAwareThreadLock.__enter__c             G   s   | j j| S )N)rw   __exit__)rN   r   r   r   r   r{   W  s    zForkAwareThreadLock.__exit__N)rX   ra   rb   rQ   ru   rz   r{   r   r   r   r   r   J  s   c               @   s   e Zd Zdd Zdd ZdS )r   c             C   s   t | dd  d S )Nc             S   s
   | j j S )N)__dict__rm   )r<   r   r   r   rd   ]  s    z)ForkAwareLocal.__init__.<locals>.<lambda>)r   )rN   r   r   r   rQ   \  s    zForkAwareLocal.__init__c             C   s   t | f fS )N)type)rN   r   r   r   
__reduce__^  s    zForkAwareLocal.__reduce__N)rX   ra   rb   rQ   r~   r   r   r   r   r   [  s   SC_OPEN_MAX   c             C   sR   t | dtg } | j  x4tt| d D ] }tj| | d | |d   q*W d S )Nr   )r5   MAXFDr8   rangelenrJ   
closerange)Zfdsir   r   r   r   j  s    c              C   s   t jd krd S yt jj  W n ttfk
r4   Y nX y@tjtjtj} yt| ddt _W n   tj|   Y nX W n ttfk
r   Y nX d S )NF)closefd)	sysstdincloseOSError
ValueErrorrJ   opendevnullO_RDONLY)fdr   r   r   _close_stdint  s    

r   c               C   sT   yt jj  W n ttfk
r&   Y nX yt jj  W n ttfk
rN   Y nX d S )N)r   stdoutflushrZ   r   stderrr   r   r   r   _flush_std_streams  s    r   c             C   st   dd l }tttt|}tj \}}z2|j|tj| gd|d d ddddd	d
||ddd S tj	| tj	| X d S )Nr   Tr   Fr   r   r   r   r   r   )
_posixsubprocesstuplesortedmapintrJ   pipeZ	fork_execfsencoder   )pathr   Zpassfdsr   Zerrpipe_readZerrpipe_writer   r   r   spawnv_passfds  s    

r   )N)N)6rJ   	itertoolsr   rB   r$   rv   
subprocessr    r   __all__ZNOTSETr   r   r   r   r"   r)   r   r*   r   r   r   r   r	   r
   r   WeakValueDictionaryr6   countr@   r>   r   rM   rH   objectr   rp   r   rq   rt   r1   r%   r&   r   Zlocalr   sysconfr   r9   r   r   r   r   r   r   r   r   <module>
   sf   


	S
,(



