Ok and here's an example you could try:

The callable:

def skip_if_specified(context):
    dr = context.get('dag_run')
    if not dr:
        return
    conf = dr.conf
    if not conf:
        return
    skip_list = conf.get('skip_list')
    if not skip_list:
        return
    ti = conf.get('task_instance')
    if not ti:
        return
    if ti.task_id in skip_list:
        raise AirflowSkipException()


How to use in a task:

op = BashOperator(
    task_id='hello',
    pre_execute=skip_if_specified,
    bash_command='echo hello',
)


Or in all tasks in a dag:

dag = DAG(
    task_id="my_dag",
    default_args=dict(pre_execute=skip_if_specified),
    ...
)

And then, I'm pretty sure if you supply this conf to dag run it will skip
this task:

{'skip_list': ['hello']}

Reply via email to