summaryrefslogtreecommitdiff
path: root/lib/Crypto/Util/py3compat.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Crypto/Util/py3compat.py')
-rw-r--r--lib/Crypto/Util/py3compat.py25
1 files changed, 9 insertions, 16 deletions
diff --git a/lib/Crypto/Util/py3compat.py b/lib/Crypto/Util/py3compat.py
index 1ab2206..7aa2bee 100644
--- a/lib/Crypto/Util/py3compat.py
+++ b/lib/Crypto/Util/py3compat.py
@@ -63,6 +63,8 @@ __revision__ = "$Id$"
import sys
if sys.version_info[0] == 2:
+ from types import UnicodeType as _UnicodeType # In Python 2.1, 'unicode' is a function, not a type.
+
def b(s):
return s
def bchr(s):
@@ -71,22 +73,13 @@ if sys.version_info[0] == 2:
return str(s)
def bord(s):
return ord(s)
- if sys.version_info[1] == 1:
- def tobytes(s):
- try:
- return s.encode('latin-1')
- except UnicodeError:
- return ''.join(s)
- def tostr(bs):
- return unicode(bs, 'latin-1')
- else:
- def tobytes(s):
- if isinstance(s, unicode):
- return s.encode("latin-1")
- else:
- return ''.join(s)
- def tostr(bs):
- return bs.decode('latin-1')
+ def tobytes(s):
+ if isinstance(s, _UnicodeType):
+ return s.encode("latin-1")
+ else:
+ return ''.join(s)
+ def tostr(bs):
+ return unicode(bs, 'latin-1')
# In Pyton 2.x, StringIO is a stand-alone module
from StringIO import StringIO as BytesIO
else: