| """Fixer that changes unicode to str, unichr to chr, and u"..." into "...". |
| |
| """ |
| |
| import re |
| from ..pgen2 import token |
| from .. import fixer_base |
| |
| class FixUnicode(fixer_base.BaseFix): |
| |
| PATTERN = "STRING | NAME<'unicode' | 'unichr'>" |
| |
| def transform(self, node, results): |
| if node.type == token.NAME: |
| if node.value == "unicode": |
| new = node.clone() |
| new.value = "str" |
| return new |
| if node.value == "unichr": |
| new = node.clone() |
| new.value = "chr" |
| return new |
| # XXX Warn when __unicode__ found? |
| elif node.type == token.STRING: |
| if re.match(r"[uU][rR]?[\'\"]", node.value): |
| new = node.clone() |
| new.value = new.value[1:] |
| return new |