Modified various passes to use the inspect module instead of using type comparisons or isinstance.
This commit is contained in:
parent
ee557c55cc
commit
0b24adb80a
3 changed files with 6 additions and 7 deletions
|
|
@ -6,7 +6,7 @@ from __future__ import absolute_import
|
|||
|
||||
import opcode
|
||||
import pprint
|
||||
import types
|
||||
import inspect
|
||||
|
||||
from . import opcode_util
|
||||
from .bytecode_visitor import BasicBlockVisitor, BenignBytecodeVisitorMixin
|
||||
|
|
@ -281,7 +281,7 @@ def main (*args, **kws):
|
|||
def _visit(obj):
|
||||
print("_" * 70)
|
||||
print(obj)
|
||||
if type(obj) == types.FunctionType:
|
||||
if inspect.isfunction(obj):
|
||||
cfg = build_cfg(obj)
|
||||
else:
|
||||
cfg = ControlFlowBuilder.build_cfg_from_co(obj)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ from __future__ import absolute_import
|
|||
import dis
|
||||
import opcode
|
||||
import pprint
|
||||
import types
|
||||
import inspect
|
||||
|
||||
from .bytecode_visitor import BasicBlockVisitor
|
||||
from . import opcode_util
|
||||
|
|
@ -341,11 +341,10 @@ def build_flow(func):
|
|||
# ______________________________________________________________________
|
||||
|
||||
def demo_flow_builder(builder_cls, *args):
|
||||
import pprint
|
||||
def _visit(obj):
|
||||
print("_" * 70)
|
||||
print(obj)
|
||||
if type(obj) == types.FunctionType:
|
||||
if inspect.isfunction(obj):
|
||||
flow = builder_cls.build_flow(obj)
|
||||
else:
|
||||
flow = builder_cls.build_flow_from_co(obj)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
from collections import namedtuple
|
||||
import dis
|
||||
import opcode
|
||||
import types
|
||||
import inspect
|
||||
|
||||
# ______________________________________________________________________
|
||||
# Module data
|
||||
|
|
@ -208,7 +208,7 @@ def itercodeobjs(codeobj):
|
|||
"Iterator that traverses code objects via the co_consts member."
|
||||
yield codeobj
|
||||
for const in codeobj.co_consts:
|
||||
if isinstance(const, types.CodeType):
|
||||
if inspect.iscode(const):
|
||||
for childobj in itercodeobjs(const):
|
||||
yield childobj
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue