Your IP : 216.73.216.213


Current Path : /opt/alt/python37/lib64/python3.7/site-packages/coverage/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/coverage/__pycache__/multiproc.cpython-37.pyc

B

�ÔW��@s�dZddlZddlZddlZddlZddlmZdZdZej	dkrLej
jZnej
ZejZGdd�de�ZGd	d
�d
e�Zeed�dd
��ZdS)z>Monkey-patching to add multiprocessing support for coverage.py�N)�contractz_coverage$patchedZ_COVERAGE_RCFILE)��c@seZdZdZdd�ZdS)�ProcessWithCoveragez<A replacement for multiprocess.Process that starts coverage.cCsJddlm}tjt}|d|d�}|��zt|�S|��|��XdS)z,Wrapper around _bootstrap to start coverage.r)�CoverageT)Zdata_suffix�config_fileN)	�coverager�os�environ�COVERAGE_RCFILE_ENV�start�original_bootstrap�stopZsave)�selfr�rcfileZcov�r�E/opt/alt/python37/lib64/python3.7/site-packages/coverage/multiproc.py�
_bootstraps
zProcessWithCoverage._bootstrapN)�__name__�
__module__�__qualname__�__doc__rrrrrrsrc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�StowawayzLAn object to pickle, so when it is unpickled, it can apply the monkey-patch.cCs
||_dS)N)r)rrrrr�__init__.szStowaway.__init__cCs
d|jiS)Nr)r)rrrr�__getstate__1szStowaway.__getstate__cCst|d�dS)Nr)�patch_multiprocessing)r�staterrr�__setstate__4szStowaway.__setstate__N)rrrrrrrrrrrr,sr)rc	s�ttt�rdStjdkr"tjt_ntt_�t	j
t<yddlm}|j
�Wnttfk
r`YnX��fdd�}||_
tttd�dS)z�Monkey-patch the multiprocessing module.

    This enables coverage measurement of processes started by multiprocessing.
    This involves aggressive monkey-patching.

    `rcfile` is the path to the rcfile being used.

    N)rrr)�spawncs�|�}t��|d<|S)z@Get the original preparation data, and also insert our stowaway.Zstowaway)r)�name�d)�original_get_preparation_datarrr�"get_preparation_data_with_stowaway[szApatch_multiprocessing.<locals>.get_preparation_data_with_stowawayT)�hasattr�multiprocessing�PATCHED_MARKER�sys�version_inforr�OriginalProcess�Processr	r
rrZget_preparation_data�ImportError�AttributeError�setattr)rrr"r)r!rrr8s




r)rr$Zmultiprocessing.processr	r&Z
coverage.miscrr%rr'�processZBaseProcessr(r)rr
r�objectr�strrrrrr�<module>s