:py:mod:`airflow.example_dags.example_skip_dag`
===============================================

.. py:module:: airflow.example_dags.example_skip_dag

.. autoapi-nested-parse::

   Example DAG demonstrating the EmptyOperator and a custom EmptySkipOperator which skips by default.



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.example_dags.example_skip_dag.EmptySkipOperator



Functions
~~~~~~~~~

.. autoapisummary::

   airflow.example_dags.example_skip_dag.create_test_pipeline



.. py:class:: EmptySkipOperator(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.operators.empty.EmptyOperator`

   Empty operator which always skips the task.

   .. py:attribute:: ui_color
      :annotation: = #e8b7e4

      

   .. py:method:: execute(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.



.. py:function:: create_test_pipeline(suffix, trigger_rule)

   Instantiate a number of operators for the given DAG.

   :param str suffix: Suffix to append to the operator task_ids
   :param str trigger_rule: TriggerRule for the join task
   :param DAG dag_: The DAG to run the operators on


