diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2019-06-17 22:01:04 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2019-06-17 22:01:04 -0400 |
commit | ee236052e3ed65ea388aa82958d0ce474aa42b33 (patch) | |
tree | f02b3d4ebd430ea8794465ddee53f331943dbe7e | |
parent | 21bb447e266831ed44388d9fb9a5327effddee19 (diff) | |
download | python-coveragepy-git-ee236052e3ed65ea388aa82958d0ce474aa42b33.tar.gz |
This class was simpler as a function
-rw-r--r-- | coverage/bytecode.py | 23 | ||||
-rw-r--r-- | coverage/parser.py | 5 |
2 files changed, 12 insertions, 16 deletions
diff --git a/coverage/bytecode.py b/coverage/bytecode.py index 943f29e1..ceb18cf3 100644 --- a/coverage/bytecode.py +++ b/coverage/bytecode.py @@ -6,17 +6,14 @@ import types -class CodeObjects(object): +def code_objects(code): """Iterate over all the code objects in `code`.""" - def __init__(self, code): - self.stack = [code] - - def __iter__(self): - while self.stack: - # We're going to return the code object on the stack, but first - # push its children for later returning. - code = self.stack.pop() - for c in code.co_consts: - if isinstance(c, types.CodeType): - self.stack.append(c) - yield code + stack = [code] + while stack: + # We're going to return the code object on the stack, but first + # push its children for later returning. + code = stack.pop() + for c in code.co_consts: + if isinstance(c, types.CodeType): + stack.append(c) + yield code diff --git a/coverage/parser.py b/coverage/parser.py index 6ae99fe4..c2c58a8c 100644 --- a/coverage/parser.py +++ b/coverage/parser.py @@ -13,7 +13,7 @@ import tokenize from coverage import env from coverage.backward import range # pylint: disable=redefined-builtin from coverage.backward import bytes_to_ints, string_class -from coverage.bytecode import CodeObjects +from coverage.bytecode import code_objects from coverage.debug import short_stack from coverage.misc import contract, join_regex, new_contract, nice_pair, one_of from coverage.misc import NoSource, NotPython, StopEverything @@ -383,8 +383,7 @@ class ByteParser(object): The iteration includes `self` as its first value. """ - children = CodeObjects(self.code) - return (ByteParser(self.text, code=c) for c in children) + return (ByteParser(self.text, code=c) for c in code_objects(self.code)) def _bytes_lines(self): """Map byte offsets to line numbers in `code`. |