How to use the uncompyle6.scanners.scanner3.Scanner3 function in uncompyle6

To help you get started, we’ve selected a few uncompyle6 examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github rocky / python-uncompyle6 / uncompyle6 / scanners / scanner36.py View on Github external
def __init__(self, show_asm=None, is_pypy=False):
        Scanner3.__init__(self, 3.6, show_asm, is_pypy)
        return
github rocky / python-uncompyle6 / uncompyle6 / scanners / scanner32.py View on Github external
Does some additional massaging of xdis-disassembled instructions to
make things easier for decompilation.

This sets up opcodes Python's 3.2 and calls a generalized
scanner routine for Python 3.
"""

from __future__ import print_function

# bytecode verification, verify(), uses JUMP_OPs from here
from xdis.opcodes import opcode_32 as opc
JUMP_OPS = opc.JUMP_OPS

from uncompyle6.scanners.scanner3 import Scanner3
class Scanner32(Scanner3):

    def __init__(self, show_asm=None, is_pypy=False):
        Scanner3.__init__(self, 3.2, show_asm, is_pypy)
        return
    pass

if __name__ == "__main__":
    from uncompyle6 import PYTHON_VERSION
    if PYTHON_VERSION == 3.2:
        import inspect
        co = inspect.currentframe().f_code
        tokens, customize = Scanner32().ingest(co)
        for t in tokens:
            print(t)
        pass
    else:
github rocky / python-uncompyle6 / uncompyle6 / scanners / scanner3.py View on Github external
filtered.append(instr_offset)
            instr_offsets = filtered
            filtered = []
        return instr_offsets


if __name__ == "__main__":
    from uncompyle6 import PYTHON_VERSION

    if PYTHON_VERSION >= 3.2:
        import inspect

        co = inspect.currentframe().f_code
        from uncompyle6 import PYTHON_VERSION

        tokens, customize = Scanner3(PYTHON_VERSION).ingest(co)
        for t in tokens:
            print(t)
    else:
        print("Need to be Python 3.2 or greater to demo; I am %s." % PYTHON_VERSION)
    pass
github rocky / python-uncompyle6 / uncompyle6 / scanners / scanner3.py View on Github external
def __init__(self, version, show_asm=None, is_pypy=False):
        super(Scanner3, self).__init__(version, show_asm, is_pypy)

        # Create opcode classification sets
        # Note: super initilization above initializes self.opc

        # For ops that start SETUP_ ... we will add COME_FROM with these names
        # at the their targets.
        # Some blocks and END_ statements. And they can start
        # a new statement
        if self.version < 3.8:
            setup_ops = [
                self.opc.SETUP_LOOP,
                self.opc.SETUP_EXCEPT,
                self.opc.SETUP_FINALLY,
            ]
            self.setup_ops_no_loop = frozenset(setup_ops) - frozenset(
                [self.opc.SETUP_LOOP]
github rocky / python-uncompyle6 / uncompyle6 / scanners / scanner31.py View on Github external
#  Copyright (c) 2016-2017 by Rocky Bernstein
"""
Python 3.1 bytecode scanner/deparser

This sets up opcodes Python's 3.1 and calls a generalized
scanner routine for Python 3.
"""

from __future__ import print_function

# bytecode verification, verify(), uses JUMP_OPs from here
from xdis.opcodes import opcode_31 as opc
JUMP_OPS = opc.JUMP_OPS

from uncompyle6.scanners.scanner3 import Scanner3
class Scanner31(Scanner3):

    def __init__(self, show_asm=None, is_pypy=False):
        Scanner3.__init__(self, 3.1, show_asm, is_pypy)
        return
    pass

if __name__ == "__main__":
    from uncompyle6 import PYTHON_VERSION
    if PYTHON_VERSION == 3.1:
        import inspect
        co = inspect.currentframe().f_code
        tokens, customize = Scanner31().ingest(co)
        for t in tokens:
            print(t)
        pass
    else: