diff --git a/uncompyle6/parser.py b/uncompyle6/parser.py index 451d5c92..682d1069 100644 --- a/uncompyle6/parser.py +++ b/uncompyle6/parser.py @@ -92,7 +92,7 @@ def get_python_parser(version, debug_parser): def python_parser(version, co, out=sys.stdout, showasm=False, parser_debug=PARSER_DEFAULT_DEBUG): import inspect - assert inspect.iscode(co) + assert hasattr(co, 'co_name') from uncompyle6.scanner import get_scanner scanner = get_scanner(version) tokens, customize = scanner.disassemble(co) diff --git a/uncompyle6/scanners/scanner34.py b/uncompyle6/scanners/scanner34.py index 86b63dc6..d6ed942a 100644 --- a/uncompyle6/scanners/scanner34.py +++ b/uncompyle6/scanners/scanner34.py @@ -98,7 +98,7 @@ class Scanner34(scan3.Scanner3): # other than LOAD_CONST, but we'll start out with just this for now. if opname in ['LOAD_CONST']: const = inst.argval - if inspect.iscode(const): + if hasattr(const, 'co_name')): if const.co_name == '': opname = 'LOAD_LAMBDA' elif const.co_name == '': diff --git a/uncompyle6/verify.py b/uncompyle6/verify.py index 7d6a8fef..1ed31b34 100755 --- a/uncompyle6/verify.py +++ b/uncompyle6/verify.py @@ -138,8 +138,8 @@ def cmp_code_objects(version, code_obj1, code_obj2, name=''): This is the main part of this module. """ # print code_obj1, type(code_obj2) - assert inspect.iscode(code_obj1) - assert inspect.iscode(code_obj2) + assert code_obj1, hasattr('co_name') + assert code_obj2, hasattr('co_name') # print dir(code_obj1) if isinstance(code_obj1, object): # new style classes (Python 2.2) @@ -307,8 +307,8 @@ def cmp_code_objects(version, code_obj1, code_obj2, name=''): elif member == 'co_consts': # partial optimization can make the co_consts look different, # so we'll just compare the code consts - codes1 = ( c for c in code_obj1.co_consts if inspect.iscode(c) ) - codes2 = ( c for c in code_obj2.co_consts if inspect.iscode(c) ) + codes1 = ( c for c in code_obj1.co_consts if hasattr(c, 'co_consts') ) + codes2 = ( c for c in code_obj2.co_consts if hasattr(c, 'co_consts') ) for c1, c2 in zip(codes1, codes2): cmp_code_objects(version, c1, c2, name=name)