summaryrefslogtreecommitdiff
path: root/giscanner/collections/ordereddict.py
diff options
context:
space:
mode:
Diffstat (limited to 'giscanner/collections/ordereddict.py')
-rw-r--r--giscanner/collections/ordereddict.py132
1 files changed, 0 insertions, 132 deletions
diff --git a/giscanner/collections/ordereddict.py b/giscanner/collections/ordereddict.py
deleted file mode 100644
index b2466dcc..00000000
--- a/giscanner/collections/ordereddict.py
+++ /dev/null
@@ -1,132 +0,0 @@
-# -*- Mode: Python -*-
-# GObject-Introspection - a framework for introspecting GObject libraries
-# Copyright (C) 2008 Johan Dahlin
-# Copyright (C) 2013 Dieter Verfaillie <dieterv@optionexplicit.be>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-
-# Borrowed from:
-# http://hg.sqlalchemy.org/sqlalchemy/raw-file/77e2264283d4/lib/sqlalchemy/util/_collections.py
-# http://hg.sqlalchemy.org/sqlalchemy/raw-file/77e2264283d4/AUTHORS
-#
-# util/_collections.py
-# Copyright (C) 2005-2012 the SQLAlchemy authors and contributors <see AUTHORS file>
-#
-# This module is part of SQLAlchemy and is released under
-# the MIT License: http://www.opensource.org/licenses/mit-license.php
-
-
-import sys
-
-
-py2k = sys.version_info < (3, 0)
-
-
-class OrderedDict(dict):
- """A dict that returns keys/values/items in the order they were added."""
-
- __slots__ = '_list',
-
- def __reduce__(self):
- return OrderedDict, (self.items(),)
-
- def __init__(self, ____sequence=None, **kwargs):
- self._list = []
- if ____sequence is None:
- if kwargs:
- self.update(**kwargs)
- else:
- self.update(____sequence, **kwargs)
-
- def clear(self):
- self._list = []
- dict.clear(self)
-
- def copy(self):
- return self.__copy__()
-
- def __copy__(self):
- return OrderedDict(self)
-
- def sort(self, *arg, **kw):
- self._list.sort(*arg, **kw)
-
- def update(self, ____sequence=None, **kwargs):
- if ____sequence is not None:
- if hasattr(____sequence, 'keys'):
- for key in ____sequence.keys():
- self.__setitem__(key, ____sequence[key])
- else:
- for key, value in ____sequence:
- self[key] = value
- if kwargs:
- self.update(kwargs)
-
- def setdefault(self, key, value):
- if key not in self:
- self.__setitem__(key, value)
- return value
- else:
- return self.__getitem__(key)
-
- def __iter__(self):
- return iter(self._list)
-
- def keys(self):
- return list(self)
-
- def values(self):
- return [self[key] for key in self._list]
-
- def items(self):
- return [(key, self[key]) for key in self._list]
-
- if py2k:
- def itervalues(self):
- return iter(self.values())
-
- def iterkeys(self):
- return iter(self)
-
- def iteritems(self):
- return iter(self.items())
-
- def __setitem__(self, key, object):
- if key not in self:
- try:
- self._list.append(key)
- except AttributeError:
- # work around Python pickle loads() with
- # dict subclass (seems to ignore __setstate__?)
- self._list = [key]
- dict.__setitem__(self, key, object)
-
- def __delitem__(self, key):
- dict.__delitem__(self, key)
- self._list.remove(key)
-
- def pop(self, key, *default):
- present = key in self
- value = dict.pop(self, key, *default)
- if present:
- self._list.remove(key)
- return value
-
- def popitem(self):
- item = dict.popitem(self)
- self._list.remove(item[0])
- return item