symbian-qemu-0.9.1-12/python-win32-2.6.1/lib/lib2to3/fixes/fix_unicode.py
author MattD <mattd@symbian.org>
Tue, 23 Mar 2010 21:04:26 +0000
changeset 53 b8b0521c95b2
parent 1 2fb8b9db1c86
permissions -rw-r--r--
rombuilding fixes - stop exporting base.iby, and set the other bits to work with the kernel base.iby

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