airflow.providers.standard.operators.weekday

Module Contents

Classes

BranchDayOfWeekOperator

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

class airflow.providers.standard.operators.weekday.BranchDayOfWeekOperator(*, follow_task_ids_if_true, follow_task_ids_if_false, week_day, use_task_logical_date=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
from airflow.operators.weekday import BranchDayOfWeekOperator

monday = EmptyOperator(task_id="monday")
other_day = EmptyOperator(task_id="other_day")

monday_check = BranchDayOfWeekOperator(
    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",
)
monday_check >> [monday, other_day]

Example (with WeekDay enum):

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

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",
)
# add downstream dependencies as you would do with any branch operator
weekend_check >> [workday, weekend]
Parameters
  • follow_task_ids_if_true (str | collections.abc.Iterable[str]) – task_id, task_group_id, or a list of task_ids and/or task_group_ids to follow if criteria met.

  • follow_task_ids_if_false (str | collections.abc.Iterable[str]) – task_id, task_group_id, or a list of task_ids and/or task_group_ids to follow if criteria not met.

  • week_day (str | collections.abc.Iterable[str] | airflow.utils.weekday.WeekDay | collections.abc.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.

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?