summaryrefslogtreecommitdiff
path: root/passlib/utils/compat.py
diff options
context:
space:
mode:
authorEli Collins <elic@assurancetechnologies.com>2011-12-06 13:25:28 -0500
committerEli Collins <elic@assurancetechnologies.com>2011-12-06 13:25:28 -0500
commit2ed819dca974d6f9feb479381f1e827d718a4fcc (patch)
treee1a85cd7de6c0ae2c633a5ae9d1f0f7491ae8fc8 /passlib/utils/compat.py
parent281c507652e0bcb230101151bf5a09499fb7045d (diff)
downloadpasslib-2ed819dca974d6f9feb479381f1e827d718a4fcc.tar.gz
moved sys_bits to compat, added exc_err, removed utils.py32_lang
Diffstat (limited to 'passlib/utils/compat.py')
-rw-r--r--passlib/utils/compat.py25
1 files changed, 20 insertions, 5 deletions
diff --git a/passlib/utils/compat.py b/passlib/utils/compat.py
index c98f8d4..d57262e 100644
--- a/passlib/utils/compat.py
+++ b/passlib/utils/compat.py
@@ -2,10 +2,10 @@
#=============================================================================
# figure out what version we're running
#=============================================================================
-from sys import version as pyver
-PY3 = pyver >= (3,0)
-PY_MAX_25 = pyver < (2,6) # py 2.5 or earlier
-PY_MIN_32 = pyver >= (3,2) # py 3.2 or later
+import sys
+PY3 = sys.version >= (3,0)
+PY_MAX_25 = sys.version < (2,6) # py 2.5 or earlier
+PY_MIN_32 = sys.version >= (3,2) # py 3.2 or later
#=============================================================================
# the default exported vars
@@ -18,13 +18,24 @@ __all__ = [
]
#=============================================================================
+# host/vm configuration info
+#=============================================================================
+from math import log as logb
+if PY3:
+ sys_bits = int(logb(sys.maxsize,2)+1.5)
+else:
+ sys_bits = int(logb(sys.maxint,2)+1.5)
+del logb
+assert sys_bits in (32,64), "unexpected system bitsize: %r" % (sys_bits,)
+
+#=============================================================================
# typing
#=============================================================================
def is_mapping(obj):
# non-exhaustive check, enough to distinguish from lists, etc
return hasattr(obj, "items")
-if (3,0) <= pyver < (3,2):
+if (3,0) <= sys.version < (3,2):
# callable isn't dead, it's just resting
from collections import Callable
def callable(obj):
@@ -102,6 +113,10 @@ else:
#=============================================================================
# introspection
#=============================================================================
+def exc_err():
+ "return current error object (to avoid try/except syntax change)"
+ return sys.exc_info()[1]
+
if PY3:
def get_method_function(method):
return method.__func__