diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2019-11-04 10:25:53 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2019-11-04 10:25:53 -0500 |
commit | dd83cb21e00daa2eb02c24a1c89ee1fbd3ee2954 (patch) | |
tree | 1483986778cd44766f0aa105c4c4408b1c304330 /coverage/tomlconfig.py | |
parent | 15f2ffed0113f9642275356c4dfac1ba45d8a74b (diff) | |
download | python-coveragepy-git-dd83cb21e00daa2eb02c24a1c89ee1fbd3ee2954.tar.gz |
Consolidate the type checking of toml values
Diffstat (limited to 'coverage/tomlconfig.py')
-rw-r--r-- | coverage/tomlconfig.py | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/coverage/tomlconfig.py b/coverage/tomlconfig.py index cf1d82b1..25542f99 100644 --- a/coverage/tomlconfig.py +++ b/coverage/tomlconfig.py @@ -121,28 +121,26 @@ class TomlConfigParser: _, value = self._get(section, option) return value - def getboolean(self, section, option): - name, value = self._get(section, option) - if not isinstance(value, bool): + def _check_type(self, section, option, value, type_, type_desc): + if not isinstance(value, type_): raise ValueError( - 'Option {!r} in section {!r} is not a boolean: {!r}' - .format(option, name, value) + 'Option {!r} in section {!r} is not {}: {!r}' + .format(option, section, type_desc, value) ) + + def getboolean(self, section, option): + name, value = self._get(section, option) + self._check_type(name, option, value, bool, "a boolean") return value def getlist(self, section, option): name, values = self._get(section, option) - if not isinstance(values, list): - raise ValueError( - 'Option {!r} in section {!r} is not a list: {!r}' - .format(option, name, values) - ) + self._check_type(name, option, values, list, "a list") return values def getregexlist(self, section, option): - # Use getlist for list-checking. - values = self.getlist(section, option) name, values = self._get(section, option) + self._check_type(name, option, values, list, "a list") for value in values: value = value.strip() try: @@ -155,20 +153,12 @@ class TomlConfigParser: def getint(self, section, option): name, value = self._get(section, option) - if not isinstance(value, int): - raise ValueError( - 'Option {!r} in section {!r} is not an integer: {!r}' - .format(option, name, value) - ) + self._check_type(name, option, value, int, "an integer") return value def getfloat(self, section, option): name, value = self._get(section, option) if isinstance(value, int): value = float(value) - if not isinstance(value, float): - raise ValueError( - 'Option {!r} in section {!r} is not a float: {!r}' - .format(option, name, value) - ) + self._check_type(name, option, value, float, "a float") return value |