bundled/jinja2/custom_fixers/fix_broken_reraising.py @ b443b42afe6f
issue-90
Convert unicode to ascii for mercurial API.
Mercurial API can't work with python's Unicode objects.
Details http://mercurial.selenic.com/wiki/EncodingStrategy#Unicode_strings
author |
Alexander Stepanenko <olexander314@gmail.com> |
date |
Mon, 15 Dec 2014 02:06:13 +0300 |
parents |
256716e3a3d7 |
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