symbian-qemu-0.9.1-12/python-win32-2.6.1/lib/lib2to3/fixes/fix_unicode.py
author Gareth Stockwell <gareth.stockwell@accenture.com>
Fri, 24 Sep 2010 13:44:00 +0100
branchgraphics-phase-3
changeset 117 b7d35cad610d
parent 1 2fb8b9db1c86
permissions -rw-r--r--
Modified path to qemu package source to /sf/adapt/qemu This is to conform with the convention that adaptation-level packages should be located in /sf/adapt rather than /sf/adaptation. This is an interim workaround for bug 3744.

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