summaryrefslogtreecommitdiff
path: root/paste/deploy/converters.py
diff options
context:
space:
mode:
Diffstat (limited to 'paste/deploy/converters.py')
-rw-r--r--paste/deploy/converters.py40
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]