SIENTIAPDE-994
Remove unused utility files and update requirements.txt to include new dependencies for data processing and database interaction.
This commit is contained in:
47
laborious/activities/gates.py
Normal file
47
laborious/activities/gates.py
Normal file
@@ -0,0 +1,47 @@
|
||||
from temporalio import activity, workflow
|
||||
|
||||
with workflow.unsafe.imports_passed_through():
|
||||
from logging import Logger
|
||||
from sientia_do.notifications.handlers import NotificationHandler
|
||||
from laborious.activities.base import BaseActivity
|
||||
from typing import Any
|
||||
from laborious.utils.filters.conditional_filters import filter_empty_data, filter_specific_variables_null_values
|
||||
from pandas import DataFrame
|
||||
|
||||
|
||||
filter_functions = {
|
||||
'SPECIFIC_VARIABLES_NULL_VALUES': filter_specific_variables_null_values,
|
||||
'EMPTY_DATA': filter_empty_data
|
||||
}
|
||||
|
||||
|
||||
class Gates(BaseActivity):
|
||||
def __init__(self, logger: Logger, notification_handler: NotificationHandler):
|
||||
super().__init__(logger, notification_handler)
|
||||
|
||||
@activity.defn(name="input_gate")
|
||||
async def input_gate(self, input_data: dict[str, Any]) -> tuple[str, int]:
|
||||
"""
|
||||
Filters the data based on the filters. The return value is a tuple with the first element
|
||||
being the policy and the second element being the confidence status.
|
||||
Args:
|
||||
input_data (dict): The input data.
|
||||
Returns:
|
||||
tuple[str, int]: ('stop', -1) if some filter policy is 'stop', ('continue', 2)
|
||||
if no filter policy is 'stop' and some filter policy is 'continue',
|
||||
None if no filter is applied.
|
||||
"""
|
||||
filters = input_data['filters']
|
||||
data = DataFrame(input_data['data'])
|
||||
|
||||
filter_output = []
|
||||
for fil, config in filters.items():
|
||||
if filter_functions[fil](data, config):
|
||||
filter_output.append(config['POLICY'])
|
||||
|
||||
if 'stop' in filter_output:
|
||||
return 'stop', -1
|
||||
elif 'continue' in filter_output:
|
||||
return 'continue', 2
|
||||
|
||||
return None, 0
|
||||
Reference in New Issue
Block a user