equal
deleted
inserted
replaced
566 return cache[args] |
566 return cache[args] |
567 |
567 |
568 return f |
568 return f |
569 |
569 |
570 class sortdict(collections.OrderedDict): |
570 class sortdict(collections.OrderedDict): |
571 '''a simple sorted dictionary''' |
571 '''a simple sorted dictionary |
|
572 |
|
573 >>> d1 = sortdict([('a', 0), ('b', 1)]) |
|
574 >>> d2 = d1.copy() |
|
575 >>> d2 |
|
576 sortdict([('a', 0), ('b', 1)]) |
|
577 >>> d2.update([('a', 2)]) |
|
578 >>> d2.keys() # should still be in last-set order |
|
579 ['b', 'a'] |
|
580 ''' |
|
581 |
572 def __setitem__(self, key, value): |
582 def __setitem__(self, key, value): |
573 if key in self: |
583 if key in self: |
574 del self[key] |
584 del self[key] |
575 super(sortdict, self).__setitem__(key, value) |
585 super(sortdict, self).__setitem__(key, value) |
576 def copy(self): |
|
577 return sortdict(self) |
|
578 |
586 |
579 class _lrucachenode(object): |
587 class _lrucachenode(object): |
580 """A node in a doubly linked list. |
588 """A node in a doubly linked list. |
581 |
589 |
582 Holds a reference to nodes on either side as well as a key-value |
590 Holds a reference to nodes on either side as well as a key-value |