diff options
author | Wouter Bolsterlee <uws@xs4all.nl> | 2013-11-08 21:47:01 +0100 |
---|---|---|
committer | Wouter Bolsterlee <uws@xs4all.nl> | 2013-11-08 21:47:01 +0100 |
commit | 66a8ca8266b996955e8dcc22c205685233e9acec (patch) | |
tree | feedcd118ed0c05df2d4b0567e08dfe4ec365a81 | |
parent | 3f5bed951741500dbd4aff5d57ba8bf6f0fd2e1b (diff) | |
download | happybase-66a8ca8266b996955e8dcc22c205685233e9acec.tar.gz |
Add OrderedDict import logic with run-time error fallback
-rw-r--r-- | happybase/util.py | 15 |
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) |