SIENTIAPDE-1325

Refactor MongoDB, Redis, and Gates classes to extend SientiaMonitoring instead of BaseActivity. Update requirements to point to local dataops library path. Implement repository pattern for MongoDB and Redis operations, enhancing code organization and maintainability.
This commit is contained in:
vitor-aignosi
2025-10-29 16:01:54 -03:00
parent 7265819ae0
commit 10b3310677
4 changed files with 55 additions and 78 deletions

View File

@@ -10,7 +10,7 @@ with workflow.unsafe.imports_passed_through():
from sientia_do.notifications.handlers import NotificationHandler
from sientia_do.notifications.models import NotificationLevel
from sientia_do.observability.logger import Logger
from sientia_do.temporal.activities.base import BaseActivity
from sientia_do.observability.sientia_monitoring import SientiaMonitoring
from scouter import metrics
from scouter.utils.quality.filters import null_values_filter, out_of_bounds_filter
@@ -21,7 +21,7 @@ quality_gate_filters = {
}
class Gates(BaseActivity):
class Gates(SientiaMonitoring):
"""
Data quality gates and filtering operations.
@@ -44,7 +44,13 @@ class Gates(BaseActivity):
logger (Logger): Logger instance for operation logging
notification_handler (NotificationHandler): Handler for system notifications
"""
BaseActivity.__init__(self, logger, notification_handler, set_error_counter=True)
SientiaMonitoring.__init__(self, logger, notification_handler)
def close(self):
"""
Close the Gates class.
"""
SientiaMonitoring.close(self)
def apply_aggregation(
self, values: DataFrame, aggr_function: str, metadata: dict[str, Any]