MCPcopy Create free account
hub / github.com/aosabook/500lines / LineIterator

Class LineIterator

cluster/code/extract_code.py:8–33  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6extractors = {}
7
8class LineIterator(object):
9
10 used_lines_per_file = {}
11
12 def __init__(self, filename):
13 self.enum_iter = enumerate(open(filename))
14 self.linenum = -1
15 self.used_lines = self.used_lines_per_file.setdefault(filename, set())
16
17 def __iter__(self):
18 return self
19
20 def next(self):
21 self.linenum, rv = self.enum_iter.next()
22 return rv
23
24 def use_line(self):
25 self.used_lines.add(self.linenum)
26
27 @classmethod
28 def print_unused_lines(cls, filename):
29 sys.stderr.write("*** unused lines in %r ***\n" % filename)
30 used_lines = cls.used_lines_per_file[filename]
31 for l, line in enumerate(open(filename)):
32 if line.strip() and l not in used_lines:
33 sys.stderr.write("%4d %s" % (l+1, line))
34
35file_lines_used = {}
36

Callers 2

code_blockFunction · 0.85
from_toFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected