
    V.j                        d Z ddlmZ ddlZddlZddlmZmZmZ ddl	m
Z
 ddlmZ ddlmZmZ erddl	mZ dd	lmZ dd
lmZ 	 	 	 	 	 	 	 	 ddZddZddZddZddZy)z!Invasive patches for coverage.py.    )annotationsN)TYPE_CHECKINGAnyNoReturn)env)DevNullDebug)ConfigErrorCoverageException)Coverage)CoverageConfig)	TDebugCtlc                6   |j                  d      r|n	t               }t        t        |j                              D ][  }|xdk(  r t        | |       xdk(  r t        | ||       +xdk(  r t        |       =dk(  rt        ||       N	 t        d|       y)z3Apply invasive patches requested by `[run] patch=`.patch_exitexecvfork
subprocesszUnknown patch N)
shouldr   sortedsetr   _patch__exit_patch_execv_patch_fork_patch_subprocessr	   )covconfigdebugr   s       PC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\coverage/patch.pyapply_patchesr      s|     \\'*EEFLL)*S%(S&%0E"!&%0!N5)"<== +    c                r     j                  d       t        j                  d fd}|t        _        y)zPatch os._exit.zPatching _exitc                   t        j                  t              5  j                  d       d d d        t        j                  t              5  j	                          d d d         |        y # 1 sw Y   DxY w# 1 sw Y   xY w)NzUsing _exit patch with cov = )
contextlibsuppress	Exceptionwritesave)statusr   r   old_exits    r   coverage_os_exit_patchz,_patch__exit.<locals>.coverage_os_exit_patch5   s^      +KK8#:; ,  +HHJ ,	 ,+++s   A3A?3A<?BN)r(   intreturnr   )r&   osr   )r   r   r*   r)   s   `` @r   r   r   /   s'    	KK !xxH &BHr    c                     t         j                  rt        d      j                  d       d fd} |dt        j
                        t        _         |dt        j                        t        _        y)z$Patch the execv family of functions.z+patch=execv isn't supported yet on Windows.zPatching execvc                      d fd}|S )Nc                 &   t        j                  t              5  j                  d d       d d d        t        j                  t              5  j	                          d d d        j                  d      rt| d   }j                         |d<   t        j                  rLt        j                  d      |d<   t        j                  d      x}||d<   t        j                  d      |d<    | i | y # 1 sw Y   xY w# 1 sw Y   xY w)	NzUsing execv patch for z with cov = eCOVERAGE_PROCESS_CONFIGCOVERAGE_COREPYTHONPYCACHEPREFIXPATH)r#   r$   r%   r&   r'   endswith	serializer   TESTINGr-   getenv)	argskwargsnew_envcache_prefixr   r   r   fname	old_execvs	       r   coverage_execv_patchzD_patch_execv.<locals>.make_execv_patch.<locals>.coverage_execv_patchG   s    $$Y/4UG=#JK 0$$Y/
 0 ~~c"r(5;5E5E5G12;;/1yy/IGO,
 )+		2G(HHU9E 56 ')ii&7GFOt&v&- 0///s   C;D;DD)r;   r   r<   r   r,   r    )r?   r@   rA   r   r   r   s   `` r   make_execv_patchz&_patch_execv.<locals>.make_execv_patchF   s    	' 	'2 $#r    r   execveN)r?   strr@   r   r,   r   )r   WINDOWSr
   r&   r-   r   rD   )r   r   r   rC   s   ``` r   r   r   ?   sN    
{{ MNN	KK !$:  2BH 2995BIr    c                    ddl m} t        j                  rt	        d      | j                  d       t        j                  |       y)z/Ensure Coverage is properly reset after a fork.r   )_after_fork_in_childz*patch=fork isn't supported yet on Windows.zPatching fork)after_in_childN)coverage.controlrH   r   rF   r
   r&   r-   register_at_fork)r   rH   s     r   r   r   g   s3    5
{{ LMM	KK ';<r    c                    |j                  d       | j                  J | j                         t        j                  d<   y)zBWrite .pth files and set environment vars to measure subprocesses.zPatching subprocessNr3   )r&   config_filer8   r-   environ)r   r   s     r   r   r   r   s9    	KK%&))),2,<,<,>BJJ()r    )r   r   r   r   r   r   r,   None)r   r   r   r   r,   rO   )r   r   r,   rO   )r   r   r   r   r,   rO   )__doc__
__future__r   r#   r-   typingr   r   r   coverager   coverage.debugr   coverage.exceptionsr	   r
   r   coverage.configr   coverage.typesr   r   r   r   r   r   rB   r    r   <module>rX      sl    ( "  	 / /  ' >!.(>	>> > 
	>2& %6P=?r    