"""Fixer that changes unicode to str, unichr to chr, and u"..." into "...". | |
""" | |
import re | |
from ..pgen2 import token | |
from .. import fixer_base | |
_mapping = {u"unichr" : u"chr", u"unicode" : u"str"} | |
_literal_re = re.compile(ur"[uU][rR]?[\'\"]") | |
class FixUnicode(fixer_base.BaseFix): | |
BM_compatible = True | |
PATTERN = "STRING | 'unicode' | 'unichr'" | |
def transform(self, node, results): | |
if node.type == token.NAME: | |
new = node.clone() | |
new.value = _mapping[node.value] | |
return new | |
elif node.type == token.STRING: | |
if _literal_re.match(node.value): | |
new = node.clone() | |
new.value = new.value[1:] | |
return new |