summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWouter Bolsterlee <uws@xs4all.nl>2013-11-08 21:47:01 +0100
committerWouter Bolsterlee <uws@xs4all.nl>2013-11-08 21:47:01 +0100
commit66a8ca8266b996955e8dcc22c205685233e9acec (patch)
treefeedcd118ed0c05df2d4b0567e08dfe4ec365a81
parent3f5bed951741500dbd4aff5d57ba8bf6f0fd2e1b (diff)
downloadhappybase-66a8ca8266b996955e8dcc22c205685233e9acec.tar.gz
Add OrderedDict import logic with run-time error fallback
-rw-r--r--happybase/util.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/happybase/util.py b/happybase/util.py
index ab1b34d..355e864 100644
--- a/happybase/util.py
+++ b/happybase/util.py
@@ -9,6 +9,21 @@ import re
CAPITALS = re.compile('([A-Z])')
+try:
+ # Python 2.7
+ from collections import OrderedDict
+except ImportError:
+ try:
+ # External package for Python 2.6
+ from ordereddict import OrderedDict
+ except ImportError as exc:
+ # Stub to throw errors at run-time (not import time)
+ def OrderedDict(*args, **kwargs):
+ raise RuntimeError(
+ "No OrderedDict implementation available; please "
+ "install the 'ordereddict' Package from PyPI.")
+
+
def camel_case_to_pep8(name):
"""Convert a camel cased name to PEP8 style."""
converted = CAPITALS.sub(lambda m: '_' + m.groups()[0].lower(), name)