From 685ce79dbb386163b2ee3b3e3500ec70ab1a9307 Mon Sep 17 00:00:00 2001
From: Alexander Schlemmer <a.schlemmer@indiscale.com>
Date: Thu, 28 Nov 2024 20:49:33 +0100
Subject: [PATCH] ENH(transformers): added better logic for converting to bool

---
 src/caoscrawler/transformer_functions.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/caoscrawler/transformer_functions.py b/src/caoscrawler/transformer_functions.py
index 03f017b1..117d0b02 100644
--- a/src/caoscrawler/transformer_functions.py
+++ b/src/caoscrawler/transformer_functions.py
@@ -127,11 +127,20 @@ def cast_to_bool(in_value: Any, params: dict) -> bool:
     """
     Cast the `in_value` to bool.
 
+    This is done by comparing `in_value` to "True".
+    Only "true", "True", "False" and "false" are accepted as possible values.
+    All other input values raise an error.
+
     Parameters
     ==========
     No parameters.
     """
-    return bool(in_value)
+    val = str(in_value).lower()
+    if val == "true":
+        return True
+    if val == "false":
+        return False
+    raise ValueError("Invalid value for type cast to bool: {}".format(in_value))
 
 
 def cast_to_str(in_value: Any, params: dict) -> str:
-- 
GitLab