Fixed #7496 -- It's now possible to pickle SortedDicts with pickle protocol 2
(used in caching). Thanks, John Huddleston. git-svn-id: http://code.djangoproject.com/svn/django/trunk@8531 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
d62cfce213
commit
62b39322f3
1
AUTHORS
1
AUTHORS
|
@ -195,6 +195,7 @@ answer newbie questions, and generally made Django that much better:
|
|||
Sung-Jin Hong <serialx.net@gmail.com>
|
||||
Richard House <Richard.House@i-logue.com>
|
||||
Robert Rock Howard <http://djangomojo.com/>
|
||||
John Huddleston <huddlej@wwu.edu>
|
||||
Rob Hudson <http://rob.cogit8.org/>
|
||||
Jason Huggins <http://www.jrandolph.com/blog/>
|
||||
Hyun Mi Ae
|
||||
|
|
|
@ -54,6 +54,11 @@ class SortedDict(dict):
|
|||
"""
|
||||
A dictionary that keeps its keys in the order in which they're inserted.
|
||||
"""
|
||||
def __new__(cls, *args, **kwargs):
|
||||
instance = super(SortedDict, cls).__new__(cls, *args, **kwargs)
|
||||
instance.keyOrder = []
|
||||
return instance
|
||||
|
||||
def __init__(self, data=None):
|
||||
if data is None:
|
||||
data = {}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
"""
|
||||
# Tests for stuff in django.utils.datastructures.
|
||||
|
||||
>>> import pickle
|
||||
>>> from django.utils.datastructures import *
|
||||
|
||||
### MergeDict #################################################################
|
||||
|
@ -103,13 +104,16 @@ Init from sequence of tuples
|
|||
>>> print repr(d)
|
||||
{1: 'one', 0: 'zero', 2: 'two'}
|
||||
|
||||
>>> pickle.loads(pickle.dumps(d, 2))
|
||||
{1: 'one', 0: 'zero', 2: 'two'}
|
||||
|
||||
>>> d.clear()
|
||||
>>> d
|
||||
{}
|
||||
>>> d.keyOrder
|
||||
[]
|
||||
|
||||
### DotExpandedDict ############################################################
|
||||
### DotExpandedDict ##########################################################
|
||||
|
||||
>>> d = DotExpandedDict({'person.1.firstname': ['Simon'], 'person.1.lastname': ['Willison'], 'person.2.firstname': ['Adrian'], 'person.2.lastname': ['Holovaty']})
|
||||
>>> d['person']['1']['lastname']
|
||||
|
@ -119,7 +123,7 @@ Init from sequence of tuples
|
|||
>>> d['person']['2']['firstname']
|
||||
['Adrian']
|
||||
|
||||
### ImmutableList ################################################################
|
||||
### ImmutableList ############################################################
|
||||
>>> d = ImmutableList(range(10))
|
||||
>>> d.sort()
|
||||
Traceback (most recent call last):
|
||||
|
|
Loading…
Reference in New Issue