blob: ab961cbf1c7e2ae13d7f6eee19959f9e825b593a [file] [log] [blame]
:py:mod:`airflow.operators.weekday`
===================================
.. py:module:: airflow.operators.weekday
Module Contents
---------------
Classes
~~~~~~~
.. autoapisummary::
airflow.operators.weekday.BranchDayOfWeekOperator
.. py:class:: BranchDayOfWeekOperator(*, follow_task_ids_if_true, follow_task_ids_if_false, week_day, use_task_logical_date = False, use_task_execution_day = False, **kwargs)
Bases: :py:obj:`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:
:ref:`howto/operator: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 :class:`~airflow.utils.weekday.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]
:param follow_task_ids_if_true: task id or task ids to follow if criteria met
:param follow_task_ids_if_false: task id or task ids to follow if criteria does not met
:param week_day: 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`
:param use_task_logical_date: 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.
:param use_task_execution_day: deprecated parameter, same effect as `use_task_logical_date`
.. py:method:: choose_branch(context)
Subclasses should implement this, running whatever logic is
necessary to choose a branch and returning a task_id or list of
task_ids.
:param context: Context dictionary as passed to execute()