L idZddlmZddlZddlZddlZddlmZddlm Z m Z ddl m Z ddl mZddlmZmZmZdd lmZe rdd lmZdd Z dd Z dd Z ddZGddZy)zLCOV reporting for coverage.py.) annotationsN)Iterable)IO TYPE_CHECKING) FileReporter)get_analysis_to_report)AnalysisAnalysisNarrowerNumbers)TMorf)Coveragectj|jddj}t j |j djdS)z9Produce a hash of a source line for use in the LCOV file.zutf-8F)usedforsecurityascii=)hashlibmd5encodedigestbase64 b64encodedecoderstrip)linehasheds Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/coverage/lcovreport.py line_hashrsM[[W-u E L L NF   F # * *7 3 : :3 ??c |d}|D]I}|rdt||dz z}t||jv}|jd|d||dK|jj dkDrS|jd|jj d|jd|jj dy y ) z0Emit line coverage records for an analyzed file.,zDA: rzLF:zLH:N)rintmissingwritenumbers n_statements n_executed)analysislines source_linesoutfile hash_suffixrhits r lcov_linesr0#sK9  ,tax*@ AAK$h.../ D63% }B78 9$$q( H,,99:"=> H,,778;<)rc |jDcgc]p}|jdk(r_|jrSt|jt|jt |jt |j|fr}}|syt |}|jd|D|jd}|D]\}}}|j|j} t| jjdkD} || z }|jd|d|d|jd|jd| d|jd|jd t|d|jd |dycc}w) z4Emit function coverage records for an analyzed file.functionNc3<K|]\}}}|jywN)r+).0_rs r z!lcov_functions..Us:WQ1:srzFN:r!r#zFNDA:zFNF:zFNH:) code_regionskindr+minstartmaxr add_regionssortnarrowr$r'r)r&namelen) fr file_analysisr-region functionsnarrower functions_hit first_line last_liner*r/s rlcov_functionsrK8sm,oo'   ;;* $  c&,,/ 0  c&,,/ 0  I  .H : :: NNM)25% Iv??6<<0(""--12  J.sIsc Isc|ddk|fS)NrrQ)ds rzlcov_arcs..s11 r)keyzBRDA:z,0,r!r#c3&K|] \}}| ywr4rQr5tks rr8zlcov_arcs..s 2DAqa 2sc3,K|] \}}||z ywr4rQrXs rr8zlcov_arcs..st2DE3S#JELE 3@2EF3S#JFLF   Il46HI I 56$ =HC''c2F MME$s6(!C5; < =;=D  2L//1 2 2C rs&"  $$(7@@ ! @== == =  =*,,,,,,,, ,,^1&1&1& 1& 1&  1&h@)@)r