eric7/DebugClients/Python/coverage/xmlreport.py

branch
eric7
changeset 8775
0802ae193343
parent 8312
800c432b34c8
child 8929
fcca2fa618bf
--- a/eric7/DebugClients/Python/coverage/xmlreport.py	Fri Nov 19 19:28:47 2021 +0100
+++ b/eric7/DebugClients/Python/coverage/xmlreport.py	Sat Nov 20 16:47:38 2021 +0100
@@ -1,4 +1,3 @@
-# coding: utf-8
 # Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
 # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
 
@@ -10,10 +9,8 @@
 import time
 import xml.dom.minidom
 
-from coverage import env
 from coverage import __url__, __version__, files
-from coverage.backward import iitems
-from coverage.misc import isolate_module
+from coverage.misc import isolate_module, human_sorted, human_sorted_items
 from coverage.report import get_analysis_to_report
 
 os = isolate_module(os)
@@ -30,9 +27,11 @@
         return "%.4g" % (float(hit) / num)
 
 
-class XmlReporter(object):
+class XmlReporter:
     """A reporter for writing Cobertura-style XML coverage results."""
 
+    report_type = "XML report"
+
     def __init__(self, coverage):
         self.coverage = coverage
         self.config = self.coverage.config
@@ -80,7 +79,7 @@
         xcoverage.appendChild(xsources)
 
         # Populate the XML DOM with the source info.
-        for path in sorted(self.source_paths):
+        for path in human_sorted(self.source_paths):
             xsource = self.xml_out.createElement("source")
             xsources.appendChild(xsource)
             txt = self.xml_out.createTextNode(path)
@@ -93,13 +92,13 @@
         xcoverage.appendChild(xpackages)
 
         # Populate the XML DOM with the package info.
-        for pkg_name, pkg_data in sorted(iitems(self.packages)):
+        for pkg_name, pkg_data in human_sorted_items(self.packages.items()):
             class_elts, lhits, lnum, bhits, bnum = pkg_data
             xpackage = self.xml_out.createElement("package")
             xpackages.appendChild(xpackage)
             xclasses = self.xml_out.createElement("classes")
             xpackage.appendChild(xclasses)
-            for _, class_elt in sorted(iitems(class_elts)):
+            for _, class_elt in human_sorted_items(class_elts.items()):
                 xclasses.appendChild(class_elt)
             xpackage.setAttribute("name", pkg_name.replace(os.sep, '.'))
             xpackage.setAttribute("line-rate", rate(lhits, lnum))
@@ -158,7 +157,7 @@
             rel_name = fr.relative_filename()
             self.source_paths.add(fr.filename[:-len(rel_name)].rstrip(r"\/"))
 
-        dirname = os.path.dirname(rel_name) or u"."
+        dirname = os.path.dirname(rel_name) or "."
         dirname = "/".join(dirname.split("/")[:self.config.xml_package_depth])
         package_name = dirname.replace("/", ".")
 
@@ -228,7 +227,4 @@
 
 def serialize_xml(dom):
     """Serialize a minidom node to XML."""
-    out = dom.toprettyxml()
-    if env.PY2:
-        out = out.encode("utf8")
-    return out
+    return dom.toprettyxml()

eric ide

mercurial