diff options
| author | Eli Collins <elic@assurancetechnologies.com> | 2011-12-06 17:49:43 -0500 |
|---|---|---|
| committer | Eli Collins <elic@assurancetechnologies.com> | 2011-12-06 17:49:43 -0500 |
| commit | 7645cfde280b228c537d19bcb4d4aab0fdde27ef (patch) | |
| tree | 916e74aace6e281a3f14b031d0f26c0528a12018 /passlib/utils | |
| parent | f99c749bac68994be0b9fa3317735efca0924202 (diff) | |
| download | passlib-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.py | 27 | ||||
| -rw-r--r-- | passlib/utils/h64.py | 2 |
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)) #================================================================================= |
