38 lines
1022 B
Python
38 lines
1022 B
Python
|
# (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
|
||
|
# Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
|
||
|
truthy = frozenset(['true', 'yes', 'on', 'y', 't', '1'])
|
||
|
falsy = frozenset(['false', 'no', 'off', 'n', 'f', '0'])
|
||
|
|
||
|
|
||
|
def asbool(obj):
|
||
|
if isinstance(obj, str):
|
||
|
obj = obj.strip().lower()
|
||
|
if obj in truthy:
|
||
|
return True
|
||
|
elif obj in falsy:
|
||
|
return False
|
||
|
else:
|
||
|
raise ValueError("String is not true/false: %r" % obj)
|
||
|
return bool(obj)
|
||
|
|
||
|
|
||
|
def asint(obj):
|
||
|
try:
|
||
|
return int(obj)
|
||
|
except (TypeError, ValueError):
|
||
|
raise ValueError("Bad integer value: %r" % obj)
|
||
|
|
||
|
|
||
|
def aslist(obj, sep=None, strip=True):
|
||
|
if isinstance(obj, str):
|
||
|
lst = obj.split(sep)
|
||
|
if strip:
|
||
|
lst = [v.strip() for v in lst]
|
||
|
return lst
|
||
|
elif isinstance(obj, (list, tuple)):
|
||
|
return obj
|
||
|
elif obj is None:
|
||
|
return []
|
||
|
else:
|
||
|
return [obj]
|