Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/galaxy/util/odict.py @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
| author | shellac |
|---|---|
| date | Mon, 01 Jun 2020 08:59:25 -0400 |
| parents | 79f47841a781 |
| children |
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/galaxy/util/odict.py Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -""" -Ordered dictionary implementation with `insert` functionality. - -This is only used in one specific place in the codebase: - galaxy.tools.toolbox.panel - -Whenever possible the stdlib `collections.OrderedDict` should be used instead of -this custom implementation. -""" - -from six.moves import UserDict -dict_alias = dict - - -class odict(UserDict): - """ - http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/107747 - - This dictionary class extends UserDict to record the order in which items are - added. Calling keys(), values(), items(), etc. will return results in this - order. - """ - - def __init__(self, dict=None): - item = dict - self._keys = [] - if isinstance(item, dict_alias): - UserDict.__init__(self, item) - else: - UserDict.__init__(self, None) - if isinstance(item, list): - for (key, value) in item: - self[key] = value - - def __delitem__(self, key): - UserDict.__delitem__(self, key) - self._keys.remove(key) - - def __setitem__(self, key, item): - UserDict.__setitem__(self, key, item) - if key not in self._keys: - self._keys.append(key) - - def clear(self): - UserDict.clear(self) - self._keys = [] - - def copy(self): - new = odict() - new.update(self) - return new - - def items(self): - return zip(self._keys, self.values()) - - def keys(self): - return self._keys[:] - - def popitem(self): - try: - key = self._keys[-1] - except IndexError: - raise KeyError('dictionary is empty') - val = self[key] - del self[key] - return (key, val) - - def setdefault(self, key, failobj=None): - if key not in self._keys: - self._keys.append(key) - return UserDict.setdefault(self, key, failobj) - - def update(self, dict): - for (key, val) in dict.items(): - self.__setitem__(key, val) - - def values(self): - return map(self.get, self._keys) - - def iterkeys(self): - return iter(self._keys) - - def itervalues(self): - for key in self._keys: - yield self.get(key) - - def iteritems(self): - for key in self._keys: - yield key, self.get(key) - - def __iter__(self): - for key in self._keys: - yield key - - def reverse(self): - self._keys.reverse() - - def insert(self, index, key, item): - if key not in self._keys: - self._keys.insert(index, key) - UserDict.__setitem__(self, key, item)
