Source code for airflow.example_dags.example_skip_dag
## Licensed to the Apache Software Foundation (ASF) under one# or more contributor license agreements. See the NOTICE file# distributed with this work for additional information# regarding copyright ownership. The ASF licenses this file# to you under the Apache License, Version 2.0 (the# "License"); you may not use this file except in compliance# with the License. You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing,# software distributed under the License is distributed on an# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY# KIND, either express or implied. See the License for the# specific language governing permissions and limitations# under the License."""Example DAG demonstrating the EmptyOperator and a custom EmptySkipOperator which skips by default."""from__future__importannotationsimportdatetimefromtypingimportTYPE_CHECKINGimportpendulumfromairflow.exceptionsimportAirflowSkipExceptionfromairflow.models.baseoperatorimportBaseOperatorfromairflow.models.dagimportDAGfromairflow.operators.emptyimportEmptyOperatorfromairflow.utils.trigger_ruleimportTriggerRuleifTYPE_CHECKING:fromairflow.utils.contextimportContext# Create some placeholder operators
[docs]classEmptySkipOperator(BaseOperator):"""Empty operator which always skips the task."""
[docs]defcreate_test_pipeline(suffix,trigger_rule):""" Instantiate a number of operators for the given DAG. :param str suffix: Suffix to append to the operator task_ids :param str trigger_rule: TriggerRule for the join task :param DAG dag_: The DAG to run the operators on """skip_operator=EmptySkipOperator(task_id=f"skip_operator_{suffix}")always_true=EmptyOperator(task_id=f"always_true_{suffix}")join=EmptyOperator(task_id=trigger_rule,trigger_rule=trigger_rule)final=EmptyOperator(task_id=f"final_{suffix}")skip_operator>>joinalways_true>>joinjoin>>final