summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-03-09 05:34:42 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-03-09 05:34:42 +0000
commit22178d692a651be21fa9347502babe1bd17aabf2 (patch)
treeeb64f70accc5ea56903181b3522428294ffb6ec0
parentfcd119bfb18b20e81457f845b826733eee9c0cd0 (diff)
Fixed #3678 -- Implemented SortedDict.copy().
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4688 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/utils/datastructures.py7
-rw-r--r--tests/regressiontests/datastructures/tests.py2
2 files changed, 9 insertions, 0 deletions
diff --git a/django/utils/datastructures.py b/django/utils/datastructures.py
index 94ab76c483..e924e4edbc 100644
--- a/django/utils/datastructures.py
+++ b/django/utils/datastructures.py
@@ -92,6 +92,13 @@ class SortedDict(dict):
"Returns the value of the item at the given zero-based index."
return self[self.keyOrder[index]]
+ def copy(self):
+ "Returns a copy of this object."
+ # This way of initialising the copy means it works for subclasses, too.
+ obj = self.__class__(self)
+ obj.keyOrder = self.keyOrder
+ return obj
+
class MultiValueDictKeyError(KeyError):
pass
diff --git a/tests/regressiontests/datastructures/tests.py b/tests/regressiontests/datastructures/tests.py
index 90fb2d56a2..e008c255f1 100644
--- a/tests/regressiontests/datastructures/tests.py
+++ b/tests/regressiontests/datastructures/tests.py
@@ -50,6 +50,8 @@
>>> d['one'] = 'not one'
>>> d['one']
'not one'
+>>> d.keys() == d.copy().keys()
+True
### DotExpandedDict ############################################################