eric6/DebugClients/Python/coverage/bytecode.py

changeset 6942
2602857055c5
parent 5178
878ce843ca9f
child 7427
362cd1b6f81a
diff -r f99d60d6b59b -r 2602857055c5 eric6/DebugClients/Python/coverage/bytecode.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/DebugClients/Python/coverage/bytecode.py	Sun Apr 14 15:09:21 2019 +0200
@@ -0,0 +1,22 @@
+# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+
+"""Bytecode manipulation for coverage.py"""
+
+import types
+
+
+class CodeObjects(object):
+    """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

eric ide

mercurial