DebugClients/Python/coverage/data.py

changeset 4490
3f58261e7bb1
parent 4489
d0d6e4ad31bd
child 4491
0d8612e24fef
diff -r d0d6e4ad31bd -r 3f58261e7bb1 DebugClients/Python/coverage/data.py
--- a/DebugClients/Python/coverage/data.py	Sun Oct 04 22:37:56 2015 +0200
+++ b/DebugClients/Python/coverage/data.py	Sun Oct 04 22:54:47 2015 +0200
@@ -11,6 +11,7 @@
 import random
 import re
 import socket
+import sys
 
 from coverage import env
 from coverage.backward import iitems, string_class
@@ -269,10 +270,15 @@
         self._lines = self._arcs = None
 
         if 'lines' in data:
-            self._lines = data['lines']
+            self._lines = dict(
+                (fname.encode(sys.getfilesystemencoding()), linenos)
+                for fname, linenos in iitems(data['lines'])
+            )
+
         if 'arcs' in data:
             self._arcs = dict(
-                (fname, [tuple(pair) for pair in arcs])
+                (fname.encode(sys.getfilesystemencoding()),
+                    [tuple(pair) for pair in arcs])
                 for fname, arcs in iitems(data['arcs'])
             )
         self._file_tracers = data.get('file_tracers', {})
@@ -284,15 +290,8 @@
         """Read the coverage data from `filename` into this object."""
         if self._debug and self._debug.should('dataio'):
             self._debug.write("Reading data from %r" % (filename,))
-        try:
-            with self._open_for_reading(filename) as f:
-                self.read_fileobj(f)
-        except Exception as exc:
-            raise CoverageException(
-                "Couldn't read data from '%s': %s: %s" % (
-                    filename, exc.__class__.__name__, exc,
-                )
-            )
+        with self._open_for_reading(filename) as f:
+            self.read_fileobj(f)
 
     _GO_AWAY = "!coverage.py: This is a private format, don't read it directly!"
 
@@ -434,10 +433,17 @@
         file_data = {}
 
         if self._has_arcs():
-            file_data['arcs'] = self._arcs
+            file_data['arcs'] = dict(
+                (fname.decode(sys.getfilesystemencoding()),
+                    [tuple(pair) for pair in self._arcs])
+                for fname, arcs in iitems(data['arcs'])
+            )
 
         if self._has_lines():
-            file_data['lines'] = self._lines
+            file_data['lines'] = dict(
+                (fname.decode(sys.getfilesystemencoding()), linenos)
+                for fname, linenos in iitems(self._lines)
+            )
 
         if self._file_tracers:
             file_data['file_tracers'] = self._file_tracers
@@ -750,3 +756,6 @@
 if __name__ == '__main__':
     import sys
     debug_main(sys.argv[1:])
+
+#
+# eflag: FileType = Python2

eric ide

mercurial