aboutsummaryrefslogtreecommitdiff
path: root/src/utils/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/__init__.py')
-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