config: add hasconfig method and supporting plumbing
authorBryan O'Sullivan <bos@serpentine.com>
Thu, 07 Jan 2016 19:45:03 -0800
changeset 27696 e70c97cc9243
parent 27695 fb0cc863d172
child 27697 0ce0cfee497f
config: add hasconfig method and supporting plumbing We add the hasconfig method to make it possible to distinguish between a config value that was never supplied and one that is empty.
mercurial/config.py
mercurial/ui.py
--- a/mercurial/config.py	Tue Jan 05 21:25:51 2016 -0800
+++ b/mercurial/config.py	Thu Jan 07 19:45:03 2016 -0800
@@ -30,6 +30,8 @@
         return config(self)
     def __contains__(self, section):
         return section in self._data
+    def hasitem(self, section, item):
+        return item in self._data.get(section, {})
     def __getitem__(self, section):
         return self._data.get(section, {})
     def __iter__(self):
--- a/mercurial/ui.py	Tue Jan 05 21:25:51 2016 -0800
+++ b/mercurial/ui.py	Thu Jan 07 19:45:03 2016 -0800
@@ -507,6 +507,9 @@
                 result = default or []
         return result
 
+    def hasconfig(self, section, name, untrusted=False):
+        return self._data(untrusted).hasitem(section, name)
+
     def has_section(self, section, untrusted=False):
         '''tell whether section exists in config.'''
         return section in self._data(untrusted)