aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar jesopo2019-06-28 23:25:24 +0100
committerGravatar jesopo2019-06-28 23:26:42 +0100
commit756396d7584800324996def0145485b77ee7775b (patch)
tree23c4c9c3fbb1577ef9bff11b5b0764498e7f671a /src
parentadd 'ircv3-stats' setting (diff)
signature
Implement utils.OptionsSetting
Diffstat (limited to 'src')
-rw-r--r--src/utils/__init__.py12
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