You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-04 09:22:40 +08:00
Add fragment rules for RAISE_VARARGS and ...
Fix a fragment offset-sorting bug
This commit is contained in:
@@ -200,7 +200,7 @@ def main(in_base, out_base, files, codes, outfile=None,
|
|||||||
for d in deparsed:
|
for d in deparsed:
|
||||||
last_mod = None
|
last_mod = None
|
||||||
offsets = d.offsets
|
offsets = d.offsets
|
||||||
for e in sorted(offsets.keys()):
|
for e in sorted([k for k in offsets.keys() if isinstance(k[1], int)]):
|
||||||
if e[0] != last_mod:
|
if e[0] != last_mod:
|
||||||
line = '=' * len(e[0])
|
line = '=' * len(e[0])
|
||||||
outstream.write("%s\n%s\n%s\n" % (line, e[0], line))
|
outstream.write("%s\n%s\n%s\n" % (line, e[0], line))
|
||||||
|
@@ -210,6 +210,47 @@ class FragmentsWalker(pysource.SourceWalker, object):
|
|||||||
|
|
||||||
n_tryelsestmt = n_tryelsestmtc = n_tryelsestmtl = n_tryfinallystmt = n_try_except
|
n_tryelsestmt = n_tryelsestmtc = n_tryelsestmtl = n_tryfinallystmt = n_try_except
|
||||||
|
|
||||||
|
def n_raise_stmt0(self, node):
|
||||||
|
assert node[0] == 'RAISE_VARARGS_0'
|
||||||
|
start = len(self.f.getvalue()) + len(self.indent)
|
||||||
|
try:
|
||||||
|
self.default(node)
|
||||||
|
except GenericASTTraversalPruningException:
|
||||||
|
pass
|
||||||
|
self.set_pos_info(node[0], start, len(self.f.getvalue()))
|
||||||
|
self.prune()
|
||||||
|
|
||||||
|
def n_raise_stmt1(self, node):
|
||||||
|
assert node[1] == 'RAISE_VARARGS_1'
|
||||||
|
start = len(self.f.getvalue()) + len(self.indent)
|
||||||
|
try:
|
||||||
|
self.default(node)
|
||||||
|
except GenericASTTraversalPruningException:
|
||||||
|
pass
|
||||||
|
self.set_pos_info(node[1], start, len(self.f.getvalue()))
|
||||||
|
self.prune()
|
||||||
|
|
||||||
|
def n_raise_stmt2(self, node):
|
||||||
|
assert node[2] == 'RAISE_VARARGS_2'
|
||||||
|
start = len(self.f.getvalue()) + len(self.indent)
|
||||||
|
try:
|
||||||
|
self.default(node)
|
||||||
|
except GenericASTTraversalPruningException:
|
||||||
|
pass
|
||||||
|
self.set_pos_info(node[2], start, len(self.f.getvalue()))
|
||||||
|
self.prune()
|
||||||
|
|
||||||
|
# FIXME: Isolate: only in Python 2.x.
|
||||||
|
def n_raise_stmt3(self, node):
|
||||||
|
assert node[3] == 'RAISE_VARARGS_3'
|
||||||
|
start = len(self.f.getvalue()) + len(self.indent)
|
||||||
|
try:
|
||||||
|
self.default(node)
|
||||||
|
except GenericASTTraversalPruningException:
|
||||||
|
pass
|
||||||
|
self.set_pos_info(node[3], start, len(self.f.getvalue()))
|
||||||
|
self.prune()
|
||||||
|
|
||||||
def n_return(self, node):
|
def n_return(self, node):
|
||||||
start = len(self.f.getvalue()) + len(self.indent)
|
start = len(self.f.getvalue()) + len(self.indent)
|
||||||
if self.params['is_lambda']:
|
if self.params['is_lambda']:
|
||||||
|
Reference in New Issue
Block a user