[Python-Dev] Migration from Python 2.7 and bytes formatting
nas at arctrix.com
Fri Jan 17 21:09:45 CET 2014
I've refined this idea a little in my latest PEP 461 patch (issue
20284). Continuing to use %s instead of introducing %b seems
better. I've called the commmand-line option -2, it could be used
to enable other similar porting aids.
I'd like to try porting code making use of the -2 feature to see how
helpful it is. The behavior is partway between Python 2.x laziness
and Python 3.x strictness in terms of specifying encodings.
- coerce byte strings to unicode strings to avoid making a
decision about encoding
- when writing a unicode string to a bytes stream without
a specified encoding, encode with ASCII. Blow up with an
exception if a non-ASCII character is encounted, often far
from where the real bug is.
- refuse to accept unicode strings where bytes are expected,
require explicit encoding to be preformed
Python 3.x with -2 command-line option:
- when objects are formatted into bytes, immediately
encode them using strict ASCII encoding.
No code would be considered fully ported to Python 3 unless it can
run without the -2 command line option.
More information about the Python-Dev