airflow.operators.weekday

Module Contents

Classes

BranchDayOfWeekOperator

Branches into one of two lists of tasks depending on the current day.

class airflow.operators.weekday.BranchDayOfWeekOperator(*, follow_task_ids_if_true, follow_task_ids_if_false, week_day, use_task_logical_date=False, use_task_execution_day=False, **kwargs)[source]

Bases: airflow.operators.branch.BaseBranchOperator

Branches into one of two lists of tasks depending on the current day. For more information on how to use this operator, take a look at the guide: BranchDayOfWeekOperator

Example (with single day):

from airflow.operators.empty import EmptyOperator

monday = EmptyOperator(task_id='monday')
other_day = EmptyOperator(task_id='other_day')

monday_check = DayOfWeekSensor(
    task_id='monday_check',
    week_day='Monday',
    use_task_logical_date=True,
    follow_task_ids_if_true='monday',
    follow_task_ids_if_false='other_day',
    dag=dag)
monday_check >> [monday, other_day]

Example (with WeekDay enum):

# import WeekDay Enum
from airflow.utils.weekday import WeekDay
from airflow.operators.empty import EmptyOperator

workday = EmptyOperator(task_id='workday')
weekend = EmptyOperator(task_id='weekend')
weekend_check = BranchDayOfWeekOperator(
    task_id='weekend_check',
    week_day={WeekDay.SATURDAY, WeekDay.SUNDAY},
    use_task_logical_date=True,
    follow_task_ids_if_true='weekend',
    follow_task_ids_if_false='workday',
    dag=dag)
# add downstream dependencies as you would do with any branch operator
weekend_check >> [workday, weekend]
Parameters
  • follow_task_ids_if_true (str | Iterable[str]) – task id or task ids to follow if criteria met

  • follow_task_ids_if_false (str | Iterable[str]) – task id or task ids to follow if criteria does not met

  • week_day (str | Iterable[str] | airflow.utils.weekday.WeekDay | Iterable[airflow.utils.weekday.WeekDay]) –

    Day of the week to check (full name). Optionally, a set of days can also be provided using a set. Example values:

    • "MONDAY",

    • {"Saturday", "Sunday"}

    • {WeekDay.TUESDAY}

    • {WeekDay.SATURDAY, WeekDay.SUNDAY}

    To use WeekDay enum, import it from airflow.utils.weekday

  • use_task_logical_date (bool) – If True, uses task’s logical date to compare with is_today. Execution Date is Useful for backfilling. If False, uses system’s day of the week.

  • use_task_execution_day (bool) – deprecated parameter, same effect as use_task_logical_date

choose_branch(context)[source]

Abstract method to choose which branch to run.

Subclasses should implement this, running whatever logic is necessary to choose a branch and returning a task_id or list of task_ids.

Parameters

context (airflow.utils.context.Context) – Context dictionary as passed to execute()

Was this entry helpful?