Code

Ticket #5744: sorted_dict__init_tuples.diff

File sorted_dict__init_tuples.diff, 1.3 KB (added by Thomas Güttler <hv@…>, 7 years ago)
Line 
1Index: tests/regressiontests/datastructures/tests.py
2===================================================================
3--- tests/regressiontests/datastructures/tests.py       (Revision 6454)
4+++ tests/regressiontests/datastructures/tests.py       (Arbeitskopie)
5@@ -55,6 +55,14 @@
6 >>> print repr(d)
7 {'one': 'not one', 'two': 'two', 'three': 'three'}
8 
9+Init from sequence of tuples
10+>>> d = SortedDict((
11+... (1, "one"),
12+... (0, "zero"),
13+... (2, "two")))
14+>>> print repr(d)
15+{1: 'one', 0: 'zero', 2: 'two'}
16+
17 ### DotExpandedDict ############################################################
18 
19 >>> d = DotExpandedDict({'person.1.firstname': ['Simon'], 'person.1.lastname': ['Willison'], 'person.2.firstname': ['Adrian'], 'person.2.lastname': ['Holovaty']})
20Index: django/utils/datastructures.py
21===================================================================
22--- django/utils/datastructures.py      (Revision 6473)
23+++ django/utils/datastructures.py      (Arbeitskopie)
24@@ -54,7 +54,10 @@
25     def __init__(self, data=None):
26         if data is None: data = {}
27         dict.__init__(self, data)
28-        self.keyOrder = data.keys()
29+        if isinstance(data, dict):
30+            self.keyOrder = data.keys()
31+        else:
32+            self.keyOrder=[key for key, value in data]
33 
34     def __setitem__(self, key, value):
35         dict.__setitem__(self, key, value)