"""Helper methods for the mechanicals dag.""" from lib import constants from lib.utils import event from lib.utils import ows def get_event_from_params(dag_run, **kwargs): """Get event from params passed to task callbacks.""" abacus_event = event.get_abacus_event(dag_run, **kwargs) event.validate_event_for_handler( abacus_event, target_type=constants.DAG_MECHANICALS_TARGET_TYPE, event_name=constants.DAG_MECHANICALS_EVENT_NAME ) return abacus_event def get_mechanical_deduction_state(accounting_period_id): """Request abacus state and return mechanical deductions state.""" abacus_state = ows.get_accounting_period_state(accounting_period_id) action_name = constants \ .ACCOUNTING_PERIOD_ACTIONS.PREP_MECHANICAL_DEDUCTIONS mechanical_action = list( filter(lambda x: x['action_name'] == action_name, abacus_state) ) if not mechanical_action: raise ValueError('Mechanical deductions state not found') return mechanical_action[0]