from typing import Any from logging import Logger from temporalio import activity from sientia_do.notifications.handlers import NotificationHandler class BaseActivity: def __init__(self, logger: Logger, notification_handler: NotificationHandler): self.logger = logger self.notification_handler = notification_handler @activity.defn(name="prepare_activity") async def prepare_activity(self, input_data: dict[str, Any]): """ Prepare the activity for the notification handler. Args: workflow_name (str): The name of the workflow. schedule_name (str): The name of the schedule. model_name (str): The name of the model. model_id (str): The id of the model. """ self.notification_handler.base_notification.pipeline_name = input_data['workflow_name'] self.notification_handler.base_notification.schedule_name = input_data['schedule_name'] self.notification_handler.base_notification.model_name = input_data['model_name'] self.notification_handler.base_notification.model_id = input_data['model_id']