]> granicus.if.org Git - python/commitdiff
collections.Mapping is not available for setup.py. Remove the dependency the old...
authorRaymond Hettinger <python@rcn.com>
Wed, 2 Feb 2011 22:17:34 +0000 (22:17 +0000)
committerRaymond Hettinger <python@rcn.com>
Wed, 2 Feb 2011 22:17:34 +0000 (22:17 +0000)
Lib/configparser.py

index edd3ac3bb5565ee8d53c5c19c9b4448fb475ae8e..c7ae270759f2adb4218058abc4223549ae0e074a 100644 (file)
@@ -88,7 +88,7 @@ ConfigParser -- responsible for parsing a list of
 """
 
 try:
-    from collections import Mapping, OrderedDict as _default_dict
+    from collections import OrderedDict as _default_dict
 except ImportError:
     # fallback for setup.py which hasn't yet built _collections
     _default_dict = dict
@@ -515,7 +515,7 @@ class RawConfigParser:
         if e:
             raise e
 
-class _Chainmap(Mapping):
+class _Chainmap:
     """Combine multiple mappings for successive lookups.
 
     For example, to emulate Python's normal lookup sequence:
@@ -548,6 +548,36 @@ class _Chainmap(Mapping):
         s.update(*self.maps)
         return len(s)
 
+    def get(self, key, default=None):
+        try:
+            return self[key]
+        except KeyError:
+            return default
+
+    def __contains__(self, key):
+        try:
+            self[key]
+        except KeyError:
+            return False
+        else:
+            return True
+
+    def keys(self):
+        return list(self)
+
+    def items(self):
+        return [(k, self[k]) for k in self]
+
+    def values(self):
+        return [self[k] for k in self]
+
+    def __eq__(self, other):
+        return dict(self.items()) == dict(other.items())
+
+    def __ne__(self, other):
+        return not (self == other)
+
+
 class ConfigParser(RawConfigParser):
 
     def get(self, section, option, raw=False, vars=None):