mirror of
https://github.com/Mikaela/Limnoria.git
synced 2025-02-25 10:00:48 +01:00
Abstracted out bool verification in utils.toBool.
This commit is contained in:
parent
05c06f8f4b
commit
0874dfd5f3
@ -327,16 +327,14 @@ class Value(Group):
|
|||||||
class Boolean(Value):
|
class Boolean(Value):
|
||||||
"""Value must be either True or False (or On or Off)."""
|
"""Value must be either True or False (or On or Off)."""
|
||||||
def set(self, s):
|
def set(self, s):
|
||||||
s = s.strip().lower()
|
try:
|
||||||
if s in ('true', 'on', 'enable', 'enabled'):
|
v = utils.toBool(s)
|
||||||
value = True
|
except ValueError:
|
||||||
elif s in ('false', 'off', 'disable', 'disabled'):
|
if s.strip().lower() == 'toggle':
|
||||||
value = False
|
v = not self.value
|
||||||
elif s == 'toggle':
|
else:
|
||||||
value = not self.value
|
self.error()
|
||||||
else:
|
self.setValue(v)
|
||||||
self.error()
|
|
||||||
self.setValue(value)
|
|
||||||
|
|
||||||
def setValue(self, v):
|
def setValue(self, v):
|
||||||
super(Boolean, self).setValue(bool(v))
|
super(Boolean, self).setValue(bool(v))
|
||||||
|
18
src/utils.py
18
src/utils.py
@ -807,21 +807,15 @@ def callTracer(fd=None, basename=True):
|
|||||||
return tracer
|
return tracer
|
||||||
|
|
||||||
|
|
||||||
# These are used by Owner and Misc for their callBefore/callAfter attributes.
|
def toBool(s):
|
||||||
class Everything(object):
|
s = s.strip().lower()
|
||||||
def __contains__(self, x):
|
if s in ('true', 'on', 'enable', 'enabled'):
|
||||||
return True
|
return True
|
||||||
|
elif s in ('false', 'off', 'disable', 'disabled'):
|
||||||
def __iter__(self):
|
|
||||||
return iter([])
|
|
||||||
|
|
||||||
class Nothing(object):
|
|
||||||
def __contains__(self, x):
|
|
||||||
return False
|
return False
|
||||||
|
else:
|
||||||
|
raise ValueError, 'Invalid string for toBool: %r' % s
|
||||||
|
|
||||||
def __iter__(self):
|
|
||||||
return iter([])
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
import doctest
|
import doctest
|
||||||
doctest.testmod(sys.modules['__main__'])
|
doctest.testmod(sys.modules['__main__'])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user