Misc cleanups

Favor "decompile" over "uncompyle" since "decompile" is in common use
Reduce size of pysource.py by splitting out constants
This commit is contained in:
rocky
2017-01-08 09:26:19 -05:00
parent 21023fea74
commit 66518baed0
5 changed files with 381 additions and 359 deletions

View File

@@ -11,7 +11,7 @@ from uncompyle6.linenumbers import line_number_mapping
from xdis.load import load_module
def uncompyle(
def decompile(
bytecode_version, co, out=None, showasm=None, showast=False,
timestamp=None, showgrammar=False, code_objects={},
source_size=None, is_pypy=False, magic_int=None):
@@ -48,8 +48,10 @@ def uncompyle(
# deparsing failed
raise pysource.SourceWalkerError(str(e))
# For compatiblity
uncompyle = decompile
def uncompyle_file(filename, outstream=None, showasm=None, showast=False,
def decompile_file(filename, outstream=None, showasm=None, showast=False,
showgrammar=False):
"""
decompile Python byte-code file (.pyc)
@@ -62,16 +64,20 @@ def uncompyle_file(filename, outstream=None, showasm=None, showast=False,
if type(co) == list:
for con in co:
uncompyle(version, con, outstream, showasm, showast,
decompile(version, con, outstream, showasm, showast,
timestamp, showgrammar, code_objects=code_objects,
is_pypy=is_pypy, magic_int=magic_int)
else:
uncompyle(version, co, outstream, showasm, showast,
decompile(version, co, outstream, showasm, showast,
timestamp, showgrammar,
code_objects=code_objects, source_size=source_size,
is_pypy=is_pypy, magic_int=magic_int)
co = None
# For compatiblity
uncompyle_file = decompile_file
# FIXME: combine into an options parameter
def main(in_base, out_base, files, codes, outfile=None,
showasm=None, showast=False, do_verify=False,
@@ -101,12 +107,6 @@ def main(in_base, out_base, files, codes, outfile=None,
tot_files = okay_files = failed_files = verify_failed_files = 0
# for code in codes:
# version = sys.version[:3] # "2.5"
# with open(code, "r") as f:
# co = compile(f.read(), "", "exec")
# uncompyle(sys.version[:3], co, sys.stdout, showasm=showasm, showast=showast)
for filename in files:
infile = os.path.join(in_base, filename)
if not os.path.exists(infile):
@@ -142,7 +142,7 @@ def main(in_base, out_base, files, codes, outfile=None,
# Try to uncompile the input file
try:
uncompyle_file(infile, outstream, showasm, showast, showgrammar)
decompile_file(infile, outstream, showasm, showast, showgrammar)
tot_files += 1
except (ValueError, SyntaxError, ParserError, pysource.SourceWalkerError) as e:
sys.stdout.write("\n")