diff options
author | Javier Jardón <javier.jardon@codethink.co.uk> | 2013-01-17 19:19:10 +0000 |
---|---|---|
committer | Javier Jardón <javier.jardon@codethink.co.uk> | 2013-01-18 11:14:08 +0000 |
commit | 37f8d84d7ab356169bf7c04bdecb39a61b85c88d (patch) | |
tree | c6afb47837afa55aac8f8a096a83eab92c339973 /morphlib/morph2.py | |
parent | 7172dca14d7306d79e93b97dcef3a006309f2e03 (diff) | |
download | morph-37f8d84d7ab356169bf7c04bdecb39a61b85c88d.tar.gz |
morph2: Improve compatibility with python < 2.7
Diffstat (limited to 'morphlib/morph2.py')
-rw-r--r-- | morphlib/morph2.py | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/morphlib/morph2.py b/morphlib/morph2.py index 73d55d1d..6af9e9e5 100644 --- a/morphlib/morph2.py +++ b/morphlib/morph2.py @@ -14,16 +14,16 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -import sys -have_python27 = sys.version_info >= (2,7) - -import collections -if not hasattr(collections, 'OrderedDict'): # pragma: no cover - collections.OrderedDict = dict import copy -import json import re +try: + from collections import OrderedDict + import json +except ImportError: # pragma: no cover + from ordereddict import OrderedDict + import simplejson as json + class Morphology(object): @@ -58,19 +58,8 @@ class Morphology(object): ] } - if have_python27: # pragma: no cover - @staticmethod - def _order_keys(pairs): - result = collections.OrderedDict() - for k,v in pairs: - result[k] = v - return result - def __init__(self, text): - if have_python27: # pragma: no cover - self._dict = json.loads(text, object_pairs_hook=self._order_keys) - else: # pragma: no cover - self._dict = json.loads(text) + self._dict = json.loads(text, object_pairs_hook=OrderedDict) self._set_defaults() self._validate_children() @@ -158,7 +147,7 @@ class Morphology(object): # Recreate dict without the empty default values, with a few kind # specific hacks to try and edit standard morphologies as # non-destructively as possible - as_dict = collections.OrderedDict() + as_dict = OrderedDict() for key in self.keys(): if self['kind'] == 'stratum' and key == 'chunks': value = copy.copy(self[key]) |