2šFNdZddlmZddlZddlZddlmZmZmZddl m Z ddl m Z m Z ddlmZddlmZdd lmZdd lmZerdd lmZe eZGd d ZdS)z'Source file annotation for coverage.py.) annotationsN)IterableOptional TYPE_CHECKING) flat_rootname) ensure_dirisolate_module) FileReporter)get_analysis_to_report)Analysis)TMorf)CoveragecleZdZdZddZejdZejdZdddZ ddZ d S)AnnotateReporteraGenerate 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 "-". coveragerreturnNonecD||_|jj|_d|_dSN)rconfig directory)selfrs /srv/buildsys-work-dir/castor/build_node/builder-2/WGSG1/unpkd_srcs/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/coverage/annotate.py__init__zAnnotateReporter.__init__0s   m* (,z\s*(#|$)z\s*else\s*:\s*(#|$)NmorfsOptional[Iterable[TMorf]]r Optional[str]c||_|jt|j|D]\}}|||dS)zIRun the report. See `coverage.report()` for arguments. N)rrget_datar annotate_file)rrrfranalysiss rreportzAnnotateReporter.report8sa #    24=%HH - -LB   r8 , , , , - -rr"r r#r c&t|j}t|j}t|j}|jrt |jt j|jt| }| dr |dddz}|dz }n |j dz}t|dd5}d x}} d } |} t| d d D]\} } |t#|kr0||| kr$|d z }|t#|kr ||| k$| t#|kr0|| | kr$| d z } | t#|kr || | k$|t#|kr+||| kr| t#|kp || | k} |j| r|d n|j| rg| t#|kr|dn|||| kr|dn]|dnG| |vr|dn-| r|dn|d||  ddddS#1swxYwYdS)z]Annotate a single file. `fr` is the FileReporter for the file to annotate. _pyNz.pyz,coverwzutf-8)encodingrT)startz z> z! z- )sorted statementsmissingexcludedrrospathjoinrrelative_filenameendswithfilenameopensource enumerate splitlineslenblank_rematchwriteelse_re)rr"r#r-r.r/ dest_filedestijcoveredr7linenolines rr!zAnnotateReporter.annotate_fileCsX H/00 )**(+,, > / t~ & & & T^]2CWCWCYCY5Z5Z[[I!!%(( 3%crcNU2  !II h.I )S7 3 3 3 !tIAGYY[[F )&*;*;D*A*A K K K ! ! #j//))jmf.D.DFA#j//))jmf.D.D#g,,&&71:+>+>FA#g,,&&71:+>+>s:&&:a=F+B+B3w<</F71:3FG=&&t,,%JJt$$$$\''-- %CLL(( 4((((#A'!*44 4(((( 4((((x''JJt$$$$%JJt$$$$JJt$$$ 4    1 !  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s HLL  L )rrrrr)rrrrrr)r"r r#r rr) __name__ __module__ __qualname____doc__rrecompiler;r>r$r!rrrrs*---- rz+&&Hbj/00G - - - - -/!/!/!/!/!/!rr)rI __future__rr0rJtypingrrrcoverage.filesr coverage.miscrr coverage.pluginr coverage.report_corer coverage.resultsr coverage.typesr rrrrLrrrUs&.-"""""" 4444444444((((((44444444((((((777777%%%%%% "!!!!!!^BX!X!X!X!X!X!X!X!X!X!r