summaryrefslogtreecommitdiff
path: root/mailman/options.py
diff options
context:
space:
mode:
Diffstat (limited to 'mailman/options.py')
-rw-r--r--mailman/options.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/mailman/options.py b/mailman/options.py
index 11a173464..62a9c12fb 100644
--- a/mailman/options.py
+++ b/mailman/options.py
@@ -43,14 +43,22 @@ def check_unicode(option, opt, value):
return value.decode(sys.getdefaultencoding())
except UnicodeDecodeError:
raise OptionValueError(
- "option %s: Cannot decode: %r" % (opt, value))
+ 'option %s: Cannot decode: %r' % (opt, value))
+
+
+def check_yesno(option, opt, value):
+ value = value.lower()
+ if value not in ('yes', 'no', 'y', 'n'):
+ raise OptionValueError('option s: invalid: %r' % (opt, value))
+ return value[0] == 'y'
class MailmanOption(Option):
"""Extension types for unicode options."""
- TYPES = Option.TYPES + ('unicode',)
+ TYPES = Option.TYPES + ('unicode', 'yesno')
TYPE_CHECKER = copy(Option.TYPE_CHECKER)
TYPE_CHECKER['unicode'] = check_unicode
+ TYPE_CHECKER['yesno'] = check_yesno