Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions meta/asttools/visitors/pysourcegen.py
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,32 @@ def visitReturn(self, node):
if node.value is not None:
self.print('return {:node}\n', node.value)

def visitTry(self, node):
# From Python 3.3, TryExcept and TryFinally are unified as Try
self.print('try:')

with self.indenter:
if node.body:
for stmnt in node.body:
self.visit(stmnt)
else:
self.print('pass')

for hndlr in node.handlers:
self.visit(hndlr)

if node.orelse:
self.print('else:')
with self.indenter:
for stmnt in node.orelse:
self.visit(smnt)

if node.finalbody:
self.print('finally:')
with self.indenter:
for stmnt in node.finalbody:
self.visit(stmnt)

def visitTryExcept(self, node):
self.print('try:')

Expand Down
3 changes: 2 additions & 1 deletion meta/decompiler/control_flow_instructions.py
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,8 @@ def SETUP_EXCEPT(self, instr):
else:
else_ = []

try_except = _ast.TryExcept(body=body, handlers=handlers, orelse=else_, lineno=instr.lineno, col_offset=0)
try_except = _ast.Try(body=body, handlers=handlers, orelse=else_,
finalbody=[], lineno=instr.lineno, col_offset=0)

self.push_ast_item(try_except)

Expand Down
1 change: 1 addition & 0 deletions meta/decompiler/instructions.py
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,7 @@ def make_block(self, to, inclusive=True, raise_=True):
@py3op
def MAKE_FUNCTION(self, instr):

name = self.pop_ast_item()
code = self.pop_ast_item()

ndefaults = bitrange(instr.oparg, 0, 8)
Expand Down
1 change: 0 additions & 1 deletion meta/decompiler/recompile.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@

import marshal
import imp
from py_compile import PyCompileError, wr_long

MAGIC = imp.get_magic()

Expand Down