!PdZddlmZddlZddlZddlZddlZddlZddl m Z ddl m Z m Z mZmZmZmZddlmZmZddlmZmZmZddlmZdd lmZdd lmZdd lm Z dd l!m"Z"erdd lm#Z#eeZdZ$d!dZ%e GddZ&d"dZ'GddZ(d#d Z)dS)$zXML reporting for coverage.py) annotationsN) dataclass)AnyDictIOIterableOptional TYPE_CHECKING) __version__files)isolate_module human_sortedhuman_sorted_items) FileReporter)get_analysis_to_report)Analysis)TMorf)__url__)CoveragezQhttps://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtdhitintnumreturnstrc"|dkrdSd||z zS)z0Return the fraction of `hit`/`num`, as a string.r1z%.4g)rrs /srv/buildsys-work-dir/castor/build_node/builder-2/WGSG1/unpkd_srcs/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/coverage/xmlreport.pyrater"s axxss##cFeZdZUdZded<ded<ded<ded<ded<d S) PackageDataz2Data we keep about each "package" (in Java terms).z"Dict[str, xml.dom.minidom.Element]elementsrhitslinesbr_hitsbranchesN)__name__ __module__ __qualname____doc____annotations__rr rr"r"*sF<<0000 IIIJJJLLLMMMMMr r"parentrchildNonec0||dS)z=Append a child to a parent, in a way mypy will shut up about.N) appendChild)r-r.s rr1r14s ur c0eZdZdZdZddZdddZddZdS) XmlReporterzs  m* EE ;  /{) / /7>>#&&/{1<!jj//#6s;;%))#...02  ...r NmorfsOptional[Iterable[TMorf]]outfileOptional[IO[str]]floatc  |p tj}|j}t jj}|J| ddd|_ |j j }| dt| dttt!jdz||j dt&d||j dt(dt+|j|D]\}}|||||j d }||t1|jD]V} |j d } t#|| |j | } t#| | Wd \} } d \}}|j d }||t7|jD]k\}}|j d }t#|||j d}t#||t7|jD]\}}t#||| d|t@j!d| dtE|j#|j$|rtE|j%|j&}nd}| d|| dd| |j#z } | |j$z } ||j%z }||j&z }m| dt| | dt| | dtE| | |rk| dt|| dt|| dtE||nB| dd| dd| dd| dd|'tQ|j | |z}|dkrd}n d| |zz|z }|S)zGenerate a Cobertura-compatible XML report for `morfs`. `morfs` is a list of modules or file names. `outfile` is a file object to write the XML to. Nr4version timestampiz Generated by coverage.py:  z Based on sourcesr:)rrrBpackageclassesname. line-rate0 branch-rate complexityz lines-validz lines-coveredzbranches-validzbranches-coveredrggY@))sysstdoutr4get_datahas_arcsxmldomminidomgetDOMImplementationcreateDocumentxml_outdocumentElement setAttributer rrtimer1 createCommentrDTD_URLrxml_file createElementrr9createTextNoderrBitemsr#replacer;seprr$r%r&r'write serialize_xml)rCrFrHr[impl xcoveragefranalysisxsourcesr<xsourcetxtlnum_tot lhits_totbnum_tot bhits_tot xpackagespkg_namepkg_dataxpackagexclasses_ class_elt branch_ratedenompcts rreportzXmlReporter.reportNs 'SZ=))++4466w3355**4TBB L0 y+666{CDIKK4D0E0E,F,FGGGdl88 4' 4 4 4      dl889Pg9P9P9PQQRRR34=%HH 2 2LB MM"h 1 1 1 1<--i88h'''!!233 & &Dl00::G ' * * *,--d33C  % % % %")")L..z:: i(((#5T]5H5H5J5J"K"K * * Hh|11)</R/R S S S ""8#3X5FGG !  ! !- = = =  ! !, 4 4 4  &I  &H ) )I ) )HH}c(mm<<<I???{DH,E,EFFF  7  " "#3S]] C C C  " "#5s9~~ F F F  " "=$y(2K2K L L L L  " "#5s ; ; ;  " "#3S 9 9 9  " "=# 6 6 6|S111  mDL112228# A::CC9y01E9C r rqrrrrr[boolc  |jjr|jjdkrdS|jdd}|jD]j}|jjstj |}| |dddzr|t|dzd}nqk| dd}|j |jdt| dtj|pd}d|dd|jj}|dd}|j|t/idddd} |jd} t5| |jd |jd } t5| | | d tj||| d |dd| d d|} |} t?|j D]}|jd}|dtC||dtCtE||j#v|r|| vrC| |\}}|dd|ddd|z|z||fz|| vr;d| |D}|dd|t5| |t|j }|t|j#z }|r\tId| %D}tId| %D}||z }nd}d}| dtM|||rtM||}nd}| d|| | j'|<| xj(|z c_(| xj)|z c_)| xj*|z c_*| xj+|z c_+dS)z(Add to the XML report for a single file.rN\/r6rSclassmethodsr%rRfilenamerWrUlinenumberr$branchtruezcondition-coveragez %d%% (%d/%d)dc<g|]}|dkrdnt|S)rexit)r).0bs r z(XmlReporter.xml_file..s*___!a%%SVV___r zmissing-branches,c3 K|] \}}|V dSNrrtks r z'XmlReporter.xml_file..s& E Etq! E E E E E Er c3&K|] \}}||z V dSrrrs rrz'XmlReporter.xml_file..s*"K"KTQ1q5"K"K"K"K"K"Kr rTrV),r7 skip_emptynumbers n_statementsrrkr9r>r r@ startswithlenrelative_filenamerAr?r;r<dirnamejoinsplitxml_package_depthrB setdefaultr"rarhr1rcrelpath branch_statsmissing_branch_arcssorted statementsrrmissingsumvaluesrr#r$r%r&r')rCrqrrr[r source_pathrel_namer package_namerPxclassxlinesrrrxlinetotaltakenannlines class_lines class_hitsclass_branchesmissing_branches class_br_hitsrs rrgzXmlReporter.xml_files ; ! ,11;&&tS11, N NK;- D#6{CC "";#6#6tS#A#AC#GHH #C $4$4Q$6$7$78 ++--55dC@@H   ! !"+oH ~o">"E"Ee"L"L M M M'//(++2s((7==--.Lt{/L.LMNNsC00 -**<RAqRS9T9TUU*.,*D*DW*M*MFDL66yAABBB++G44FF###FBGOOHg$F$FGGGJ(8(8s(C(CDDDL#...,,.. &::<<8.// ' 'DL..v66E   xT 3 3 3   vs3t8;K/K+L+L'M'M N N N O<''#/#5LE5&&x888&&,&#e)U*:E5)II...__EXY]E^___H&&'9388H;M;MNNN  & & & &(-..  3x'7#8#88   E E|/B/B/D/D E E EEEN""K"K\5H5H5J5J"K"K"KKK *-==MMNM Kj+)F)FGGG  }n==KKKM;777%+" "  $ =(N*r )r4rrr/r)rFrGrHrIrrJ)rqrrrrr[rrr/)r(r)r*r+ report_typerErrgrr rr3r39slFFK//// ZZZZZxU+U+U+U+U+U+r r3r]xml.dom.minidom.Documentc*|S)z Serialize a minidom node to XML.) toprettyxml)r]s rrnrns ??  r )rrrrrr)r-rr.rrr/)r]rrr)*r+ __future__rr;os.pathrXrdxml.dom.minidomr\ dataclassesrtypingrrrrr r r4r r coverage.miscr rrcoverage.pluginrcoverage.report_corercoverage.resultsrcoverage.typesrcoverage.versionrrrfrr"r1r3rnrr rrs$#""""""  !!!!!!CCCCCCCCCCCCCCCC''''''''JJJJJJJJJJ((((((777777%%%%%% $$$$$$"!!!!!!^B ^$$$$   F+F+F+F+F+F+F+F+Rr