summaryrefslogtreecommitdiff
path: root/passlib/utils
diff options
context:
space:
mode:
authorEli Collins <elic@assurancetechnologies.com>2011-12-06 17:49:43 -0500
committerEli Collins <elic@assurancetechnologies.com>2011-12-06 17:49:43 -0500
commit7645cfde280b228c537d19bcb4d4aab0fdde27ef (patch)
tree916e74aace6e281a3f14b031d0f26c0528a12018 /passlib/utils
parentf99c749bac68994be0b9fa3317735efca0924202 (diff)
downloadpasslib-7645cfde280b228c537d19bcb4d4aab0fdde27ef.tar.gz
couple of minor tweaks - basic unittests pass 2.7 & 3.2
Diffstat (limited to 'passlib/utils')
-rw-r--r--passlib/utils/compat.py27
-rw-r--r--passlib/utils/h64.py2
2 files changed, 21 insertions, 8 deletions
diff --git a/passlib/utils/compat.py b/passlib/utils/compat.py
index f82f7d6..159aed4 100644
--- a/passlib/utils/compat.py
+++ b/passlib/utils/compat.py
@@ -3,10 +3,18 @@
# figure out what version we're running
#=============================================================================
import sys
-PY3 = sys.version >= (3,0)
-PY_MAX_25 = sys.version < (2,6) # py 2.5 or earlier
-PY27 = sys.version[:2] == (2,7) # supports last 2.x release
-PY_MIN_32 = sys.version >= (3,2) # py 3.2 or later
+PY3 = sys.version_info >= (3,0)
+PY_MAX_25 = sys.version_info < (2,6) # py 2.5 or earlier
+PY27 = sys.version_info[:2] == (2,7) # supports last 2.x release
+PY_MIN_32 = sys.version_info >= (3,2) # py 3.2 or later
+
+#=============================================================================
+# common imports
+#=============================================================================
+if PY3:
+ import builtins
+else:
+ import __builtin__ as builtins
#=============================================================================
# the default exported vars
@@ -82,12 +90,14 @@ def is_mapping(obj):
# non-exhaustive check, enough to distinguish from lists, etc
return hasattr(obj, "items")
-if (3,0) <= sys.version < (3,2):
+if (3,0) <= sys.version_info < (3,2):
# callable isn't dead, it's just resting
from collections import Callable
def callable(obj):
return isinstance(obj, Callable)
__all__.append("callable")
+else:
+ callable = builtins.callable
if PY3:
int_types = (int,)
@@ -104,6 +114,7 @@ if PY3:
assert isinstance(s, str)
return s.encode("latin-1")
unicode = str
+ bytes = builtins.bytes
__all__.append("unicode")
# string_types = (unicode,)
@@ -116,6 +127,9 @@ else:
if PY_MAX_25:
bytes = str
__all__.append("bytes")
+ else:
+ bytes = builtins.bytes
+ unicode = builtins.unicode
# string_types = (unicode, bytes)
sb_types = (unicode, bytes)
@@ -171,13 +185,12 @@ else:
def _add_doc(obj, doc):
"""add docstring to an object"""
- object.__doc__ = doc
+ obj.__doc__ = doc
#=============================================================================
# input/output
#=============================================================================
if PY3:
- import builtins
print_ = getattr(builtins, "print")
else:
def print_(*args, **kwds):
diff --git a/passlib/utils/h64.py b/passlib/utils/h64.py
index 0659732..cf889d3 100644
--- a/passlib/utils/h64.py
+++ b/passlib/utils/h64.py
@@ -42,7 +42,7 @@ _CHARIDX = dict((_encode_6bit(i),i) for i in irange(64))
_decode_6bit = _CHARIDX.__getitem__ # char -> int
#for py3, enhance _CHARIDX to also support int value of bytes
-if Py3:
+if PY3:
_CHARIDX.update((v,i) for i,v in enumerate(BCHARS))
#=================================================================================