§
    0›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dS )z!Invasive patches for coverage.py.é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚNoReturn)Úenv)ÚDevNullDebug)ÚConfigErrorÚCoverageException)ÚCoverage)ÚCoverageConfig)Ú	TDebugCtlÚcovr   Úconfigr   Údebugr   ÚreturnÚNonec                óz  — |                      d¦  «        r|nt          ¦   «         }t          t          |j        ¦  «        ¦  «        D ]s}|xdk    r t          | |¦  «         Œxdk    r t          | ||¦  «         Œ4xdk    r t          |¦  «         ŒKdk    rt          ||¦  «         Œa	 t          d|›�¦  «        ‚dS )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	   )r   r   r   r   s       úM/home/lighthouse/health/venv/lib64/python3.11/site-packages/coverage/patch.pyÚapply_patchesr!      sÞ   € ð —\’\ 'Ñ*Ô*Ð>ˆEˆEµ±´€EÝ�˜FœLÑ)Ô)Ñ*Ô*ð >ð >ˆØØ�’��Ý˜S %Ñ(Ô(Ð(Ð(à�’��Ý˜S &¨%Ñ0Ô0Ð0Ð0à�’��Ý˜EÑ"Ô"Ð"Ð"à’�Ý! &¨%Ñ0Ô0Ð0Ð0àÝ!Ð"<°5Ð"<Ð"<Ñ=Ô=Ð=ð>ð >ó    c                óv   ‡ ‡‡— ‰                      d¦  «         t          j        Šdˆ ˆˆfd„}|t          _        dS )	zPatch os._exit.zPatching _exitÚstatusÚintr   r   c                ó:  •— t          j        t          ¦  «        5  ‰                     d‰›�¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  ‰                     ¦   «          d d d ¦  «         n# 1 swxY w Y    ‰| ¦  «         d S )NzUsing _exit patch with cov = )Ú
contextlibÚsuppressÚ	ExceptionÚwriteÚsave)r$   r   r   Úold_exits    €€€r    Úcoverage_os_exit_patchz,_patch__exit.<locals>.coverage_os_exit_patch5   s  ø€ ÝÔ ¥Ñ+Ô+ð 	<ð 	<Ø�KŠKÐ:°#Ð:Ð:Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<åÔ ¥Ñ+Ô+ð 	ð 	Ø�HŠH‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	àˆ�ÑÔÐÐÐs#   ›A Á AÁAÁ$BÂB	ÂB	N)r$   r%   r   r   )r*   Úosr   )r   r   r-   r,   s   `` @r    r   r   /   sT   øøø€ à	‡K‚KÐ Ñ!Ô!Ð!åŒx€Hðð ð ð ð ð ð ð ð &…B„H€H€Hr"   c                óü   ‡ ‡‡— t           j        rt          d¦  «        ‚‰                     d¦  «         dˆˆ ˆfd„} |d	t          j        ¦  «        t          _         |d
t          j        ¦  «        t          _        dS )z$Patch the execv family of functions.z+patch=execv isn't supported yet on Windows.zPatching execvÚfnameÚstrÚ	old_execvr   r   c                ó    •‡ ‡— dˆˆˆˆ ˆfd„}|S )NÚargsr   Úkwargsr   c                 óL  •— t          j        t          ¦  «        5  ‰                     d‰› d‰›�¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  ‰                     ¦   «          d d d ¦  «         n# 1 swxY w Y   ‰                     d¦  «        rt| d         }‰                     ¦   «         |d<   t          j        rIt          j
        d¦  «        |d<   t          j
        d¦  «        x}�||d<   t          j
        d¦  «        |d<    ‰| i |¤Ž d S )	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)	r4   r5   Únew_envÚcache_prefixr   r   r   r0   r2   s	       €€€€€r    Úcoverage_execv_patchzD_patch_execv.<locals>.make_execv_patch.<locals>.coverage_execv_patchG   s·  ø€ ÝÔ$¥YÑ/Ô/ð Lð LØ—’ÐJ°UÐJÐJÀ#ÐJÐJÑKÔKÐKðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð LåÔ$¥YÑ/Ô/ð ð Ø—’‘
”
�
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �~Š~˜cÑ"Ô"ð 8à˜rœ(�à5;×5EÒ5EÑ5GÔ5G�Ð1Ñ2Ý”;ð 8å/1¬y¸Ñ/IÔ/I�G˜OÑ,õ
 )+¬	Ð2GÑ(HÔ(HÐH˜ÐUØ9E˜Ð 5Ñ6õ ')¤i°Ñ&7Ô&7�G˜F‘OØˆI�tÐ&˜vÐ&Ð&Ð&Ð&Ð&s#   ›AÁAÁ
AÁ'BÂBÂB)r4   r   r5   r   r   r   © )r0   r2   rC   r   r   r   s   `` €€€r    Úmake_execv_patchz&_patch_execv.<locals>.make_execv_patchF   s?   øøø€ ð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð2 $Ð#r"   r   ÚexecveN)r0   r1   r2   r   r   r   )r   ÚWINDOWSr
   r*   r.   r   rF   )r   r   r   rE   s   ``` r    r   r   ?   sŒ   øøø€ å
„{ð OÝÐ MÑNÔNÐNà	‡K‚KÐ Ñ!Ô!Ð!ð$ð $ð $ð $ð $ð $ð $ð $ð:  Ð ­¬Ñ2Ô2…B„HØ Ð  ­2¬9Ñ5Ô5…B„I€I€Ir"   c                óœ   — ddl m} t          j        rt	          d¦  «        ‚|                      d¦  «         t          j        |¬¦  «         dS )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.controlrI   r   rG   r
   r*   r.   Úregister_at_fork)r   rI   s     r    r   r   g   s[   € à5Ð5Ð5Ð5Ð5Ð5å
„{ð NÝÐ LÑMÔMÐMà	‡K‚K�Ñ Ô Ð ÝÔÐ';Ð<Ñ<Ô<Ð<Ð<Ð<r"   c                ó„   — |                      d¦  «         | j        €J ‚|                      ¦   «         t          j        d<   dS )zBWrite .pth files and set environment vars to measure subprocesses.zPatching subprocessNr9   )r*   Úconfig_filer>   r.   Úenviron)r   r   s     r    r   r   r   sC   € à	‡K‚KÐ%Ñ&Ô&Ð&ØÔÐ)Ð)Ð)Ø,2×,<Ò,<Ñ,>Ô,>…B„JÐ(Ñ)Ð)Ð)r"   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   )Ú__doc__Ú
__future__r   r'   r.   Útypingr   r   r   Úcoverager   Úcoverage.debugr   Úcoverage.exceptionsr	   r
   r   Úcoverage.configr   Úcoverage.typesr   r!   r   r   r   r   rD   r"   r    ú<module>rX      s;  ðð (Ð 'à "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 	€	€	€	Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >àð )Ø!Ð!Ð!Ð!Ð!Ð!Ø.Ð.Ð.Ð.Ð.Ð.Ø(Ð(Ð(Ð(Ð(Ð(ð>ð >ð >ð >ð2&ð &ð &ð &ð %6ð %6ð %6ð %6ðP=ð =ð =ð =ð?ð ?ð ?ð ?ð ?ð ?r"   