Skip to content

Instantly share code, notes, and snippets.

@r39132
Created February 10, 2016 18:40
Show Gist options
  • Save r39132/f9b6061e9311ff654dfd to your computer and use it in GitHub Desktop.
Save r39132/f9b6061e9311ff654dfd to your computer and use it in GitHub Desktop.
Example Short Circuit Operator (Airflow)
from airflow.operators import ShortCircuitOperator, DummyOperator
from airflow.models import DAG
import airflow.utils
from datetime import datetime, timedelta
seven_days_ago = datetime.combine(datetime.today() - timedelta(7),
datetime.min.time())
args = {
'owner': 'airflow',
'start_date': seven_days_ago,
}
dag = DAG(dag_id='example_short_circuit_operator', default_args=args)
cond_true = ShortCircuitOperator(
task_id='condition_is_True', python_callable=lambda: True, dag=dag)
cond_false = ShortCircuitOperator(
task_id='condition_is_False', python_callable=lambda: False, dag=dag)
ds_true = [DummyOperator(task_id='true_' + str(i), dag=dag) for i in [1, 2]]
ds_false = [DummyOperator(task_id='false_' + str(i), dag=dag) for i in [1, 2]]
airflow.utils.chain(cond_true, *ds_true)
airflow.utils.chain(cond_false, *ds_false)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment