|䰾qdZddlmZddlZddlZddlZddlmZmZm Z m Z m Z m Z m Z mZddlmZddlmZddlmZmZddlmZmZer dd lmZdd lmZGd d ZddZdS)zJson reporting for coverage.py) annotationsN)AnyDictIOIterableListOptionalTuple TYPE_CHECKING) __version__)get_analysis_to_report)AnalysisNumbers)TMorfTLineNo)Coverage) CoverageDatac.eZdZdZdZddZdd ZddZdS) JsonReporterz-A reporter for writing JSON coverage results.z JSON reportcoveragerreturnNonec||_|jj|_t|jj|_i|_dS)N)rconfigr precisiontotal report_data)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/jsonreport.py__init__zJsonReporter.__init__s7  m* T[233 +-morfsOptional[Iterable[TMorf]]outfileIO[str]floatc|p tj}|j}||jjttj | |jj d|j d<i}t|j|D]0\}}|||||<1||j d<|jj|jj|jj|jj|jj|jjd|j d<| rM|j d|jj|jj|jj|jjdt;j|j ||jjrdnd |jjo |jjS) zGenerate a json report for `morfs`. `morfs` is a list of modules or file names. `outfile` is a file object to write the json to. )version timestampbranch_coverage show_contextsmetafiles covered_linesnum_statementspercent_coveredpercent_covered_display missing_linesexcluded_linestotals num_branchesnum_partial_branchescovered_branchesmissing_branchesN)indent) sysstdoutrget_dataset_query_contextsrreport_contextsr datetimenow isoformathas_arcsjson_show_contextsrr report_one_filerelative_filenamer n_executed n_statements pc_coveredpc_covered_str n_missing n_excludedupdate n_branchesn_partial_branchesn_executed_branchesn_missing_branchesjsondumpjson_pretty_print)rr"r$ coverage_datameasured_files file_reporteranalysiss rreportzJsonReporter.report#s'SZ ..00 (()DEEE"!*..00::<<,5577![; $ $  '=dmU'S'S   #M8@D@T@TAAN=::<< = = %3!"Z2"j5#z4'+z'@!Z1"j3 & & "  ! ! # #   X & - - $ 5(, (E$(J$B$(J$A //      6@AAD    z&@4:+@@r!rWrrZrDict[str, Any]c|j}|xj|z c_|j|j|j|j|j|jd}t|j |t|j t|j d}|j j r"|j|j|d<|r||j|j|j|jdt/t1||d<t/t1||d<|S)z3Extract the relevant report data for a single file.r.)executed_linessummaryr3r4contextsr6executed_branchesr:)numbersrrIrJrKrLrMrNsortedexecutedmissingexcludedrrFdatacontexts_by_linenofilenamerErOrPrQrRrSlist_convert_branch_arcsexecuted_branch_arcsmissing_branch_arcs)rrWrZnumsr_ reported_files rrGzJsonReporter.report_one_fileWs] d !_"/#'+':!^"o   %X%677#H$455$X%677   ; ) \(0 (H(HIZ([([M* %  ! ! # #  NN $(,(?$($<$($;     26$X%B%B%D%DEE22M- .15$X%A%A%C%CDD11M, -r!N)rrrr)r"r#r$r%rr&)rWrrZrrr\)__name__ __module__ __qualname____doc__ report_typer r[rGr!rrrs`77K.... 2A2A2A2Ah!!!!!!r!r branch_arcsDict[TLineNo, List[TLineNo]]r!Iterable[Tuple[TLineNo, TLineNo]]c#TK|D]\}}|D]}||fV dS)z4Convert branch arcs to a list of two-element tuples.N)items)rvsourcetargetstargets rrkrk{sX',,..!! ! !F&.  !!!r!)rvrwrrx)rs __future__rrBrTr=typingrrrrrr r r rr coverage.report_corer coverage.resultsrrcoverage.typesrrr coverage.datarrrkrur!rrsE%$"""""" PPPPPPPPPPPPPPPPPPPP 777777........))))))))+!!!!!!******````````F!!!!!!r!