blob: 1eb4bb0680ab5d4800751c0c09462ffb821ee33e [file] [log] [blame]
:py:mod:`airflow.operators.branch`
==================================
.. py:module:: airflow.operators.branch
.. autoapi-nested-parse::
Branching operators
Module Contents
---------------
Classes
~~~~~~~
.. autoapisummary::
airflow.operators.branch.BaseBranchOperator
.. py:class:: BaseBranchOperator(task_id, owner = DEFAULT_OWNER, email = None, email_on_retry = conf.getboolean('email', 'default_email_on_retry', fallback=True), email_on_failure = conf.getboolean('email', 'default_email_on_failure', fallback=True), retries = DEFAULT_RETRIES, retry_delay = DEFAULT_RETRY_DELAY, retry_exponential_backoff = False, max_retry_delay = None, start_date = None, end_date = None, depends_on_past = False, ignore_first_depends_on_past = conf.getboolean('scheduler', 'ignore_first_depends_on_past_by_default'), wait_for_downstream = False, dag = None, params = None, default_args = None, priority_weight = DEFAULT_PRIORITY_WEIGHT, weight_rule = DEFAULT_WEIGHT_RULE, queue = DEFAULT_QUEUE, pool = None, pool_slots = DEFAULT_POOL_SLOTS, sla = None, execution_timeout = DEFAULT_TASK_EXECUTION_TIMEOUT, on_execute_callback = None, on_failure_callback = None, on_success_callback = None, on_retry_callback = None, pre_execute = None, post_execute = None, trigger_rule = DEFAULT_TRIGGER_RULE, resources = None, run_as_user = None, task_concurrency = None, max_active_tis_per_dag = None, executor_config = None, do_xcom_push = True, inlets = None, outlets = None, task_group = None, doc = None, doc_md = None, doc_json = None, doc_yaml = None, doc_rst = None, **kwargs)
Bases: :py:obj:`airflow.models.BaseOperator`, :py:obj:`airflow.models.skipmixin.SkipMixin`
This is a base class for creating operators with branching functionality,
similarly to BranchPythonOperator.
Users should subclass this operator and implement the function
`choose_branch(self, context)`. This should run whatever business logic
is needed to determine the branch, and return either the task_id for
a single task (as a str) or a list of task_ids.
The operator will continue with the returned task_id(s), and all other
tasks directly downstream of this operator will be skipped.
.. py:method:: choose_branch(self, context)
:abstractmethod:
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()
.. py:method:: execute(self, context)
This is the main method to derive when creating an operator.
Context is the same dictionary used as when rendering jinja templates.
Refer to get_template_context for more context.