|
1 | 1 | from typing import List |
2 | 2 |
|
3 | | -from airflow.operators.python import BranchPythonOperator, PythonOperator |
4 | 3 | from airflow.decorators import dag |
| 4 | +from airflow.operators.python import BranchPythonOperator, PythonOperator |
5 | 5 | from airflow.utils.trigger_rule import TriggerRule |
6 | 6 |
|
7 | | -from dags import DEFAULT_DAG_ARGUMENTS |
| 7 | +from dags import DEFAULT_DAG_ARGUMENTS, NOTICE_NORMALISATION_PIPELINE_TASK_ID, STOP_PROCESSING_TASK_ID, \ |
| 8 | + BRANCH_SELECTOR_MAP, NOTICE_TRANSFORMATION_PIPELINE_TASK_ID, NOTICE_VALIDATION_PIPELINE_TASK_ID, \ |
| 9 | + NOTICE_PACKAGE_PIPELINE_TASK_ID, NOTICE_PUBLISH_PIPELINE_TASK_ID, BRANCH_SELECTOR_TASK_ID, \ |
| 10 | + SELECTOR_BRANCH_BEFORE_TRANSFORMATION_TASK_ID, SELECTOR_BRANCH_BEFORE_VALIDATION_TASK_ID, \ |
| 11 | + SELECTOR_BRANCH_BEFORE_PACKAGE_TASK_ID, SELECTOR_BRANCH_BEFORE_PUBLISH_TASK_ID, \ |
| 12 | + NOTICE_DISTILLATION_PIPELINE_TASK_ID, NOTICES_COLLECTION_DATASET |
8 | 13 | from dags.dags_utils import get_dag_param, smart_xcom_push, smart_xcom_forward, smart_xcom_pull |
9 | 14 | from dags.operators.DagBatchPipelineOperator import NoticeBatchPipelineOperator, NOTICE_IDS_KEY, \ |
10 | 15 | EXECUTE_ONLY_ONE_STEP_KEY, START_WITH_STEP_NAME_KEY |
11 | 16 | from dags.pipelines.notice_batch_processor_pipelines import notices_batch_distillation_pipeline |
12 | 17 | from dags.pipelines.notice_processor_pipelines import notice_normalisation_pipeline, notice_transformation_pipeline, \ |
13 | 18 | notice_validation_pipeline, notice_package_pipeline, notice_publish_pipeline |
14 | 19 |
|
15 | | -NOTICE_NORMALISATION_PIPELINE_TASK_ID = "notice_normalisation_pipeline" |
16 | | -NOTICE_TRANSFORMATION_PIPELINE_TASK_ID = "notice_transformation_pipeline" |
17 | | -NOTICE_DISTILLATION_PIPELINE_TASK_ID = "notice_distillation_pipeline" |
18 | | -NOTICE_VALIDATION_PIPELINE_TASK_ID = "notice_validation_pipeline" |
19 | | -NOTICE_PACKAGE_PIPELINE_TASK_ID = "notice_package_pipeline" |
20 | | -NOTICE_PUBLISH_PIPELINE_TASK_ID = "notice_publish_pipeline" |
21 | | -STOP_PROCESSING_TASK_ID = "stop_processing" |
22 | | -BRANCH_SELECTOR_TASK_ID = 'branch_selector' |
23 | | -SELECTOR_BRANCH_BEFORE_TRANSFORMATION_TASK_ID = "switch_to_transformation" |
24 | | -SELECTOR_BRANCH_BEFORE_VALIDATION_TASK_ID = "switch_to_validation" |
25 | | -SELECTOR_BRANCH_BEFORE_PACKAGE_TASK_ID = "switch_to_package" |
26 | | -SELECTOR_BRANCH_BEFORE_PUBLISH_TASK_ID = "switch_to_publish" |
| 20 | +DAG_NAME = "notice_processing_pipeline" |
27 | 21 | DAG_ID = "notice_processing_pipeline" |
28 | | -DAG_NAME = "Notice processing pipeline" |
29 | | - |
30 | | -BRANCH_SELECTOR_MAP = {NOTICE_NORMALISATION_PIPELINE_TASK_ID: NOTICE_NORMALISATION_PIPELINE_TASK_ID, |
31 | | - NOTICE_TRANSFORMATION_PIPELINE_TASK_ID: SELECTOR_BRANCH_BEFORE_TRANSFORMATION_TASK_ID, |
32 | | - NOTICE_VALIDATION_PIPELINE_TASK_ID: SELECTOR_BRANCH_BEFORE_VALIDATION_TASK_ID, |
33 | | - NOTICE_PACKAGE_PIPELINE_TASK_ID: SELECTOR_BRANCH_BEFORE_PACKAGE_TASK_ID, |
34 | | - NOTICE_PUBLISH_PIPELINE_TASK_ID: SELECTOR_BRANCH_BEFORE_PUBLISH_TASK_ID |
35 | | - } |
36 | | - |
37 | 22 |
|
38 | 23 | def branch_selector(result_branch: str, xcom_forward_keys: List[str] = [NOTICE_IDS_KEY]) -> str: |
39 | 24 | start_with_step_name = get_dag_param(key=START_WITH_STEP_NAME_KEY, |
@@ -114,7 +99,8 @@ def _stop_processing(): |
114 | 99 | stop_processing = PythonOperator( |
115 | 100 | task_id=STOP_PROCESSING_TASK_ID, |
116 | 101 | trigger_rule=TriggerRule.NONE_FAILED_MIN_ONE_SUCCESS, |
117 | | - python_callable=_stop_processing |
| 102 | + python_callable=_stop_processing, |
| 103 | + outlets=NOTICES_COLLECTION_DATASET |
118 | 104 | ) |
119 | 105 |
|
120 | 106 | notice_normalisation_step = NoticeBatchPipelineOperator(notice_pipeline_callable=notice_normalisation_pipeline, |
|
0 commit comments