diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2013-04-17 00:04:46 -0600 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2013-04-21 20:56:15 -0600 |
commit | 3a5c5475b5c2043dbe6791d3a5100a45d491546e (patch) | |
tree | 9f0445f0258c4252a120005e218ae18ec526fba7 /numpy/lib/npyio.py | |
parent | 56e806abb78ac03a5f45090a3b9bf7a6c9964026 (diff) | |
download | numpy-3a5c5475b5c2043dbe6791d3a5100a45d491546e.tar.gz |
2to3: Apply unicode fixer.
The unicode fixer strips the u from u'hi' and converts the unicode type
to str. The first won't work for Python 2 and instead we replace the u
prefix with the sixu function borrowed from the six compatibility
package. That function calls the unicode constructor with the
'unicode_escape' encoder so that the many tests using escaped unicode
characters like u'\u0900' will be handled correctly. That makes the
sixu function a bit different from the asunicode function currently in
numpy.compat and also provides a target that can be converted back to
the u prefix when support for Python 3.2 is dropped. Python 3.3
reintroduced the u prefix for compatibility.
The unicode fixer also replaces 'unicode' with 'str' as 'unicode' is no
longer a builtin in Python 3. For code compatibility, 'unicode' is
defined either as 'str' or 'unicode' in numpy.compat so that checks like
if isinstance(x, unicode):
...
will work properly for all python versions.
Closes #3089.
Diffstat (limited to 'numpy/lib/npyio.py')
-rw-r--r-- | numpy/lib/npyio.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/numpy/lib/npyio.py b/numpy/lib/npyio.py index 2154acdce..6a353762b 100644 --- a/numpy/lib/npyio.py +++ b/numpy/lib/npyio.py @@ -14,12 +14,17 @@ from operator import itemgetter from ._datasource import DataSource from ._compiled_base import packbits, unpackbits -from ._iotools import LineSplitter, NameValidator, StringConverter, \ - ConverterError, ConverterLockError, ConversionWarning, \ - _is_string_like, has_nested_fields, flatten_dtype, \ - easy_dtype, _bytes_to_name +from ._iotools import ( + LineSplitter, NameValidator, StringConverter, + ConverterError, ConverterLockError, ConversionWarning, + _is_string_like, has_nested_fields, flatten_dtype, + easy_dtype, _bytes_to_name + ) + +from numpy.compat import ( + asbytes, asstr, asbytes_nested, bytes, basestring, unicode + ) -from numpy.compat import asbytes, asstr, asbytes_nested, bytes, basestring from io import BytesIO if sys.version_info[0] >= 3: |