| """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 |