Changeset 6593
- Timestamp:
- 10/21/07 19:52:54 (1 year ago)
- Files:
-
- django/trunk/django/utils/datastructures.py (modified) (2 diffs)
- django/trunk/tests/regressiontests/datastructures/tests.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/utils/datastructures.py
r6528 r6593 63 63 self.keyOrder = [key for key, value in data] 64 64 65 def __deepcopy__(self,memo): 66 from copy import deepcopy 67 obj = self.__class__() 68 for k, v in self.items(): 69 obj[k] = deepcopy(v, memo) 70 return obj 71 65 72 def __setitem__(self, key, value): 66 73 dict.__setitem__(self, key, value) … … 75 82 for k in self.keyOrder: 76 83 yield k 84 85 def pop(self, k, *args): 86 result = dict.pop(self, k, *args) 87 try: 88 self.keyOrder.remove(k) 89 except ValueError: 90 # Key wasn't in the dictionary in the first place. No problem. 91 pass 92 return result 93 94 def popitem(self): 95 result = dict.popitem(self) 96 self.keyOrder.remove(result[0]) 97 return result 77 98 78 99 def items(self): django/trunk/tests/regressiontests/datastructures/tests.py
r6506 r6593 55 55 >>> print repr(d) 56 56 {'one': 'not one', 'two': 'two', 'three': 'three'} 57 >>> d.pop('one', 'missing') 58 'not one' 59 >>> d.pop('one', 'missing') 60 'missing' 61 62 We don't know which item will be popped in popitem(), so we'll just check that 63 the number of keys has decreased. 64 >>> l = len(d) 65 >>> _ = d.popitem() 66 >>> l - len(d) 67 1 57 68 58 69 Init from sequence of tuples
