summaryrefslogtreecommitdiff
path: root/Lib/lib2to3/fixes
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2008-03-28 05:27:44 +0000
committerMartin v. Löwis <martin@v.loewis.de>2008-03-28 05:27:44 +0000
commitec166be9d9fdc532c65210f2f6975dd1adb2fe7c (patch)
tree91767ed8161d9af4cd69754590a5309a71e3947b /Lib/lib2to3/fixes
parent7ffd75d3666343d504da5ccf6a14204b95ee6b3b (diff)
downloadcpython-ec166be9d9fdc532c65210f2f6975dd1adb2fe7c.tar.gz
Merged revisions 61825-61989 via svnmerge from
svn+ssh://pythondev@svn.python.org/sandbox/trunk/2to3/lib2to3 ........ r61899 | collin.winter | 2008-03-25 17:53:41 +0100 (Di, 25 Mär 2008) | 1 line Add a missing explicit fixer to test_all_fixers. ........ r61983 | collin.winter | 2008-03-28 03:19:46 +0100 (Fr, 28 Mär 2008) | 2 lines Fix http://bugs.python.org/issue2453: support empty excepts in fix_except. ........
Diffstat (limited to 'Lib/lib2to3/fixes')
-rw-r--r--Lib/lib2to3/fixes/fix_except.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/Lib/lib2to3/fixes/fix_except.py b/Lib/lib2to3/fixes/fix_except.py
index 34281a0203..5d6d153fe2 100644
--- a/Lib/lib2to3/fixes/fix_except.py
+++ b/Lib/lib2to3/fixes/fix_except.py
@@ -37,15 +37,18 @@ class FixExcept(basefix.BaseFix):
PATTERN = """
try_stmt< 'try' ':' suite
- cleanup=((except_clause ':' suite)+ ['else' ':' suite]
- ['finally' ':' suite]
- | 'finally' ':' suite) >
+ cleanup=(except_clause ':' suite)+
+ tail=(['except' ':' suite]
+ ['else' ':' suite]
+ ['finally' ':' suite]) >
"""
def transform(self, node, results):
syms = self.syms
- try_cleanup = [ch.clone() for ch in results['cleanup']]
+ tail = [n.clone() for n in results["tail"]]
+
+ try_cleanup = [ch.clone() for ch in results["cleanup"]]
for except_clause, e_suite in find_excepts(try_cleanup):
if len(except_clause.children) == 4:
(E, comma, N) = except_clause.children[1:4]
@@ -85,5 +88,5 @@ class FixExcept(basefix.BaseFix):
N.set_prefix(" ")
#TODO(cwinter) fix this when children becomes a smart list
- children = [c.clone() for c in node.children[:3]] + try_cleanup
+ children = [c.clone() for c in node.children[:3]] + try_cleanup + tail
return pytree.Node(node.type, children)