Mercurial > hgrepos > Python > libs > ConfigMix
diff configmix/config.py @ 384:8c3aaa894089
Implemented Configuration.getfirstintvarl_s(), .getfirstboolvar_s() and .getfirstfloatvarl_s()
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Wed, 10 Nov 2021 01:53:50 +0100 |
| parents | 5c72da46b8ae |
| children | 4beeb291926d |
line wrap: on
line diff
--- a/configmix/config.py Wed Nov 10 01:53:23 2021 +0100 +++ b/configmix/config.py Wed Nov 10 01:53:50 2021 +0100 @@ -275,6 +275,17 @@ else: return s + def getfirstintvarl_s(self, *paths, **kwds): + """Get a (possibly substituted) variable and coerce text to a + number. + + """ + s = self.getfirstvarl_s(*paths, **kwds) + if isinstance(s, self._TEXTTYPE): + return int(s, 0) + else: + return s + def getintvar_s(self, varname, default=_MARKER): """Get a (possibly substituted) variable and coerce text to a number. @@ -311,6 +322,20 @@ else: return s + def getfirstboolvarl_s(self, *paths, **kwds): + """Get a (possibly substituted) variable and convert text to a + boolean + + """ + s = self.getfirstvarl_s(*paths, **kwds) + if isinstance(s, self._TEXTTYPE): + sl = s.strip().lower() + if sl not in self._BOOL_CVT: + raise ValueError("Not a boolean: %r" % s) + return self._BOOL_CVT[sl] + else: + return s + def getboolvar_s(self, varname, default=_MARKER): """Get a (possibly substituted) variable and convert text to a boolean @@ -356,6 +381,17 @@ else: return s + def getfirstfloatvarl_s(self, *path, **kwds): + """Get a (possibly substituted) variable and convert text to a + float + + """ + s = self.getfirstvarl_s(*path, **kwds) + if isinstance(s, self._TEXTTYPE): + return float(s) + else: + return s + def getfloatvar_s(self, varname, default=_MARKER): """Get a (possibly substituted) variable and convert text to a float
