[PATCH 1 of 3 V2] config: move config.sortdict class into its own file

Angel Ezquerra angel.ezquerra at gmail.com
Mon Mar 17 01:36:51 CDT 2014


# HG changeset patch
# User Angel Ezquerra <angel.ezquerra at gmail.com>
# Date 1393116991 -3600
#      Sun Feb 23 01:56:31 2014 +0100
# Node ID 2080392f1e7380880935f646a7751d79f4ab6b7d
# Parent  e87bd3485a07f4b231febef26c6797855a64af3d
config: move config.sortdict class into its own file

This makes it more natural to use the sortdict class from outside config.py.

diff --git a/mercurial/config.py b/mercurial/config.py
--- a/mercurial/config.py
+++ b/mercurial/config.py
@@ -8,37 +8,7 @@
 from i18n import _
 import error, util
 import os, errno
-
-class sortdict(dict):
-    'a simple sorted dictionary'
-    def __init__(self, data=None):
-        self._list = []
-        if data:
-            self.update(data)
-    def copy(self):
-        return sortdict(self)
-    def __setitem__(self, key, val):
-        if key in self:
-            self._list.remove(key)
-        self._list.append(key)
-        dict.__setitem__(self, key, val)
-    def __iter__(self):
-        return self._list.__iter__()
-    def update(self, src):
-        for k in src:
-            self[k] = src[k]
-    def clear(self):
-        dict.clear(self)
-        self._list = []
-    def items(self):
-        return [(k, self[k]) for k in self._list]
-    def __delitem__(self, key):
-        dict.__delitem__(self, key)
-        self._list.remove(key)
-    def keys(self):
-        return self._list
-    def iterkeys(self):
-        return self._list.__iter__()
+from sortdict import sortdict
 
 class config(object):
     def __init__(self, data=None):
diff --git a/mercurial/sortdict.py b/mercurial/sortdict.py
new file mode 100644
--- /dev/null
+++ b/mercurial/sortdict.py
@@ -0,0 +1,37 @@
+# sortdict.py - simple sorted dictionary for Mercurial
+#
+#  Copyright 2009 Matt Mackall <mpm at selenic.com> and others
+#
+# This software may be used and distributed according to the terms of the
+# GNU General Public License version 2 or any later version.
+
+class sortdict(dict):
+    'a simple sorted dictionary'
+    def __init__(self, data=None):
+        self._list = []
+        if data:
+            self.update(data)
+    def copy(self):
+        return sortdict(self)
+    def __setitem__(self, key, val):
+        if key in self:
+            self._list.remove(key)
+        self._list.append(key)
+        dict.__setitem__(self, key, val)
+    def __iter__(self):
+        return self._list.__iter__()
+    def update(self, src):
+        for k in src:
+            self[k] = src[k]
+    def clear(self):
+        dict.clear(self)
+        self._list = []
+    def items(self):
+        return [(k, self[k]) for k in self._list]
+    def __delitem__(self, key):
+        dict.__delitem__(self, key)
+        self._list.remove(key)
+    def keys(self):
+        return self._list
+    def iterkeys(self):
+        return self._list.__iter__()


More information about the Mercurial-devel mailing list