From 8a754e0858d922e955e71b253c139e071ecec432 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 18:04:21 +0200 Subject: Adding upstream version 2.14.3. Signed-off-by: Daniel Baumann --- lib/ansible/module_utils/parsing/convert_bool.py | 29 ++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 lib/ansible/module_utils/parsing/convert_bool.py (limited to 'lib/ansible/module_utils/parsing/convert_bool.py') diff --git a/lib/ansible/module_utils/parsing/convert_bool.py b/lib/ansible/module_utils/parsing/convert_bool.py new file mode 100644 index 0000000..7eea875 --- /dev/null +++ b/lib/ansible/module_utils/parsing/convert_bool.py @@ -0,0 +1,29 @@ +# Copyright: 2017, Ansible Project +# Simplified BSD License (see licenses/simplified_bsd.txt or https://opensource.org/licenses/BSD-2-Clause ) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible.module_utils.six import binary_type, text_type +from ansible.module_utils._text import to_text + + +BOOLEANS_TRUE = frozenset(('y', 'yes', 'on', '1', 'true', 't', 1, 1.0, True)) +BOOLEANS_FALSE = frozenset(('n', 'no', 'off', '0', 'false', 'f', 0, 0.0, False)) +BOOLEANS = BOOLEANS_TRUE.union(BOOLEANS_FALSE) + + +def boolean(value, strict=True): + if isinstance(value, bool): + return value + + normalized_value = value + if isinstance(value, (text_type, binary_type)): + normalized_value = to_text(value, errors='surrogate_or_strict').lower().strip() + + if normalized_value in BOOLEANS_TRUE: + return True + elif normalized_value in BOOLEANS_FALSE or not strict: + return False + + raise TypeError("The value '%s' is not a valid boolean. Valid booleans include: %s" % (to_text(value), ', '.join(repr(i) for i in BOOLEANS))) -- cgit v1.2.3