annotate fixes/fix_unicode_in_strings.py @ 918:f05002a6d078 experimental-py3k

add support for python 3 to remaining genshi.template components: * minor changes to track encoding=None API change in core genshi modules. * genshi/template/directives: * slightly odd syntax changes to make the 2to3 .next() fixer pick up *stream.next() * minor test fix for change in behaviour of division (/) in Python 3. * genshi/template/loader: * add 'b' to file modes to ensure it's loaded as bytes in Python 3. * use not isinstance(s, unicode) instead of isinstance(s, str) since the former is correctly converted by 2to3.
author hodgestar
date Sun, 24 Oct 2010 22:48:15 +0000
parents c74a141a48ff
children
rev   line source
912
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
1 """Fixer that changes expressions inside strings literals from u"..." to "...".
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
2
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
3 """
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
4
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
5 import re
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
6 from lib2to3 import fixer_base
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
7
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
8 _literal_re = re.compile(r"(.+?)\b[uU]([rR]?[\'\"])")
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
9
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
10 class FixUnicodeInStrings(fixer_base.BaseFix):
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
11
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
12 PATTERN = "STRING"
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
13
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
14 def transform(self, node, results):
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
15 new = node.clone()
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
16 new.value = _literal_re.sub(r"\1\2", new.value)
c74a141a48ff py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
hodgestar
parents:
diff changeset
17 return new
Copyright (C) 2012-2017 Edgewall Software