[PATCH] util: drop unneeded override, sortdict.copy()

Yuya Nishihara yuya at tcha.org
Wed May 17 14:41:45 UTC 2017


# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1495029716 -32400
#      Wed May 17 23:01:56 2017 +0900
# Node ID 8f73e24a59c1d38132f197f1dab296942865c2fc
# Parent  37bcb4665529f5cc59b8dffb1014ac0cab37492c
util: drop unneeded override, sortdict.copy()

OrderedDict.copy() returns self.__class__(self).

diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -568,13 +568,21 @@ def cachefunc(func):
     return f
 
 class sortdict(collections.OrderedDict):
-    '''a simple sorted dictionary'''
+    '''a simple sorted dictionary
+
+    >>> d1 = sortdict([('a', 0), ('b', 1)])
+    >>> d2 = d1.copy()
+    >>> d2
+    sortdict([('a', 0), ('b', 1)])
+    >>> d2.update([('a', 2)])
+    >>> d2.keys() # should still be in last-set order
+    ['b', 'a']
+    '''
+
     def __setitem__(self, key, value):
         if key in self:
             del self[key]
         super(sortdict, self).__setitem__(key, value)
-    def copy(self):
-        return sortdict(self)
 
 class _lrucachenode(object):
     """A node in a doubly linked list.


More information about the Mercurial-devel mailing list