§
    0›js  ã                  ó¾   — d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl	m
Z
mZ ddlmZ ddlmZ dd	lmZ dd
lmZ erddlmZ  ee¦  «        Z G d„ d¦  «        ZdS )z'Source file annotation for coverage.py.é    )ÚannotationsN)ÚTYPE_CHECKING)Úflat_rootname)Ú
ensure_dirÚisolate_module)ÚFileReporter)Úget_analysis_to_report)ÚAnalysis)ÚTMorfs)ÚCoveragec                  ól   — e Zd ZdZdd„Z ej        d¦  «        Z ej        d¦  «        Zddd„Z	dd„Z
d	S )ÚAnnotateReportera  Generate annotated source files showing line coverage.

    This reporter creates annotated copies of the measured source files. Each
    .py file is copied as a .py,cover file, with a left-hand margin annotating
    each line::

        > def h(x):
        -     if 0:   #pragma: no cover
        -         pass
        >     if x == 1:
        !         a = 1
        >     else:
        >         a = 2

        > h(2)

    Executed lines use ">", lines not executed use "!", lines excluded from
    consideration use "-".

    Úcoverager   ÚreturnÚNonec                óD   — || _         | j         j        | _        d | _        d S ©N)r   ÚconfigÚ	directory)Úselfr   s     úP/home/lighthouse/health/venv/lib64/python3.11/site-packages/coverage/annotate.pyÚ__init__zAnnotateReporter.__init__/   s    € Ø ˆŒØ”mÔ*ˆŒØ%)ˆŒˆˆó    z\s*(#|$)z\s*else\s*:\s*(#|$)NÚmorfsr   r   ú
str | Nonec                ó¨   — || _         | j                             ¦   «          t          | j        |¦  «        D ]\  }}|                      ||¦  «         ŒdS )zIRun the report.

        See `coverage.report()` for arguments.

        N)r   r   Úget_datar	   Úannotate_file)r   r   r   ÚfrÚanalysiss        r   ÚreportzAnnotateReporter.report7   sa   € ð #ˆŒØŒ×ÒÑ Ô Ð Ý2°4´=À%ÑHÔHð 	-ð 	-‰LˆB�Ø×Ò˜r 8Ñ,Ô,Ð,Ð,ð	-ð 	-r   r   r   r    r
   c                ó$  — t          |j        ¦  «        }t          |j        ¦  «        }t          |j        ¦  «        }| j        r}t          | j        ¦  «         t          j                             | j        t          | 
                    ¦   «         ¦  «        ¦  «        }|                     d¦  «        sJ ‚|dd…         dz   }n|j        }|dz  }t          |dd¬¦  «        5 }d	x}}	d
}
|                     ¦   «         }t          |                     d
¦  «        d¬¦  «        D �]×\  }}|t#          |¦  «        k     r0||         |k     r$|dz  }|t#          |¦  «        k     r||         |k     °$|	t#          |¦  «        k     r0||	         |k     r$|	dz  }	|	t#          |¦  «        k     r||	         |k     °$|t#          |¦  «        k     r+||         |k    r|	t#          |¦  «        k    p||	         |k    }
| j                             |¦  «        r|                     d¦  «         nÈ| j                             |¦  «        rg|	t#          |¦  «        k    r|                     d¦  «         n…||         ||	         k    r|                     d¦  «         n]|                     d¦  «         nG||v r|                     d¦  «         n-|
r|                     d¦  «         n|                     d¦  «         |                     |¦  «         �ŒÙ	 ddd¦  «         dS # 1 swxY w Y   dS )z]Annotate a single file.

        `fr` is the FileReporter for the file to annotate.

        Ú_pyNéýÿÿÿz.pyz,coverÚwzutf-8)Úencodingr   Té   )Ústartz  z> z! z- )ÚsortedÚ
statementsÚmissingÚexcludedr   r   ÚosÚpathÚjoinr   Úrelative_filenameÚendswithÚfilenameÚopenÚsourceÚ	enumerateÚ
splitlinesÚlenÚblank_reÚmatchÚwriteÚelse_re)r   r   r    r*   r+   r,   Ú	dest_fileÚdestÚiÚjÚcoveredr4   ÚlinenoÚlines                 r   r   zAnnotateReporter.annotate_fileB   sW  € õ ˜HÔ/Ñ0Ô0ˆ
Ý˜Ô)Ñ*Ô*ˆÝ˜(Ô+Ñ,Ô,ˆàŒ>ð 	$Ý�t”~Ñ&Ô&Ð&ÝœŸš T¤^µ]À2×CWÒCWÑCYÔCYÑ5ZÔ5ZÑ[Ô[ˆIØ×%Ò% eÑ,Ô,Ð,Ð,Ð,Ø! # 2 #œ¨Ñ.ˆIˆIàœˆIØ�XÑˆ	å�)˜S¨7Ð3Ñ3Ô3ð 	!°tØˆIˆA�ØˆGØ—Y’Y‘[”[ˆFÝ )¨&×*;Ò*;¸DÑ*AÔ*AÈÐ KÑ KÔ Kð !ñ !‘�˜Ø�#˜j™/œ/Ò)Ð)¨j¸¬m¸fÒ.DÐ.DØ˜‘F�Að �#˜j™/œ/Ò)Ð)¨j¸¬m¸fÒ.DÐ.Dà�#˜g™,œ,Ò&Ð&¨7°1¬:¸Ò+>Ð+>Ø˜‘F�Að �#˜g™,œ,Ò&Ð&¨7°1¬:¸Ò+>Ð+>à•s˜:‘”Ò&Ð&¨:°a¬=¸FÒ+BÐ+BØ¥3 w¡<¤<Ò/ÐF°7¸1´:ÀÒ3F�GØ”=×&Ò& tÑ,Ô,ð %Ø—J’J˜tÑ$Ô$Ð$Ð$Ø”\×'Ò'¨Ñ-Ô-ð %à�C ™LœLÒ(Ð(ØŸ
š
 4Ñ(Ô(Ð(Ð(Ø# Aœ¨'°!¬*Ò4Ð4ØŸ
š
 4Ñ(Ô(Ð(Ð(àŸ
š
 4Ñ(Ô(Ð(Ð(Ø˜xÐ'Ð'Ø—J’J˜tÑ$Ô$Ð$Ð$Øð %Ø—J’J˜tÑ$Ô$Ð$Ð$à—J’J˜tÑ$Ô$Ð$à—
’
˜4Ñ Ô Ð Ñ ð1!ð		!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   ÃHLÌL	ÌL	)r   r   r   r   r   )r   r   r   r   r   r   )r   r   r    r
   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚreÚcompiler8   r;   r!   r   © r   r   r   r      s„   € € € € € ðð ð**ð *ð *ð *ð
 ˆrŒz˜+Ñ&Ô&€HØˆbŒjÐ/Ñ0Ô0€Gð	-ð 	-ð 	-ð 	-ð 	-ð/!ð /!ð /!ð /!ð /!ð /!r   r   )rF   Ú
__future__r   r-   rG   Útypingr   Úcoverage.filesr   Úcoverage.miscr   r   Úcoverage.pluginr   Úcoverage.report_corer	   Úcoverage.resultsr
   Úcoverage.typesr   r   r   r   rI   r   r   ú<module>rR      s  ðð .Ð -à "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 	€	€	€	Ø  Ð  Ð  Ð  Ð  Ð  à (Ð (Ð (Ð (Ð (Ð (Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø (Ð (Ð (Ð (Ð (Ð (Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø %Ð %Ð %Ð %Ð %Ð %Ø !Ð !Ð !Ð !Ð !Ð !àð "Ø!Ð!Ð!Ð!Ð!Ð!à€^�BÑÔ€ðX!ð X!ð X!ð X!ð X!ñ X!ô X!ð X!ð X!ð X!r   