From 2301dd63c7f6b151b7062e6b51cf68f52395ed25 Mon Sep 17 00:00:00 2001 From: vitor-aignosi Date: Fri, 22 Aug 2025 11:33:33 -0300 Subject: [PATCH] SIENTIAPDE-1193 Update requirements and refactor Gates activity for improved datetime handling - Update sientia-dataops-library reference in requirements.txt to version 1.4.3. - Refactor datetime handling in Gates activity to use a consistent format with timezone support, replacing direct datetime calls with a centralized now() function and DATETIME_FORMAT_WITH_TZ constant. --- laborious/activities/gates.py | 11 +++++++---- requirements.txt | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/laborious/activities/gates.py b/laborious/activities/gates.py index 32d1006..caa9eaa 100644 --- a/laborious/activities/gates.py +++ b/laborious/activities/gates.py @@ -7,6 +7,7 @@ with workflow.unsafe.imports_passed_through(): from sientia_do.notifications.models import NotificationLevel from sientia_do.temporal.activities.base import BaseActivity from sientia_do.observability.logger import Logger + from sientia_do.temporal.constants import DATETIME_FORMAT_WITH_TZ, now from laborious.utils.filters.mlflow_filters import nan_values_filter, api_error_filter from typing import Any from laborious.utils.filters.conditional_filters import ( @@ -14,7 +15,6 @@ with workflow.unsafe.imports_passed_through(): filter_specific_variables_null_values ) from pandas import DataFrame - from datetime import datetime from laborious import metrics input_filter_functions = { @@ -319,12 +319,15 @@ class Gates(BaseActivity): data = DataFrame(input_data['data']) if data.empty: - return datetime.now().strftime('%Y-%m-%d %H:%M:%S') + return now().strftime(DATETIME_FORMAT_WITH_TZ) + + max_timestamp = max( + data['timestamp'].values.tolist()).strftime(DATETIME_FORMAT_WITH_TZ) self.info( - f"Last timestamp: {max(data['timestamp'].values.tolist())}", metadata) + f"Last timestamp: {max_timestamp}", metadata) - return max(data['timestamp'].values.tolist()) + return max_timestamp @activity.defn(name="write_metrics") async def write_metrics(self, input_data: dict[str, Any]): diff --git a/requirements.txt b/requirements.txt index 38bd3ea..300e1f0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,7 @@ psycopg2-binary sqlalchemy asyncua redis -git+ssh://git@github.com/Aignosi/sientia-dataops-library.git@1.4.2 +# git+ssh://git@github.com/Aignosi/sientia-dataops-library.git@1.4.3 +/home/grezewave/Documents/projects/sientia/sientia-dataops-library git+ssh://git@github.com/Aignosi/sientia-mlops-library.git@0.38.5 prometheus-client