Fixed #5744 -- Allowed SortedDict contructor to be passed a list of tuples to match the interface of dict, thanks Thomas Güttler.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@6506 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Gary Wilson Jr 2007-10-14 04:17:02 +00:00
parent a3d015fad0
commit 78d557bf02
2 changed files with 12 additions and 1 deletions

View File

@ -54,7 +54,10 @@ class SortedDict(dict):
def __init__(self, data=None): def __init__(self, data=None):
if data is None: data = {} if data is None: data = {}
dict.__init__(self, data) dict.__init__(self, data)
if isinstance(data, dict):
self.keyOrder = data.keys() self.keyOrder = data.keys()
else:
self.keyOrder=[key for key, value in data]
def __setitem__(self, key, value): def __setitem__(self, key, value):
dict.__setitem__(self, key, value) dict.__setitem__(self, key, value)

View File

@ -55,6 +55,14 @@ True
>>> print repr(d) >>> print repr(d)
{'one': 'not one', 'two': 'two', 'three': 'three'} {'one': 'not one', 'two': 'two', 'three': 'three'}
Init from sequence of tuples
>>> d = SortedDict((
... (1, "one"),
... (0, "zero"),
... (2, "two")))
>>> print repr(d)
{1: 'one', 0: 'zero', 2: 'two'}
### DotExpandedDict ############################################################ ### DotExpandedDict ############################################################
>>> d = DotExpandedDict({'person.1.firstname': ['Simon'], 'person.1.lastname': ['Willison'], 'person.2.firstname': ['Adrian'], 'person.2.lastname': ['Holovaty']}) >>> d = DotExpandedDict({'person.1.firstname': ['Simon'], 'person.1.lastname': ['Willison'], 'person.2.firstname': ['Adrian'], 'person.2.lastname': ['Holovaty']})