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.
This commit is contained in:
vitor-aignosi
2025-08-22 11:33:33 -03:00
parent 5050e0652b
commit 2301dd63c7
2 changed files with 9 additions and 5 deletions

View File

@@ -7,6 +7,7 @@ with workflow.unsafe.imports_passed_through():
from sientia_do.notifications.models import NotificationLevel from sientia_do.notifications.models import NotificationLevel
from sientia_do.temporal.activities.base import BaseActivity from sientia_do.temporal.activities.base import BaseActivity
from sientia_do.observability.logger import Logger 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 laborious.utils.filters.mlflow_filters import nan_values_filter, api_error_filter
from typing import Any from typing import Any
from laborious.utils.filters.conditional_filters import ( from laborious.utils.filters.conditional_filters import (
@@ -14,7 +15,6 @@ with workflow.unsafe.imports_passed_through():
filter_specific_variables_null_values filter_specific_variables_null_values
) )
from pandas import DataFrame from pandas import DataFrame
from datetime import datetime
from laborious import metrics from laborious import metrics
input_filter_functions = { input_filter_functions = {
@@ -319,12 +319,15 @@ class Gates(BaseActivity):
data = DataFrame(input_data['data']) data = DataFrame(input_data['data'])
if data.empty: 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( 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") @activity.defn(name="write_metrics")
async def write_metrics(self, input_data: dict[str, Any]): async def write_metrics(self, input_data: dict[str, Any]):

View File

@@ -3,6 +3,7 @@ psycopg2-binary
sqlalchemy sqlalchemy
asyncua asyncua
redis 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 git+ssh://git@github.com/Aignosi/sientia-mlops-library.git@0.38.5
prometheus-client prometheus-client