diff options
Diffstat (limited to 'paste/deploy/converters.py')
-rw-r--r-- | paste/deploy/converters.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/paste/deploy/converters.py b/paste/deploy/converters.py new file mode 100644 index 0000000..c9d87de --- /dev/null +++ b/paste/deploy/converters.py @@ -0,0 +1,40 @@ +# (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 +from paste.deploy.compat import basestring + + +truthy = frozenset(['true', 'yes', 'on', 'y', 't', '1']) +falsy = frozenset(['false', 'no', 'off', 'n', 'f', '0']) + + +def asbool(obj): + if isinstance(obj, basestring): + 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, basestring): + 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] |