[&Ů? d Z ddlmZ ddlZddlZddlZddlmZmZm Z m Z ddlmZ ddl mZ ddlmZmZ ddlmZ e rdd lmZ dd Z G d d ZdS )zLCOV reporting for coverage.py. )annotationsN)IOIterableOptional TYPE_CHECKING)FileReporter)get_analysis_to_report)AnalysisNumbers)TMorf)Coveragelinestrreturnc t j | d }t j | d d S )z9Produce a hash of a source line for use in the LCOV file.zutf-8ascii=)hashlibmd5encodedigestbase64 b64encodedecoderstrip)r hasheds g/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib64/python3.11/site-packages/coverage/lcovreport.py line_hashr sV [W-- . . 5 5 7 7FF##**733::3??? c . e Zd ZdZdZddZdd ZddZdS )LcovReporterz-A reporter for writing LCOV coverage reports.zLCOV reportcoverager r Nonec Z || _ t | j j j | _ d S N)r" r config precisiontotal)selfr" s r __init__zLcovReporter.__init__" s$ T]1;<< r morfsOptional[Iterable[TMorf]]outfileIO[str]floatc | j |pt j }t | j | D ]\ }}| ||| | j j o| j j S )zRenders the full lcov report. `morfs` is a list of modules or filenames outfile is the file object to write the file into. ) r" get_datasysstdoutr get_lcovr( n_statements pc_covered)r) r+ r- franalysiss r reportzLcovReporter.report&