comparison mercurial/util.py @ 32306:2d19664e257d

util: drop unneeded override, sortdict.copy() OrderedDict.copy() returns self.__class__(self).
author Yuya Nishihara <yuya@tcha.org>
date Wed, 17 May 2017 23:01:56 +0900
parents bd0fd3ff9916
children a9c71d578a1c
comparison
equal deleted inserted replaced
32305:911057981ba4 32306:2d19664e257d
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