From 0fe178064ef2e359b080b82066b798c15a0b9202 Mon Sep 17 00:00:00 2001 From: Pavol Date: Mon, 23 Jun 2025 12:48:04 +0200 Subject: [PATCH 1/2] define DBConsolePrint structure for in-app console logs --- forloop_common_structures/database_models.py | 24 ++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/forloop_common_structures/database_models.py b/forloop_common_structures/database_models.py index d521fbd..8f8fd6a 100644 --- a/forloop_common_structures/database_models.py +++ b/forloop_common_structures/database_models.py @@ -487,6 +487,30 @@ def cast_user_log_types_to_db(user_logs_df: pd.DataFrame) -> pd.DataFrame: #user_logs_df=gdtm.cast_types_to_db(user_logs_df) #raised an error because its not equivalent to other casting functions (missing uid) return user_logs_df +##DB Table for console prints## +class DBConsolePrint(dh.AbstractModel): + message: str + type: str + datetime_utc: datetime = datetime.utcnow() + + project_uid: int # Foreign Key Many-to-1 + +def cast_console_print_types_to_app(console_print_logs_df: pd.DataFrame) -> pd.DataFrame: + """Cast DB datatypes to in-app python datatypes.""" + console_print_logs_df=gdtm.cast_types_to_app(console_print_logs_df) + console_print_logs_df["datetime_utc"] = console_print_logs_df["datetime_utc"].astype(object).replace(pd.NaT, None) + + return console_print_logs_df + +def cast_console_print_to_db(console_print_logs_df: pd.DataFrame) -> pd.DataFrame: + """Cast in-app python datatypes to DB datatypes.""" + + console_print_logs_df = console_print_logs_df.astype({"project_uid": int}) + console_print_logs_df["datetime_utc"] = console_print_logs_df["datetime_utc"].astype(object).replace(pd.NaT, None) + console_print_logs_df = console_print_logs_df.map(escape_if_string) + + #user_logs_df=gdtm.cast_types_to_db(user_logs_df) #raised an error because its not equivalent to other casting functions (missing uid) + return console_print_logs_df class DBUserFlowStep(dh.AbstractModel): user_uid: int # Foreign Key Many-to-1 From beb43b2166b87cde75c7df34b83cf0a8f39e40d2 Mon Sep 17 00:00:00 2001 From: Pavol Date: Tue, 1 Jul 2025 13:07:26 +0200 Subject: [PATCH 2/2] defined db_model for in app consolelogs --- forloop_common_structures/database_models.py | 33 +++++++++----------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/forloop_common_structures/database_models.py b/forloop_common_structures/database_models.py index 8f8fd6a..bd63de0 100644 --- a/forloop_common_structures/database_models.py +++ b/forloop_common_structures/database_models.py @@ -1,5 +1,5 @@ import json -from datetime import datetime +from datetime import datetime, timezone import base64 import dbhydra.dbhydra_core as dh import pandas as pd @@ -461,7 +461,7 @@ def cast_prototype_job_types_to_db(prototype_jobs_df: pd.DataFrame) -> pd.DataFr class DBUserLog(dh.AbstractModel): message: str severity: str - datetime_utc: datetime = datetime.utcnow() + datetime_utc: datetime = datetime.now() project_uid: int # Foreign Key Many-to-1 @@ -487,30 +487,27 @@ def cast_user_log_types_to_db(user_logs_df: pd.DataFrame) -> pd.DataFrame: #user_logs_df=gdtm.cast_types_to_db(user_logs_df) #raised an error because its not equivalent to other casting functions (missing uid) return user_logs_df -##DB Table for console prints## -class DBConsolePrint(dh.AbstractModel): +## DB Table for console logs ## +class DBConsoleLogs(dh.AbstractModel): message: str type: str - datetime_utc: datetime = datetime.utcnow() + datetime_utc: datetime = datetime.now() project_uid: int # Foreign Key Many-to-1 -def cast_console_print_types_to_app(console_print_logs_df: pd.DataFrame) -> pd.DataFrame: + +def cast_console_log_types_to_app(console_log_df: pd.DataFrame) -> pd.DataFrame: """Cast DB datatypes to in-app python datatypes.""" - console_print_logs_df=gdtm.cast_types_to_app(console_print_logs_df) - console_print_logs_df["datetime_utc"] = console_print_logs_df["datetime_utc"].astype(object).replace(pd.NaT, None) - - return console_print_logs_df + console_log_df = gdtm.cast_types_to_app(console_log_df) + console_log_df["datetime_utc"] = console_log_df["datetime_utc"].astype(object).replace(pd.NaT, None) + return console_log_df -def cast_console_print_to_db(console_print_logs_df: pd.DataFrame) -> pd.DataFrame: +def cast_console_log_to_db(console_log_df: pd.DataFrame) -> pd.DataFrame: """Cast in-app python datatypes to DB datatypes.""" - - console_print_logs_df = console_print_logs_df.astype({"project_uid": int}) - console_print_logs_df["datetime_utc"] = console_print_logs_df["datetime_utc"].astype(object).replace(pd.NaT, None) - console_print_logs_df = console_print_logs_df.map(escape_if_string) - - #user_logs_df=gdtm.cast_types_to_db(user_logs_df) #raised an error because its not equivalent to other casting functions (missing uid) - return console_print_logs_df + console_log_df = console_log_df.astype({"project_uid": int}) + console_log_df["datetime_utc"] = console_log_df["datetime_utc"].astype(object).replace(pd.NaT, None) + console_log_df = console_log_df.map(escape_if_string) + return console_log_df class DBUserFlowStep(dh.AbstractModel): user_uid: int # Foreign Key Many-to-1