diff configmix/config.py @ 442:94cf5a8722d6

Add proper .get() support for jailed and unjailed configurations
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 10 Dec 2021 03:00:11 +0100
parents 9d20fab53a19
children 23941c014130
line wrap: on
line diff
--- a/configmix/config.py	Fri Dec 10 02:20:54 2021 +0100
+++ b/configmix/config.py	Fri Dec 10 03:00:11 2021 +0100
@@ -247,6 +247,15 @@
         else:
             return self.getvarl_s(key)
 
+    def get(self, key, default=None):
+        """Mapping interface that forwards to :meth:`~.getvarl_s`
+
+        """
+        if isinstance(key, (tuple, list)):
+            return self.getvarl_s(*key, default=default)
+        else:
+            return self.getvarl_s(key, default=default)
+
     def __contains__(self, key):
         if isinstance(key, (tuple, list)):
             # No namespace and quoting support here
@@ -841,6 +850,14 @@
         else:
             return self._base.getvarl_s(*(self._path + (key, )))
 
+    def get(self, key, default=None):
+        if isinstance(key, tuple):
+            return self._base.get(self._path + key, default=default)
+        elif isinstance(key, list):
+            return self._base.get(self._path + tuple(key), default=default)
+        else:
+            return self._base.get(self._path + (key, ), default=default)
+
     def __contains__(self, key):
         if isinstance(key, tuple):
             return (self._path + key) in self._base