Fix task.get_parameters_as_dict(cast=True) casts False to True (#622)

This commit is contained in:
Ben Taylor 2022-03-30 16:34:50 +02:00 committed by GitHub
parent a00d6451e6
commit 673c1bc5c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -92,12 +92,20 @@ def verify_basic_type(a_dict_list, basic_types=None):
return all(verify_basic_type(k) for k in a_dict_list.keys()) and \
all(verify_basic_type(v) for v in a_dict_list.values())
def convert_bool(s):
s = s.strip().lower()
if s == "true":
return True
elif s == "false" or not s:
return False
raise ValueError("Invalid value (boolean literal expected): %s".format(s))
def cast_basic_type(value, type_str):
if not type_str:
return value
basic_types = {str(getattr(v, '__name__', v)): v for v in (float, int, bool, str, list, tuple, dict)}
basic_types = {str(getattr(v, '__name__', v)): v for v in (float, int, str, list, tuple, dict)}
basic_types['bool'] = convert_bool
parts = type_str.split('/')
# nested = len(parts) > 1