DebugClients/Python/coverage/data.py

changeset 4385
599681bf149a
parent 3499
f2d4b02c7e88
child 4489
d0d6e4ad31bd
equal deleted inserted replaced
4384:04896c4a5a8e 4385:599681bf149a
1 """Coverage data for Coverage.""" 1 """Coverage data for Coverage."""
2 2
3 import os 3 import os
4 import sys
4 5
5 from .backward import iitems, pickle, sorted # pylint: disable=W0622 6 from .backward import iitems, pickle, sorted # pylint: disable=W0622
6 from .files import PathAliases 7 from .files import PathAliases
7 from .misc import file_be_gone 8 from .misc import file_be_gone
8 9
99 self.arcs = {} 100 self.arcs = {}
100 101
101 def line_data(self): 102 def line_data(self):
102 """Return the map from filenames to lists of line numbers executed.""" 103 """Return the map from filenames to lists of line numbers executed."""
103 return dict( 104 return dict(
104 [(f, sorted(lmap.keys())) for f, lmap in iitems(self.lines)] 105 [(f.decode(sys.getfilesystemencoding()), sorted(lmap.keys()))
106 for f, lmap in iitems(self.lines)]
105 ) 107 )
106 108
107 def arc_data(self): 109 def arc_data(self):
108 """Return the map from filenames to lists of line number pairs.""" 110 """Return the map from filenames to lists of line number pairs."""
109 return dict( 111 return dict(
110 [(f, sorted(amap.keys())) for f, amap in iitems(self.arcs)] 112 [(f.decode(sys.getfilesystemencoding()), sorted(amap.keys()))
113 for f, amap in iitems(self.arcs)]
111 ) 114 )
112 115
113 def write_file(self, filename): 116 def write_file(self, filename):
114 """Write the coverage data to `filename`.""" 117 """Write the coverage data to `filename`."""
115 118
161 try: 164 try:
162 data = self.raw_data(filename) 165 data = self.raw_data(filename)
163 if isinstance(data, dict): 166 if isinstance(data, dict):
164 # Unpack the 'lines' item. 167 # Unpack the 'lines' item.
165 lines = dict([ 168 lines = dict([
166 (f, dict.fromkeys(linenos, None)) 169 (f.encode(sys.getfilesystemencoding()),
170 dict.fromkeys(linenos, None))
167 for f, linenos in iitems(data.get('lines', {})) 171 for f, linenos in iitems(data.get('lines', {}))
168 ]) 172 ])
169 # Unpack the 'arcs' item. 173 # Unpack the 'arcs' item.
170 arcs = dict([ 174 arcs = dict([
171 (f, dict.fromkeys(arcpairs, None)) 175 (f.encode(sys.getfilesystemencoding()),
176 dict.fromkeys(arcpairs, None))
172 for f, arcpairs in iitems(data.get('arcs', {})) 177 for f, arcpairs in iitems(data.get('arcs', {}))
173 ]) 178 ])
174 except Exception: 179 except Exception:
175 pass 180 pass
176 return lines, arcs 181 return lines, arcs

eric ide

mercurial