コード例 #1
0
ファイル: depyc.py プロジェクト: hamdyMostafa/Dato-Core
def src_tool(args):
    print("Analysing python module %r" % (args.input.name,), file=sys.stderr)

    source = args.input.read()
    mod_ast = ast.parse(source, args.input.name)
    code = compile(source, args.input.name, mode="exec", dont_inherit=True)

    if args.output_type == "opcode":
        print_code(code)
        return
    elif args.output_type == "ast":
        print_ast(mod_ast, file=args.output)
        return
    elif args.output_type == "python":
        print(source.decode(), file=args.output)
    elif args.output_type == "pyc":

        if py3 and args.output is sys.stdout:
            args.output = sys.stdout.buffer

        try:
            timestamp = int(os.fstat(args.input.fileno()).st_mtime)
        except AttributeError:
            timestamp = int(os.stat(args.input.name).st_mtime)
        if py3 and args.output is sys.stdout:
            args.output = sys.stdout.buffer
        create_pyc(source, cfile=args.output, timestamp=timestamp)
    else:
        raise Exception("unknow output type %r" % args.output_type)

    return
コード例 #2
0
ファイル: depyc.py プロジェクト: zhmz90/Dato-Core
def src_tool(args):
    print("Analysing python module %r" % (args.input.name, ), file=sys.stderr)

    source = args.input.read()
    mod_ast = ast.parse(source, args.input.name)
    code = compile(source, args.input.name, mode='exec', dont_inherit=True)

    if args.output_type == 'opcode':
        print_code(code)
        return
    elif args.output_type == 'ast':
        print_ast(mod_ast, file=args.output)
        return
    elif args.output_type == 'python':
        print(source.decode(), file=args.output)
    elif args.output_type == 'pyc':

        if py3 and args.output is sys.stdout:
            args.output = sys.stdout.buffer

        try:
            timestamp = int(os.fstat(args.input.fileno()).st_mtime)
        except AttributeError:
            timestamp = int(os.stat(args.input.name).st_mtime)
        if py3 and args.output is sys.stdout:
            args.output = sys.stdout.buffer
        create_pyc(source, cfile=args.output, timestamp=timestamp)
    else:
        raise Exception("unknow output type %r" % args.output_type)

    return
コード例 #3
0
ファイル: depyc.py プロジェクト: hamdyMostafa/Dato-Core
def depyc(args):

    binary = args.input.read()
    modtime, code = extract(binary)

    print("Decompiling module %r compiled on %s" % (args.input.name, modtime), file=sys.stderr)

    if args.output_type == "pyc":
        if py3 and args.output is sys.stdout:
            args.output = sys.stdout.buffer
        args.output.write(binary)
        return

    if args.output_type == "opcode":
        print_code(code)
        return

    mod_ast = make_module(code)

    if args.output_type == "ast":
        print_ast(mod_ast, file=args.output)
        return

    if args.output_type == "python":
        python_source(mod_ast, file=args.output)
        return

    raise Exception("unknow output type %r" % args.output_type)
コード例 #4
0
ファイル: depyc.py プロジェクト: zhmz90/Dato-Core
def depyc(args):

    binary = args.input.read()
    modtime, code = extract(binary)

    print("Decompiling module %r compiled on %s" % (
        args.input.name,
        modtime,
    ),
          file=sys.stderr)

    if args.output_type == 'pyc':
        if py3 and args.output is sys.stdout:
            args.output = sys.stdout.buffer
        args.output.write(binary)
        return

    if args.output_type == 'opcode':
        print_code(code)
        return

    mod_ast = make_module(code)

    if args.output_type == 'ast':
        print_ast(mod_ast, file=args.output)
        return

    if args.output_type == 'python':
        python_source(mod_ast, file=args.output)
        return

    raise Exception("unknow output type %r" % args.output_type)