bundled/jinja2/custom_fixers/fix_broken_reraising.py @ 256716e3a3d7 webpy-sucks
Add Jinja2 as a bundled app.
| author | Steve Losh <steve@stevelosh.com> |
|---|---|
| date | Tue, 02 Mar 2010 19:49:35 -0500 |
| parents | (none) |
| children | (none) |
from lib2to3 import fixer_base, pytree from lib2to3.fixer_util import Name, BlankLine, Name, Attr, ArgList class FixBrokenReraising(fixer_base.BaseFix): PATTERN = """ raise_stmt< 'raise' any ',' val=any ',' tb=any > """ # run before the broken 2to3 checker with the same goal # tries to rewrite it with a rule that does not work out for jinja run_order = 1 def transform(self, node, results): tb = results['tb'].clone() tb.prefix = '' with_tb = Attr(results['val'].clone(), Name('with_traceback')) + \ [ArgList([tb])] new = pytree.Node(self.syms.simple_stmt, [Name("raise")] + with_tb) new.prefix = node.prefix return new