From 1907eee26191bcfe235516d86cd8ab5012c50487 Mon Sep 17 00:00:00 2001
From: Alexander Schlemmer <a.schlemmer@indiscale.com>
Date: Tue, 26 Nov 2024 14:22:33 +0100
Subject: [PATCH] ENH(transformers): new transformer functions for casting
 types of variables

---
 src/caoscrawler/default_transformers.yml | 12 ++++++++++++
 src/caoscrawler/transformer_functions.py | 16 ++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/src/caoscrawler/default_transformers.yml b/src/caoscrawler/default_transformers.yml
index ffcb1b15..0de9a6e0 100644
--- a/src/caoscrawler/default_transformers.yml
+++ b/src/caoscrawler/default_transformers.yml
@@ -15,3 +15,15 @@ date_parse:
 datetime_parse:
   package: caoscrawler.transformer_functions
   function: datetime_parse
+cast_to_int:
+  package: caoscrawler.transformer_functions
+  function: cast_to_int
+cast_to_float:
+  package: caoscrawler.transformer_functions
+  function: cast_to_float
+cast_to_bool:
+  package: caoscrawler.transformer_functions
+  function: cast_to_bool
+cast_to_str:
+  package: caoscrawler.transformer_functions
+  function: cast_to_str
diff --git a/src/caoscrawler/transformer_functions.py b/src/caoscrawler/transformer_functions.py
index ce08bc6b..ddc1fe94 100644
--- a/src/caoscrawler/transformer_functions.py
+++ b/src/caoscrawler/transformer_functions.py
@@ -99,3 +99,19 @@ Parameters
     fmt = params.get("datetime_format", fmt_default)
     dt_str = datetime.datetime.strptime(in_value, fmt).strftime(fmt_default)
     return dt_str
+
+
+def cast_to_int(in_value: Any, params: dict) -> int:
+    return int(in_value)
+
+
+def cast_to_float(in_value: Any, params: dict) -> float:
+    return float(in_value)
+
+
+def cast_to_bool(in_value: Any, params: dict) -> bool:
+    return bool(in_value)
+
+
+def cast_to_str(in_value: Any, params: dict) -> str:
+    return str(in_value)
-- 
GitLab