annotate DEPENDENCIES/mingw32/Python27/Lib/site-packages/numpy/compat/py3k.py @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents 2a2c65a20a8b
children
rev   line source
Chris@87 1 """
Chris@87 2 Python 3 compatibility tools.
Chris@87 3
Chris@87 4 """
Chris@87 5 from __future__ import division, absolute_import, print_function
Chris@87 6
Chris@87 7 __all__ = ['bytes', 'asbytes', 'isfileobj', 'getexception', 'strchar',
Chris@87 8 'unicode', 'asunicode', 'asbytes_nested', 'asunicode_nested',
Chris@87 9 'asstr', 'open_latin1', 'long', 'basestring', 'sixu',
Chris@87 10 'integer_types']
Chris@87 11
Chris@87 12 import sys
Chris@87 13
Chris@87 14 if sys.version_info[0] >= 3:
Chris@87 15 import io
Chris@87 16
Chris@87 17 long = int
Chris@87 18 integer_types = (int,)
Chris@87 19 basestring = str
Chris@87 20 unicode = str
Chris@87 21 bytes = bytes
Chris@87 22
Chris@87 23 def asunicode(s):
Chris@87 24 if isinstance(s, bytes):
Chris@87 25 return s.decode('latin1')
Chris@87 26 return str(s)
Chris@87 27
Chris@87 28 def asbytes(s):
Chris@87 29 if isinstance(s, bytes):
Chris@87 30 return s
Chris@87 31 return str(s).encode('latin1')
Chris@87 32
Chris@87 33 def asstr(s):
Chris@87 34 if isinstance(s, bytes):
Chris@87 35 return s.decode('latin1')
Chris@87 36 return str(s)
Chris@87 37
Chris@87 38 def isfileobj(f):
Chris@87 39 return isinstance(f, (io.FileIO, io.BufferedReader, io.BufferedWriter))
Chris@87 40
Chris@87 41 def open_latin1(filename, mode='r'):
Chris@87 42 return open(filename, mode=mode, encoding='iso-8859-1')
Chris@87 43
Chris@87 44 def sixu(s):
Chris@87 45 return s
Chris@87 46
Chris@87 47 strchar = 'U'
Chris@87 48
Chris@87 49
Chris@87 50 else:
Chris@87 51 bytes = str
Chris@87 52 long = long
Chris@87 53 basestring = basestring
Chris@87 54 unicode = unicode
Chris@87 55 integer_types = (int, long)
Chris@87 56 asbytes = str
Chris@87 57 asstr = str
Chris@87 58 strchar = 'S'
Chris@87 59
Chris@87 60
Chris@87 61 def isfileobj(f):
Chris@87 62 return isinstance(f, file)
Chris@87 63
Chris@87 64 def asunicode(s):
Chris@87 65 if isinstance(s, unicode):
Chris@87 66 return s
Chris@87 67 return str(s).decode('ascii')
Chris@87 68
Chris@87 69 def open_latin1(filename, mode='r'):
Chris@87 70 return open(filename, mode=mode)
Chris@87 71
Chris@87 72 def sixu(s):
Chris@87 73 return unicode(s, 'unicode_escape')
Chris@87 74
Chris@87 75
Chris@87 76 def getexception():
Chris@87 77 return sys.exc_info()[1]
Chris@87 78
Chris@87 79 def asbytes_nested(x):
Chris@87 80 if hasattr(x, '__iter__') and not isinstance(x, (bytes, unicode)):
Chris@87 81 return [asbytes_nested(y) for y in x]
Chris@87 82 else:
Chris@87 83 return asbytes(x)
Chris@87 84
Chris@87 85 def asunicode_nested(x):
Chris@87 86 if hasattr(x, '__iter__') and not isinstance(x, (bytes, unicode)):
Chris@87 87 return [asunicode_nested(y) for y in x]
Chris@87 88 else:
Chris@87 89 return asunicode(x)