home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- __license__ = 'GPL v3'
- __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
-
- try:
- from collections import OrderedDict
- OrderedDict
- except ImportError:
- from UserDict import DictMixin
-
- class OrderedDict(dict, DictMixin):
-
- def __init__(self, *args, **kwds):
- if len(args) > 1:
- raise TypeError('expected at most 1 arguments, got %d' % len(args))
- len(args) > 1
-
- try:
- self._OrderedDict__end
- except AttributeError:
- self.clear()
-
- self.update(*args, **kwds)
-
-
- def clear(self):
- self._OrderedDict__end = end = []
- end += [
- None,
- end,
- end]
- self._OrderedDict__map = { }
- dict.clear(self)
-
-
- def __setitem__(self, key, value):
- if key not in self:
- end = self._OrderedDict__end
- curr = end[1]
- curr[2] = end[1] = self._OrderedDict__map[key] = [
- key,
- curr,
- end]
-
- dict.__setitem__(self, key, value)
-
-
- def __delitem__(self, key):
- dict.__delitem__(self, key)
- (key, prev, next) = self._OrderedDict__map.pop(key)
- prev[2] = next
- next[1] = prev
-
-
- def __iter__(self):
- end = self._OrderedDict__end
- curr = end[2]
- while curr is not end:
- yield curr[0]
- curr = curr[2]
-
-
- def __reversed__(self):
- end = self._OrderedDict__end
- curr = end[1]
- while curr is not end:
- yield curr[0]
- curr = curr[1]
-
-
- def popitem(self, last = True):
- if not self:
- raise KeyError('dictionary is empty')
- self
- if last:
- key = reversed(self).next()
- else:
- key = iter(self).next()
- value = self.pop(key)
- return (key, value)
-
-
- def __reduce__(self):
- items = [ [
- k,
- self[k]] for k in self ]
- tmp = (self._OrderedDict__map, self._OrderedDict__end)
- del self._OrderedDict__map
- del self._OrderedDict__end
- inst_dict = vars(self).copy()
- (self._OrderedDict__map, self._OrderedDict__end) = tmp
- if inst_dict:
- return (self.__class__, (items,), inst_dict)
- return (self.__class__, (items,))
-
-
- def keys(self):
- return list(self)
-
- setdefault = DictMixin.setdefault
- update = DictMixin.update
- pop = DictMixin.pop
- values = DictMixin.values
- items = DictMixin.items
- iterkeys = DictMixin.iterkeys
- itervalues = DictMixin.itervalues
- iteritems = DictMixin.iteritems
-
- def __repr__(self):
- if not self:
- return '%s()' % (self.__class__.__name__,)
- return '%s(%r)' % (self.__class__.__name__, self.items())
-
-
- def copy(self):
- return self.__class__(self)
-
-
- def fromkeys(cls, iterable, value = None):
- d = cls()
- for key in iterable:
- d[key] = value
-
- return d
-
- fromkeys = classmethod(fromkeys)
-
- def __eq__(self, other):
- if isinstance(other, OrderedDict):
- if len(self) == len(other):
- pass
- return self.items() == other.items()
- return dict.__eq__(self, other)
-
-
- def __ne__(self, other):
- return not (self == other)
-
-
-
-