Ë
    oPêj5  ã                  óÀ   — 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       úS/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/coverage/patch.pyÚapply_patchesr      s�   € ð —\‘\ 'Ô*‰E´³€EÜœ˜FŸL™LÓ)Ó*ò >ˆØÝÜ˜S %Õ(åÜ˜S &¨%Õ0åÜ˜EÕ"ãÜ! &¨%Õ0àÜ! N°5°)Ð"<Ó=Ð=ñ>ó    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   sn   ø€ Ü× Ñ ¤Ó+ñ 	<Ø�K‰KÐ8°#°Ð:Ô;÷	<ä× Ñ ¤Ó+ñ 	Ø�H‰HŒJ÷	á�Õ÷		<ð 	<ú÷	ð 	ús   ›A3ÁA?Á3A<Á?BN)r(   ÚintÚreturnr   )r&   Úosr   )r   r   r*   r)   s   `` @r   r   r   /   s'   ú€ à	‡K�KÐ Ô!ä�x‰x€H÷ð &„B…Hr    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Ó/ñ LØ—‘Ð4°U°G¸=À#ÀÐJÔK÷Lä×$Ñ$¤YÓ/ñ Ø—‘”
÷ð �~‰~˜cÔ"à˜r™(�à5;×5EÑ5EÓ5G�Ð1Ñ2Ü—;’;ä/1¯y©y¸Ó/I�G˜OÑ,ô
 )+¯	©	Ð2GÓ(HÐH˜ÐUØ9E˜Ð 5Ñ6ô ')§i¡i°Ó&7�G˜F‘OÙ�tÐ&˜vÓ&÷-Lð Lú÷ð ú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à	‡K�KÐ Ô!÷$ñ:   ¬¯©Ó2„B„HÙ  ¬2¯9©9Ó5„B…Ir    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à	‡K�K�Ô Ü×ÑÐ';Ö<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   € à	‡K�KÐ%Ô&Ø×ÑÐ)Ð)Ð)Ø,2×,<Ñ,<Ó,>„B‡J�JÐ(Ò)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&ó %6óP=ô?r    