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.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]):