diff DEPENDENCIES/mingw32/Python27/Lib/site-packages/numpy/compat/py3k.py @ 87:2a2c65a20a8b

Add Python libs and headers
author Chris Cannam
date Wed, 25 Feb 2015 14:05:22 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DEPENDENCIES/mingw32/Python27/Lib/site-packages/numpy/compat/py3k.py	Wed Feb 25 14:05:22 2015 +0000
@@ -0,0 +1,89 @@
+"""
+Python 3 compatibility tools.
+
+"""
+from __future__ import division, absolute_import, print_function
+
+__all__ = ['bytes', 'asbytes', 'isfileobj', 'getexception', 'strchar',
+           'unicode', 'asunicode', 'asbytes_nested', 'asunicode_nested',
+           'asstr', 'open_latin1', 'long', 'basestring', 'sixu',
+           'integer_types']
+
+import sys
+
+if sys.version_info[0] >= 3:
+    import io
+
+    long = int
+    integer_types = (int,)
+    basestring = str
+    unicode = str
+    bytes = bytes
+
+    def asunicode(s):
+        if isinstance(s, bytes):
+            return s.decode('latin1')
+        return str(s)
+
+    def asbytes(s):
+        if isinstance(s, bytes):
+            return s
+        return str(s).encode('latin1')
+
+    def asstr(s):
+        if isinstance(s, bytes):
+            return s.decode('latin1')
+        return str(s)
+
+    def isfileobj(f):
+        return isinstance(f, (io.FileIO, io.BufferedReader, io.BufferedWriter))
+
+    def open_latin1(filename, mode='r'):
+        return open(filename, mode=mode, encoding='iso-8859-1')
+
+    def sixu(s):
+        return s
+
+    strchar = 'U'
+
+
+else:
+    bytes = str
+    long = long
+    basestring = basestring
+    unicode = unicode
+    integer_types = (int, long)
+    asbytes = str
+    asstr = str
+    strchar = 'S'
+
+
+    def isfileobj(f):
+        return isinstance(f, file)
+
+    def asunicode(s):
+        if isinstance(s, unicode):
+            return s
+        return str(s).decode('ascii')
+
+    def open_latin1(filename, mode='r'):
+        return open(filename, mode=mode)
+
+    def sixu(s):
+        return unicode(s, 'unicode_escape')
+
+
+def getexception():
+    return sys.exc_info()[1]
+
+def asbytes_nested(x):
+    if hasattr(x, '__iter__') and not isinstance(x, (bytes, unicode)):
+        return [asbytes_nested(y) for y in x]
+    else:
+        return asbytes(x)
+
+def asunicode_nested(x):
+    if hasattr(x, '__iter__') and not isinstance(x, (bytes, unicode)):
+        return [asunicode_nested(y) for y in x]
+    else:
+        return asunicode(x)