import parser code = """ x, y = 5, 0 try: result = x / y except ZeroDivisionError: print "division by zero" """ ast = parser.suite(code) tpl = parser.ast2tuple(ast) parser.tuple2ast(tpl) # Fine code = """ x, y = 5, 0 try: result = x / y finally: print "finally clause" """ ast = parser.suite(code) tpl = parser.ast2tuple(ast) parser.tuple2ast(tpl) # Fine code = """ x, y = 5, 0 try: result = x / y except ZeroDivisionError: print "division by zero" finally: print "finally clause" """ ast = parser.suite(code) tpl = parser.ast2tuple(ast) parser.tuple2ast(tpl) # Fails code = """ x, y = 5, 0 try: result = x / y except ZeroDivisionError: print "division by zero" else: print "result is", result finally: print "finally clause" """ ast = parser.suite(code) tpl = parser.ast2tuple(ast) parser.tuple2ast(tpl) # Fails