How to use the uncompyle6.semantics.pysource.StringIO 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 / semantics / fragments.py View on Github external
def traverse(self, node, indent=None, isLambda=False):
        '''Buulds up fragment which can be used inside a larger
        block of code'''
        self.param_stack.append(self.params)
        if indent is None: indent = self.indent
        p = self.pending_newlines
        self.pending_newlines = 0
        self.params = {
            '_globals': {},
            'f': StringIO(),
            'indent': indent,
            'isLambda': isLambda,
            }
        self.preorder(node)
        self.f.write('\n'*self.pending_newlines)

        text = self.f.getvalue()
        self.last_finish = len(text)

        self.params = self.param_stack.pop()
        self.pending_newlines = p

        return text
github rocky / python-uncompyle6 / uncompyle6 / semantics / fragments.py View on Github external
def traverse(self, node, indent=None, is_lambda=False):
        """Builds up fragment which can be used inside a larger
        block of code"""
        self.param_stack.append(self.params)
        if indent is None:
            indent = self.indent
        p = self.pending_newlines
        self.pending_newlines = 0
        self.params = {
            "_globals": {},
            "f": StringIO(),
            "indent": indent,
            "is_lambda": is_lambda,
        }
        self.preorder(node)
        self.f.write("\n" * self.pending_newlines)

        text = self.f.getvalue()
        self.last_finish = len(text)

        self.params = self.param_stack.pop()
        self.pending_newlines = p

        return text
github rocky / python-uncompyle6 / uncompyle6 / semantics / fragments.py View on Github external
def deparse_code(
    version,
    co,
    out=StringIO(),
    showasm=False,
    showast=False,
    showgrammar=False,
    code_objects={},
    compile_mode="exec",
    is_pypy=None,
    walker=FragmentsWalker,
):
    debug_opts = {"asm": showasm, "ast": showast, "grammar": showgrammar}
    return code_deparse(
        co,
        out,
        version=version,
        debug_opts=debug_opts,
        code_objects=code_objects,
        compile_mode=compile_mode,
github rocky / python-uncompyle6 / uncompyle6 / semantics / fragments.py View on Github external
def deparse_code_around_offset(name, offset, version, co, out=StringIO(),
                               showasm=False, showast=False,
                               showgrammar=False, is_pypy=False):
    """
    Like deparse_code(), but given  a function/module name and
    offset, finds the node closest to offset. If offset is not an instruction boundary,
    we raise an IndexError.
    """
    deparsed = deparse_code(version, co, out, showasm, showast, showgrammar, is_pypy)
    if (name, offset) in deparsed.offsets.keys():
        # This is the easy case
        return deparsed

    valid_offsets = [t for t in deparsed.offsets if isinstance(t[1], int)]
    offset_list = sorted([t[1] for t in valid_offsets if t[0] == name])

    # FIXME: should check for branching?
github rocky / python-uncompyle6 / uncompyle6 / semantics / fragments.py View on Github external
def code_deparse(
    co,
    out=StringIO(),
    version=None,
    is_pypy=None,
    debug_opts=DEFAULT_DEBUG_OPTS,
    code_objects={},
    compile_mode="exec",
    walker=FragmentsWalker,
):
    """
    Convert the code object co into a python source fragment.

    :param version:         The python version this code is from as a float, for
                            example 2.6, 2.7, 3.2, 3.3, 3.4, 3.5 etc.
    :param co:              The code object to parse.
    :param out:             File like object to write the output to.
    :param debug_opts:      A dictionary with keys
       'asm':     value determines whether to show
github rocky / python-uncompyle6 / uncompyle6 / semantics / fragments.py View on Github external
def deparse_code(version, co, out=StringIO(), showasm=False, showast=False,
                 showgrammar=False, is_pypy=False):
    """
    Convert the code object co into a python source fragment.

    :param version:         The python version this code is from as a float, for
                            example 2.6, 2.7, 3.2, 3.3, 3.4, 3.5 etc.
    :param co:              The code object to parse.
    :param out:             File like object to write the output to.
    :param showasm:         Flag which determines whether the ingestd code
                            is written to sys.stdout or not. (It is also to
                            pass a file like object, into which the asm will be
                            written).
    :param showast:         Flag which determines whether the constructed
                            abstract syntax tree is written to sys.stdout or
                            not. (It is also to pass a file like object, into
                            which the ast will be written).