diff options
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]) |