diff options
| author | 2019-06-28 23:25:24 +0100 | |
|---|---|---|
| committer | 2019-06-28 23:26:42 +0100 | |
| commit | 756396d7584800324996def0145485b77ee7775b (patch) | |
| tree | 23c4c9c3fbb1577ef9bff11b5b0764498e7f671a /src | |
| parent | add 'ircv3-stats' setting (diff) | |
| signature | ||
Implement utils.OptionsSetting
Diffstat (limited to 'src')
| -rw-r--r-- | src/utils/__init__.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/utils/__init__.py b/src/utils/__init__.py index 5ad057c8..545360c8 100644 --- a/src/utils/__init__.py +++ b/src/utils/__init__.py @@ -257,3 +257,15 @@ class IntSetting(Setting): return int(stripped) return None +class OptionsSetting(Setting): + def __init__(self, name: str, options: typing.List[str], help: str=None, + example: str=None): + self._options = options + Setting.__init__(name, help, example) + + def parse(self, value: str) -> typing.Any: + value_lower = value.lower() + for option in self._options: + if option.lower() == value_lower: + return option + return None |
