ó
    àÅŸgJ&  ã                  óF  • S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSK	J
r
  SSKJrJrJr  SSKJr  SSKJrJr  SSKJrJrJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSK J!r!  \(       a  SSKJ"r"  \" \5      rSr#SS jr$\
 " S S5      5       r%SS jr& " S S5      r'SS jr(g)zXML reporting for coverage.pyé    )ÚannotationsN)Ú	dataclass)ÚAnyÚIOÚTYPE_CHECKING)ÚIterable)Ú__version__Úfiles)Úisolate_moduleÚhuman_sortedÚhuman_sorted_items)ÚFileReporter)Úget_analysis_to_report)ÚAnalysis)ÚTMorf)Ú__url__)ÚCoveragezQhttps://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtdc                ó   • US:X  a  gSX-  -  $ )z0Return the fraction of `hit`/`num`, as a string.r   Ú1z%.4g© )ÚhitÚnums     ÚS/var/www/blue/EV-Temp_rev04/venv/lib/python3.13/site-packages/coverage/xmlreport.pyÚrater   #   s   € à
ˆaƒxØà˜™Ñ#Ð#ó    c                  óL   • \ rS rSr% SrS\S'   S\S'   S\S'   S\S'   S\S	'   S
rg)ÚPackageDataé+   z2Data we keep about each "package" (in Java terms).z"dict[str, xml.dom.minidom.Element]ÚelementsÚintÚhitsÚlinesÚbr_hitsÚbranchesr   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Ú__static_attributes__r   r   r   r   r   +   s   ‡ á<Ø0Ó0Ø
ƒIØƒJØƒLØ†Mr   r   c                ó&   • U R                  U5        g)z=Append a child to a parent, in a way mypy will shut up about.N)ÚappendChild)ÚparentÚchilds     r   r-   r-   5   s   € à
×Ñ�uÕr   c                  ó>   • \ rS rSrSrSrS	S jrS
SS jjrSS jrSr	g)ÚXmlReporteré:   z<A reporter for writing Cobertura-style XML coverage results.z
XML reportc                óî  • Xl         U R                   R                  U l        [        5       U l        U R                  R                  (       a¡  U R                  R                   H‡  n[
        R                  R                  U5      (       d  M)  U R                  R                  (       a  UR                  S5      nO[        R                  " U5      nU R                  R                  U5        M‰     0 U l        U   g )Nú\/)ÚcoverageÚconfigÚsetÚsource_pathsÚsourceÚosÚpathÚexistsÚrelative_filesÚrstripr
   Úcanonical_filenameÚaddÚpackages)Úselfr5   Úsrcs      r   Ú__init__ÚXmlReporter.__init__?   s¡   € Ø ŒØ—m‘m×*Ñ*ˆŒä›EˆÔØ�;‰;××Ø—{‘{×)Ô)�Ü—7‘7—>‘> #×&Ó&Ø—{‘{×1×1Ø!Ÿj™j¨Ó/™ä#×6Ò6°sÓ;˜Ø×%Ñ%×)Ñ)¨#Ö.ñ *ð 13ˆŒÚr   Nc           	     ó4
  • U=(       d    [         R                  nU R                  R                  5       R	                  5       n[
        R                  R                  R                  5       nUc   eUR                  SSS5      U l
        U R                  R                  nUR                  S[        5        UR                  S[        [        [         R                   " 5       S-  5      5      5        UR#                  U R                  R%                  S[&         S35      5        UR#                  U R                  R%                  S[(         S35      5        [+        U R                  U5       H  u  pgU R-                  XgU5        M     U R                  R/                  S	5      nUR#                  U5        [1        U R2                  5       HO  n	U R                  R/                  S
5      n
[#        XŠ5        U R                  R5                  U	5      n[#        X«5        MQ     Su  pÍSu  pïU R                  R/                  S5      nUR#                  U5        [7        U R8                  R;                  5       5       GHx  u  nnU R                  R/                  S5      n[#        UU5        U R                  R/                  S5      n[#        UU5        [7        UR<                  R;                  5       5       H  u  nn[#        UU5        M     UR                  SUR?                  [@        RB                  S5      5        UR                  S[E        URF                  URH                  5      5        U(       a!  [E        URJ                  URL                  5      nOSnUR                  SU5        UR                  SS5        UURF                  -  nUURH                  -  nUURJ                  -  nUURL                  -  nGM{     UR                  S[        U5      5        UR                  S[        U5      5        UR                  S[E        XÜ5      5        U(       aR  UR                  S[        U5      5        UR                  S[        U5      5        UR                  S[E        Xþ5      5        O6UR                  SS5        UR                  SS5        UR                  SS5        UR                  SS5        URO                  [Q        U R                  5      5        XÎ-   nUS:X  a  SnU$ SXß-   -  U-  nU$ )z—Generate 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.

Nr5   ÚversionÚ	timestampiè  z Generated by coverage.py: Ú z
 Based on Úsourcesr9   )r   r   rA   ÚpackageÚclassesÚnameÚ.ú	line-rateÚ0úbranch-rateÚ
complexityzlines-validzlines-coveredzbranches-validzbranches-coveredr   g        g      Y@))ÚsysÚstdoutr5   Úget_dataÚhas_arcsÚxmlÚdomÚminidomÚgetDOMImplementationÚcreateDocumentÚxml_outÚdocumentElementÚsetAttributer	   Ústrr    Útimer-   ÚcreateCommentr   ÚDTD_URLr   Úxml_fileÚcreateElementr   r8   ÚcreateTextNoder   rA   Úitemsr   Úreplacer:   Úsepr   r!   r"   r#   r$   ÚwriteÚserialize_xml)rB   ÚmorfsÚoutfilerV   ÚimplÚ	xcoverageÚfrÚanalysisÚxsourcesr;   ÚxsourceÚtxtÚlnum_totÚ	lhits_totÚbnum_totÚ	bhits_totÚ	xpackagesÚpkg_nameÚpkg_dataÚxpackageÚxclassesÚ_Ú	class_eltÚbranch_rateÚdenomÚpcts                             r   ÚreportÚXmlReporter.reportO   s(  € ð ×'œSŸZ™ZˆØ—=‘=×)Ñ)Ó+×4Ñ4Ó6ˆô �w‰w�‰×3Ñ3Ó5ˆØÑÐÐØ×*Ñ*¨4°¸TÓBˆŒð —L‘L×0Ñ0ˆ	Ø×Ñ˜y¬+Ô6Ø×Ñ˜{¬C´´D·I²I³KÀÑ4DÓ0EÓ,FÔGØ×Ñ˜dŸl™l×8Ñ8Ø)¬'¨°!Ð4ó
ô 	ð 	×Ñ˜dŸl™l×8Ñ8¸:ÄgÀYÈaÐ9PÓQÔRô 3°4·=±=À%ÖH‰LˆBØ�M‰M˜"¨Ö1ñ Ið —<‘<×-Ñ-¨iÓ8ˆØ×Ñ˜hÔ'ô ! ×!2Ñ!2Ö3ˆDØ—l‘l×0Ñ0°Ó:ˆGÜ˜Ô*Ø—,‘,×-Ñ-¨dÓ3ˆCÜ˜Ö%ñ	 4ð #ÑˆØ"Ñˆà—L‘L×.Ñ.¨zÓ:ˆ	Ø×Ñ˜iÔ(ô #5°T·]±]×5HÑ5HÓ5J×"KÑˆH�hØ—|‘|×1Ñ1°)Ó<ˆHÜ˜	 8Ô,Ø—|‘|×1Ñ1°)Ó<ˆHÜ˜ (Ô+Ü 2°8×3DÑ3D×3JÑ3JÓ3LÖ M‘��9Ü˜H iÖ0ñ !Nà×!Ñ! &¨(×*:Ñ*:¼2¿6¹6À3Ó*GÔHØ×!Ñ! +¬t°H·M±MÀ8Ç>Á>Ó/RÔSÞÜ" 8×#3Ñ#3°X×5FÑ5FÓG‘à!�Ø×!Ñ! -°Ô=Ø×!Ñ! ,°Ô4à˜Ÿ™Ñ&ˆIØ˜Ÿ™Ñ&ˆHØ˜×)Ñ)Ñ)ˆIØ˜×)Ñ)Ñ)‹Hñ' #Lð* 	×Ñ˜}¬c°(«mÔ<Ø×Ñ˜´°I³Ô?Ø×Ñ˜{¬D°Ó,EÔFÞØ×"Ñ"Ð#3´S¸³]ÔCØ×"Ñ"Ð#5´s¸9³~ÔFØ×"Ñ" =´$°yÓ2KÕLà×"Ñ"Ð#5°sÔ;Ø×"Ñ"Ð#3°SÔ9Ø×"Ñ" =°#Ô6Ø×Ñ˜|¨SÔ1ð 	�‰”m D§L¡LÓ1Ô2ð Ñ#ˆØ�A‹:ØˆCð ˆ
ð ˜9Ñ0Ñ1°EÑ9ˆCØˆ
r   c           
     óø	  • U R                   R                  (       a  UR                  R                  S:X  a  gUR                  R                  SS5      nU R                   Hp  nU R                   R                  (       d  [        R                  " U5      nUR                  UR                  SS5      S-   5      (       d  M_  U[        U5      S-   S n  Oc   UR                  5       R                  SS5      nU R                  R                  UR                  S[        U5      *  R                  S5      5        [        R                   R#                  U5      =(       d    SnSR%                  UR'                  S5      SU R                   R(                   5      nUR                  SS5      nU R*                  R-                  U[/        0 SSSS5      5      n	U R0                  R3                  S5      n
[5        X R0                  R3                  S	5      5        U R0                  R3                  S
5      n[5        X«5        U
R7                  S[        R                   R9                  Xg5      5        U
R7                  SUR                  SS5      5        U
R7                  SS5        UR;                  5       nUR=                  5       n[?        UR@                  5       GH  nU R0                  R3                  S5      nUR7                  S[C        U5      5        UR7                  S[C        [E        XâRF                  ;  5      5      5        U(       a†  Xì;   a7  XÎ   u  nnUR7                  SS5        UR7                  SSSU-  U-  UU4-  5        Xí;   aE  XÞ    Vs/ sH  nUS:  a  SO
[C        U5      PM     nnUR7                  SSR%                  U5      5        [5        X¿5        GM     [        UR@                  5      nU[        URF                  5      -
  nU(       aF  [I        S URK                  5        5       5      n[I        S URK                  5        5       5      nUU-
  nOSnSnU
R7                  S[M        UU5      5        U(       a  [M        UU5      nOSnU
R7                  SU5        X©RN                  U'   U	=RP                  U-  sl(        U	=RR                  U-  sl)        U	=RT                  U-  sl*        U	=RV                  U-  sl+        gs  snf )z(Add to the XML report for a single file.r   NÚ\Ú/é   r4   rN   ÚclassÚmethodsr"   rM   ÚfilenamerR   rP   ÚlineÚnumberr!   ÚbranchÚtruezcondition-coveragez%d%% (%d/%d)éd   Úexitzmissing-branchesÚ,c              3  ó(   #   • U H	  u  pUv •  M     g 7f©Nr   ©Ú.0ÚtÚks      r   Ú	<genexpr>Ú'XmlReporter.xml_file.<locals>.<genexpr>í   s   é € Ð EÑ/D¡t q¥Ò/Dùs   ‚c              3  ó,   #   • U H  u  pX-
  v •  M     g 7fr“   r   r”   s      r   r˜   r™   î   s   é € Ð"KÑ5J©T¨Q 1¦5Ò5Jùs   ‚rO   rQ   ),r6   Ú
skip_emptyÚnumbersÚn_statementsrŠ   rg   r8   r=   r
   r?   Ú
startswithÚlenÚrelative_filenamer@   r>   r:   r;   ÚdirnameÚjoinÚsplitÚxml_package_depthrA   Ú
setdefaultr   r\   rd   r-   r^   ÚrelpathÚbranch_statsÚmissing_branch_arcsÚsortedÚ
statementsr_   r    ÚmissingÚsumÚvaluesr   r   r!   r"   r#   r$   )rB   ro   rp   rV   rŠ   Úsource_pathÚrel_namer¡   Úpackage_namerK   ÚxclassÚxlinesr§   r¨   r‹   ÚxlineÚtotalÚtakenÚbÚannlinesÚclass_linesÚ
class_hitsÚclass_branchesÚmissing_branchesÚclass_br_hitsr   s                             r   rc   ÚXmlReporter.xml_file«   s  € ð �;‰;×!×!Ø×Ñ×,Ñ,°Ó1Øð —;‘;×&Ñ& t¨SÓ1ˆØ×,Ô,ˆKØ—;‘;×-×-Ü#×6Ò6°{ÓC�Ø×"Ñ" ;×#6Ñ#6°t¸SÓ#AÀCÑ#G×HÓHØ#¤C¨Ó$4°QÑ$6Ð$7Ð8�Ùñ -ð ×+Ñ+Ó-×5Ñ5°d¸CÓ@ˆHØ×Ñ×!Ñ! "§+¡+¨o´°H³¨~Ð">×"EÑ"EÀeÓ"LÔMä—'‘'—/‘/ (Ó+×2¨sˆØ—(‘(˜7Ÿ=™=¨Ó-Ð.L¨t¯{©{×/LÑ/LÐMÓNˆØ—‘ s¨CÓ0ˆà—-‘-×*Ñ*¨<¼ÀRÈÈAÈqÐRSÓ9TÓUˆà*.¯,©,×*DÑ*DÀWÓ*Mˆä�FŸL™L×6Ñ6°yÓAÔBà—‘×+Ñ+¨GÓ4ˆÜ�FÔ#à×Ñ˜F¤B§G¡G§O¡O°HÓ$FÔGØ×Ñ˜J¨×(8Ñ(8¸¸sÓ(CÔDØ×Ñ˜L¨#Ô.à×,Ñ,Ó.ˆØ&×:Ñ:Ó<Ðô ˜8×.Ñ.×/ˆDØ—L‘L×.Ñ.¨vÓ6ˆEØ×Ñ˜x¬¨T«Ô3ð ×Ñ˜v¤s¬3¨t×;KÑ;KÑ/KÓ+LÓ'MÔNæØÓ'Ø#/Ñ#5‘L�E˜5Ø×&Ñ& x°Ô8Ø×&Ñ&Ø,Ø&¨#¨e©)°UÑ*:¸EÀ5Ð)IÑIôð Ó.ØEXÒE^Ó_ÑE^À¨!¨a«%¡´S¸³VÒ ;ÑE^�HÐ_Ø×&Ñ&Ð'9¸3¿8¹8ÀHÓ;MÔNÜ˜×&ñ' 0ô* ˜(×-Ñ-Ó.ˆØ ¤3 x×'7Ñ'7Ó#8Ñ8ˆ
æÜ Ñ E¨|×/BÑ/BÔ/DÓ EÓEˆNÜ"Ñ"K°\×5HÑ5HÔ5JÓ"KÓKÐØ*Ð-=Ñ=‰MàˆNØˆMð 	×Ñ˜K¬¨j¸+Ó)FÔGÞÜ˜}¨nÓ=‰KàˆKØ×Ñ˜M¨;Ô7à%+×Ñ˜Ñ"Ø�Š˜
Ñ"�Ø�Š˜Ñ$�Ø�Š˜=Ñ(�Ø×Ò˜NÑ*Öùò7  `s   ÎS7)r6   r5   rA   r8   r\   )r5   r   ÚreturnÚNoner“   )rk   zIterable[TMorf] | Nonerl   zIO[str] | Noner¾   Úfloat)ro   r   rp   r   rV   Úboolr¾   r¿   )
r%   r&   r'   r(   r)   Úreport_typerD   r‚   rc   r+   r   r   r   r1   r1   :   s   † ÙFà€Kô/ö Z÷xU+r   r1   c                ó"   • U R                  5       $ )z Serialize a minidom node to XML.)Útoprettyxml)rX   s    r   rj   rj     s   € à�?‰?ÓÐr   )r   r    r   r    r¾   r_   )r.   r   r/   r   r¾   r¿   )rX   zxml.dom.minidom.Documentr¾   r_   ))r)   Ú
__future__r   r:   Úos.pathrS   r`   Úxml.dom.minidomrW   Údataclassesr   Útypingr   r   r   Úcollections.abcr   r5   r	   r
   Úcoverage.miscr   r   r   Úcoverage.pluginr   Úcoverage.report_corer   Úcoverage.resultsr   Úcoverage.typesr   Úcoverage.versionr   r   rb   r   r   r-   r1   rj   r   r   r   Ú<module>rÑ      s�   ðñ $å "ã 	Û Û 
Û Û å !ß )Ñ )Ý $ç 'ß JÑ JÝ (Ý 7Ý %Ý  Ý $æÝ!á�BÓ€ð ^€ô$ð ÷ð ó ðô÷
F+ñ F+õRr   