You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by go...@apache.org on 2025/02/25 19:49:26 UTC

(airflow-site-archive) branch fix-all-doc-changes updated: Fixing docs scp apache-airflow/2.8.0

This is an automated email from the ASF dual-hosted git repository.

gopidesu pushed a commit to branch fix-all-doc-changes
in repository https://gitbox.apache.org/repos/asf/airflow-site-archive.git


The following commit(s) were added to refs/heads/fix-all-doc-changes by this push:
     new 199f0533 Fixing docs scp apache-airflow/2.8.0
199f0533 is described below

commit 199f053395bf386efed593af4c9f35f977234c7c
Author: Pavan Kumar <go...@gmail.com>
AuthorDate: Tue Feb 25 19:49:08 2025 +0000

    Fixing docs scp apache-airflow/2.8.0
---
 docs/apache-airflow/2.8.0/.buildinfo               |     4 +
 .../2.8.0/_api/airflow/decorators/base/index.html  |  1392 ++
 .../decorators/branch_external_python/index.html   |  1034 ++
 .../airflow/decorators/branch_python/index.html    |  1034 ++
 .../decorators/branch_virtualenv/index.html        |  1034 ++
 .../airflow/decorators/external_python/index.html  |   971 ++
 .../2.8.0/_api/airflow/decorators/index.html       |  1215 ++
 .../_api/airflow/decorators/python/index.html      |  1031 ++
 .../decorators/python_virtualenv/index.html        |   971 ++
 .../_api/airflow/decorators/sensor/index.html      |  1105 ++
 .../airflow/decorators/setup_teardown/index.html   |  1111 ++
 .../airflow/decorators/short_circuit/index.html    |   971 ++
 .../_api/airflow/decorators/task_group/index.html  |  1085 ++
 .../example_dags/example_bash_operator/index.html  |  1070 ++
 .../example_branch_datetime_operator/index.html    |  1151 ++
 .../example_branch_day_of_week_operator/index.html |  1062 ++
 .../example_dags/example_branch_labels/index.html  |  1062 ++
 .../example_branch_operator/index.html             |  1072 ++
 .../example_branch_operator_decorator/index.html   |  1073 ++
 .../index.html                                     |  1123 ++
 .../example_dags/example_complex/index.html        |  1062 ++
 .../example_dags/example_datasets/index.html       |  1082 ++
 .../example_dynamic_task_mapping/index.html        |  1087 ++
 .../index.html                                     |  1167 ++
 .../example_external_task_marker_dag/index.html    |  1091 ++
 .../example_kubernetes_executor/index.html         |  1078 ++
 .../example_dags/example_latest_only/index.html    |  1062 ++
 .../example_latest_only_with_trigger/index.html    |  1062 ++
 .../example_local_kubernetes_executor/index.html   |  1094 ++
 .../example_nested_branch_dag/index.html           |  1089 ++
 .../example_params_trigger_ui/index.html           |  1088 ++
 .../example_params_ui_tutorial/index.html          |  1089 ++
 .../index.html                                     |  1127 ++
 .../example_python_decorator/index.html            |  1122 ++
 .../example_python_operator/index.html             |  1123 ++
 .../example_sensor_decorator/index.html            |  1110 ++
 .../example_dags/example_sensors/index.html        |  1120 ++
 .../example_dags/example_setup_teardown/index.html |  1062 ++
 .../example_setup_teardown_taskflow/index.html     |  1085 ++
 .../example_short_circuit_decorator/index.html     |  1110 ++
 .../example_short_circuit_operator/index.html      |  1062 ++
 .../example_dags/example_skip_dag/index.html       |  1151 ++
 .../example_subdag_operator/index.html             |  1070 ++
 .../example_dags/example_task_group/index.html     |  1062 ++
 .../example_task_group_decorator/index.html        |  1181 ++
 .../example_time_delta_sensor_async/index.html     |  1063 ++
 .../example_trigger_controller_dag/index.html      |  1064 ++
 .../example_trigger_target_dag/index.html          |  1118 ++
 .../airflow/example_dags/example_xcom/index.html   |  1168 ++
 .../example_dags/example_xcomargs/index.html       |  1134 ++
 .../2.8.0/_api/airflow/example_dags/index.html     |  1117 ++
 .../airflow/example_dags/libs/helper/index.html    |  1020 ++
 .../_api/airflow/example_dags/libs/index.html      |   980 ++
 .../example_dags/plugins/event_listener/index.html |  1106 ++
 .../_api/airflow/example_dags/plugins/index.html   |   986 ++
 .../plugins/listener_plugin/index.html             |  1048 ++
 .../example_dags/plugins/workday/index.html        |  1157 ++
 .../_api/airflow/example_dags/subdags/index.html   |   980 ++
 .../airflow/example_dags/subdags/subdag/index.html |  1037 ++
 .../_api/airflow/example_dags/tutorial/index.html  |  1064 ++
 .../airflow/example_dags/tutorial_dag/index.html   |  1086 ++
 .../example_dags/tutorial_objectstorage/index.html |  1136 ++
 .../example_dags/tutorial_taskflow_api/index.html  |  1090 ++
 .../tutorial_taskflow_api_virtualenv/index.html    |  1112 ++
 .../2.8.0/_api/airflow/exceptions/index.html       |  1789 ++
 .../2.8.0/_api/airflow/hooks/base/index.html       |  1251 ++
 .../2.8.0/_api/airflow/hooks/dbapi/index.html      |   952 ++
 .../2.8.0/_api/airflow/hooks/filesystem/index.html |  1107 ++
 .../2.8.0/_api/airflow/hooks/index.html            |   965 ++
 .../_api/airflow/hooks/package_index/index.html    |  1087 ++
 .../2.8.0/_api/airflow/hooks/subprocess/index.html |  1075 ++
 .../_api/airflow/models/baseoperator/index.html    |  2194 +++
 .../airflow/models/baseoperatorlink/index.html     |  1028 ++
 .../_api/airflow/models/connection/index.html      |  1358 ++
 .../2.8.0/_api/airflow/models/dag/index.html       |  3340 ++++
 .../2.8.0/_api/airflow/models/dagbag/index.html    |  1202 ++
 .../2.8.0/_api/airflow/models/dagrun/index.html    |  1777 ++
 .../2.8.0/_api/airflow/models/param/index.html     |  1450 ++
 .../_api/airflow/models/taskinstance/index.html    |  2503 +++
 .../_api/airflow/models/taskinstancekey/index.html |  1071 ++
 .../2.8.0/_api/airflow/models/variable/index.html  |  1240 ++
 .../2.8.0/_api/airflow/models/xcom/index.html      |  1244 ++
 .../2.8.0/_api/airflow/operators/bash/index.html   |  1201 ++
 .../2.8.0/_api/airflow/operators/branch/index.html |  1095 ++
 .../_api/airflow/operators/datetime/index.html     |  1089 ++
 .../2.8.0/_api/airflow/operators/email/index.html  |  1088 ++
 .../2.8.0/_api/airflow/operators/empty/index.html  |  1059 ++
 .../airflow/operators/generic_transfer/index.html  |  1088 ++
 .../2.8.0/_api/airflow/operators/index.html        |   990 ++
 .../_api/airflow/operators/latest_only/index.html  |  1058 ++
 .../2.8.0/_api/airflow/operators/python/index.html |  1620 ++
 .../2.8.0/_api/airflow/operators/smooth/index.html |  1055 ++
 .../2.8.0/_api/airflow/operators/subdag/index.html |  1134 ++
 .../airflow/operators/trigger_dagrun/index.html    |  1194 ++
 .../_api/airflow/operators/weekday/index.html      |  1101 ++
 .../_api/airflow/secrets/base_secrets/index.html   |  1159 ++
 .../2.8.0/_api/airflow/secrets/cache/index.html    |  1103 ++
 .../secrets/environment_variables/index.html       |  1109 ++
 .../2.8.0/_api/airflow/secrets/index.html          |  1037 ++
 .../airflow/secrets/local_filesystem/index.html    |  1192 ++
 .../_api/airflow/secrets/metastore/index.html      |  1066 ++
 .../2.8.0/_api/airflow/sensors/base/index.html     |  1218 ++
 .../2.8.0/_api/airflow/sensors/bash/index.html     |  1064 ++
 .../_api/airflow/sensors/date_time/index.html      |  1112 ++
 .../_api/airflow/sensors/external_task/index.html  |  1317 ++
 .../_api/airflow/sensors/filesystem/index.html     |  1066 ++
 .../2.8.0/_api/airflow/sensors/index.html          |   981 ++
 .../2.8.0/_api/airflow/sensors/python/index.html   |  1063 ++
 .../_api/airflow/sensors/time_delta/index.html     |  1093 ++
 .../_api/airflow/sensors/time_sensor/index.html    |  1093 ++
 .../2.8.0/_api/airflow/sensors/weekday/index.html  |  1089 ++
 .../2.8.0/_api/airflow/timetables/_cron/index.html |   941 ++
 .../2.8.0/_api/airflow/timetables/base/index.html  |  1343 ++
 .../_api/airflow/timetables/events/index.html      |  1108 ++
 .../2.8.0/_api/airflow/timetables/index.html       |   956 ++
 .../_api/airflow/timetables/interval/index.html    |  1185 ++
 .../_api/airflow/timetables/simple/index.html      |  1210 ++
 .../_api/airflow/timetables/trigger/index.html     |  1081 ++
 .../2.8.0/_api/airflow/triggers/base/index.html    |  1120 ++
 .../_api/airflow/triggers/external_task/index.html |  1128 ++
 .../2.8.0/_api/airflow/triggers/file/index.html    |  1032 ++
 .../2.8.0/_api/airflow/triggers/index.html         |   956 ++
 .../_api/airflow/triggers/temporal/index.html      |  1054 ++
 .../2.8.0/_api/airflow/triggers/testing/index.html |  1091 ++
 .../2.8.0/_api/airflow/utils/state/index.html      |  1452 ++
 docs/apache-airflow/2.8.0/_api/index.html          |     1 +
 docs/apache-airflow/2.8.0/_images/add-dag-tags.png |   Bin 0 -> 68537 bytes
 docs/apache-airflow/2.8.0/_images/add-role.png     |   Bin 0 -> 30509 bytes
 docs/apache-airflow/2.8.0/_images/airflow_erd.svg  |  1638 ++
 docs/apache-airflow/2.8.0/_images/apache.jpg       |   Bin 0 -> 43364 bytes
 .../2.8.0/_images/arch-diag-kubernetes.png         |   Bin 0 -> 21804 bytes
 .../2.8.0/_images/arch-diag-kubernetes2.png        |   Bin 0 -> 86384 bytes
 .../2.8.0/_images/arch-diag-logging.png            |   Bin 0 -> 25843 bytes
 docs/apache-airflow/2.8.0/_images/basic-dag.png    |   Bin 0 -> 5393 bytes
 docs/apache-airflow/2.8.0/_images/branch_note.png  |   Bin 0 -> 31771 bytes
 .../2.8.0/_images/branch_with_trigger.png          |   Bin 0 -> 34081 bytes
 .../2.8.0/_images/branch_without_trigger.png       |   Bin 0 -> 39815 bytes
 docs/apache-airflow/2.8.0/_images/calendar.png     |   Bin 0 -> 58726 bytes
 .../2.8.0/_images/cli_completion.gif               |   Bin 0 -> 775263 bytes
 docs/apache-airflow/2.8.0/_images/code.png         |   Bin 0 -> 506092 bytes
 .../2.8.0/_images/connection_create.png            |   Bin 0 -> 52889 bytes
 .../2.8.0/_images/connection_edit.png              |   Bin 0 -> 31186 bytes
 docs/apache-airflow/2.8.0/_images/dag_doc.png      |   Bin 0 -> 40094 bytes
 .../2.8.0/_images/dag_file_processing_diagram.png  |   Bin 0 -> 263825 bytes
 .../2.8.0/_images/dag_serialization.png            |   Bin 0 -> 99917 bytes
 .../apache-airflow/2.8.0/_images/dags-page-new.png |   Bin 0 -> 483599 bytes
 .../apache-airflow/2.8.0/_images/dags-page-old.png |   Bin 0 -> 493009 bytes
 docs/apache-airflow/2.8.0/_images/dags.png         |   Bin 0 -> 211122 bytes
 .../2.8.0/_images/dataset-scheduled-dags.png       |   Bin 0 -> 77225 bytes
 docs/apache-airflow/2.8.0/_images/datasets.png     |   Bin 0 -> 341201 bytes
 .../default_instance_name_configuration.png        |   Bin 0 -> 154888 bytes
 .../2.8.0/_images/demo_graph_view.png              |   Bin 0 -> 382210 bytes
 .../2.8.0/_images/demo_grid_view.png               |   Bin 0 -> 65574 bytes
 .../_images/diagram_basic_airflow_architecture.png |   Bin 0 -> 87096 bytes
 .../diagram_dag_processor_airflow_architecture.png |   Bin 0 -> 106642 bytes
 docs/apache-airflow/2.8.0/_images/duration.png     |   Bin 0 -> 150876 bytes
 .../2.8.0/_images/edge_label_example.png           |   Bin 0 -> 24592 bytes
 .../2.8.0/_images/email_connection.png             |   Bin 0 -> 59515 bytes
 .../example_instance_name_configuration.png        |   Bin 0 -> 154915 bytes
 .../2.8.0/_images/example_passing_conf.png         |   Bin 0 -> 41080 bytes
 docs/apache-airflow/2.8.0/_images/gantt.png        |   Bin 0 -> 352148 bytes
 .../2.8.0/_images/graph-view-new.png               |   Bin 0 -> 56973 bytes
 .../2.8.0/_images/graph-view-old.png               |   Bin 0 -> 54884 bytes
 docs/apache-airflow/2.8.0/_images/graph.png        |   Bin 0 -> 429818 bytes
 ...iz-5817c4b4cb6cd3ea7d604aa85ab3420b64a24446.svg |   200 +
 ...iz-66e404e292d46e7c601f518726fab5fd4133292f.svg |   142 +
 docs/apache-airflow/2.8.0/_images/grid.png         |   Bin 0 -> 249561 bytes
 .../2.8.0/_images/grid_instance_details.png        |   Bin 0 -> 178129 bytes
 .../2.8.0/_images/grid_mapped_task.png             |   Bin 0 -> 135753 bytes
 .../2.8.0/_images/grid_run_details.png             |   Bin 0 -> 202106 bytes
 .../2.8.0/_images/grid_task_group.png              |   Bin 0 -> 56287 bytes
 .../2.8.0/_images/howto-owner-links.gif            |   Bin 0 -> 829619 bytes
 .../2.8.0/_images/k8s-failed-pod.png               |   Bin 0 -> 18937 bytes
 .../2.8.0/_images/k8s-happy-path.png               |   Bin 0 -> 17257 bytes
 .../apache-airflow/2.8.0/_images/landing_times.png |   Bin 0 -> 84125 bytes
 .../2.8.0/_images/latest_only_with_trigger.png     |   Bin 0 -> 42887 bytes
 .../2.8.0/_images/mapping-simple-graph.png         |   Bin 0 -> 13312 bytes
 .../2.8.0/_images/mapping-simple-grid.png          |   Bin 0 -> 179670 bytes
 docs/apache-airflow/2.8.0/_images/new-role.png     |   Bin 0 -> 14115 bytes
 .../2.8.0/_images/operator_extra_link.png          |   Bin 0 -> 90359 bytes
 .../2.8.0/_images/run_task_on_celery_executor.png  |   Bin 0 -> 55939 bytes
 .../2.8.0/_images/setup-teardown-complex.png       |   Bin 0 -> 114476 bytes
 .../2.8.0/_images/setup-teardown-group.png         |   Bin 0 -> 48789 bytes
 .../2.8.0/_images/setup-teardown-nesting.png       |   Bin 0 -> 83934 bytes
 .../2.8.0/_images/setup-teardown-parallel.png      |   Bin 0 -> 43571 bytes
 .../2.8.0/_images/setup-teardown-scope.png         |   Bin 0 -> 62951 bytes
 .../2.8.0/_images/setup-teardown-setup-group.png   |   Bin 0 -> 76759 bytes
 .../2.8.0/_images/setup-teardown-simple.png        |   Bin 0 -> 29606 bytes
 docs/apache-airflow/2.8.0/_images/subdag_after.png |   Bin 0 -> 30245 bytes
 .../apache-airflow/2.8.0/_images/subdag_before.png |   Bin 0 -> 70382 bytes
 docs/apache-airflow/2.8.0/_images/subdag_zoom.png  |   Bin 0 -> 145017 bytes
 docs/apache-airflow/2.8.0/_images/task_doc.png     |   Bin 0 -> 245714 bytes
 docs/apache-airflow/2.8.0/_images/task_group.gif   |   Bin 0 -> 137189 bytes
 .../2.8.0/_images/task_lifecycle_diagram.png       |   Bin 0 -> 32164 bytes
 .../2.8.0/_images/task_manual_vs_scheduled.png     |   Bin 0 -> 5686 bytes
 .../2.8.0/_images/template_field_renderer_path.png |   Bin 0 -> 64442 bytes
 .../apache-airflow/2.8.0/_images/tree-view-new.png |   Bin 0 -> 36934 bytes
 .../apache-airflow/2.8.0/_images/tree-view-old.png |   Bin 0 -> 21601 bytes
 .../2.8.0/_images/trigger-dag-tutorial-form.png    |   Bin 0 -> 247468 bytes
 .../2.8.0/_images/tutorial-pipeline-1.png          |   Bin 0 -> 566225 bytes
 .../2.8.0/_images/tutorial-pipeline-2.png          |   Bin 0 -> 345529 bytes
 .../2.8.0/_images/ui-alert-message.png             |   Bin 0 -> 7909 bytes
 .../2.8.0/_images/ui-timezone-chooser.png          |   Bin 0 -> 16644 bytes
 .../2.8.0/_images/usage_cli_export.png             |   Bin 0 -> 397830 bytes
 .../2.8.0/_images/usage_cli_imgcat.png             |   Bin 0 -> 475224 bytes
 .../2.8.0/_images/variable_hidden.png              |   Bin 0 -> 55331 bytes
 docs/apache-airflow/2.8.0/_images/watcher.png      |   Bin 0 -> 41592 bytes
 .../2.8.0/_modules/airflow/decorators.html         |   939 ++
 .../2.8.0/_modules/airflow/decorators/base.html    |  1525 ++
 .../airflow/decorators/branch_external_python.html |   916 ++
 .../_modules/airflow/decorators/branch_python.html |   916 ++
 .../airflow/decorators/branch_virtualenv.html      |   916 ++
 .../2.8.0/_modules/airflow/decorators/python.html  |   940 ++
 .../2.8.0/_modules/airflow/decorators/sensor.html  |   936 ++
 .../airflow/decorators/setup_teardown.html         |   944 ++
 .../_modules/airflow/decorators/task_group.html    |  1071 ++
 .../example_dags/example_bash_operator.html        |   934 ++
 .../example_branch_datetime_operator.html          |   962 ++
 .../example_branch_day_of_week_operator.html       |   918 ++
 .../example_dags/example_branch_labels.html        |   903 +
 .../example_dags/example_branch_operator.html      |  1025 ++
 .../example_branch_operator_decorator.html         |  1002 ++
 .../example_branch_python_dop_operator_3.html      |   918 ++
 .../airflow/example_dags/example_complex.html      |  1078 ++
 .../airflow/example_dags/example_datasets.html     |   988 ++
 .../example_dags/example_dynamic_task_mapping.html |   896 +
 ...ic_task_mapping_with_no_taskflow_operators.html |   920 ++
 .../example_external_task_marker_dag.html          |   955 ++
 .../example_dags/example_kubernetes_executor.html  |  1096 ++
 .../airflow/example_dags/example_latest_only.html  |   895 +
 .../example_latest_only_with_trigger.html          |   906 +
 .../example_local_kubernetes_executor.html         |   929 ++
 .../example_dags/example_nested_branch_dag.html    |   914 ++
 .../example_dags/example_params_trigger_ui.html    |   965 ++
 .../example_dags/example_params_ui_tutorial.html   |  1102 ++
 .../example_passing_params_via_test_command.html   |   944 ++
 .../example_dags/example_python_decorator.html     |   993 ++
 .../example_dags/example_python_operator.html      |  1004 ++
 .../example_dags/example_sensor_decorator.html     |   925 ++
 .../airflow/example_dags/example_sensors.html      |   984 ++
 .../example_dags/example_setup_teardown.html       |   906 +
 .../example_setup_teardown_taskflow.html           |   963 ++
 .../example_short_circuit_decorator.html           |   918 ++
 .../example_short_circuit_operator.html            |   923 ++
 .../airflow/example_dags/example_skip_dag.html     |   928 ++
 .../example_dags/example_subdag_operator.html      |   919 ++
 .../airflow/example_dags/example_task_group.html   |   922 ++
 .../example_dags/example_task_group_decorator.html |   937 ++
 .../example_time_delta_sensor_async.html           |   899 +
 .../example_trigger_controller_dag.html            |   899 +
 .../example_dags/example_trigger_target_dag.html   |   913 ++
 .../airflow/example_dags/example_xcom.html         |   952 ++
 .../airflow/example_dags/example_xcomargs.html     |   923 ++
 .../_modules/airflow/example_dags/libs/helper.html |   880 +
 .../example_dags/plugins/event_listener.html       |  1019 ++
 .../example_dags/plugins/listener_plugin.html      |   884 +
 .../airflow/example_dags/plugins/workday.html      |   964 ++
 .../airflow/example_dags/subdags/subdag.html       |   913 ++
 .../_modules/airflow/example_dags/tutorial.html    |   983 ++
 .../airflow/example_dags/tutorial_dag.html         |   993 ++
 .../example_dags/tutorial_objectstorage.html       |   993 ++
 .../example_dags/tutorial_taskflow_api.html        |   964 ++
 .../tutorial_taskflow_api_virtualenv.html          |   945 ++
 .../2.8.0/_modules/airflow/exceptions.html         |  1284 ++
 .../2.8.0/_modules/airflow/hooks/base.html         |  1046 ++
 .../2.8.0/_modules/airflow/hooks/filesystem.html   |   947 ++
 .../_modules/airflow/hooks/package_index.html      |   952 ++
 .../2.8.0/_modules/airflow/hooks/subprocess.html   |   964 ++
 .../2.8.0/_modules/airflow/macros.html             |   949 ++
 .../_modules/airflow/models/baseoperator.html      |  2779 ++++
 .../_modules/airflow/models/baseoperatorlink.html  |   915 ++
 .../2.8.0/_modules/airflow/models/connection.html  |  1388 ++
 .../2.8.0/_modules/airflow/models/dag.html         |  4941 ++++++
 .../2.8.0/_modules/airflow/models/dagbag.html      |  1556 ++
 .../2.8.0/_modules/airflow/models/dagrun.html      |  2388 +++
 .../2.8.0/_modules/airflow/models/param.html       |  1215 ++
 .../_modules/airflow/models/taskinstance.html      |  4435 +++++
 .../_modules/airflow/models/taskinstancekey.html   |   912 ++
 .../2.8.0/_modules/airflow/models/variable.html    |  1148 ++
 .../2.8.0/_modules/airflow/models/xcom.html        |  1736 ++
 .../2.8.0/_modules/airflow/operators/bash.html     |  1076 ++
 .../2.8.0/_modules/airflow/operators/branch.html   |   924 ++
 .../2.8.0/_modules/airflow/operators/datetime.html |   976 ++
 .../2.8.0/_modules/airflow/operators/email.html    |   948 ++
 .../2.8.0/_modules/airflow/operators/empty.html    |   897 +
 .../airflow/operators/generic_transfer.html        |   966 ++
 .../_modules/airflow/operators/latest_only.html    |   934 ++
 .../2.8.0/_modules/airflow/operators/python.html   |  1819 ++
 .../2.8.0/_modules/airflow/operators/smooth.html   |   896 +
 .../2.8.0/_modules/airflow/operators/subdag.html   |  1101 ++
 .../_modules/airflow/operators/trigger_dagrun.html |  1110 ++
 .../2.8.0/_modules/airflow/operators/weekday.html  |   984 ++
 .../2.8.0/_modules/airflow/policies.html           |  1071 ++
 .../2.8.0/_modules/airflow/secrets.html            |   894 +
 .../_modules/airflow/secrets/base_secrets.html     |  1013 ++
 .../2.8.0/_modules/airflow/secrets/cache.html      |   989 ++
 .../airflow/secrets/environment_variables.html     |   920 ++
 .../_modules/airflow/secrets/local_filesystem.html |  1193 ++
 .../2.8.0/_modules/airflow/secrets/metastore.html  |   947 ++
 .../2.8.0/_modules/airflow/sensors/base.html       |  1243 ++
 .../2.8.0/_modules/airflow/sensors/bash.html       |   972 ++
 .../2.8.0/_modules/airflow/sensors/date_time.html  |   960 ++
 .../_modules/airflow/sensors/external_task.html    |  1400 ++
 .../2.8.0/_modules/airflow/sensors/filesystem.html |   935 ++
 .../2.8.0/_modules/airflow/sensors/python.html     |   938 ++
 .../2.8.0/_modules/airflow/sensors/time_delta.html |   941 ++
 .../_modules/airflow/sensors/time_sensor.html      |   942 ++
 .../2.8.0/_modules/airflow/sensors/weekday.html    |   976 ++
 .../2.8.0/_modules/airflow/timetables/_cron.html   |  1002 ++
 .../2.8.0/_modules/airflow/timetables/base.html    |  1097 ++
 .../2.8.0/_modules/airflow/timetables/events.html  |   979 ++
 .../_modules/airflow/timetables/interval.html      |  1125 ++
 .../2.8.0/_modules/airflow/timetables/simple.html  |  1056 ++
 .../2.8.0/_modules/airflow/timetables/trigger.html |   962 ++
 .../2.8.0/_modules/airflow/triggers/base.html      |   975 ++
 .../_modules/airflow/triggers/external_task.html   |  1066 ++
 .../2.8.0/_modules/airflow/triggers/file.html      |   931 ++
 .../2.8.0/_modules/airflow/triggers/temporal.html  |   946 ++
 .../2.8.0/_modules/airflow/triggers/testing.html   |   911 ++
 .../2.8.0/_modules/airflow/utils/state.html        |  1082 ++
 docs/apache-airflow/2.8.0/_modules/index.html      |   970 ++
 .../_api/airflow/decorators/base/index.rst.txt     |   222 +
 .../branch_external_python/index.rst.txt           |    34 +
 .../airflow/decorators/branch_python/index.rst.txt |    34 +
 .../decorators/branch_virtualenv/index.rst.txt     |    34 +
 .../decorators/external_python/index.rst.txt       |     6 +
 .../_sources/_api/airflow/decorators/index.rst.txt |   139 +
 .../_api/airflow/decorators/python/index.rst.txt   |    30 +
 .../decorators/python_virtualenv/index.rst.txt     |     6 +
 .../_api/airflow/decorators/sensor/index.rst.txt   |    75 +
 .../decorators/setup_teardown/index.rst.txt        |    60 +
 .../airflow/decorators/short_circuit/index.rst.txt |     6 +
 .../airflow/decorators/task_group/index.rst.txt    |    63 +
 .../example_bash_operator/index.rst.txt            |    22 +
 .../example_branch_datetime_operator/index.rst.txt |    63 +
 .../index.rst.txt                                  |    18 +
 .../example_branch_labels/index.rst.txt            |    18 +
 .../example_branch_operator/index.rst.txt          |    25 +
 .../index.rst.txt                                  |    26 +
 .../index.rst.txt                                  |    45 +
 .../example_dags/example_complex/index.rst.txt     |    18 +
 .../example_dags/example_datasets/index.rst.txt    |    41 +
 .../example_dynamic_task_mapping/index.rst.txt     |    27 +
 .../index.rst.txt                                  |    76 +
 .../example_external_task_marker_dag/index.rst.txt |    44 +
 .../example_kubernetes_executor/index.rst.txt      |    26 +
 .../example_dags/example_latest_only/index.rst.txt |    18 +
 .../example_latest_only_with_trigger/index.rst.txt |    18 +
 .../index.rst.txt                                  |    34 +
 .../example_nested_branch_dag/index.rst.txt        |    29 +
 .../example_params_trigger_ui/index.rst.txt        |    29 +
 .../example_params_ui_tutorial/index.rst.txt       |    30 +
 .../index.rst.txt                                  |    51 +
 .../example_python_decorator/index.rst.txt         |    45 +
 .../example_python_operator/index.rst.txt          |    47 +
 .../example_sensor_decorator/index.rst.txt         |    39 +
 .../example_dags/example_sensors/index.rst.txt     |    38 +
 .../example_setup_teardown/index.rst.txt           |    18 +
 .../example_setup_teardown_taskflow/index.rst.txt  |    27 +
 .../example_short_circuit_decorator/index.rst.txt  |    39 +
 .../example_short_circuit_operator/index.rst.txt   |    18 +
 .../example_dags/example_skip_dag/index.rst.txt    |    63 +
 .../example_subdag_operator/index.rst.txt          |    23 +
 .../example_dags/example_task_group/index.rst.txt  |    18 +
 .../example_task_group_decorator/index.rst.txt     |    71 +
 .../example_time_delta_sensor_async/index.rst.txt  |    19 +
 .../example_trigger_controller_dag/index.rst.txt   |    20 +
 .../example_trigger_target_dag/index.rst.txt       |    45 +
 .../example_dags/example_xcom/index.rst.txt        |    68 +
 .../example_dags/example_xcomargs/index.rst.txt    |    52 +
 .../_api/airflow/example_dags/index.rst.txt        |    67 +
 .../airflow/example_dags/libs/helper/index.rst.txt |    22 +
 .../_api/airflow/example_dags/libs/index.rst.txt   |    15 +
 .../plugins/event_listener/index.rst.txt           |    63 +
 .../airflow/example_dags/plugins/index.rst.txt     |    17 +
 .../plugins/listener_plugin/index.rst.txt          |    36 +
 .../example_dags/plugins/workday/index.rst.txt     |    96 +
 .../airflow/example_dags/subdags/index.rst.txt     |    15 +
 .../example_dags/subdags/subdag/index.rst.txt      |    34 +
 .../airflow/example_dags/tutorial/index.rst.txt    |    20 +
 .../example_dags/tutorial_dag/index.rst.txt        |    28 +
 .../tutorial_objectstorage/index.rst.txt           |    51 +
 .../tutorial_taskflow_api/index.rst.txt            |    29 +
 .../tutorial_taskflow_api_virtualenv/index.rst.txt |    38 +
 .../_sources/_api/airflow/exceptions/index.rst.txt |   535 +
 .../_sources/_api/airflow/hooks/base/index.rst.txt |   193 +
 .../_api/airflow/hooks/dbapi/index.rst.txt         |    11 +
 .../_api/airflow/hooks/filesystem/index.rst.txt    |    84 +
 .../_sources/_api/airflow/hooks/index.rst.txt      |    24 +
 .../_api/airflow/hooks/package_index/index.rst.txt |    73 +
 .../_api/airflow/hooks/subprocess/index.rst.txt    |    64 +
 .../_api/airflow/models/baseoperator/index.rst.txt |   882 +
 .../airflow/models/baseoperatorlink/index.rst.txt  |    55 +
 .../_api/airflow/models/connection/index.rst.txt   |   221 +
 .../_sources/_api/airflow/models/dag/index.rst.txt |  1295 ++
 .../_api/airflow/models/dagbag/index.rst.txt       |   142 +
 .../_api/airflow/models/dagrun/index.rst.txt       |   432 +
 .../_api/airflow/models/param/index.rst.txt        |   249 +
 .../_api/airflow/models/taskinstance/index.rst.txt |   859 +
 .../airflow/models/taskinstancekey/index.rst.txt   |    78 +
 .../_api/airflow/models/variable/index.rst.txt     |   166 +
 .../_api/airflow/models/xcom/index.rst.txt         |   169 +
 .../_api/airflow/operators/bash/index.rst.txt      |   167 +
 .../_api/airflow/operators/branch/index.rst.txt    |    75 +
 .../_api/airflow/operators/datetime/index.rst.txt  |    66 +
 .../_api/airflow/operators/email/index.rst.txt     |    69 +
 .../_api/airflow/operators/empty/index.rst.txt     |    49 +
 .../operators/generic_transfer/index.rst.txt       |    71 +
 .../_sources/_api/airflow/operators/index.rst.txt  |    31 +
 .../airflow/operators/latest_only/index.rst.txt    |    54 +
 .../_api/airflow/operators/python/index.rst.txt    |   441 +
 .../_api/airflow/operators/smooth/index.rst.txt    |    47 +
 .../_api/airflow/operators/subdag/index.rst.txt    |    98 +
 .../airflow/operators/trigger_dagrun/index.rst.txt |   124 +
 .../_api/airflow/operators/weekday/index.rst.txt   |    96 +
 .../airflow/secrets/base_secrets/index.rst.txt     |   103 +
 .../_api/airflow/secrets/cache/index.rst.txt       |    75 +
 .../secrets/environment_variables/index.rst.txt    |    78 +
 .../_sources/_api/airflow/secrets/index.rst.txt    |    57 +
 .../airflow/secrets/local_filesystem/index.rst.txt |   117 +
 .../_api/airflow/secrets/metastore/index.rst.txt   |    56 +
 .../_api/airflow/sensors/base/index.rst.txt        |   151 +
 .../_api/airflow/sensors/bash/index.rst.txt        |    59 +
 .../_api/airflow/sensors/date_time/index.rst.txt   |    90 +
 .../airflow/sensors/external_task/index.rst.txt    |   216 +
 .../_api/airflow/sensors/filesystem/index.rst.txt  |    59 +
 .../_sources/_api/airflow/sensors/index.rst.txt    |    28 +
 .../_api/airflow/sensors/python/index.rst.txt      |    57 +
 .../_api/airflow/sensors/time_delta/index.rst.txt  |    72 +
 .../_api/airflow/sensors/time_sensor/index.rst.txt |    70 +
 .../_api/airflow/sensors/weekday/index.rst.txt     |    84 +
 .../_api/airflow/timetables/_cron/index.rst.txt    |    41 +
 .../_api/airflow/timetables/base/index.rst.txt     |   255 +
 .../_api/airflow/timetables/events/index.rst.txt   |    99 +
 .../_sources/_api/airflow/timetables/index.rst.txt |    19 +
 .../_api/airflow/timetables/interval/index.rst.txt |   146 +
 .../_api/airflow/timetables/simple/index.rst.txt   |   160 +
 .../_api/airflow/timetables/trigger/index.rst.txt  |    82 +
 .../_api/airflow/triggers/base/index.rst.txt       |   105 +
 .../airflow/triggers/external_task/index.rst.txt   |    96 +
 .../_api/airflow/triggers/file/index.rst.txt       |    43 +
 .../_sources/_api/airflow/triggers/index.rst.txt   |    19 +
 .../_api/airflow/triggers/temporal/index.rst.txt   |    65 +
 .../_api/airflow/triggers/testing/index.rst.txt    |    90 +
 .../_api/airflow/utils/state/index.rst.txt         |   300 +
 .../cluster-policies.rst.txt                       |   177 +
 .../dag-serialization.rst.txt                      |   118 +
 .../administration-and-deployment/index.rst.txt    |    36 +
 .../kubernetes.rst.txt                             |    62 +
 .../administration-and-deployment/lineage.rst.txt  |   113 +
 .../listeners.rst.txt                              |    76 +
 .../advanced-logging-configuration.rst.txt         |   157 +
 .../logging-monitoring/callbacks.rst.txt           |    97 +
 .../logging-monitoring/check-health.rst.txt        |   158 +
 .../logging-monitoring/errors.rst.txt              |   112 +
 .../logging-monitoring/index.rst.txt               |    40 +
 .../logging-architecture.rst.txt                   |    47 +
 .../logging-monitoring/logging-tasks.rst.txt       |   165 +
 .../logging-monitoring/metrics.rst.txt             |   246 +
 .../tracking-user-activity.rst.txt                 |    39 +
 .../modules_management.rst.txt                     |   419 +
 .../administration-and-deployment/pools.rst.txt    |    90 +
 .../priority-weight.rst.txt                        |    61 +
 .../production-deployment.rst.txt                  |   230 +
 .../scheduler.rst.txt                              |   390 +
 .../authoring-and-scheduling/connections.rst.txt   |    51 +
 .../dagfile-processing.rst.txt                     |    47 +
 .../authoring-and-scheduling/datasets.rst.txt      |   238 +
 .../authoring-and-scheduling/deferring.rst.txt     |   232 +
 .../dynamic-task-mapping.rst.txt                   |   538 +
 .../authoring-and-scheduling/index.rst.txt         |    44 +
 .../authoring-and-scheduling/plugins.rst.txt       |   343 +
 .../authoring-and-scheduling/serializers.rst.txt   |   129 +
 .../authoring-and-scheduling/timetable.rst.txt     |   299 +
 .../authoring-and-scheduling/timezone.rst.txt      |   193 +
 .../2.8.0/_sources/best-practices.rst.txt          |  1079 ++
 .../_sources/cli-and-env-variables-ref.rst.txt     |   111 +
 .../2.8.0/_sources/configurations-ref.rst.txt      |    52 +
 .../2.8.0/_sources/core-concepts/dag-run.rst.txt   |   297 +
 .../2.8.0/_sources/core-concepts/dags.rst.txt      |   903 +
 .../_sources/core-concepts/executor/celery.rst.txt |   229 +
 .../executor/celery_kubernetes.rst.txt             |    56 +
 .../_sources/core-concepts/executor/dask.rst.txt   |    56 +
 .../_sources/core-concepts/executor/debug.rst.txt  |   104 +
 .../_sources/core-concepts/executor/index.rst.txt  |   204 +
 .../core-concepts/executor/kubernetes.rst.txt      |   290 +
 .../_sources/core-concepts/executor/local.rst.txt  |    57 +
 .../executor/local_kubernetes.rst.txt              |    37 +
 .../core-concepts/executor/sequential.rst.txt      |    26 +
 .../2.8.0/_sources/core-concepts/index.rst.txt     |    52 +
 .../_sources/core-concepts/objectstorage.rst.txt   |   324 +
 .../2.8.0/_sources/core-concepts/operators.rst.txt |   285 +
 .../2.8.0/_sources/core-concepts/overview.rst.txt  |   117 +
 .../2.8.0/_sources/core-concepts/params.rst.txt    |   344 +
 .../2.8.0/_sources/core-concepts/sensors.rst.txt   |    32 +
 .../2.8.0/_sources/core-concepts/taskflow.rst.txt  |   208 +
 .../2.8.0/_sources/core-concepts/tasks.rst.txt     |   338 +
 .../2.8.0/_sources/core-concepts/variables.rst.txt |    48 +
 .../2.8.0/_sources/core-concepts/xcoms.rst.txt     |   102 +
 .../2.8.0/_sources/database-erd-ref.rst.txt        |    38 +
 .../2.8.0/_sources/deprecated-rest-api-ref.rst.txt |   127 +
 .../2.8.0/_sources/extra-packages-ref.rst.txt      |   412 +
 docs/apache-airflow/2.8.0/_sources/faq.rst.txt     |   513 +
 .../2.8.0/_sources/howto/add-dag-tags.rst.txt      |    44 +
 .../2.8.0/_sources/howto/add-owner-links.rst.txt   |    50 +
 .../2.8.0/_sources/howto/connection.rst.txt        |   515 +
 .../_sources/howto/create-custom-decorator.rst.txt |   124 +
 .../2.8.0/_sources/howto/custom-operator.rst.txt   |   349 +
 .../_sources/howto/custom-view-plugin.rst.txt      |    76 +
 .../2.8.0/_sources/howto/customize-ui.rst.txt      |   173 +
 .../2.8.0/_sources/howto/define-extra-link.rst.txt |   172 +
 .../_sources/howto/docker-compose/index.rst.txt    |   417 +
 .../_sources/howto/dynamic-dag-generation.rst.txt  |   220 +
 .../2.8.0/_sources/howto/email-config.rst.txt      |   194 +
 .../_sources/howto/export-more-env-vars.rst.txt    |    52 +
 .../2.8.0/_sources/howto/index.rst.txt             |    55 +
 .../2.8.0/_sources/howto/listener-plugin.rst.txt   |    95 +
 .../2.8.0/_sources/howto/notifications.rst.txt     |    80 +
 .../2.8.0/_sources/howto/operator/bash.rst.txt     |   160 +
 .../2.8.0/_sources/howto/operator/datetime.rst.txt |    74 +
 .../howto/operator/external_task_sensor.rst.txt    |    88 +
 .../2.8.0/_sources/howto/operator/file.rst.txt     |    33 +
 .../2.8.0/_sources/howto/operator/index.rst.txt    |    38 +
 .../2.8.0/_sources/howto/operator/python.rst.txt   |   483 +
 .../2.8.0/_sources/howto/operator/time.rst.txt     |    78 +
 .../2.8.0/_sources/howto/operator/weekday.rst.txt  |    44 +
 .../2.8.0/_sources/howto/run-behind-proxy.rst.txt  |    92 +
 .../2.8.0/_sources/howto/run-with-systemd.rst.txt  |    40 +
 .../2.8.0/_sources/howto/set-config.rst.txt        |   192 +
 .../2.8.0/_sources/howto/set-up-database.rst.txt   |   390 +
 .../_sources/howto/setup-and-teardown.rst.txt      |   233 +
 .../2.8.0/_sources/howto/timetable.rst.txt         |   355 +
 .../howto/upgrading-from-1-10/index.rst.txt        |  1232 ++
 .../upgrading-from-1-10/upgrade-check.rst.txt      |   221 +
 .../2.8.0/_sources/howto/usage-cli.rst.txt         |   407 +
 .../2.8.0/_sources/howto/variable.rst.txt          |    76 +
 docs/apache-airflow/2.8.0/_sources/index.rst.txt   |   177 +
 .../_sources/installation/dependencies.rst.txt     |    92 +
 .../2.8.0/_sources/installation/index.rst.txt      |   388 +
 .../installation/installing-from-pypi.rst.txt      |   373 +
 .../installation/installing-from-sources.rst.txt   |   155 +
 .../_sources/installation/prerequisites.rst.txt    |    60 +
 .../installation/setting-up-the-database.rst.txt   |    39 +
 .../installation/supported-versions.rst.txt        |    69 +
 .../2.8.0/_sources/installation/upgrading.rst.txt  |   279 +
 .../2.8.0/_sources/integration.rst.txt             |    38 +
 docs/apache-airflow/2.8.0/_sources/license.rst.txt |   201 +
 .../2.8.0/_sources/migrations-ref.rst.txt          |   336 +
 .../2.8.0/_sources/operators-and-hooks-ref.rst.txt |   128 +
 .../2.8.0/_sources/privacy_notice.rst.txt          |    68 +
 docs/apache-airflow/2.8.0/_sources/project.rst.txt |   117 +
 .../_sources/public-airflow-interface.rst.txt      |   461 +
 .../2.8.0/_sources/release-process.rst.txt         |    97 +
 .../2.8.0/_sources/release_notes.rst.txt           |    23 +
 .../2.8.0/_sources/security/access-control.rst.txt |   275 +
 .../2.8.0/_sources/security/api.rst.txt            |   167 +
 .../2.8.0/_sources/security/audit_logs.rst.txt     |    66 +
 .../2.8.0/_sources/security/flower.rst.txt         |    62 +
 .../2.8.0/_sources/security/index.rst.txt          |    36 +
 .../2.8.0/_sources/security/kerberos.rst.txt       |   188 +
 .../security/releasing_security_patches.rst.txt    |    49 +
 .../2.8.0/_sources/security/sbom.rst.txt           |    31 +
 .../2.8.0/_sources/security/secrets/fernet.rst.txt |    63 +
 .../2.8.0/_sources/security/secrets/index.rst.txt  |    37 +
 .../security/secrets/mask-sensitive-values.rst.txt |    79 +
 .../security/secrets/secrets-backend/index.rst.txt |   121 +
 .../local-filesystem-secrets-backend.rst.txt       |   145 +
 .../2.8.0/_sources/security/security_model.rst.txt |   274 +
 .../2.8.0/_sources/security/webserver.rst.txt      |   321 +
 .../2.8.0/_sources/security/workload.rst.txt       |    52 +
 .../2.8.0/_sources/stable-rest-api-ref.rst.txt     |    23 +
 docs/apache-airflow/2.8.0/_sources/start.rst.txt   |   137 +
 .../2.8.0/_sources/templates-ref.rst.txt           |   198 +
 .../2.8.0/_sources/tutorial/fundamentals.rst.txt   |   406 +
 .../2.8.0/_sources/tutorial/index.rst.txt          |    29 +
 .../2.8.0/_sources/tutorial/objectstorage.rst.txt  |   128 +
 .../2.8.0/_sources/tutorial/pipeline.rst.txt       |   332 +
 .../2.8.0/_sources/tutorial/taskflow.rst.txt       |   638 +
 docs/apache-airflow/2.8.0/_sources/ui.rst.txt      |   187 +
 docs/apache-airflow/2.8.0/_specs/v1.yaml           |  5366 ++++++
 ...-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css |     1 +
 .../2.8.0/_sphinx_design_static/design-tabs.js     |    27 +
 .../2.8.0/_static/_gen/css/main-custom.min.css     |     1 +
 .../2.8.0/_static/_gen/css/main.min.css            |     7 +
 docs/apache-airflow/2.8.0/_static/_gen/js/docs.js  |     1 +
 .../_sphinx_javascript_frameworks_compat.js        |   134 +
 docs/apache-airflow/2.8.0/_static/basic.css        |   899 +
 docs/apache-airflow/2.8.0/_static/check-solid.svg  |     4 +
 docs/apache-airflow/2.8.0/_static/clipboard.min.js |     7 +
 docs/apache-airflow/2.8.0/_static/copy-button.svg  |     5 +
 docs/apache-airflow/2.8.0/_static/copybutton.css   |    94 +
 docs/apache-airflow/2.8.0/_static/copybutton.js    |   248 +
 .../2.8.0/_static/copybutton_funcs.js              |    73 +
 docs/apache-airflow/2.8.0/_static/custom.css       |    33 +
 ...-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css |     1 +
 docs/apache-airflow/2.8.0/_static/design-tabs.js   |    27 +
 docs/apache-airflow/2.8.0/_static/doctools.js      |   156 +
 .../2.8.0/_static/documentation_options.js         |    14 +
 .../2.8.0/_static/exampleinclude.css               |    86 +
 docs/apache-airflow/2.8.0/_static/file.png         |   Bin 0 -> 286 bytes
 docs/apache-airflow/2.8.0/_static/gh-jira-links.js |    34 +
 docs/apache-airflow/2.8.0/_static/graphviz.css     |    19 +
 docs/apache-airflow/2.8.0/_static/jquery-3.6.0.js  | 10881 ++++++++++++
 docs/apache-airflow/2.8.0/_static/jquery.js        |     2 +
 docs/apache-airflow/2.8.0/_static/js/globaltoc.js  |    24 +
 docs/apache-airflow/2.8.0/_static/language_data.js |   199 +
 docs/apache-airflow/2.8.0/_static/minus.png        |   Bin 0 -> 90 bytes
 docs/apache-airflow/2.8.0/_static/pin_32.png       |   Bin 0 -> 1201 bytes
 docs/apache-airflow/2.8.0/_static/plus.png         |   Bin 0 -> 90 bytes
 docs/apache-airflow/2.8.0/_static/pygments.css     |    75 +
 docs/apache-airflow/2.8.0/_static/redoc.js         |   103 +
 docs/apache-airflow/2.8.0/_static/searchtools.js   |   566 +
 .../2.8.0/_static/sphinx_highlight.js              |   144 +
 .../2.8.0/_static/underscore-1.13.1.js             |  2042 +++
 docs/apache-airflow/2.8.0/_static/underscore.js    |     6 +
 .../cluster-policies.html                          |  1227 ++
 .../dag-serialization.html                         |  1016 ++
 .../dagfile-processing.html                        |     1 +
 .../2.8.0/administration-and-deployment/index.html |   995 ++
 .../administration-and-deployment/kubernetes.html  |   974 ++
 .../administration-and-deployment/lineage.html     |  1013 ++
 .../administration-and-deployment/listeners.html   |   988 ++
 .../advanced-logging-configuration.html            |  1081 ++
 .../logging-monitoring/callbacks.html              |  1042 ++
 .../logging-monitoring/check-health.html           |  1076 ++
 .../logging-monitoring/errors.html                 |  1069 ++
 .../logging-monitoring/index.html                  |   955 ++
 .../logging-monitoring/logging-architecture.html   |   961 ++
 .../logging-monitoring/logging-tasks.html          |  1091 ++
 .../logging-monitoring/metrics.html                |  1350 ++
 .../logging-monitoring/tracking-user-activity.html |   961 ++
 .../modules_management.html                        |  1303 ++
 .../2.8.0/administration-and-deployment/pools.html |   984 ++
 .../priority-weight.html                           |   951 ++
 .../production-deployment.html                     |  1124 ++
 .../administration-and-deployment/scheduler.html   |  1303 ++
 .../security/access-control.html                   |     1 +
 .../security/access-control/index.html             |     1 +
 .../security/api.html                              |     1 +
 .../security/audit_logs.html                       |     1 +
 .../security/flower.html                           |     1 +
 .../security/index.html                            |     1 +
 .../security/kerberos.html                         |     1 +
 .../security/secrets/fernet.html                   |     1 +
 .../security/secrets/index.html                    |     1 +
 .../security/secrets/mask-sensitive-values.html    |     1 +
 .../security/secrets/secrets-backends/index.html   |     1 +
 .../local-filesystem-secrets-backend.html          |     1 +
 .../security/webserver.html                        |     1 +
 .../security/workload.html                         |     1 +
 docs/apache-airflow/2.8.0/airflow.sh               |    39 +
 .../authoring-and-scheduling/connections.html      |   947 ++
 .../2.8.0/authoring-and-scheduling/cron.html       |     1 +
 .../dagfile-processing.html                        |   936 ++
 .../2.8.0/authoring-and-scheduling/datasets.html   |  1119 ++
 .../2.8.0/authoring-and-scheduling/deferring.html  |  1137 ++
 .../dynamic-task-mapping.html                      |  1551 ++
 .../2.8.0/authoring-and-scheduling/index.html      |   988 ++
 .../2.8.0/authoring-and-scheduling/plugins.html    |  1240 ++
 .../authoring-and-scheduling/serializers.html      |  1033 ++
 .../2.8.0/authoring-and-scheduling/timetable.html  |  1246 ++
 .../2.8.0/authoring-and-scheduling/timezone.html   |  1103 ++
 docs/apache-airflow/2.8.0/best-practices.html      |  1916 +++
 docs/apache-airflow/2.8.0/changelog.html           |     1 +
 .../2.8.0/cli-and-env-variables-ref.html           |  5997 +++++++
 docs/apache-airflow/2.8.0/cli-ref.html             |     1 +
 docs/apache-airflow/2.8.0/concepts.html            |     1 +
 .../2.8.0/concepts/cluster-policies.html           |     1 +
 .../apache-airflow/2.8.0/concepts/connections.html |     1 +
 .../2.8.0/concepts/dagfile-processing.html         |     1 +
 docs/apache-airflow/2.8.0/concepts/dags.html       |     1 +
 docs/apache-airflow/2.8.0/concepts/datasets.html   |     1 +
 docs/apache-airflow/2.8.0/concepts/deferring.html  |     1 +
 .../2.8.0/concepts/dynamic-task-mapping.html       |     1 +
 docs/apache-airflow/2.8.0/concepts/index.html      |     1 +
 docs/apache-airflow/2.8.0/concepts/operators.html  |     1 +
 docs/apache-airflow/2.8.0/concepts/overview.html   |     1 +
 docs/apache-airflow/2.8.0/concepts/params.html     |     1 +
 docs/apache-airflow/2.8.0/concepts/pools.html      |     1 +
 .../2.8.0/concepts/priority-weight.html            |     1 +
 docs/apache-airflow/2.8.0/concepts/scheduler.html  |     1 +
 docs/apache-airflow/2.8.0/concepts/sensors.html    |     1 +
 docs/apache-airflow/2.8.0/concepts/taskflow.html   |     1 +
 docs/apache-airflow/2.8.0/concepts/tasks.html      |     1 +
 docs/apache-airflow/2.8.0/concepts/timetable.html  |     1 +
 docs/apache-airflow/2.8.0/concepts/variables.html  |     1 +
 docs/apache-airflow/2.8.0/concepts/xcoms.html      |     1 +
 docs/apache-airflow/2.8.0/configurations-ref.html  |  8235 ++++++++++
 .../2.8.0/core-concepts/dag-run.html               |  1250 ++
 docs/apache-airflow/2.8.0/core-concepts/dags.html  |  1906 +++
 docs/apache-airflow/2.8.0/core-concepts/debug.html |     1 +
 .../2.8.0/core-concepts/executor/celery.html       |  1148 ++
 .../core-concepts/executor/celery_kubernetes.html  |   984 ++
 .../2.8.0/core-concepts/executor/dask.html         |   976 ++
 .../2.8.0/core-concepts/executor/debug.html        |  1039 ++
 .../2.8.0/core-concepts/executor/index.html        |  1146 ++
 .../2.8.0/core-concepts/executor/kubernetes.html   |  1447 ++
 .../2.8.0/core-concepts/executor/local.html        |   986 ++
 .../core-concepts/executor/local_kubernetes.html   |   962 ++
 .../2.8.0/core-concepts/executor/sequential.html   |   952 ++
 docs/apache-airflow/2.8.0/core-concepts/index.html |  1026 ++
 .../2.8.0/core-concepts/objectstorage.html         |  1244 ++
 .../2.8.0/core-concepts/operators.html             |  1166 ++
 .../2.8.0/core-concepts/overview.html              |  1007 ++
 .../apache-airflow/2.8.0/core-concepts/params.html |  1310 ++
 .../2.8.0/core-concepts/sensors.html               |   931 ++
 .../2.8.0/core-concepts/taskflow.html              |  1148 ++
 docs/apache-airflow/2.8.0/core-concepts/tasks.html |  1340 ++
 .../2.8.0/core-concepts/variables.html             |   944 ++
 docs/apache-airflow/2.8.0/core-concepts/xcoms.html |   992 ++
 docs/apache-airflow/2.8.0/dag-run.html             |     1 +
 docs/apache-airflow/2.8.0/dag-serialization.html   |     1 +
 docs/apache-airflow/2.8.0/database-erd-ref.html    |   899 +
 .../2.8.0/deprecated-rest-api-ref.html             |  1015 ++
 docs/apache-airflow/2.8.0/docker-compose.yaml      |   283 +
 docs/apache-airflow/2.8.0/errors.html              |     1 +
 docs/apache-airflow/2.8.0/executor/celery.html     |     1 +
 .../2.8.0/executor/celery_kubernetes.html          |     1 +
 docs/apache-airflow/2.8.0/executor/dask.html       |     1 +
 docs/apache-airflow/2.8.0/executor/debug.html      |     1 +
 docs/apache-airflow/2.8.0/executor/index.html      |     1 +
 docs/apache-airflow/2.8.0/executor/kubernetes.html |     1 +
 docs/apache-airflow/2.8.0/executor/local.html      |     1 +
 .../2.8.0/executor/local_kubernetes.html           |     1 +
 docs/apache-airflow/2.8.0/executor/sequential.html |     1 +
 docs/apache-airflow/2.8.0/extra-packages-ref.html  |  1688 ++
 docs/apache-airflow/2.8.0/faq.html                 |  1423 ++
 docs/apache-airflow/2.8.0/genindex.html            |  5093 ++++++
 docs/apache-airflow/2.8.0/howto/add-dag-tags.html  |   962 ++
 docs/apache-airflow/2.8.0/howto/add-new-role.html  |     1 +
 .../2.8.0/howto/add-owner-links.html               |   970 ++
 docs/apache-airflow/2.8.0/howto/check-health.html  |     1 +
 docs/apache-airflow/2.8.0/howto/connection.html    |  1443 ++
 .../2.8.0/howto/connection/index.html              |     1 +
 .../2.8.0/howto/create-custom-decorator.html       |  1200 ++
 .../2.8.0/howto/custom-operator.html               |  1258 ++
 .../2.8.0/howto/custom-view-plugin.html            |  1056 ++
 .../howto/customize-dag-ui-page-instance-name.html |     1 +
 .../2.8.0/howto/customize-state-colors-ui.html     |     1 +
 docs/apache-airflow/2.8.0/howto/customize-ui.html  |  1139 ++
 ...stomizing-dag-ui-header-and-airflow-page-titles |     1 +
 .../customize-ui.html#customizing-state-colours    |     1 +
 .../2.8.0/howto/define-extra-link.html             |  1086 ++
 .../2.8.0/howto/define_extra_link.html             |     1 +
 .../2.8.0/howto/docker-compose/index.html          |  1393 ++
 .../2.8.0/howto/dynamic-dag-generation.html        |  1141 ++
 docs/apache-airflow/2.8.0/howto/email-config.html  |  1122 ++
 .../2.8.0/howto/export-more-env-vars.html          |   969 ++
 docs/apache-airflow/2.8.0/howto/index.html         |  1113 ++
 .../2.8.0/howto/initialize-database.html           |     1 +
 .../2.8.0/howto/listener-plugin.html               |  1060 ++
 docs/apache-airflow/2.8.0/howto/notifications.html |  1010 ++
 docs/apache-airflow/2.8.0/howto/operator/bash.html |  1144 ++
 .../2.8.0/howto/operator/datetime.html             |  1091 ++
 .../2.8.0/howto/operator/external.html             |     1 +
 .../2.8.0/howto/operator/external_task_sensor.html |  1098 ++
 docs/apache-airflow/2.8.0/howto/operator/file.html |  1000 ++
 .../apache-airflow/2.8.0/howto/operator/index.html |  1047 ++
 .../2.8.0/howto/operator/python.html               |  1720 ++
 docs/apache-airflow/2.8.0/howto/operator/time.html |  1051 ++
 .../2.8.0/howto/operator/weekday.html              |  1032 ++
 .../2.8.0/howto/run-behind-proxy.html              |  1019 ++
 .../2.8.0/howto/run-with-systemd.html              |   961 ++
 .../2.8.0/howto/secure-connections.html            |     1 +
 docs/apache-airflow/2.8.0/howto/set-config.html    |  1088 ++
 .../2.8.0/howto/set-up-database.html               |  1276 ++
 .../2.8.0/howto/setup-and-teardown.html            |  1140 ++
 docs/apache-airflow/2.8.0/howto/timetable.html     |  1372 ++
 .../2.8.0/howto/tracking-user-activity.html        |     1 +
 .../2.8.0/howto/upgrading-from-1-10/index.html     |  2343 +++
 .../howto/upgrading-from-1-10/upgrade-check.html   |  1151 ++
 docs/apache-airflow/2.8.0/howto/usage-cli.html     |  1323 ++
 .../howto/use-alternative-secrets-backend.html     |     1 +
 .../2.8.0/howto/use-test-config.html               |     1 +
 docs/apache-airflow/2.8.0/howto/variable.html      |  1005 ++
 docs/apache-airflow/2.8.0/howto/write-logs.html    |     1 +
 docs/apache-airflow/2.8.0/http-routingtable.html   |   944 ++
 docs/apache-airflow/2.8.0/index.html               |   999 ++
 docs/apache-airflow/2.8.0/installation.html        |     1 +
 .../2.8.0/installation/dependencies.html           |  1002 ++
 docs/apache-airflow/2.8.0/installation/index.html  |  1272 ++
 .../2.8.0/installation/installing-from-pypi.html   |  1273 ++
 .../installation/installing-from-sources.html      |  1036 ++
 .../2.8.0/installation/prerequisites.html          |   963 ++
 .../installation/setting-up-the-database.html      |   938 ++
 .../2.8.0/installation/supported-versions.html     |  1024 ++
 .../2.8.0/installation/upgrade-check.html          |     1 +
 .../2.8.0/installation/upgrading.html              |  1171 ++
 docs/apache-airflow/2.8.0/integration.html         |   907 +
 docs/apache-airflow/2.8.0/kubernetes.html          |     1 +
 docs/apache-airflow/2.8.0/license.html             |  1066 ++
 docs/apache-airflow/2.8.0/lineage.html             |     1 +
 docs/apache-airflow/2.8.0/listeners.html           |     1 +
 .../2.8.0/logging-monitoring/callbacks.html        |     1 +
 .../2.8.0/logging-monitoring/check-health.html     |     1 +
 .../2.8.0/logging-monitoring/errors.html           |     1 +
 .../2.8.0/logging-monitoring/index.html            |     1 +
 .../logging-monitoring/logging-architecture.html   |     1 +
 .../2.8.0/logging-monitoring/logging-tasks.html    |     1 +
 .../2.8.0/logging-monitoring/metrics.html          |     1 +
 .../logging-monitoring/tracking-user-activity.html |     1 +
 docs/apache-airflow/2.8.0/macros-ref.html          |     1 +
 docs/apache-airflow/2.8.0/metrics.html             |     1 +
 docs/apache-airflow/2.8.0/migrations-ref.html      |  1606 ++
 docs/apache-airflow/2.8.0/modules_management.html  |     1 +
 docs/apache-airflow/2.8.0/objects.inv              |   Bin 0 -> 25949 bytes
 .../2.8.0/operators-and-hooks-ref.html             |  1018 ++
 ...-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css |     1 +
 .../_sphinx_design_static/design-tabs.js           |    27 +
 .../_static/redoc.js                               |     8 +
 docs/apache-airflow/2.8.0/plugins.html             |     1 +
 docs/apache-airflow/2.8.0/privacy_notice.html      |   937 ++
 .../2.8.0/production-deployment.html               |     1 +
 docs/apache-airflow/2.8.0/project.html             |   996 ++
 .../2.8.0/public-airflow-interface.html            |  1433 ++
 docs/apache-airflow/2.8.0/py-modindex.html         |  1506 ++
 docs/apache-airflow/2.8.0/python-api-ref.html      |     1 +
 docs/apache-airflow/2.8.0/release-process.html     |   958 ++
 docs/apache-airflow/2.8.0/release_notes.html       | 16386 +++++++++++++++++++
 docs/apache-airflow/2.8.0/rest-api-ref.html        |     1 +
 .../sbom/apache-airflow-sbom-2.8.0-npm-only.json   |     1 +
 .../apache-airflow-sbom-2.8.0-python3.10-full.json |     1 +
 ...low-sbom-2.8.0-python3.10-python-only-full.json |     1 +
 ...-airflow-sbom-2.8.0-python3.10-python-only.json |     1 +
 .../sbom/apache-airflow-sbom-2.8.0-python3.10.json |     1 +
 .../apache-airflow-sbom-2.8.0-python3.11-full.json |     1 +
 ...low-sbom-2.8.0-python3.11-python-only-full.json |     1 +
 ...-airflow-sbom-2.8.0-python3.11-python-only.json |     1 +
 .../sbom/apache-airflow-sbom-2.8.0-python3.11.json |     1 +
 .../apache-airflow-sbom-2.8.0-python3.8-full.json  |     1 +
 ...flow-sbom-2.8.0-python3.8-python-only-full.json |     1 +
 ...e-airflow-sbom-2.8.0-python3.8-python-only.json |     1 +
 .../sbom/apache-airflow-sbom-2.8.0-python3.8.json  |     1 +
 .../apache-airflow-sbom-2.8.0-python3.9-full.json  |     1 +
 ...flow-sbom-2.8.0-python3.9-python-only-full.json |     1 +
 ...e-airflow-sbom-2.8.0-python3.9-python-only.json |     1 +
 .../sbom/apache-airflow-sbom-2.8.0-python3.9.json  |     1 +
 docs/apache-airflow/2.8.0/sbom/index.html          |    44 +
 docs/apache-airflow/2.8.0/scheduler.html           |     1 +
 docs/apache-airflow/2.8.0/search.html              |   908 +
 docs/apache-airflow/2.8.0/searchindex.js           |     1 +
 docs/apache-airflow/2.8.0/security.html            |     1 +
 .../2.8.0/security/access-control.html             |  1605 ++
 docs/apache-airflow/2.8.0/security/api.html        |  1070 ++
 docs/apache-airflow/2.8.0/security/audit_logs.html |   971 ++
 docs/apache-airflow/2.8.0/security/flower.html     |   960 ++
 docs/apache-airflow/2.8.0/security/index.html      |   936 ++
 docs/apache-airflow/2.8.0/security/kerberos.html   |  1075 ++
 .../2.8.0/security/releasing_security_patches.html |   954 ++
 docs/apache-airflow/2.8.0/security/sbom.html       |   925 ++
 .../2.8.0/security/secrets/fernet.html             |   980 ++
 .../2.8.0/security/secrets/index.html              |   942 ++
 .../security/secrets/mask-sensitive-values.html    |   986 ++
 .../security/secrets/secrets-backend/index.html    |  1039 ++
 .../local-filesystem-secrets-backend.html          |  1077 ++
 .../security/secrets/secrets-backends/index.html   |     1 +
 .../local-filesystem-secrets-backend.html          |     1 +
 .../2.8.0/security/security-model.html             |     1 +
 .../2.8.0/security/security_model.html             |  1237 ++
 docs/apache-airflow/2.8.0/security/webserver.html  |  1220 ++
 docs/apache-airflow/2.8.0/security/workload.html   |   961 ++
 docs/apache-airflow/2.8.0/stable-rest-api-ref.html |    34 +
 docs/apache-airflow/2.8.0/start.html               |   995 ++
 docs/apache-airflow/2.8.0/start/docker.html        |     1 +
 docs/apache-airflow/2.8.0/start/index.html         |     1 +
 docs/apache-airflow/2.8.0/start/local.html         |     1 +
 docs/apache-airflow/2.8.0/templates-ref.html       |  1367 ++
 docs/apache-airflow/2.8.0/timezone.html            |     1 +
 docs/apache-airflow/2.8.0/tutorial.html            |     1 +
 .../2.8.0/tutorial/fundamentals.html               |  1572 ++
 docs/apache-airflow/2.8.0/tutorial/index.html      |   910 +
 .../2.8.0/tutorial/objectstorage.html              |  1160 ++
 docs/apache-airflow/2.8.0/tutorial/pipeline.html   |  1217 ++
 docs/apache-airflow/2.8.0/tutorial/taskflow.html   |  1847 +++
 .../2.8.0/tutorial_taskflow_api.html               |     1 +
 docs/apache-airflow/2.8.0/ui.html                  |  1033 ++
 docs/apache-airflow/2.8.0/upgrade-check.html       |     1 +
 .../2.8.0/upgrading-from-1-10/index.html           |     1 +
 .../2.8.0/upgrading-from-1-10/upgrade-check.html   |     1 +
 docs/apache-airflow/2.8.0/upgrading-to-2.html      |     1 +
 docs/apache-airflow/2.8.0/usage-cli.html           |     1 +
 881 files changed, 517379 insertions(+)

diff --git a/docs/apache-airflow/2.8.0/.buildinfo b/docs/apache-airflow/2.8.0/.buildinfo
new file mode 100644
index 00000000..42cc5b0c
--- /dev/null
+++ b/docs/apache-airflow/2.8.0/.buildinfo
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: e2769ee134c886581dc8dcc260b49d23
+tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/apache-airflow/2.8.0/_api/airflow/decorators/base/index.html b/docs/apache-airflow/2.8.0/_api/airflow/decorators/base/index.html
new file mode 100644
index 00000000..e700bd80
--- /dev/null
+++ b/docs/apache-airflow/2.8.0/_api/airflow/decorators/base/index.html
@@ -0,0 +1,1392 @@
+
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<head>
+        <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+        <title>airflow.decorators.base &mdash; Airflow Documentation</title>
+    <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+            <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+            <link rel="index" title="Index" href="../../../../genindex.html" />
+            <link rel="search" title="Search" href="../../../../search.html" />
+            <link rel="next" title="airflow.decorators.branch_external_python" href="../branch_external_python/index.html" />
+            <link rel="prev" title="airflow.decorators" href="../index.html" />
+
+    <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/base/index.html" />
+
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+        /* We explicitly disable cookie tracking to avoid privacy issues */
+        _paq.push(['disableCookies']);
+        _paq.push(['trackPageView']);
+        _paq.push(['enableLinkTracking']);
+        (function() {
+        var u="https://analytics.apache.org/";
+        _paq.push(['setTrackerUrl', u+'matomo.php']);
+        _paq.push(['setSiteId', '13']);
+        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+        g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+
+    <!-- Scarf Telemetry Pixel -->
+    <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=7265a3c4-a6dd-4933-ba8b-9e3c13903c60" />
+    <!-- End Scarf Telemetry Pixel -->
+    
+</head><body class="td-section">
+    
+
+<header>
+    <nav class="js-navbar-scroll navbar">
+        <div class="navbar__icon-container">
+            <a href="/">
+                <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                    <defs>
+                        <clipPath id="clip-path">
+                            <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                        </clipPath>
+                    </defs>
+                    <g id="logo" transform="translate(-1305 -780.355)">
+                        <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                            <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178.258 [...]
+                                <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0zm-1 [...]
+                                <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482-.2h1 [...]
+                            </g>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+        </div>
+        <div class="desktop-only navbar__menu-container">
+
+            <div class="navbar__menu-content" id="main_navbar">
+
+                <div class="navbar__links-container">
+                    
+                        <a class="navbar__text-link" href="/community/">
+                            Community
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/meetups/">
+                            Meetups
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/docs/">
+                            Documentation
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/use-cases/">
+                            Use-cases
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/announcements/">
+                            Announcements
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/blog/">
+                            Blog
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/ecosystem/">
+                            Ecosystem
+                        </a>
+                    
+                </div>
+
+                
+
+            </div>
+
+        </div>
+        <div class="mobile-only navbar__drawer-container">
+            <button class="navbar__toggle-button" id="navbar-toggle-button">
+
+                <div id="hamburger-icon" class="navbar__toggle-button--icon visible">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="26" height="20" viewBox="0 0 26 20">
+                        <g id="Group_1294" data-name="Group 1294" transform="translate(-38.791 291)">
+                            <g id="Group_1291" data-name="Group 1291" transform="translate(39 -291)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="translate(39 -281.822)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                            <g id="Group_1293" data-name="Group 1293" transform="translate(39 -272.644)">
+                                <rect id="Rectangle_463" width="26" height="2" fill="#51504f" data-name="Rectangle 463" rx="1" transform="translate(-.209 -.356)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+                <div id="close-icon" class="navbar__toggle-button--icon">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                        <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                            <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+            </button>
+            <div class="navbar__drawer" id="navbar-drawer">
+                <div class="navbar__menu-content" id="main_navbar">
+
+                    <div class="navbar__links-container">
+                        
+                            <a class="navbar__text-link" href="/community/">
+                                Community
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/meetups/">
+                                Meetups
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/docs/">
+                                Documentation
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/use-cases/">
+                                Use-cases
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/announcements/">
+                                Announcements
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/blog/">
+                                Blog
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/ecosystem/">
+                                Ecosystem
+                            </a>
+                        
+
+                    </div>
+                    
+
+                </div>
+            </div>
+        </div>
+    </nav>
+
+</header>
+
+
+    <div class="roadmap container-fluid td-default base-layout">
+        
+        
+    <div class="content-drawer-wrapper">
+        <button class="content-drawer__toggle-button" id="content-open-button">
+
+            <div id="hamburger-icon" class="content-drawer__toggle-button--icon visible">
+                <svg xmlns="http://www.w3.org/2000/svg" width="20.005" height="13.879" viewBox="0 0 20.005 13.879">
+                    <g id="Group_1619" data-name="Group 1619" transform="translate(271.132 -418.872)">
+                        <g id="Group_1613" data-name="Group 1613" transform="translate(-266.229 431.045)">
+                            <path id="Path_1337" d="M-218.5 513.215h-14.583a.259.259 0 0 1-.259-.26.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.26z" fill="#51504f" data-name="Path 1337" transform="translate(233.345 -512.696)"></path>
+                        </g>
+                        <g id="Group_1614" data-name="Group 1614" transform="translate(-266.229 425.684)">
+                            <path id="Path_1338" d="M-218.5 471.9h-14.583a.259.259 0 0 1-.259-.26.26.26 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.26.26 0 0 1-.259.26z" fill="#51504f" data-name="Path 1338" transform="translate(233.345 -471.376)"></path>
+                        </g>
+                        <g id="Group_1615" data-name="Group 1615" transform="translate(-266.229 420.323)">
+                            <path id="Path_1339" d="M-218.5 430.574h-14.583a.259.259 0 0 1-.259-.259.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.259z" fill="#51504f" data-name="Path 1339" transform="translate(233.345 -430.055)"></path>
+                        </g>
+                        <g id="Group_1616" data-name="Group 1616" transform="translate(-271.132 429.814)">
+                            <path id="Path_1340" d="M-269.663 506.145a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1340" transform="translate(271.132 -503.208)"></path>
+                        </g>
+                        <g id="Group_1617" data-name="Group 1617" transform="translate(-271.132 424.556)">
+                            <path id="Path_1341" d="M-269.663 465.62a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.952z" fill="#51504f" data-name="Path 1341" transform="translate(271.132 -462.683)"></path>
+                        </g>
+                        <g id="Group_1618" data-name="Group 1618" transform="translate(-271.132 418.872)">
+                            <path id="Path_1342" d="M-269.663 421.809a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1342" transform="translate(271.132 -418.872)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+                <span class="bodytext__mobile--brownish-grey">Content</span>
+            </div>
+
+        </button>
+        <nav id="content-navbar" class="navbar navbar--hidden">
+            <div class="navbar__icon-container">
+                <a href="/">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                        <defs>
+                            <clipPath id="clip-path">
+                                <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                            </clipPath>
+                        </defs>
+                        <g id="logo" transform="translate(-1305 -780.355)">
+                            <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                                <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                    <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                    <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                    <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                    <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                    <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                    <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                    <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                    <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                    <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                    <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178 [...]
+                                    <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0 [...]
+                                    <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482- [...]
+                                </g>
+                            </g>
+                        </g>
+                    </svg>
+
+                </a>
+            </div>
+
+            <div id="content-close-button">
+                <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                    <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                        <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                            <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                        </g>
+                        <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                            <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                        </g>
+                    </g>
+                </svg>
+
+            </div>
+
+        </nav>
+        <div class="content-drawer-container" id="content-drawer">
+            <div class="content-drawer">
+                <div class="td-sidebar">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#classes">Classes</a></li>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a></li>
+<li class="toctree-l8"><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.get_unique_task_id"><code class="docutils literal notranslate"><span class="pre">get_unique_task_id()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields_renderers"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields_renderers</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.shallow_copy_attrs"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.shallow_copy_attrs</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.execute"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.execute()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.get_python_source"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.get_python_source()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.FParams"><code class="docutils literal notranslate"><span class="pre">FParams</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.FReturn"><code class="docutils literal notranslate"><span class="pre">FReturn</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.OperatorSubclass"><code class="docutils literal notranslate"><span class="pre">OperatorSubclass</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.multiple_outputs"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.multiple_outputs</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.python_callable"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.python_callable</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.op_kwargs_expand_input"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.op_kwargs_expand_input</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__hash__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__hash__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__attrs_post_init__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__attrs_post_init__()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.Task"><code class="docutils literal notranslate"><span class="pre">Task</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.__wrapped__"><code class="docutils literal notranslate"><span class="pre">Task.__wrapped__</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.__call__"><code class="docutils literal notranslate"><span class="pre">Task.__call__</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.function"><code class="docutils literal notranslate"><span class="pre">Task.function</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.partial"><code class="docutils literal notranslate"><span class="pre">Task.partial()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.expand"><code class="docutils literal notranslate"><span class="pre">Task.expand()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.expand_kwargs"><code class="docutils literal notranslate"><span class="pre">Task.expand_kwargs()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.override"><code class="docutils literal notranslate"><span class="pre">Task.override()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator"><code class="docutils literal notranslate"><span class="pre">TaskDecorator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.__call__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.override"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.override()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.task_decorator_factory"><code class="docutils literal notranslate"><span class="pre">task_decorator_factory()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+                </div>
+            </div>
+        </div>
+    </div>
+        
+        <div class="d-flex">
+            
+            
+    <div class="td-sidebar desktop-only d-print-none">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#classes">Classes</a></li>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a></li>
+<li class="toctree-l8"><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.get_unique_task_id"><code class="docutils literal notranslate"><span class="pre">get_unique_task_id()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields_renderers"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields_renderers</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.shallow_copy_attrs"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.shallow_copy_attrs</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.execute"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.execute()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.get_python_source"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.get_python_source()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.FParams"><code class="docutils literal notranslate"><span class="pre">FParams</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.FReturn"><code class="docutils literal notranslate"><span class="pre">FReturn</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.OperatorSubclass"><code class="docutils literal notranslate"><span class="pre">OperatorSubclass</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.multiple_outputs"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.multiple_outputs</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.python_callable"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.python_callable</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.op_kwargs_expand_input"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.op_kwargs_expand_input</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__hash__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__hash__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__attrs_post_init__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__attrs_post_init__()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.Task"><code class="docutils literal notranslate"><span class="pre">Task</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.__wrapped__"><code class="docutils literal notranslate"><span class="pre">Task.__wrapped__</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.__call__"><code class="docutils literal notranslate"><span class="pre">Task.__call__</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.function"><code class="docutils literal notranslate"><span class="pre">Task.function</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.partial"><code class="docutils literal notranslate"><span class="pre">Task.partial()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.expand"><code class="docutils literal notranslate"><span class="pre">Task.expand()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.expand_kwargs"><code class="docutils literal notranslate"><span class="pre">Task.expand_kwargs()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.override"><code class="docutils literal notranslate"><span class="pre">Task.override()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator"><code class="docutils literal notranslate"><span class="pre">TaskDecorator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.__call__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.override"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.override()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.task_decorator_factory"><code class="docutils literal notranslate"><span class="pre">task_decorator_factory()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+    </div>
+            
+
+            
+
+            <main class="col-12 col-md-9 col-xl-8" role="main">
+                
+
+
+    
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation" class="d-none d-md-block d-print-none">
+
+    <ul class="breadcrumb">
+        
+            <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+            
+                <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
+            
+                <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
+            
+            <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+        
+    </ul>
+</div>
+                
+                <div class="rst-content">
+                    <div class="document">
+                            <div class="documentwrapper">
+                                <div class="bodywrapper">
+                                    <div class="body" role="main">
+                                        
+  <div class="section" id="module-airflow.decorators.base">
+<span id="airflow-decorators-base"></span><h1><a class="reference internal" href="#module-airflow.decorators.base" title="airflow.decorators.base"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a><a class="headerlink" href="#module-airflow.decorators.base" title="Permalink to this heading">¶</a></h1>
+<div class="section" id="module-contents">
+<h2>Module Contents<a class="headerlink" href="#module-contents" title="Permalink to this heading">¶</a></h2>
+<div class="section" id="classes">
+<h3>Classes<a class="headerlink" href="#classes" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator" title="airflow.decorators.base.DecoratedOperator"><code class="xref py py-obj docutils literal notranslate"><span class="pre">DecoratedOperator</span></code></a></p></td>
+<td><p>Wraps a Python callable and captures args/kwargs when called for execution.</p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator" title="airflow.decorators.base.DecoratedMappedOperator"><code class="xref py py-obj docutils literal notranslate"><span class="pre">DecoratedMappedOperator</span></code></a></p></td>
+<td><p>MappedOperator implementation for &#64;task-decorated task function.</p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.base.Task" title="airflow.decorators.base.Task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Task</span></code></a></p></td>
+<td><p>Declaration of a &#64;task-decorated callable for type-checking.</p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#airflow.decorators.base.TaskDecorator" title="airflow.decorators.base.TaskDecorator"><code class="xref py py-obj docutils literal notranslate"><span class="pre">TaskDecorator</span></code></a></p></td>
+<td><p>Type declaration for <code class="docutils literal notranslate"><span class="pre">task_decorator_factory</span></code> return type.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section" id="functions">
+<h3>Functions<a class="headerlink" href="#functions" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.base.get_unique_task_id" title="airflow.decorators.base.get_unique_task_id"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_unique_task_id</span></code></a>(task_id[, dag, task_group])</p></td>
+<td><p>Generate unique task id given a DAG (or if run in a DAG context).</p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#airflow.decorators.base.task_decorator_factory" title="airflow.decorators.base.task_decorator_factory"><code class="xref py py-obj docutils literal notranslate"><span class="pre">task_decorator_factory</span></code></a>([python_callable, multiple_outputs])</p></td>
+<td><p>Generate a wrapper that wraps a function into an Airflow operator.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section" id="attributes">
+<h3>Attributes<a class="headerlink" href="#attributes" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.base.FParams" title="airflow.decorators.base.FParams"><code class="xref py py-obj docutils literal notranslate"><span class="pre">FParams</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#airflow.decorators.base.FReturn" title="airflow.decorators.base.FReturn"><code class="xref py py-obj docutils literal notranslate"><span class="pre">FReturn</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.base.OperatorSubclass" title="airflow.decorators.base.OperatorSubclass"><code class="xref py py-obj docutils literal notranslate"><span class="pre">OperatorSubclass</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+</tbody>
+</table>
+<dl class="py function">
+<dt class="sig sig-object py" id="airflow.decorators.base.get_unique_task_id">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">get_unique_task_id</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">task_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dag</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em c [...]
+<dd><p>Generate unique task id given a DAG (or if run in a DAG context).</p>
+<p>IDs are generated by appending a unique number to the end of
+the original task id.</p>
+<dl class="simple">
+<dt>Example:</dt><dd><p>task_id
+task_id__1
+task_id__2
+…
+task_id__20</p>
+</dd>
+</dl>
+<dl class="field-list simple">
+</dl>
+</dd></dl>
+
+<dl class="py class">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedOperator">
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">DecoratedOperator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">python_callable</span></span></em>, <em class="sig-param"><span class [...]
+<dd><p>Bases: <a class="reference internal" href="../../models/baseoperator/index.html#airflow.models.baseoperator.BaseOperator" title="airflow.models.baseoperator.BaseOperator"><code class="xref py py-obj docutils literal notranslate"><span class="pre">airflow.models.baseoperator.BaseOperator</span></code></a></p>
+<p>Wraps a Python callable and captures args/kwargs when called for execution.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>python_callable</strong> (<em>Callable</em>) – A reference to an object that is callable</p></li>
+<li><p><strong>op_kwargs</strong> (<em>Mapping</em><em>[</em><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><em>str</em></a><em>, </em><em>Any</em><em>] </em><em>| </em><em>None</em>) – a dictionary of keyword arguments that will get unpacked
+in your function (templated)</p></li>
+<li><p><strong>op_args</strong> (<em>Collection</em><em>[</em><em>Any</em><em>] </em><em>| </em><em>None</em>) – a list of positional arguments that will get unpacked when
+calling your callable (templated)</p></li>
+<li><p><strong>multiple_outputs</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><em>bool</em></a>) – If set to True, the decorated function’s return value will be unrolled to
+multiple XCom values. Dict will unroll to XCom values with its keys as XCom keys. Defaults to False.</p></li>
+<li><p><strong>kwargs_to_upstream</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.12)"><em>dict</em></a><em>[</em><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><em>str</em></a><em>, </em><em>Any</em><em>] </em><em>| </em><em>None</em>) – For certain operators, we might need to upstream certain arguments
+that would otherwise be absorbed by the DecoratedOperator (for example python_callable for the
+PythonOperator). This gives a user the option to upstream kwargs as needed.</p></li>
+</ul>
+</dd>
+</dl>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedOperator.template_fields">
+<span class="sig-name descname"><span class="pre">template_fields</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Sequence</span><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w" [...]
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedOperator.template_fields_renderers">
+<span class="sig-name descname"><span class="pre">template_fields_renderers</span></span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#DecoratedOperator.template_fields_renderers"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.DecoratedOperator.template_fields_renderers" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedOperator.shallow_copy_attrs">
+<span class="sig-name descname"><span class="pre">shallow_copy_attrs</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Sequence</span><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">]</span></span></em><em class="property"><span class= [...]
+<dd></dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedOperator.execute">
+<span class="sig-name descname"><span class="pre">execute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">context</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#DecoratedOperator.execute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.DecoratedOperator.execute" title="Per [...]
+<dd><p>Derive when creating an operator.</p>
+<p>Context is the same dictionary used as when rendering jinja templates.</p>
+<p>Refer to get_template_context for more context.</p>
+<dl class="field-list simple">
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedOperator.get_python_source">
+<span class="sig-name descname"><span class="pre">get_python_source</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#DecoratedOperator.get_python_source"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.DecoratedOperator.get_python_source" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py data">
+<dt class="sig sig-object py" id="airflow.decorators.base.FParams">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">FParams</span></span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#FParams"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.FParams" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py data">
+<dt class="sig sig-object py" id="airflow.decorators.base.FReturn">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">FReturn</span></span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#FReturn"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.FReturn" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py data">
+<dt class="sig sig-object py" id="airflow.decorators.base.OperatorSubclass">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">OperatorSubclass</span></span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#OperatorSubclass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.OperatorSubclass" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py class">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedMappedOperator">
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">DecoratedMappedOperator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><s [...]
+<dd><p>Bases: <code class="xref py py-obj docutils literal notranslate"><span class="pre">airflow.models.mappedoperator.MappedOperator</span></code></p>
+<p>MappedOperator implementation for &#64;task-decorated task function.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedMappedOperator.multiple_outputs">
+<span class="sig-name descname"><span class="pre">multiple_outputs</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></em><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#DecoratedMappedOperator.multiple_outputs"><span class="viewcode-link"><span c [...]
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedMappedOperator.python_callable">
+<span class="sig-name descname"><span class="pre">python_callable</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Callable</span></em><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#DecoratedMappedOperator.python_callable"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.DecoratedMappedOperator.pytho [...]
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedMappedOperator.op_kwargs_expand_input">
+<span class="sig-name descname"><span class="pre">op_kwargs_expand_input</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">airflow.models.expandinput.ExpandInput</span></em><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#DecoratedMappedOperator.op_kwargs_expand_input"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.d [...]
+<dd></dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedMappedOperator.__hash__">
+<span class="sig-name descname"><span class="pre">__hash__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#DecoratedMappedOperator.__hash__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.DecoratedMappedOperator.__hash__" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return hash(self).</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedMappedOperator.__attrs_post_init__">
+<span class="sig-name descname"><span class="pre">__attrs_post_init__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#DecoratedMappedOperator.__attrs_post_init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.DecoratedMappedOperator.__attrs_post_init__" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task">
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">Task</span></span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#Task"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.Task" title="Permalink to this  [...]
+<dd><p>Bases: <code class="xref py py-obj docutils literal notranslate"><span class="pre">airflow.typing_compat.Protocol</span></code>, <code class="xref py py-obj docutils literal notranslate"><span class="pre">Generic</span></code>[<a class="reference internal" href="#airflow.decorators.base.FParams" title="airflow.decorators.base.FParams"><code class="xref py py-obj docutils literal notranslate"><span class="pre">FParams</span></code></a>, <a class="reference internal" href="#airflow. [...]
+<p>Declaration of a &#64;task-decorated callable for type-checking.</p>
+<p>An instance of this type inherits the call signature of the decorated
+function wrapped in it (not <em>exactly</em> since it actually returns an XComArg,
+but there’s no way to express that right now), and provides two additional
+methods for task-mapping.</p>
+<p>This type is implemented by <code class="docutils literal notranslate"><span class="pre">_TaskDecorator</span></code> at runtime.</p>
+<dl class="py property">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task.__wrapped__">
+<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__wrapped__</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">FParams</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">FReturn</span><span class="p"><span [...]
+<dd><dl class="field-list simple">
+</dl>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task.__call__">
+<span class="sig-name descname"><span class="pre">__call__</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">FParams</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">airflow.models.xcom_arg.XComArg</span><span class="p"><span class="pre">]</span></span></em><a class="reference internal" [...]
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task.function">
+<span class="sig-name descname"><span class="pre">function</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">FParams</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">FReturn</span><span class="p"><span class="pre">]</span></span></em><a class="reference internal" href="../../../../_modu [...]
+<dd></dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task.partial">
+<span class="sig-name descname"><span class="pre">partial</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#Task.partial"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.T [...]
+<dd><dl class="field-list simple">
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task.expand">
+<span class="sig-name descname"><span class="pre">expand</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#Task.expand"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.Tas [...]
+<dd><dl class="field-list simple">
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task.expand_kwargs">
+<span class="sig-name descname"><span class="pre">expand_kwargs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">kwargs</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strict</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</s [...]
+<dd><dl class="field-list simple">
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task.override">
+<span class="sig-name descname"><span class="pre">override</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#Task.override"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base [...]
+<dd><dl class="field-list simple">
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt class="sig sig-object py" id="airflow.decorators.base.TaskDecorator">
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">TaskDecorator</span></span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#TaskDecorator"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.TaskDecorator [...]
+<dd><p>Bases: <code class="xref py py-obj docutils literal notranslate"><span class="pre">airflow.typing_compat.Protocol</span></code></p>
+<p>Type declaration for <code class="docutils literal notranslate"><span class="pre">task_decorator_factory</span></code> return type.</p>
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.TaskDecorator.__call__">
+<span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">python_callable</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">FParams</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">FReturn</ [...]
+<dt class="sig sig-object py">
+<span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">multiple_outputs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre"> [...]
+<dd><p>For the decorator factory <code class="docutils literal notranslate"><span class="pre">&#64;task()</span></code> case.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.TaskDecorator.override">
+<span class="sig-name descname"><span class="pre">override</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#TaskDecorator.override"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decora [...]
+<dd><dl class="field-list simple">
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="airflow.decorators.base.task_decorator_factory">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">task_decorator_factory</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">python_callable</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></ [...]
+<dd><p>Generate a wrapper that wraps a function into an Airflow operator.</p>
+<p>Can be reused in a single DAG.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>python_callable</strong> (<em>Callable</em><em> | </em><em>None</em>) – Function to decorate.</p></li>
+<li><p><strong>multiple_outputs</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><em>bool</em></a><em> | </em><em>None</em>) – If set to True, the decorated function’s return
+value will be unrolled to multiple XCom values. Dict will unroll to XCom
+values with its keys as XCom keys. If set to False (default), only at
+most one XCom value is pushed.</p></li>
+<li><p><strong>decorated_operator_class</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#type" title="(in Python v3.12)"><em>type</em></a><em>[</em><a class="reference internal" href="../../models/baseoperator/index.html#airflow.models.baseoperator.BaseOperator" title="airflow.models.baseoperator.BaseOperator"><em>airflow.models.baseoperator.BaseOperator</em></a><em>]</em>) – The operator that executes the logic needed
+to run the python function in the correct environment.</p></li>
+</ul>
+</dd>
+</dl>
+<p>Other kwargs are directly forwarded to the underlying operator class when
+it’s instantiated.</p>
+</dd></dl>
+
+</div>
+</div>
+</div>
+
+
+    <div class="pager" role="navigation" aria-label="related navigation">
+            <a rel="prev" title="airflow.decorators" href="../index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
+            </a>
+            <a rel="next" title="airflow.decorators.branch_external_python" href="../branch_external_python/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+            </a>
+    </div>
+                                    </div>
+
+                                </div>
+                            </div>
+                    </div>
+                </div>
+    <div class="rating-container">
+        <p class="bodytext__medium--greyish-brown font-weight-500">Was this entry helpful?</p>
+        <div class="rating">
+
+            <div id="rate-star-5" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-4" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-3" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-2" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-1" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+        </div>
+    </div>
+                
+            </main>
+            
+
+            
+            
+    <nav class="wy-nav-side-toc">
+        <div class="wy-menu-vertical">
+            <ul>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a><ul>
+<li><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li><a class="reference internal" href="#classes">Classes</a></li>
+<li><a class="reference internal" href="#functions">Functions</a></li>
+<li><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li><a class="reference internal" href="#airflow.decorators.base.get_unique_task_id"><code class="docutils literal notranslate"><span class="pre">get_unique_task_id()</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator</span></code></a><ul>
+<li><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields_renderers"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields_renderers</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.shallow_copy_attrs"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.shallow_copy_attrs</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.execute"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.execute()</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.get_python_source"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.get_python_source()</span></code></a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#airflow.decorators.base.FParams"><code class="docutils literal notranslate"><span class="pre">FParams</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.FReturn"><code class="docutils literal notranslate"><span class="pre">FReturn</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.OperatorSubclass"><code class="docutils literal notranslate"><span class="pre">OperatorSubclass</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator</span></code></a><ul>
+<li><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.multiple_outputs"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.multiple_outputs</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.python_callable"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.python_callable</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.op_kwargs_expand_input"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.op_kwargs_expand_input</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__hash__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__hash__()</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__attrs_post_init__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__attrs_post_init__()</span></code></a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#airflow.decorators.base.Task"><code class="docutils literal notranslate"><span class="pre">Task</span></code></a><ul>
+<li><a class="reference internal" href="#airflow.decorators.base.Task.__wrapped__"><code class="docutils literal notranslate"><span class="pre">Task.__wrapped__</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.Task.__call__"><code class="docutils literal notranslate"><span class="pre">Task.__call__</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.Task.function"><code class="docutils literal notranslate"><span class="pre">Task.function</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.Task.partial"><code class="docutils literal notranslate"><span class="pre">Task.partial()</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.Task.expand"><code class="docutils literal notranslate"><span class="pre">Task.expand()</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.Task.expand_kwargs"><code class="docutils literal notranslate"><span class="pre">Task.expand_kwargs()</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.Task.override"><code class="docutils literal notranslate"><span class="pre">Task.override()</span></code></a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#airflow.decorators.base.TaskDecorator"><code class="docutils literal notranslate"><span class="pre">TaskDecorator</span></code></a><ul>
+<li><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.__call__()</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.override"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.override()</span></code></a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#airflow.decorators.base.task_decorator_factory"><code class="docutils literal notranslate"><span class="pre">task_decorator_factory()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+        </div>
+    </nav>
+            
+        </div>
+        
+
+
+    
+
+
+
+
+
+
+
+    
+        
+            
+        
+        <div class="base-layout--button">
+            <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/base/index.rst" rel="nofollow">
+
+                <button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
+                        <path d="M15.379 0a15.381 15.381 0 00-4.86 29.974c.769.141 1.05-.334 1.05-.741 0-.365-.013-1.332-.021-2.616-4.278.929-5.181-2.062-5.181-2.062a4.071 4.071 0 00-1.708-2.25c-1.4-.954.106-.935.106-.935a3.231 3.231 0 012.356 1.585 3.274 3.274 0 004.476 1.278 3.287 3.287 0 01.976-2.056c-3.415-.388-7.005-1.707-7.005-7.6a5.947 5.947 0 011.583-4.127 5.53 5.53 0 01.151-4.07s1.291-.413 4.229 1.577a14.577 14.577 0 017.7 0c2.936-1.99 4.225-1.577 4.225-1.577a5.523 5.523 0 01.15 [...]
+                    </svg>
+
+                    <span class="bodytext__medium--brownish-grey">Suggest a change on this page</span>
+                </button>
+            </a>
+        </div>
+    
+
+    </div>
+
+
+    
+
+<footer>
+    <div class="footer-section footer-section__media-section">
+        <div class="d-flex align-items-center">
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="46.14" height="45" viewBox="0 0 46.14 45">
+                    <path id="Path_207" d="M228.962 1078.578a23.072 23.072 0 0 0-7.29 44.96c1.154.212 1.574-.5 1.574-1.112 0-.548-.02-2-.031-3.924-6.417 1.394-7.771-3.093-7.771-3.093a6.109 6.109 0 0 0-2.562-3.375c-2.095-1.431.159-1.4.159-1.4a4.846 4.846 0 0 1 3.533 2.377c2.058 3.525 5.4 2.507 6.714 1.917a4.926 4.926 0 0 1 1.464-3.084c-5.123-.582-10.508-2.562-10.508-11.4a8.919 8.919 0 0 1 2.374-6.191 8.3 8.3 0 0 1 .226-6.105s1.937-.62 6.344 2.365a21.857 21.857 0 0 1 11.551 0c4.4-2.985 6.3 [...]
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow/issues">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45" height="45" viewBox="0 0 45 45">
+                    <g id="Group_210" data-name="Group 210" transform="translate(-339.789 -1315.282)">
+                        <path id="Path_218" d="M394.82 1315.282h-21.671a9.784 9.784 0 0 0 9.784 9.778h3.986v3.857a9.784 9.784 0 0 0 9.784 9.771v-21.523a1.884 1.884 0 0 0-1.883-1.883z" fill="#fff" data-name="Path 218" transform="translate(-11.914)"></path>
+                        <path id="Path_219" d="M378.14 1332.072h-21.671a9.778 9.778 0 0 0 9.778 9.778h4.018v3.857a9.784 9.784 0 0 0 9.752 9.778v-21.536a1.877 1.877 0 0 0-1.877-1.877z" fill="#fff" data-name="Path 219" transform="translate(-5.957 -5.996)"></path>
+                        <path id="Path_220" d="M361.46 1348.862h-21.671a9.778 9.778 0 0 0 9.778 9.778h3.992v3.857a9.778 9.778 0 0 0 9.778 9.778v-21.529a1.883 1.883 0 0 0-1.877-1.884z" fill="#fff" data-name="Path 220" transform="translate(0 -11.993)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://s.apache.org/airflow-slack">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45.073" height="45.073" viewBox="0 0 45.073 45.073">
+                    <g id="Group_208" data-name="Group 208" transform="translate(-661.145 -806.287)">
+                        <g id="Group_204" data-name="Group 204" transform="translate(661.145 830.01)">
+                            <path id="Path_208" d="M670.634 856.859a4.744 4.744 0 1 1-4.744-4.744h4.744z" fill="#fff" data-name="Path 208" transform="translate(-661.145 -852.115)"></path>
+                            <path id="Path_209" d="M684.059 856.859a4.744 4.744 0 0 1 9.489 0v11.861a4.744 4.744 0 1 1-9.489 0z" fill="#fff" data-name="Path 209" transform="translate(-672.198 -852.115)"></path>
+                        </g>
+                        <g id="Group_205" data-name="Group 205" transform="translate(661.145 806.287)">
+                            <path id="Path_210" d="M688.8 815.776a4.744 4.744 0 1 1 4.744-4.745v4.745z" fill="#fff" data-name="Path 210" transform="translate(-672.198 -806.287)"></path>
+                            <path id="Path_211" d="M677.751 829.2a4.744 4.744 0 0 1 0 9.489H665.89a4.744 4.744 0 1 1 0-9.489z" fill="#fff" data-name="Path 211" transform="translate(-661.145 -817.34)"></path>
+                        </g>
+                        <g id="Group_206" data-name="Group 206" transform="translate(684.868 806.287)">
+                            <path id="Path_212" d="M729.887 833.945a4.744 4.744 0 1 1 4.745 4.745h-4.745z" fill="#fff" data-name="Path 212" transform="translate(-718.026 -817.34)"></path>
+                            <path id="Path_213" d="M716.462 822.893a4.744 4.744 0 1 1-9.489 0v-11.862a4.744 4.744 0 0 1 9.489 0z" fill="#fff" data-name="Path 213" transform="translate(-706.973 -806.287)"></path>
+                        </g>
+                        <g id="Group_207" data-name="Group 207" transform="translate(684.868 830.01)">
+                            <path id="Path_214" d="M711.718 875.029a4.744 4.744 0 1 1-4.745 4.744v-4.744z" fill="#fff" data-name="Path 214" transform="translate(-706.973 -863.168)"></path>
+                            <path id="Path_215" d="M711.718 861.6a4.744 4.744 0 1 1 0-9.489h11.861a4.744 4.744 0 0 1 0 9.489z" fill="#fff" data-name="Path 215" transform="translate(-706.973 -852.115)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://stackoverflow.com/questions/tagged/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="37.647" height="44.6" viewBox="0 0 37.647 44.6">
+                    <g id="Group_209" data-name="Group 209" transform="translate(-645.2 -975.455)">
+                        <path id="Path_216" d="M677.028 1043.1v-11.948h3.966v15.914H645.2v-15.914h3.966v11.948z" fill="#fff" data-name="Path 216" transform="translate(0 -27.014)"></path>
+                        <path id="Path_217" d="M661.012 1003.008l19.467 4.069.824-3.914-19.467-4.069zm2.575-9.27l18.025 8.395 1.648-3.605-18.025-8.446zm5-8.858l15.3 12.721 2.524-3.039-15.3-12.721zm9.888-9.425l-3.193 2.369 11.845 15.965 3.193-2.369zm-17.875 36.617h19.879v-3.966H660.6z" fill="#fff" data-name="Path 217" transform="translate(-7.469)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://twitter.com/ApacheAirflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="44.355" height="44.355" viewBox="0 0 44.355 44.355">
+                    <g id="Group_211" data-name="Group 211" transform="translate(-503 -1382.2)">
+                        <path id="Path_221" d="M541.811 1382.2h-33.267a5.546 5.546 0 0 0-5.544 5.544v33.266a5.547 5.547 0 0 0 5.544 5.545h33.267a5.546 5.546 0 0 0 5.544-5.545v-33.266a5.546 5.546 0 0 0-5.544-5.544zm-5.611 16.533c.011.244.011.488.011.732 0 7.507-5.722 16.178-16.179 16.178a16.173 16.173 0 0 1-8.7-2.539 10.92 10.92 0 0 0 1.353.078 11.4 11.4 0 0 0 7.064-2.44 5.685 5.685 0 0 1-5.311-3.947 5.725 5.725 0 0 0 2.561-.1 5.7 5.7 0 0 1-4.557-5.578v-.078a5.752 5.752 0 0 0 2.572.71 5.7 [...]
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA">
+                <svg xmlns="http://www.w3.org/2000/svg" width="49.594" height="34.941" viewBox="0 0 49.594 34.941">
+                    <path id="Path_223" d="M1124.557 1230a6.232 6.232 0 0 0-4.385-4.413c-3.867-1.043-19.376-1.043-19.376-1.043s-15.508 0-19.376 1.043a6.232 6.232 0 0 0-4.385 4.413c-1.036 3.893-1.036 12.014-1.036 12.014s0 8.122 1.036 12.015a6.232 6.232 0 0 0 4.385 4.413c3.867 1.043 19.376 1.043 19.376 1.043s15.509 0 19.376-1.043a6.232 6.232 0 0 0 4.385-4.413c1.036-3.893 1.036-12.015 1.036-12.015s.001-8.123-1.036-12.014zm-28.833 19.388v-14.748l12.962 7.374z" fill="#fff" data-name="Path 223 [...]
+                </svg>
+
+            </a>
+
+        </div>
+        
+
+        <div class="footer-section__media-section--button-with-text">
+            <span class="footer-section__media-section--text">Want to be a part of Apache Airflow?</span>
+            <a href="/community">
+
+                <button id="" class="btn-filled bodytext__medium--white ">Join community</button>
+
+            </a>
+        </div>
+        
+
+    </div>
+    <div class="footer-section footer-section__policies-section">
+        <div class="footer-section">
+            <span>© The Apache Software Foundation <script>document.write(new Date().getFullYear())</script></span>
+            <div class="footer-section__policies-section--policies">
+
+                <a href="https://www.apache.org/licenses/" class="footer-section__policies-section--policy-item">
+                    <span>License</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/sponsorship.html" class="footer-section__policies-section--policy-item">
+                    <span>Donate</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/thanks.html" class="footer-section__policies-section--policy-item">
+                    <span>Thanks</span>
+                </a>
+
+                <a href="https://www.apache.org/security/" class="footer-section__policies-section--policy-item">
+                    <span>Security</span>
+                </a>
+                
+
+            </div>
+        </div>
+        <span class="footer-section__policies-section--disclaimer">
+            Apache Airflow, Apache, Airflow, the Airflow logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.
+            All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.
+        </span>
+    </div>
+</footer>
+    <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+    <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
+    <script src="/external/js/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
+    <script src="/external/js/cdnjs.cloudflare.com-1.14.3-popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
+    <script src="/external/js/stackpath.bootstrapcdn.com-4.1.3-bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
+        <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+        <script src="../../../../_static/jquery.js"></script>
+        <script src="../../../../_static/underscore.js"></script>
+        <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../../../../_static/doctools.js"></script>
+        <script src="../../../../_static/sphinx_highlight.js"></script>
+        <script src="../../../../_static/clipboard.min.js"></script>
+        <script src="../../../../_static/copybutton.js"></script>
+        <script src="../../../../_static/js/globaltoc.js"></script>
+        <script src="../../../../_static/design-tabs.js"></script>
+        <script src="../../../../_static/gh-jira-links.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/apache-airflow/2.8.0/_api/airflow/decorators/branch_external_python/index.html b/docs/apache-airflow/2.8.0/_api/airflow/decorators/branch_external_python/index.html
new file mode 100644
index 00000000..81f707b4
--- /dev/null
+++ b/docs/apache-airflow/2.8.0/_api/airflow/decorators/branch_external_python/index.html
@@ -0,0 +1,1034 @@
+
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<head>
+        <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+        <title>airflow.decorators.branch_external_python &mdash; Airflow Documentation</title>
+    <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+            <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+            <link rel="index" title="Index" href="../../../../genindex.html" />
+            <link rel="search" title="Search" href="../../../../search.html" />
+            <link rel="next" title="airflow.decorators.branch_python" href="../branch_python/index.html" />
+            <link rel="prev" title="airflow.decorators.base" href="../base/index.html" />
+
+    <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/branch_external_python/index.html" />
+
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+        /* We explicitly disable cookie tracking to avoid privacy issues */
+        _paq.push(['disableCookies']);
+        _paq.push(['trackPageView']);
+        _paq.push(['enableLinkTracking']);
+        (function() {
+        var u="https://analytics.apache.org/";
+        _paq.push(['setTrackerUrl', u+'matomo.php']);
+        _paq.push(['setSiteId', '13']);
+        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+        g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+
+    <!-- Scarf Telemetry Pixel -->
+    <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=7265a3c4-a6dd-4933-ba8b-9e3c13903c60" />
+    <!-- End Scarf Telemetry Pixel -->
+    
+</head><body class="td-section">
+    
+
+<header>
+    <nav class="js-navbar-scroll navbar">
+        <div class="navbar__icon-container">
+            <a href="/">
+                <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                    <defs>
+                        <clipPath id="clip-path">
+                            <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                        </clipPath>
+                    </defs>
+                    <g id="logo" transform="translate(-1305 -780.355)">
+                        <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                            <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178.258 [...]
+                                <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0zm-1 [...]
+                                <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482-.2h1 [...]
+                            </g>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+        </div>
+        <div class="desktop-only navbar__menu-container">
+
+            <div class="navbar__menu-content" id="main_navbar">
+
+                <div class="navbar__links-container">
+                    
+                        <a class="navbar__text-link" href="/community/">
+                            Community
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/meetups/">
+                            Meetups
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/docs/">
+                            Documentation
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/use-cases/">
+                            Use-cases
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/announcements/">
+                            Announcements
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/blog/">
+                            Blog
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/ecosystem/">
+                            Ecosystem
+                        </a>
+                    
+                </div>
+
+                
+
+            </div>
+
+        </div>
+        <div class="mobile-only navbar__drawer-container">
+            <button class="navbar__toggle-button" id="navbar-toggle-button">
+
+                <div id="hamburger-icon" class="navbar__toggle-button--icon visible">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="26" height="20" viewBox="0 0 26 20">
+                        <g id="Group_1294" data-name="Group 1294" transform="translate(-38.791 291)">
+                            <g id="Group_1291" data-name="Group 1291" transform="translate(39 -291)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="translate(39 -281.822)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                            <g id="Group_1293" data-name="Group 1293" transform="translate(39 -272.644)">
+                                <rect id="Rectangle_463" width="26" height="2" fill="#51504f" data-name="Rectangle 463" rx="1" transform="translate(-.209 -.356)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+                <div id="close-icon" class="navbar__toggle-button--icon">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                        <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                            <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+            </button>
+            <div class="navbar__drawer" id="navbar-drawer">
+                <div class="navbar__menu-content" id="main_navbar">
+
+                    <div class="navbar__links-container">
+                        
+                            <a class="navbar__text-link" href="/community/">
+                                Community
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/meetups/">
+                                Meetups
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/docs/">
+                                Documentation
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/use-cases/">
+                                Use-cases
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/announcements/">
+                                Announcements
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/blog/">
+                                Blog
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/ecosystem/">
+                                Ecosystem
+                            </a>
+                        
+
+                    </div>
+                    
+
+                </div>
+            </div>
+        </div>
+    </nav>
+
+</header>
+
+
+    <div class="roadmap container-fluid td-default base-layout">
+        
+        
+    <div class="content-drawer-wrapper">
+        <button class="content-drawer__toggle-button" id="content-open-button">
+
+            <div id="hamburger-icon" class="content-drawer__toggle-button--icon visible">
+                <svg xmlns="http://www.w3.org/2000/svg" width="20.005" height="13.879" viewBox="0 0 20.005 13.879">
+                    <g id="Group_1619" data-name="Group 1619" transform="translate(271.132 -418.872)">
+                        <g id="Group_1613" data-name="Group 1613" transform="translate(-266.229 431.045)">
+                            <path id="Path_1337" d="M-218.5 513.215h-14.583a.259.259 0 0 1-.259-.26.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.26z" fill="#51504f" data-name="Path 1337" transform="translate(233.345 -512.696)"></path>
+                        </g>
+                        <g id="Group_1614" data-name="Group 1614" transform="translate(-266.229 425.684)">
+                            <path id="Path_1338" d="M-218.5 471.9h-14.583a.259.259 0 0 1-.259-.26.26.26 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.26.26 0 0 1-.259.26z" fill="#51504f" data-name="Path 1338" transform="translate(233.345 -471.376)"></path>
+                        </g>
+                        <g id="Group_1615" data-name="Group 1615" transform="translate(-266.229 420.323)">
+                            <path id="Path_1339" d="M-218.5 430.574h-14.583a.259.259 0 0 1-.259-.259.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.259z" fill="#51504f" data-name="Path 1339" transform="translate(233.345 -430.055)"></path>
+                        </g>
+                        <g id="Group_1616" data-name="Group 1616" transform="translate(-271.132 429.814)">
+                            <path id="Path_1340" d="M-269.663 506.145a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1340" transform="translate(271.132 -503.208)"></path>
+                        </g>
+                        <g id="Group_1617" data-name="Group 1617" transform="translate(-271.132 424.556)">
+                            <path id="Path_1341" d="M-269.663 465.62a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.952z" fill="#51504f" data-name="Path 1341" transform="translate(271.132 -462.683)"></path>
+                        </g>
+                        <g id="Group_1618" data-name="Group 1618" transform="translate(-271.132 418.872)">
+                            <path id="Path_1342" d="M-269.663 421.809a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1342" transform="translate(271.132 -418.872)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+                <span class="bodytext__mobile--brownish-grey">Content</span>
+            </div>
+
+        </button>
+        <nav id="content-navbar" class="navbar navbar--hidden">
+            <div class="navbar__icon-container">
+                <a href="/">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                        <defs>
+                            <clipPath id="clip-path">
+                                <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                            </clipPath>
+                        </defs>
+                        <g id="logo" transform="translate(-1305 -780.355)">
+                            <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                                <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                    <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                    <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                    <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                    <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                    <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                    <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                    <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                    <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                    <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                    <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178 [...]
+                                    <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0 [...]
+                                    <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482- [...]
+                                </g>
+                            </g>
+                        </g>
+                    </svg>
+
+                </a>
+            </div>
+
+            <div id="content-close-button">
+                <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                    <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                        <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                            <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                        </g>
+                        <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                            <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                        </g>
+                    </g>
+                </svg>
+
+            </div>
+
+        </nav>
+        <div class="content-drawer-container" id="content-drawer">
+            <div class="content-drawer">
+                <div class="td-sidebar">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_external_python.branch_external_python_task"><code class="docutils literal notranslate"><span class="pre">branch_external_python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+                </div>
+            </div>
+        </div>
+    </div>
+        
+        <div class="d-flex">
+            
+            
+    <div class="td-sidebar desktop-only d-print-none">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_external_python.branch_external_python_task"><code class="docutils literal notranslate"><span class="pre">branch_external_python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+    </div>
+            
+
+            
+
+            <main class="col-12 col-md-9 col-xl-8" role="main">
+                
+
+
+    
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation" class="d-none d-md-block d-print-none">
+
+    <ul class="breadcrumb">
+        
+            <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+            
+                <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
+            
+                <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
+            
+            <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+        
+    </ul>
+</div>
+                
+                <div class="rst-content">
+                    <div class="document">
+                            <div class="documentwrapper">
+                                <div class="bodywrapper">
+                                    <div class="body" role="main">
+                                        
+  <div class="section" id="module-airflow.decorators.branch_external_python">
+<span id="airflow-decorators-branch-external-python"></span><h1><a class="reference internal" href="#module-airflow.decorators.branch_external_python" title="airflow.decorators.branch_external_python"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a><a class="headerlink" href="#module-airflow.decorators.branch_external_python" title="Permalink to this heading">¶</a></h1>
+<div class="section" id="module-contents">
+<h2>Module Contents<a class="headerlink" href="#module-contents" title="Permalink to this heading">¶</a></h2>
+<div class="section" id="functions">
+<h3>Functions<a class="headerlink" href="#functions" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.branch_external_python.branch_external_python_task" title="airflow.decorators.branch_external_python.branch_external_python_task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_external_python_task</span></code></a>([python_callable, ...])</p></td>
+<td><p>Wrap a python function into a BranchExternalPythonOperator.</p></td>
+</tr>
+</tbody>
+</table>
+<dl class="py function">
+<dt class="sig sig-object py" id="airflow.decorators.branch_external_python.branch_external_python_task">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.branch_external_python.</span></span><span class="sig-name descname"><span class="pre">branch_external_python_task</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">python_callable</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class= [...]
+<dd><p>Wrap a python function into a BranchExternalPythonOperator.</p>
+<p>For more information on how to use this operator, take a look at the guide:
+<a class="reference internal" href="../../../../core-concepts/dags.html#concepts-branching"><span class="std std-ref">Branching</span></a></p>
+<p>Accepts kwargs for operator kwarg. Can be reused in a single DAG.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>python_callable</strong> (<em>Callable</em><em> | </em><em>None</em>) – Function to decorate</p></li>
+<li><p><strong>multiple_outputs</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><em>bool</em></a><em> | </em><em>None</em>) – if set, function return value will be
+unrolled to multiple XCom values. Dict will unroll to xcom values with keys as XCom keys.
+Defaults to False.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+</div>
+</div>
+</div>
+
+
+    <div class="pager" role="navigation" aria-label="related navigation">
+            <a rel="prev" title="airflow.decorators.base" href="../base/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
+            </a>
+            <a rel="next" title="airflow.decorators.branch_python" href="../branch_python/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+            </a>
+    </div>
+                                    </div>
+
+                                </div>
+                            </div>
+                    </div>
+                </div>
+    <div class="rating-container">
+        <p class="bodytext__medium--greyish-brown font-weight-500">Was this entry helpful?</p>
+        <div class="rating">
+
+            <div id="rate-star-5" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-4" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-3" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-2" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-1" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+        </div>
+    </div>
+                
+            </main>
+            
+
+            
+            
+    <nav class="wy-nav-side-toc">
+        <div class="wy-menu-vertical">
+            <ul>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a><ul>
+<li><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li><a class="reference internal" href="#functions">Functions</a><ul>
+<li><a class="reference internal" href="#airflow.decorators.branch_external_python.branch_external_python_task"><code class="docutils literal notranslate"><span class="pre">branch_external_python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+        </div>
+    </nav>
+            
+        </div>
+        
+
+
+    
+
+
+
+
+
+
+
+    
+        
+            
+        
+        <div class="base-layout--button">
+            <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/branch_external_python/index.rst" rel="nofollow">
+
+                <button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
+                        <path d="M15.379 0a15.381 15.381 0 00-4.86 29.974c.769.141 1.05-.334 1.05-.741 0-.365-.013-1.332-.021-2.616-4.278.929-5.181-2.062-5.181-2.062a4.071 4.071 0 00-1.708-2.25c-1.4-.954.106-.935.106-.935a3.231 3.231 0 012.356 1.585 3.274 3.274 0 004.476 1.278 3.287 3.287 0 01.976-2.056c-3.415-.388-7.005-1.707-7.005-7.6a5.947 5.947 0 011.583-4.127 5.53 5.53 0 01.151-4.07s1.291-.413 4.229 1.577a14.577 14.577 0 017.7 0c2.936-1.99 4.225-1.577 4.225-1.577a5.523 5.523 0 01.15 [...]
+                    </svg>
+
+                    <span class="bodytext__medium--brownish-grey">Suggest a change on this page</span>
+                </button>
+            </a>
+        </div>
+    
+
+    </div>
+
+
+    
+
+<footer>
+    <div class="footer-section footer-section__media-section">
+        <div class="d-flex align-items-center">
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="46.14" height="45" viewBox="0 0 46.14 45">
+                    <path id="Path_207" d="M228.962 1078.578a23.072 23.072 0 0 0-7.29 44.96c1.154.212 1.574-.5 1.574-1.112 0-.548-.02-2-.031-3.924-6.417 1.394-7.771-3.093-7.771-3.093a6.109 6.109 0 0 0-2.562-3.375c-2.095-1.431.159-1.4.159-1.4a4.846 4.846 0 0 1 3.533 2.377c2.058 3.525 5.4 2.507 6.714 1.917a4.926 4.926 0 0 1 1.464-3.084c-5.123-.582-10.508-2.562-10.508-11.4a8.919 8.919 0 0 1 2.374-6.191 8.3 8.3 0 0 1 .226-6.105s1.937-.62 6.344 2.365a21.857 21.857 0 0 1 11.551 0c4.4-2.985 6.3 [...]
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow/issues">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45" height="45" viewBox="0 0 45 45">
+                    <g id="Group_210" data-name="Group 210" transform="translate(-339.789 -1315.282)">
+                        <path id="Path_218" d="M394.82 1315.282h-21.671a9.784 9.784 0 0 0 9.784 9.778h3.986v3.857a9.784 9.784 0 0 0 9.784 9.771v-21.523a1.884 1.884 0 0 0-1.883-1.883z" fill="#fff" data-name="Path 218" transform="translate(-11.914)"></path>
+                        <path id="Path_219" d="M378.14 1332.072h-21.671a9.778 9.778 0 0 0 9.778 9.778h4.018v3.857a9.784 9.784 0 0 0 9.752 9.778v-21.536a1.877 1.877 0 0 0-1.877-1.877z" fill="#fff" data-name="Path 219" transform="translate(-5.957 -5.996)"></path>
+                        <path id="Path_220" d="M361.46 1348.862h-21.671a9.778 9.778 0 0 0 9.778 9.778h3.992v3.857a9.778 9.778 0 0 0 9.778 9.778v-21.529a1.883 1.883 0 0 0-1.877-1.884z" fill="#fff" data-name="Path 220" transform="translate(0 -11.993)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://s.apache.org/airflow-slack">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45.073" height="45.073" viewBox="0 0 45.073 45.073">
+                    <g id="Group_208" data-name="Group 208" transform="translate(-661.145 -806.287)">
+                        <g id="Group_204" data-name="Group 204" transform="translate(661.145 830.01)">
+                            <path id="Path_208" d="M670.634 856.859a4.744 4.744 0 1 1-4.744-4.744h4.744z" fill="#fff" data-name="Path 208" transform="translate(-661.145 -852.115)"></path>
+                            <path id="Path_209" d="M684.059 856.859a4.744 4.744 0 0 1 9.489 0v11.861a4.744 4.744 0 1 1-9.489 0z" fill="#fff" data-name="Path 209" transform="translate(-672.198 -852.115)"></path>
+                        </g>
+                        <g id="Group_205" data-name="Group 205" transform="translate(661.145 806.287)">
+                            <path id="Path_210" d="M688.8 815.776a4.744 4.744 0 1 1 4.744-4.745v4.745z" fill="#fff" data-name="Path 210" transform="translate(-672.198 -806.287)"></path>
+                            <path id="Path_211" d="M677.751 829.2a4.744 4.744 0 0 1 0 9.489H665.89a4.744 4.744 0 1 1 0-9.489z" fill="#fff" data-name="Path 211" transform="translate(-661.145 -817.34)"></path>
+                        </g>
+                        <g id="Group_206" data-name="Group 206" transform="translate(684.868 806.287)">
+                            <path id="Path_212" d="M729.887 833.945a4.744 4.744 0 1 1 4.745 4.745h-4.745z" fill="#fff" data-name="Path 212" transform="translate(-718.026 -817.34)"></path>
+                            <path id="Path_213" d="M716.462 822.893a4.744 4.744 0 1 1-9.489 0v-11.862a4.744 4.744 0 0 1 9.489 0z" fill="#fff" data-name="Path 213" transform="translate(-706.973 -806.287)"></path>
+                        </g>
+                        <g id="Group_207" data-name="Group 207" transform="translate(684.868 830.01)">
+                            <path id="Path_214" d="M711.718 875.029a4.744 4.744 0 1 1-4.745 4.744v-4.744z" fill="#fff" data-name="Path 214" transform="translate(-706.973 -863.168)"></path>
+                            <path id="Path_215" d="M711.718 861.6a4.744 4.744 0 1 1 0-9.489h11.861a4.744 4.744 0 0 1 0 9.489z" fill="#fff" data-name="Path 215" transform="translate(-706.973 -852.115)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://stackoverflow.com/questions/tagged/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="37.647" height="44.6" viewBox="0 0 37.647 44.6">
+                    <g id="Group_209" data-name="Group 209" transform="translate(-645.2 -975.455)">
+                        <path id="Path_216" d="M677.028 1043.1v-11.948h3.966v15.914H645.2v-15.914h3.966v11.948z" fill="#fff" data-name="Path 216" transform="translate(0 -27.014)"></path>
+                        <path id="Path_217" d="M661.012 1003.008l19.467 4.069.824-3.914-19.467-4.069zm2.575-9.27l18.025 8.395 1.648-3.605-18.025-8.446zm5-8.858l15.3 12.721 2.524-3.039-15.3-12.721zm9.888-9.425l-3.193 2.369 11.845 15.965 3.193-2.369zm-17.875 36.617h19.879v-3.966H660.6z" fill="#fff" data-name="Path 217" transform="translate(-7.469)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://twitter.com/ApacheAirflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="44.355" height="44.355" viewBox="0 0 44.355 44.355">
+                    <g id="Group_211" data-name="Group 211" transform="translate(-503 -1382.2)">
+                        <path id="Path_221" d="M541.811 1382.2h-33.267a5.546 5.546 0 0 0-5.544 5.544v33.266a5.547 5.547 0 0 0 5.544 5.545h33.267a5.546 5.546 0 0 0 5.544-5.545v-33.266a5.546 5.546 0 0 0-5.544-5.544zm-5.611 16.533c.011.244.011.488.011.732 0 7.507-5.722 16.178-16.179 16.178a16.173 16.173 0 0 1-8.7-2.539 10.92 10.92 0 0 0 1.353.078 11.4 11.4 0 0 0 7.064-2.44 5.685 5.685 0 0 1-5.311-3.947 5.725 5.725 0 0 0 2.561-.1 5.7 5.7 0 0 1-4.557-5.578v-.078a5.752 5.752 0 0 0 2.572.71 5.7 [...]
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA">
+                <svg xmlns="http://www.w3.org/2000/svg" width="49.594" height="34.941" viewBox="0 0 49.594 34.941">
+                    <path id="Path_223" d="M1124.557 1230a6.232 6.232 0 0 0-4.385-4.413c-3.867-1.043-19.376-1.043-19.376-1.043s-15.508 0-19.376 1.043a6.232 6.232 0 0 0-4.385 4.413c-1.036 3.893-1.036 12.014-1.036 12.014s0 8.122 1.036 12.015a6.232 6.232 0 0 0 4.385 4.413c3.867 1.043 19.376 1.043 19.376 1.043s15.509 0 19.376-1.043a6.232 6.232 0 0 0 4.385-4.413c1.036-3.893 1.036-12.015 1.036-12.015s.001-8.123-1.036-12.014zm-28.833 19.388v-14.748l12.962 7.374z" fill="#fff" data-name="Path 223 [...]
+                </svg>
+
+            </a>
+
+        </div>
+        
+
+        <div class="footer-section__media-section--button-with-text">
+            <span class="footer-section__media-section--text">Want to be a part of Apache Airflow?</span>
+            <a href="/community">
+
+                <button id="" class="btn-filled bodytext__medium--white ">Join community</button>
+
+            </a>
+        </div>
+        
+
+    </div>
+    <div class="footer-section footer-section__policies-section">
+        <div class="footer-section">
+            <span>© The Apache Software Foundation <script>document.write(new Date().getFullYear())</script></span>
+            <div class="footer-section__policies-section--policies">
+
+                <a href="https://www.apache.org/licenses/" class="footer-section__policies-section--policy-item">
+                    <span>License</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/sponsorship.html" class="footer-section__policies-section--policy-item">
+                    <span>Donate</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/thanks.html" class="footer-section__policies-section--policy-item">
+                    <span>Thanks</span>
+                </a>
+
+                <a href="https://www.apache.org/security/" class="footer-section__policies-section--policy-item">
+                    <span>Security</span>
+                </a>
+                
+
+            </div>
+        </div>
+        <span class="footer-section__policies-section--disclaimer">
+            Apache Airflow, Apache, Airflow, the Airflow logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.
+            All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.
+        </span>
+    </div>
+</footer>
+    <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+    <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
+    <script src="/external/js/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
+    <script src="/external/js/cdnjs.cloudflare.com-1.14.3-popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
+    <script src="/external/js/stackpath.bootstrapcdn.com-4.1.3-bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
+        <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+        <script src="../../../../_static/jquery.js"></script>
+        <script src="../../../../_static/underscore.js"></script>
+        <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../../../../_static/doctools.js"></script>
+        <script src="../../../../_static/sphinx_highlight.js"></script>
+        <script src="../../../../_static/clipboard.min.js"></script>
+        <script src="../../../../_static/copybutton.js"></script>
+        <script src="../../../../_static/js/globaltoc.js"></script>
+        <script src="../../../../_static/design-tabs.js"></script>
+        <script src="../../../../_static/gh-jira-links.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/apache-airflow/2.8.0/_api/airflow/decorators/branch_python/index.html b/docs/apache-airflow/2.8.0/_api/airflow/decorators/branch_python/index.html
new file mode 100644
index 00000000..db8b2c7b
--- /dev/null
+++ b/docs/apache-airflow/2.8.0/_api/airflow/decorators/branch_python/index.html
@@ -0,0 +1,1034 @@
+
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<head>
+        <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+        <title>airflow.decorators.branch_python &mdash; Airflow Documentation</title>
+    <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+            <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+            <link rel="index" title="Index" href="../../../../genindex.html" />
+            <link rel="search" title="Search" href="../../../../search.html" />
+            <link rel="next" title="airflow.decorators.branch_virtualenv" href="../branch_virtualenv/index.html" />
+            <link rel="prev" title="airflow.decorators.branch_external_python" href="../branch_external_python/index.html" />
+
+    <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/branch_python/index.html" />
+
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+        /* We explicitly disable cookie tracking to avoid privacy issues */
+        _paq.push(['disableCookies']);
+        _paq.push(['trackPageView']);
+        _paq.push(['enableLinkTracking']);
+        (function() {
+        var u="https://analytics.apache.org/";
+        _paq.push(['setTrackerUrl', u+'matomo.php']);
+        _paq.push(['setSiteId', '13']);
+        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+        g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+
+    <!-- Scarf Telemetry Pixel -->
+    <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=7265a3c4-a6dd-4933-ba8b-9e3c13903c60" />
+    <!-- End Scarf Telemetry Pixel -->
+    
+</head><body class="td-section">
+    
+
+<header>
+    <nav class="js-navbar-scroll navbar">
+        <div class="navbar__icon-container">
+            <a href="/">
+                <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                    <defs>
+                        <clipPath id="clip-path">
+                            <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                        </clipPath>
+                    </defs>
+                    <g id="logo" transform="translate(-1305 -780.355)">
+                        <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                            <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178.258 [...]
+                                <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0zm-1 [...]
+                                <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482-.2h1 [...]
+                            </g>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+        </div>
+        <div class="desktop-only navbar__menu-container">
+
+            <div class="navbar__menu-content" id="main_navbar">
+
+                <div class="navbar__links-container">
+                    
+                        <a class="navbar__text-link" href="/community/">
+                            Community
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/meetups/">
+                            Meetups
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/docs/">
+                            Documentation
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/use-cases/">
+                            Use-cases
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/announcements/">
+                            Announcements
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/blog/">
+                            Blog
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/ecosystem/">
+                            Ecosystem
+                        </a>
+                    
+                </div>
+
+                
+
+            </div>
+
+        </div>
+        <div class="mobile-only navbar__drawer-container">
+            <button class="navbar__toggle-button" id="navbar-toggle-button">
+
+                <div id="hamburger-icon" class="navbar__toggle-button--icon visible">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="26" height="20" viewBox="0 0 26 20">
+                        <g id="Group_1294" data-name="Group 1294" transform="translate(-38.791 291)">
+                            <g id="Group_1291" data-name="Group 1291" transform="translate(39 -291)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="translate(39 -281.822)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                            <g id="Group_1293" data-name="Group 1293" transform="translate(39 -272.644)">
+                                <rect id="Rectangle_463" width="26" height="2" fill="#51504f" data-name="Rectangle 463" rx="1" transform="translate(-.209 -.356)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+                <div id="close-icon" class="navbar__toggle-button--icon">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                        <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                            <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+            </button>
+            <div class="navbar__drawer" id="navbar-drawer">
+                <div class="navbar__menu-content" id="main_navbar">
+
+                    <div class="navbar__links-container">
+                        
+                            <a class="navbar__text-link" href="/community/">
+                                Community
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/meetups/">
+                                Meetups
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/docs/">
+                                Documentation
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/use-cases/">
+                                Use-cases
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/announcements/">
+                                Announcements
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/blog/">
+                                Blog
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/ecosystem/">
+                                Ecosystem
+                            </a>
+                        
+
+                    </div>
+                    
+
+                </div>
+            </div>
+        </div>
+    </nav>
+
+</header>
+
+
+    <div class="roadmap container-fluid td-default base-layout">
+        
+        
+    <div class="content-drawer-wrapper">
+        <button class="content-drawer__toggle-button" id="content-open-button">
+
+            <div id="hamburger-icon" class="content-drawer__toggle-button--icon visible">
+                <svg xmlns="http://www.w3.org/2000/svg" width="20.005" height="13.879" viewBox="0 0 20.005 13.879">
+                    <g id="Group_1619" data-name="Group 1619" transform="translate(271.132 -418.872)">
+                        <g id="Group_1613" data-name="Group 1613" transform="translate(-266.229 431.045)">
+                            <path id="Path_1337" d="M-218.5 513.215h-14.583a.259.259 0 0 1-.259-.26.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.26z" fill="#51504f" data-name="Path 1337" transform="translate(233.345 -512.696)"></path>
+                        </g>
+                        <g id="Group_1614" data-name="Group 1614" transform="translate(-266.229 425.684)">
+                            <path id="Path_1338" d="M-218.5 471.9h-14.583a.259.259 0 0 1-.259-.26.26.26 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.26.26 0 0 1-.259.26z" fill="#51504f" data-name="Path 1338" transform="translate(233.345 -471.376)"></path>
+                        </g>
+                        <g id="Group_1615" data-name="Group 1615" transform="translate(-266.229 420.323)">
+                            <path id="Path_1339" d="M-218.5 430.574h-14.583a.259.259 0 0 1-.259-.259.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.259z" fill="#51504f" data-name="Path 1339" transform="translate(233.345 -430.055)"></path>
+                        </g>
+                        <g id="Group_1616" data-name="Group 1616" transform="translate(-271.132 429.814)">
+                            <path id="Path_1340" d="M-269.663 506.145a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1340" transform="translate(271.132 -503.208)"></path>
+                        </g>
+                        <g id="Group_1617" data-name="Group 1617" transform="translate(-271.132 424.556)">
+                            <path id="Path_1341" d="M-269.663 465.62a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.952z" fill="#51504f" data-name="Path 1341" transform="translate(271.132 -462.683)"></path>
+                        </g>
+                        <g id="Group_1618" data-name="Group 1618" transform="translate(-271.132 418.872)">
+                            <path id="Path_1342" d="M-269.663 421.809a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1342" transform="translate(271.132 -418.872)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+                <span class="bodytext__mobile--brownish-grey">Content</span>
+            </div>
+
+        </button>
+        <nav id="content-navbar" class="navbar navbar--hidden">
+            <div class="navbar__icon-container">
+                <a href="/">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                        <defs>
+                            <clipPath id="clip-path">
+                                <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                            </clipPath>
+                        </defs>
+                        <g id="logo" transform="translate(-1305 -780.355)">
+                            <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                                <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                    <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                    <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                    <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                    <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                    <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                    <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                    <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                    <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                    <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                    <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178 [...]
+                                    <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0 [...]
+                                    <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482- [...]
+                                </g>
+                            </g>
+                        </g>
+                    </svg>
+
+                </a>
+            </div>
+
+            <div id="content-close-button">
+                <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                    <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                        <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                            <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                        </g>
+                        <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                            <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                        </g>
+                    </g>
+                </svg>
+
+            </div>
+
+        </nav>
+        <div class="content-drawer-container" id="content-drawer">
+            <div class="content-drawer">
+                <div class="td-sidebar">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_python.branch_task"><code class="docutils literal notranslate"><span class="pre">branch_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+                </div>
+            </div>
+        </div>
+    </div>
+        
+        <div class="d-flex">
+            
+            
+    <div class="td-sidebar desktop-only d-print-none">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_python.branch_task"><code class="docutils literal notranslate"><span class="pre">branch_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+    </div>
+            
+
+            
+
+            <main class="col-12 col-md-9 col-xl-8" role="main">
+                
+
+
+    
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation" class="d-none d-md-block d-print-none">
+
+    <ul class="breadcrumb">
+        
+            <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+            
+                <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
+            
+                <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
+            
+            <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+        
+    </ul>
+</div>
+                
+                <div class="rst-content">
+                    <div class="document">
+                            <div class="documentwrapper">
+                                <div class="bodywrapper">
+                                    <div class="body" role="main">
+                                        
+  <div class="section" id="module-airflow.decorators.branch_python">
+<span id="airflow-decorators-branch-python"></span><h1><a class="reference internal" href="#module-airflow.decorators.branch_python" title="airflow.decorators.branch_python"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a><a class="headerlink" href="#module-airflow.decorators.branch_python" title="Permalink to this heading">¶</a></h1>
+<div class="section" id="module-contents">
+<h2>Module Contents<a class="headerlink" href="#module-contents" title="Permalink to this heading">¶</a></h2>
+<div class="section" id="functions">
+<h3>Functions<a class="headerlink" href="#functions" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.branch_python.branch_task" title="airflow.decorators.branch_python.branch_task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_task</span></code></a>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a python function into a BranchPythonOperator.</p></td>
+</tr>
+</tbody>
+</table>
+<dl class="py function">
+<dt class="sig sig-object py" id="airflow.decorators.branch_python.branch_task">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.branch_python.</span></span><span class="sig-name descname"><span class="pre">branch_task</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">python_callable</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">multiple_outputs</s [...]
+<dd><p>Wrap a python function into a BranchPythonOperator.</p>
+<p>For more information on how to use this operator, take a look at the guide:
+<a class="reference internal" href="../../../../core-concepts/dags.html#concepts-branching"><span class="std std-ref">Branching</span></a></p>
+<p>Accepts kwargs for operator kwarg. Can be reused in a single DAG.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>python_callable</strong> (<em>Callable</em><em> | </em><em>None</em>) – Function to decorate</p></li>
+<li><p><strong>multiple_outputs</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><em>bool</em></a><em> | </em><em>None</em>) – if set, function return value will be
+unrolled to multiple XCom values. Dict will unroll to xcom values with keys as XCom keys.
+Defaults to False.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+</div>
+</div>
+</div>
+
+
+    <div class="pager" role="navigation" aria-label="related navigation">
+            <a rel="prev" title="airflow.decorators.branch_external_python" href="../branch_external_python/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
+            </a>
+            <a rel="next" title="airflow.decorators.branch_virtualenv" href="../branch_virtualenv/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+            </a>
+    </div>
+                                    </div>
+
+                                </div>
+                            </div>
+                    </div>
+                </div>
+    <div class="rating-container">
+        <p class="bodytext__medium--greyish-brown font-weight-500">Was this entry helpful?</p>
+        <div class="rating">
+
+            <div id="rate-star-5" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-4" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-3" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-2" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-1" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+        </div>
+    </div>
+                
+            </main>
+            
+
+            
+            
+    <nav class="wy-nav-side-toc">
+        <div class="wy-menu-vertical">
+            <ul>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a><ul>
+<li><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li><a class="reference internal" href="#functions">Functions</a><ul>
+<li><a class="reference internal" href="#airflow.decorators.branch_python.branch_task"><code class="docutils literal notranslate"><span class="pre">branch_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+        </div>
+    </nav>
+            
+        </div>
+        
+
+
+    
+
+
+
+
+
+
+
+    
+        
+            
+        
+        <div class="base-layout--button">
+            <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/branch_python/index.rst" rel="nofollow">
+
+                <button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
+                        <path d="M15.379 0a15.381 15.381 0 00-4.86 29.974c.769.141 1.05-.334 1.05-.741 0-.365-.013-1.332-.021-2.616-4.278.929-5.181-2.062-5.181-2.062a4.071 4.071 0 00-1.708-2.25c-1.4-.954.106-.935.106-.935a3.231 3.231 0 012.356 1.585 3.274 3.274 0 004.476 1.278 3.287 3.287 0 01.976-2.056c-3.415-.388-7.005-1.707-7.005-7.6a5.947 5.947 0 011.583-4.127 5.53 5.53 0 01.151-4.07s1.291-.413 4.229 1.577a14.577 14.577 0 017.7 0c2.936-1.99 4.225-1.577 4.225-1.577a5.523 5.523 0 01.15 [...]
+                    </svg>
+
+                    <span class="bodytext__medium--brownish-grey">Suggest a change on this page</span>
+                </button>
+            </a>
+        </div>
+    
+
+    </div>
+
+
+    
+
+<footer>
+    <div class="footer-section footer-section__media-section">
+        <div class="d-flex align-items-center">
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="46.14" height="45" viewBox="0 0 46.14 45">
+                    <path id="Path_207" d="M228.962 1078.578a23.072 23.072 0 0 0-7.29 44.96c1.154.212 1.574-.5 1.574-1.112 0-.548-.02-2-.031-3.924-6.417 1.394-7.771-3.093-7.771-3.093a6.109 6.109 0 0 0-2.562-3.375c-2.095-1.431.159-1.4.159-1.4a4.846 4.846 0 0 1 3.533 2.377c2.058 3.525 5.4 2.507 6.714 1.917a4.926 4.926 0 0 1 1.464-3.084c-5.123-.582-10.508-2.562-10.508-11.4a8.919 8.919 0 0 1 2.374-6.191 8.3 8.3 0 0 1 .226-6.105s1.937-.62 6.344 2.365a21.857 21.857 0 0 1 11.551 0c4.4-2.985 6.3 [...]
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow/issues">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45" height="45" viewBox="0 0 45 45">
+                    <g id="Group_210" data-name="Group 210" transform="translate(-339.789 -1315.282)">
+                        <path id="Path_218" d="M394.82 1315.282h-21.671a9.784 9.784 0 0 0 9.784 9.778h3.986v3.857a9.784 9.784 0 0 0 9.784 9.771v-21.523a1.884 1.884 0 0 0-1.883-1.883z" fill="#fff" data-name="Path 218" transform="translate(-11.914)"></path>
+                        <path id="Path_219" d="M378.14 1332.072h-21.671a9.778 9.778 0 0 0 9.778 9.778h4.018v3.857a9.784 9.784 0 0 0 9.752 9.778v-21.536a1.877 1.877 0 0 0-1.877-1.877z" fill="#fff" data-name="Path 219" transform="translate(-5.957 -5.996)"></path>
+                        <path id="Path_220" d="M361.46 1348.862h-21.671a9.778 9.778 0 0 0 9.778 9.778h3.992v3.857a9.778 9.778 0 0 0 9.778 9.778v-21.529a1.883 1.883 0 0 0-1.877-1.884z" fill="#fff" data-name="Path 220" transform="translate(0 -11.993)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://s.apache.org/airflow-slack">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45.073" height="45.073" viewBox="0 0 45.073 45.073">
+                    <g id="Group_208" data-name="Group 208" transform="translate(-661.145 -806.287)">
+                        <g id="Group_204" data-name="Group 204" transform="translate(661.145 830.01)">
+                            <path id="Path_208" d="M670.634 856.859a4.744 4.744 0 1 1-4.744-4.744h4.744z" fill="#fff" data-name="Path 208" transform="translate(-661.145 -852.115)"></path>
+                            <path id="Path_209" d="M684.059 856.859a4.744 4.744 0 0 1 9.489 0v11.861a4.744 4.744 0 1 1-9.489 0z" fill="#fff" data-name="Path 209" transform="translate(-672.198 -852.115)"></path>
+                        </g>
+                        <g id="Group_205" data-name="Group 205" transform="translate(661.145 806.287)">
+                            <path id="Path_210" d="M688.8 815.776a4.744 4.744 0 1 1 4.744-4.745v4.745z" fill="#fff" data-name="Path 210" transform="translate(-672.198 -806.287)"></path>
+                            <path id="Path_211" d="M677.751 829.2a4.744 4.744 0 0 1 0 9.489H665.89a4.744 4.744 0 1 1 0-9.489z" fill="#fff" data-name="Path 211" transform="translate(-661.145 -817.34)"></path>
+                        </g>
+                        <g id="Group_206" data-name="Group 206" transform="translate(684.868 806.287)">
+                            <path id="Path_212" d="M729.887 833.945a4.744 4.744 0 1 1 4.745 4.745h-4.745z" fill="#fff" data-name="Path 212" transform="translate(-718.026 -817.34)"></path>
+                            <path id="Path_213" d="M716.462 822.893a4.744 4.744 0 1 1-9.489 0v-11.862a4.744 4.744 0 0 1 9.489 0z" fill="#fff" data-name="Path 213" transform="translate(-706.973 -806.287)"></path>
+                        </g>
+                        <g id="Group_207" data-name="Group 207" transform="translate(684.868 830.01)">
+                            <path id="Path_214" d="M711.718 875.029a4.744 4.744 0 1 1-4.745 4.744v-4.744z" fill="#fff" data-name="Path 214" transform="translate(-706.973 -863.168)"></path>
+                            <path id="Path_215" d="M711.718 861.6a4.744 4.744 0 1 1 0-9.489h11.861a4.744 4.744 0 0 1 0 9.489z" fill="#fff" data-name="Path 215" transform="translate(-706.973 -852.115)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://stackoverflow.com/questions/tagged/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="37.647" height="44.6" viewBox="0 0 37.647 44.6">
+                    <g id="Group_209" data-name="Group 209" transform="translate(-645.2 -975.455)">
+                        <path id="Path_216" d="M677.028 1043.1v-11.948h3.966v15.914H645.2v-15.914h3.966v11.948z" fill="#fff" data-name="Path 216" transform="translate(0 -27.014)"></path>
+                        <path id="Path_217" d="M661.012 1003.008l19.467 4.069.824-3.914-19.467-4.069zm2.575-9.27l18.025 8.395 1.648-3.605-18.025-8.446zm5-8.858l15.3 12.721 2.524-3.039-15.3-12.721zm9.888-9.425l-3.193 2.369 11.845 15.965 3.193-2.369zm-17.875 36.617h19.879v-3.966H660.6z" fill="#fff" data-name="Path 217" transform="translate(-7.469)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://twitter.com/ApacheAirflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="44.355" height="44.355" viewBox="0 0 44.355 44.355">
+                    <g id="Group_211" data-name="Group 211" transform="translate(-503 -1382.2)">
+                        <path id="Path_221" d="M541.811 1382.2h-33.267a5.546 5.546 0 0 0-5.544 5.544v33.266a5.547 5.547 0 0 0 5.544 5.545h33.267a5.546 5.546 0 0 0 5.544-5.545v-33.266a5.546 5.546 0 0 0-5.544-5.544zm-5.611 16.533c.011.244.011.488.011.732 0 7.507-5.722 16.178-16.179 16.178a16.173 16.173 0 0 1-8.7-2.539 10.92 10.92 0 0 0 1.353.078 11.4 11.4 0 0 0 7.064-2.44 5.685 5.685 0 0 1-5.311-3.947 5.725 5.725 0 0 0 2.561-.1 5.7 5.7 0 0 1-4.557-5.578v-.078a5.752 5.752 0 0 0 2.572.71 5.7 [...]
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA">
+                <svg xmlns="http://www.w3.org/2000/svg" width="49.594" height="34.941" viewBox="0 0 49.594 34.941">
+                    <path id="Path_223" d="M1124.557 1230a6.232 6.232 0 0 0-4.385-4.413c-3.867-1.043-19.376-1.043-19.376-1.043s-15.508 0-19.376 1.043a6.232 6.232 0 0 0-4.385 4.413c-1.036 3.893-1.036 12.014-1.036 12.014s0 8.122 1.036 12.015a6.232 6.232 0 0 0 4.385 4.413c3.867 1.043 19.376 1.043 19.376 1.043s15.509 0 19.376-1.043a6.232 6.232 0 0 0 4.385-4.413c1.036-3.893 1.036-12.015 1.036-12.015s.001-8.123-1.036-12.014zm-28.833 19.388v-14.748l12.962 7.374z" fill="#fff" data-name="Path 223 [...]
+                </svg>
+
+            </a>
+
+        </div>
+        
+
+        <div class="footer-section__media-section--button-with-text">
+            <span class="footer-section__media-section--text">Want to be a part of Apache Airflow?</span>
+            <a href="/community">
+
+                <button id="" class="btn-filled bodytext__medium--white ">Join community</button>
+
+            </a>
+        </div>
+        
+
+    </div>
+    <div class="footer-section footer-section__policies-section">
+        <div class="footer-section">
+            <span>© The Apache Software Foundation <script>document.write(new Date().getFullYear())</script></span>
+            <div class="footer-section__policies-section--policies">
+
+                <a href="https://www.apache.org/licenses/" class="footer-section__policies-section--policy-item">
+                    <span>License</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/sponsorship.html" class="footer-section__policies-section--policy-item">
+                    <span>Donate</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/thanks.html" class="footer-section__policies-section--policy-item">
+                    <span>Thanks</span>
+                </a>
+
+                <a href="https://www.apache.org/security/" class="footer-section__policies-section--policy-item">
+                    <span>Security</span>
+                </a>
+                
+
+            </div>
+        </div>
+        <span class="footer-section__policies-section--disclaimer">
+            Apache Airflow, Apache, Airflow, the Airflow logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.
+            All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.
+        </span>
+    </div>
+</footer>
+    <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+    <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
+    <script src="/external/js/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
+    <script src="/external/js/cdnjs.cloudflare.com-1.14.3-popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
+    <script src="/external/js/stackpath.bootstrapcdn.com-4.1.3-bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
+        <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+        <script src="../../../../_static/jquery.js"></script>
+        <script src="../../../../_static/underscore.js"></script>
+        <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../../../../_static/doctools.js"></script>
+        <script src="../../../../_static/sphinx_highlight.js"></script>
+        <script src="../../../../_static/clipboard.min.js"></script>
+        <script src="../../../../_static/copybutton.js"></script>
+        <script src="../../../../_static/js/globaltoc.js"></script>
+        <script src="../../../../_static/design-tabs.js"></script>
+        <script src="../../../../_static/gh-jira-links.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/apache-airflow/2.8.0/_api/airflow/decorators/branch_virtualenv/index.html b/docs/apache-airflow/2.8.0/_api/airflow/decorators/branch_virtualenv/index.html
new file mode 100644
index 00000000..96d3f28d
--- /dev/null
+++ b/docs/apache-airflow/2.8.0/_api/airflow/decorators/branch_virtualenv/index.html
@@ -0,0 +1,1034 @@
+
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<head>
+        <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+        <title>airflow.decorators.branch_virtualenv &mdash; Airflow Documentation</title>
+    <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+            <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+            <link rel="index" title="Index" href="../../../../genindex.html" />
+            <link rel="search" title="Search" href="../../../../search.html" />
+            <link rel="next" title="airflow.decorators.external_python" href="../external_python/index.html" />
+            <link rel="prev" title="airflow.decorators.branch_python" href="../branch_python/index.html" />
+
+    <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/branch_virtualenv/index.html" />
+
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+        /* We explicitly disable cookie tracking to avoid privacy issues */
+        _paq.push(['disableCookies']);
+        _paq.push(['trackPageView']);
+        _paq.push(['enableLinkTracking']);
+        (function() {
+        var u="https://analytics.apache.org/";
+        _paq.push(['setTrackerUrl', u+'matomo.php']);
+        _paq.push(['setSiteId', '13']);
+        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+        g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+
+    <!-- Scarf Telemetry Pixel -->
+    <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=7265a3c4-a6dd-4933-ba8b-9e3c13903c60" />
+    <!-- End Scarf Telemetry Pixel -->
+    
+</head><body class="td-section">
+    
+
+<header>
+    <nav class="js-navbar-scroll navbar">
+        <div class="navbar__icon-container">
+            <a href="/">
+                <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                    <defs>
+                        <clipPath id="clip-path">
+                            <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                        </clipPath>
+                    </defs>
+                    <g id="logo" transform="translate(-1305 -780.355)">
+                        <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                            <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178.258 [...]
+                                <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0zm-1 [...]
+                                <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482-.2h1 [...]
+                            </g>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+        </div>
+        <div class="desktop-only navbar__menu-container">
+
+            <div class="navbar__menu-content" id="main_navbar">
+
+                <div class="navbar__links-container">
+                    
+                        <a class="navbar__text-link" href="/community/">
+                            Community
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/meetups/">
+                            Meetups
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/docs/">
+                            Documentation
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/use-cases/">
+                            Use-cases
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/announcements/">
+                            Announcements
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/blog/">
+                            Blog
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/ecosystem/">
+                            Ecosystem
+                        </a>
+                    
+                </div>
+
+                
+
+            </div>
+
+        </div>
+        <div class="mobile-only navbar__drawer-container">
+            <button class="navbar__toggle-button" id="navbar-toggle-button">
+
+                <div id="hamburger-icon" class="navbar__toggle-button--icon visible">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="26" height="20" viewBox="0 0 26 20">
+                        <g id="Group_1294" data-name="Group 1294" transform="translate(-38.791 291)">
+                            <g id="Group_1291" data-name="Group 1291" transform="translate(39 -291)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="translate(39 -281.822)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                            <g id="Group_1293" data-name="Group 1293" transform="translate(39 -272.644)">
+                                <rect id="Rectangle_463" width="26" height="2" fill="#51504f" data-name="Rectangle 463" rx="1" transform="translate(-.209 -.356)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+                <div id="close-icon" class="navbar__toggle-button--icon">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                        <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                            <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+            </button>
+            <div class="navbar__drawer" id="navbar-drawer">
+                <div class="navbar__menu-content" id="main_navbar">
+
+                    <div class="navbar__links-container">
+                        
+                            <a class="navbar__text-link" href="/community/">
+                                Community
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/meetups/">
+                                Meetups
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/docs/">
+                                Documentation
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/use-cases/">
+                                Use-cases
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/announcements/">
+                                Announcements
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/blog/">
+                                Blog
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/ecosystem/">
+                                Ecosystem
+                            </a>
+                        
+
+                    </div>
+                    
+
+                </div>
+            </div>
+        </div>
+    </nav>
+
+</header>
+
+
+    <div class="roadmap container-fluid td-default base-layout">
+        
+        
+    <div class="content-drawer-wrapper">
+        <button class="content-drawer__toggle-button" id="content-open-button">
+
+            <div id="hamburger-icon" class="content-drawer__toggle-button--icon visible">
+                <svg xmlns="http://www.w3.org/2000/svg" width="20.005" height="13.879" viewBox="0 0 20.005 13.879">
+                    <g id="Group_1619" data-name="Group 1619" transform="translate(271.132 -418.872)">
+                        <g id="Group_1613" data-name="Group 1613" transform="translate(-266.229 431.045)">
+                            <path id="Path_1337" d="M-218.5 513.215h-14.583a.259.259 0 0 1-.259-.26.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.26z" fill="#51504f" data-name="Path 1337" transform="translate(233.345 -512.696)"></path>
+                        </g>
+                        <g id="Group_1614" data-name="Group 1614" transform="translate(-266.229 425.684)">
+                            <path id="Path_1338" d="M-218.5 471.9h-14.583a.259.259 0 0 1-.259-.26.26.26 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.26.26 0 0 1-.259.26z" fill="#51504f" data-name="Path 1338" transform="translate(233.345 -471.376)"></path>
+                        </g>
+                        <g id="Group_1615" data-name="Group 1615" transform="translate(-266.229 420.323)">
+                            <path id="Path_1339" d="M-218.5 430.574h-14.583a.259.259 0 0 1-.259-.259.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.259z" fill="#51504f" data-name="Path 1339" transform="translate(233.345 -430.055)"></path>
+                        </g>
+                        <g id="Group_1616" data-name="Group 1616" transform="translate(-271.132 429.814)">
+                            <path id="Path_1340" d="M-269.663 506.145a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1340" transform="translate(271.132 -503.208)"></path>
+                        </g>
+                        <g id="Group_1617" data-name="Group 1617" transform="translate(-271.132 424.556)">
+                            <path id="Path_1341" d="M-269.663 465.62a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.952z" fill="#51504f" data-name="Path 1341" transform="translate(271.132 -462.683)"></path>
+                        </g>
+                        <g id="Group_1618" data-name="Group 1618" transform="translate(-271.132 418.872)">
+                            <path id="Path_1342" d="M-269.663 421.809a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1342" transform="translate(271.132 -418.872)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+                <span class="bodytext__mobile--brownish-grey">Content</span>
+            </div>
+
+        </button>
+        <nav id="content-navbar" class="navbar navbar--hidden">
+            <div class="navbar__icon-container">
+                <a href="/">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                        <defs>
+                            <clipPath id="clip-path">
+                                <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                            </clipPath>
+                        </defs>
+                        <g id="logo" transform="translate(-1305 -780.355)">
+                            <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                                <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                    <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                    <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                    <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                    <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                    <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                    <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                    <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                    <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                    <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                    <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178 [...]
+                                    <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0 [...]
+                                    <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482- [...]
+                                </g>
+                            </g>
+                        </g>
+                    </svg>
+
+                </a>
+            </div>
+
+            <div id="content-close-button">
+                <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                    <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                        <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                            <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                        </g>
+                        <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                            <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                        </g>
+                    </g>
+                </svg>
+
+            </div>
+
+        </nav>
+        <div class="content-drawer-container" id="content-drawer">
+            <div class="content-drawer">
+                <div class="td-sidebar">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_virtualenv.branch_virtualenv_task"><code class="docutils literal notranslate"><span class="pre">branch_virtualenv_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+                </div>
+            </div>
+        </div>
+    </div>
+        
+        <div class="d-flex">
+            
+            
+    <div class="td-sidebar desktop-only d-print-none">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_virtualenv.branch_virtualenv_task"><code class="docutils literal notranslate"><span class="pre">branch_virtualenv_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+    </div>
+            
+
+            
+
+            <main class="col-12 col-md-9 col-xl-8" role="main">
+                
+
+
+    
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation" class="d-none d-md-block d-print-none">
+
+    <ul class="breadcrumb">
+        
+            <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+            
+                <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
+            
+                <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
+            
+            <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+        
+    </ul>
+</div>
+                
+                <div class="rst-content">
+                    <div class="document">
+                            <div class="documentwrapper">
+                                <div class="bodywrapper">
+                                    <div class="body" role="main">
+                                        
+  <div class="section" id="module-airflow.decorators.branch_virtualenv">
+<span id="airflow-decorators-branch-virtualenv"></span><h1><a class="reference internal" href="#module-airflow.decorators.branch_virtualenv" title="airflow.decorators.branch_virtualenv"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a><a class="headerlink" href="#module-airflow.decorators.branch_virtualenv" title="Permalink to this heading">¶</a></h1>
+<div class="section" id="module-contents">
+<h2>Module Contents<a class="headerlink" href="#module-contents" title="Permalink to this heading">¶</a></h2>
+<div class="section" id="functions">
+<h3>Functions<a class="headerlink" href="#functions" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.branch_virtualenv.branch_virtualenv_task" title="airflow.decorators.branch_virtualenv.branch_virtualenv_task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_virtualenv_task</span></code></a>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a python function into a BranchPythonVirtualenvOperator.</p></td>
+</tr>
+</tbody>
+</table>
+<dl class="py function">
+<dt class="sig sig-object py" id="airflow.decorators.branch_virtualenv.branch_virtualenv_task">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.branch_virtualenv.</span></span><span class="sig-name descname"><span class="pre">branch_virtualenv_task</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">python_callable</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mult [...]
+<dd><p>Wrap a python function into a BranchPythonVirtualenvOperator.</p>
+<p>For more information on how to use this operator, take a look at the guide:
+<a class="reference internal" href="../../../../core-concepts/dags.html#concepts-branching"><span class="std std-ref">Branching</span></a></p>
+<p>Accepts kwargs for operator kwarg. Can be reused in a single DAG.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>python_callable</strong> (<em>Callable</em><em> | </em><em>None</em>) – Function to decorate</p></li>
+<li><p><strong>multiple_outputs</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><em>bool</em></a><em> | </em><em>None</em>) – if set, function return value will be
+unrolled to multiple XCom values. Dict will unroll to xcom values with keys as XCom keys.
+Defaults to False.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+</div>
+</div>
+</div>
+
+
+    <div class="pager" role="navigation" aria-label="related navigation">
+            <a rel="prev" title="airflow.decorators.branch_python" href="../branch_python/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
+            </a>
+            <a rel="next" title="airflow.decorators.external_python" href="../external_python/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+            </a>
+    </div>
+                                    </div>
+
+                                </div>
+                            </div>
+                    </div>
+                </div>
+    <div class="rating-container">
+        <p class="bodytext__medium--greyish-brown font-weight-500">Was this entry helpful?</p>
+        <div class="rating">
+
+            <div id="rate-star-5" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-4" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-3" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-2" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-1" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+        </div>
+    </div>
+                
+            </main>
+            
+
+            
+            
+    <nav class="wy-nav-side-toc">
+        <div class="wy-menu-vertical">
+            <ul>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a><ul>
+<li><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li><a class="reference internal" href="#functions">Functions</a><ul>
+<li><a class="reference internal" href="#airflow.decorators.branch_virtualenv.branch_virtualenv_task"><code class="docutils literal notranslate"><span class="pre">branch_virtualenv_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+        </div>
+    </nav>
+            
+        </div>
+        
+
+
+    
+
+
+
+
+
+
+
+    
+        
+            
+        
+        <div class="base-layout--button">
+            <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/branch_virtualenv/index.rst" rel="nofollow">
+
+                <button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
+                        <path d="M15.379 0a15.381 15.381 0 00-4.86 29.974c.769.141 1.05-.334 1.05-.741 0-.365-.013-1.332-.021-2.616-4.278.929-5.181-2.062-5.181-2.062a4.071 4.071 0 00-1.708-2.25c-1.4-.954.106-.935.106-.935a3.231 3.231 0 012.356 1.585 3.274 3.274 0 004.476 1.278 3.287 3.287 0 01.976-2.056c-3.415-.388-7.005-1.707-7.005-7.6a5.947 5.947 0 011.583-4.127 5.53 5.53 0 01.151-4.07s1.291-.413 4.229 1.577a14.577 14.577 0 017.7 0c2.936-1.99 4.225-1.577 4.225-1.577a5.523 5.523 0 01.15 [...]
+                    </svg>
+
+                    <span class="bodytext__medium--brownish-grey">Suggest a change on this page</span>
+                </button>
+            </a>
+        </div>
+    
+
+    </div>
+
+
+    
+
+<footer>
+    <div class="footer-section footer-section__media-section">
+        <div class="d-flex align-items-center">
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="46.14" height="45" viewBox="0 0 46.14 45">
+                    <path id="Path_207" d="M228.962 1078.578a23.072 23.072 0 0 0-7.29 44.96c1.154.212 1.574-.5 1.574-1.112 0-.548-.02-2-.031-3.924-6.417 1.394-7.771-3.093-7.771-3.093a6.109 6.109 0 0 0-2.562-3.375c-2.095-1.431.159-1.4.159-1.4a4.846 4.846 0 0 1 3.533 2.377c2.058 3.525 5.4 2.507 6.714 1.917a4.926 4.926 0 0 1 1.464-3.084c-5.123-.582-10.508-2.562-10.508-11.4a8.919 8.919 0 0 1 2.374-6.191 8.3 8.3 0 0 1 .226-6.105s1.937-.62 6.344 2.365a21.857 21.857 0 0 1 11.551 0c4.4-2.985 6.3 [...]
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow/issues">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45" height="45" viewBox="0 0 45 45">
+                    <g id="Group_210" data-name="Group 210" transform="translate(-339.789 -1315.282)">
+                        <path id="Path_218" d="M394.82 1315.282h-21.671a9.784 9.784 0 0 0 9.784 9.778h3.986v3.857a9.784 9.784 0 0 0 9.784 9.771v-21.523a1.884 1.884 0 0 0-1.883-1.883z" fill="#fff" data-name="Path 218" transform="translate(-11.914)"></path>
+                        <path id="Path_219" d="M378.14 1332.072h-21.671a9.778 9.778 0 0 0 9.778 9.778h4.018v3.857a9.784 9.784 0 0 0 9.752 9.778v-21.536a1.877 1.877 0 0 0-1.877-1.877z" fill="#fff" data-name="Path 219" transform="translate(-5.957 -5.996)"></path>
+                        <path id="Path_220" d="M361.46 1348.862h-21.671a9.778 9.778 0 0 0 9.778 9.778h3.992v3.857a9.778 9.778 0 0 0 9.778 9.778v-21.529a1.883 1.883 0 0 0-1.877-1.884z" fill="#fff" data-name="Path 220" transform="translate(0 -11.993)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://s.apache.org/airflow-slack">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45.073" height="45.073" viewBox="0 0 45.073 45.073">
+                    <g id="Group_208" data-name="Group 208" transform="translate(-661.145 -806.287)">
+                        <g id="Group_204" data-name="Group 204" transform="translate(661.145 830.01)">
+                            <path id="Path_208" d="M670.634 856.859a4.744 4.744 0 1 1-4.744-4.744h4.744z" fill="#fff" data-name="Path 208" transform="translate(-661.145 -852.115)"></path>
+                            <path id="Path_209" d="M684.059 856.859a4.744 4.744 0 0 1 9.489 0v11.861a4.744 4.744 0 1 1-9.489 0z" fill="#fff" data-name="Path 209" transform="translate(-672.198 -852.115)"></path>
+                        </g>
+                        <g id="Group_205" data-name="Group 205" transform="translate(661.145 806.287)">
+                            <path id="Path_210" d="M688.8 815.776a4.744 4.744 0 1 1 4.744-4.745v4.745z" fill="#fff" data-name="Path 210" transform="translate(-672.198 -806.287)"></path>
+                            <path id="Path_211" d="M677.751 829.2a4.744 4.744 0 0 1 0 9.489H665.89a4.744 4.744 0 1 1 0-9.489z" fill="#fff" data-name="Path 211" transform="translate(-661.145 -817.34)"></path>
+                        </g>
+                        <g id="Group_206" data-name="Group 206" transform="translate(684.868 806.287)">
+                            <path id="Path_212" d="M729.887 833.945a4.744 4.744 0 1 1 4.745 4.745h-4.745z" fill="#fff" data-name="Path 212" transform="translate(-718.026 -817.34)"></path>
+                            <path id="Path_213" d="M716.462 822.893a4.744 4.744 0 1 1-9.489 0v-11.862a4.744 4.744 0 0 1 9.489 0z" fill="#fff" data-name="Path 213" transform="translate(-706.973 -806.287)"></path>
+                        </g>
+                        <g id="Group_207" data-name="Group 207" transform="translate(684.868 830.01)">
+                            <path id="Path_214" d="M711.718 875.029a4.744 4.744 0 1 1-4.745 4.744v-4.744z" fill="#fff" data-name="Path 214" transform="translate(-706.973 -863.168)"></path>
+                            <path id="Path_215" d="M711.718 861.6a4.744 4.744 0 1 1 0-9.489h11.861a4.744 4.744 0 0 1 0 9.489z" fill="#fff" data-name="Path 215" transform="translate(-706.973 -852.115)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://stackoverflow.com/questions/tagged/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="37.647" height="44.6" viewBox="0 0 37.647 44.6">
+                    <g id="Group_209" data-name="Group 209" transform="translate(-645.2 -975.455)">
+                        <path id="Path_216" d="M677.028 1043.1v-11.948h3.966v15.914H645.2v-15.914h3.966v11.948z" fill="#fff" data-name="Path 216" transform="translate(0 -27.014)"></path>
+                        <path id="Path_217" d="M661.012 1003.008l19.467 4.069.824-3.914-19.467-4.069zm2.575-9.27l18.025 8.395 1.648-3.605-18.025-8.446zm5-8.858l15.3 12.721 2.524-3.039-15.3-12.721zm9.888-9.425l-3.193 2.369 11.845 15.965 3.193-2.369zm-17.875 36.617h19.879v-3.966H660.6z" fill="#fff" data-name="Path 217" transform="translate(-7.469)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://twitter.com/ApacheAirflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="44.355" height="44.355" viewBox="0 0 44.355 44.355">
+                    <g id="Group_211" data-name="Group 211" transform="translate(-503 -1382.2)">
+                        <path id="Path_221" d="M541.811 1382.2h-33.267a5.546 5.546 0 0 0-5.544 5.544v33.266a5.547 5.547 0 0 0 5.544 5.545h33.267a5.546 5.546 0 0 0 5.544-5.545v-33.266a5.546 5.546 0 0 0-5.544-5.544zm-5.611 16.533c.011.244.011.488.011.732 0 7.507-5.722 16.178-16.179 16.178a16.173 16.173 0 0 1-8.7-2.539 10.92 10.92 0 0 0 1.353.078 11.4 11.4 0 0 0 7.064-2.44 5.685 5.685 0 0 1-5.311-3.947 5.725 5.725 0 0 0 2.561-.1 5.7 5.7 0 0 1-4.557-5.578v-.078a5.752 5.752 0 0 0 2.572.71 5.7 [...]
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA">
+                <svg xmlns="http://www.w3.org/2000/svg" width="49.594" height="34.941" viewBox="0 0 49.594 34.941">
+                    <path id="Path_223" d="M1124.557 1230a6.232 6.232 0 0 0-4.385-4.413c-3.867-1.043-19.376-1.043-19.376-1.043s-15.508 0-19.376 1.043a6.232 6.232 0 0 0-4.385 4.413c-1.036 3.893-1.036 12.014-1.036 12.014s0 8.122 1.036 12.015a6.232 6.232 0 0 0 4.385 4.413c3.867 1.043 19.376 1.043 19.376 1.043s15.509 0 19.376-1.043a6.232 6.232 0 0 0 4.385-4.413c1.036-3.893 1.036-12.015 1.036-12.015s.001-8.123-1.036-12.014zm-28.833 19.388v-14.748l12.962 7.374z" fill="#fff" data-name="Path 223 [...]
+                </svg>
+
+            </a>
+
+        </div>
+        
+
+        <div class="footer-section__media-section--button-with-text">
+            <span class="footer-section__media-section--text">Want to be a part of Apache Airflow?</span>
+            <a href="/community">
+
+                <button id="" class="btn-filled bodytext__medium--white ">Join community</button>
+
+            </a>
+        </div>
+        
+
+    </div>
+    <div class="footer-section footer-section__policies-section">
+        <div class="footer-section">
+            <span>© The Apache Software Foundation <script>document.write(new Date().getFullYear())</script></span>
+            <div class="footer-section__policies-section--policies">
+
+                <a href="https://www.apache.org/licenses/" class="footer-section__policies-section--policy-item">
+                    <span>License</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/sponsorship.html" class="footer-section__policies-section--policy-item">
+                    <span>Donate</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/thanks.html" class="footer-section__policies-section--policy-item">
+                    <span>Thanks</span>
+                </a>
+
+                <a href="https://www.apache.org/security/" class="footer-section__policies-section--policy-item">
+                    <span>Security</span>
+                </a>
+                
+
+            </div>
+        </div>
+        <span class="footer-section__policies-section--disclaimer">
+            Apache Airflow, Apache, Airflow, the Airflow logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.
+            All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.
+        </span>
+    </div>
+</footer>
+    <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+    <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
+    <script src="/external/js/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
+    <script src="/external/js/cdnjs.cloudflare.com-1.14.3-popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
+    <script src="/external/js/stackpath.bootstrapcdn.com-4.1.3-bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
+        <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+        <script src="../../../../_static/jquery.js"></script>
+        <script src="../../../../_static/underscore.js"></script>
+        <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../../../../_static/doctools.js"></script>
+        <script src="../../../../_static/sphinx_highlight.js"></script>
+        <script src="../../../../_static/clipboard.min.js"></script>
+        <script src="../../../../_static/copybutton.js"></script>
+        <script src="../../../../_static/js/globaltoc.js"></script>
+        <script src="../../../../_static/design-tabs.js"></script>
+        <script src="../../../../_static/gh-jira-links.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/apache-airflow/2.8.0/_api/airflow/decorators/external_python/index.html b/docs/apache-airflow/2.8.0/_api/airflow/decorators/external_python/index.html
new file mode 100644
index 00000000..26177aef
--- /dev/null
+++ b/docs/apache-airflow/2.8.0/_api/airflow/decorators/external_python/index.html
@@ -0,0 +1,971 @@
+
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<head>
+        <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+        <title>airflow.decorators.external_python &mdash; Airflow Documentation</title>
+    <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+            <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+            <link rel="index" title="Index" href="../../../../genindex.html" />
+            <link rel="search" title="Search" href="../../../../search.html" />
+            <link rel="next" title="airflow.decorators.python" href="../python/index.html" />
+            <link rel="prev" title="airflow.decorators.branch_virtualenv" href="../branch_virtualenv/index.html" />
+
+    <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/external_python/index.html" />
+
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+        /* We explicitly disable cookie tracking to avoid privacy issues */
+        _paq.push(['disableCookies']);
+        _paq.push(['trackPageView']);
+        _paq.push(['enableLinkTracking']);
+        (function() {
+        var u="https://analytics.apache.org/";
+        _paq.push(['setTrackerUrl', u+'matomo.php']);
+        _paq.push(['setSiteId', '13']);
+        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+        g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+
+    <!-- Scarf Telemetry Pixel -->
+    <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=7265a3c4-a6dd-4933-ba8b-9e3c13903c60" />
+    <!-- End Scarf Telemetry Pixel -->
+    
+</head><body class="td-section">
+    
+
+<header>
+    <nav class="js-navbar-scroll navbar">
+        <div class="navbar__icon-container">
+            <a href="/">
+                <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                    <defs>
+                        <clipPath id="clip-path">
+                            <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                        </clipPath>
+                    </defs>
+                    <g id="logo" transform="translate(-1305 -780.355)">
+                        <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                            <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178.258 [...]
+                                <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0zm-1 [...]
+                                <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482-.2h1 [...]
+                            </g>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+        </div>
+        <div class="desktop-only navbar__menu-container">
+
+            <div class="navbar__menu-content" id="main_navbar">
+
+                <div class="navbar__links-container">
+                    
+                        <a class="navbar__text-link" href="/community/">
+                            Community
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/meetups/">
+                            Meetups
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/docs/">
+                            Documentation
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/use-cases/">
+                            Use-cases
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/announcements/">
+                            Announcements
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/blog/">
+                            Blog
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/ecosystem/">
+                            Ecosystem
+                        </a>
+                    
+                </div>
+
+                
+
+            </div>
+
+        </div>
+        <div class="mobile-only navbar__drawer-container">
+            <button class="navbar__toggle-button" id="navbar-toggle-button">
+
+                <div id="hamburger-icon" class="navbar__toggle-button--icon visible">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="26" height="20" viewBox="0 0 26 20">
+                        <g id="Group_1294" data-name="Group 1294" transform="translate(-38.791 291)">
+                            <g id="Group_1291" data-name="Group 1291" transform="translate(39 -291)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="translate(39 -281.822)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                            <g id="Group_1293" data-name="Group 1293" transform="translate(39 -272.644)">
+                                <rect id="Rectangle_463" width="26" height="2" fill="#51504f" data-name="Rectangle 463" rx="1" transform="translate(-.209 -.356)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+                <div id="close-icon" class="navbar__toggle-button--icon">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                        <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                            <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+            </button>
+            <div class="navbar__drawer" id="navbar-drawer">
+                <div class="navbar__menu-content" id="main_navbar">
+
+                    <div class="navbar__links-container">
+                        
+                            <a class="navbar__text-link" href="/community/">
+                                Community
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/meetups/">
+                                Meetups
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/docs/">
+                                Documentation
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/use-cases/">
+                                Use-cases
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/announcements/">
+                                Announcements
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/blog/">
+                                Blog
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/ecosystem/">
+                                Ecosystem
+                            </a>
+                        
+
+                    </div>
+                    
+
+                </div>
+            </div>
+        </div>
+    </nav>
+
+</header>
+
+
+    <div class="roadmap container-fluid td-default base-layout">
+        
+        
+    <div class="content-drawer-wrapper">
+        <button class="content-drawer__toggle-button" id="content-open-button">
+
+            <div id="hamburger-icon" class="content-drawer__toggle-button--icon visible">
+                <svg xmlns="http://www.w3.org/2000/svg" width="20.005" height="13.879" viewBox="0 0 20.005 13.879">
+                    <g id="Group_1619" data-name="Group 1619" transform="translate(271.132 -418.872)">
+                        <g id="Group_1613" data-name="Group 1613" transform="translate(-266.229 431.045)">
+                            <path id="Path_1337" d="M-218.5 513.215h-14.583a.259.259 0 0 1-.259-.26.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.26z" fill="#51504f" data-name="Path 1337" transform="translate(233.345 -512.696)"></path>
+                        </g>
+                        <g id="Group_1614" data-name="Group 1614" transform="translate(-266.229 425.684)">
+                            <path id="Path_1338" d="M-218.5 471.9h-14.583a.259.259 0 0 1-.259-.26.26.26 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.26.26 0 0 1-.259.26z" fill="#51504f" data-name="Path 1338" transform="translate(233.345 -471.376)"></path>
+                        </g>
+                        <g id="Group_1615" data-name="Group 1615" transform="translate(-266.229 420.323)">
+                            <path id="Path_1339" d="M-218.5 430.574h-14.583a.259.259 0 0 1-.259-.259.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.259z" fill="#51504f" data-name="Path 1339" transform="translate(233.345 -430.055)"></path>
+                        </g>
+                        <g id="Group_1616" data-name="Group 1616" transform="translate(-271.132 429.814)">
+                            <path id="Path_1340" d="M-269.663 506.145a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1340" transform="translate(271.132 -503.208)"></path>
+                        </g>
+                        <g id="Group_1617" data-name="Group 1617" transform="translate(-271.132 424.556)">
+                            <path id="Path_1341" d="M-269.663 465.62a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.952z" fill="#51504f" data-name="Path 1341" transform="translate(271.132 -462.683)"></path>
+                        </g>
+                        <g id="Group_1618" data-name="Group 1618" transform="translate(-271.132 418.872)">
+                            <path id="Path_1342" d="M-269.663 421.809a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1342" transform="translate(271.132 -418.872)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+                <span class="bodytext__mobile--brownish-grey">Content</span>
+            </div>
+
+        </button>
+        <nav id="content-navbar" class="navbar navbar--hidden">
+            <div class="navbar__icon-container">
+                <a href="/">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                        <defs>
+                            <clipPath id="clip-path">
+                                <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                            </clipPath>
+                        </defs>
+                        <g id="logo" transform="translate(-1305 -780.355)">
+                            <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                                <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                    <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                    <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                    <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                    <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                    <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                    <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                    <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                    <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                    <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                    <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178 [...]
+                                    <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0 [...]
+                                    <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482- [...]
+                                </g>
+                            </g>
+                        </g>
+                    </svg>
+
+                </a>
+            </div>
+
+            <div id="content-close-button">
+                <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                    <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                        <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                            <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                        </g>
+                        <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                            <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                        </g>
+                    </g>
+                </svg>
+
+            </div>
+
+        </nav>
+        <div class="content-drawer-container" id="content-drawer">
+            <div class="content-drawer">
+                <div class="td-sidebar">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+                </div>
+            </div>
+        </div>
+    </div>
+        
+        <div class="d-flex">
+            
+            
+    <div class="td-sidebar desktop-only d-print-none">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+    </div>
+            
+
+            
+
+            <main class="col-12 col-md-9 col-xl-8" role="main">
+                
+
+
+    
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation" class="d-none d-md-block d-print-none">
+
+    <ul class="breadcrumb">
+        
+            <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+            
+                <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
+            
+                <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
+            
+            <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+        
+    </ul>
+</div>
+                
+                <div class="rst-content">
+                    <div class="document">
+                            <div class="documentwrapper">
+                                <div class="bodywrapper">
+                                    <div class="body" role="main">
+                                        
+  <div class="section" id="module-airflow.decorators.external_python">
+<span id="airflow-decorators-external-python"></span><h1><a class="reference internal" href="#module-airflow.decorators.external_python" title="airflow.decorators.external_python"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a><a class="headerlink" href="#module-airflow.decorators.external_python" title="Permalink to this heading">¶</a></h1>
+</div>
+
+
+    <div class="pager" role="navigation" aria-label="related navigation">
+            <a rel="prev" title="airflow.decorators.branch_virtualenv" href="../branch_virtualenv/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
+            </a>
+            <a rel="next" title="airflow.decorators.python" href="../python/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+            </a>
+    </div>
+                                    </div>
+
+                                </div>
+                            </div>
+                    </div>
+                </div>
+    <div class="rating-container">
+        <p class="bodytext__medium--greyish-brown font-weight-500">Was this entry helpful?</p>
+        <div class="rating">
+
+            <div id="rate-star-5" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-4" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-3" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-2" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-1" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+        </div>
+    </div>
+                
+            </main>
+            
+
+            
+            
+    <nav class="wy-nav-side-toc">
+        <div class="wy-menu-vertical">
+            <ul>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+</ul>
+
+        </div>
+    </nav>
+            
+        </div>
+        
+
+
+    
+
+
+
+
+
+
+
+    
+        
+            
+        
+        <div class="base-layout--button">
+            <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/external_python/index.rst" rel="nofollow">
+
+                <button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
+                        <path d="M15.379 0a15.381 15.381 0 00-4.86 29.974c.769.141 1.05-.334 1.05-.741 0-.365-.013-1.332-.021-2.616-4.278.929-5.181-2.062-5.181-2.062a4.071 4.071 0 00-1.708-2.25c-1.4-.954.106-.935.106-.935a3.231 3.231 0 012.356 1.585 3.274 3.274 0 004.476 1.278 3.287 3.287 0 01.976-2.056c-3.415-.388-7.005-1.707-7.005-7.6a5.947 5.947 0 011.583-4.127 5.53 5.53 0 01.151-4.07s1.291-.413 4.229 1.577a14.577 14.577 0 017.7 0c2.936-1.99 4.225-1.577 4.225-1.577a5.523 5.523 0 01.15 [...]
+                    </svg>
+
+                    <span class="bodytext__medium--brownish-grey">Suggest a change on this page</span>
+                </button>
+            </a>
+        </div>
+    
+
+    </div>
+
+
+    
+
+<footer>
+    <div class="footer-section footer-section__media-section">
+        <div class="d-flex align-items-center">
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="46.14" height="45" viewBox="0 0 46.14 45">
+                    <path id="Path_207" d="M228.962 1078.578a23.072 23.072 0 0 0-7.29 44.96c1.154.212 1.574-.5 1.574-1.112 0-.548-.02-2-.031-3.924-6.417 1.394-7.771-3.093-7.771-3.093a6.109 6.109 0 0 0-2.562-3.375c-2.095-1.431.159-1.4.159-1.4a4.846 4.846 0 0 1 3.533 2.377c2.058 3.525 5.4 2.507 6.714 1.917a4.926 4.926 0 0 1 1.464-3.084c-5.123-.582-10.508-2.562-10.508-11.4a8.919 8.919 0 0 1 2.374-6.191 8.3 8.3 0 0 1 .226-6.105s1.937-.62 6.344 2.365a21.857 21.857 0 0 1 11.551 0c4.4-2.985 6.3 [...]
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow/issues">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45" height="45" viewBox="0 0 45 45">
+                    <g id="Group_210" data-name="Group 210" transform="translate(-339.789 -1315.282)">
+                        <path id="Path_218" d="M394.82 1315.282h-21.671a9.784 9.784 0 0 0 9.784 9.778h3.986v3.857a9.784 9.784 0 0 0 9.784 9.771v-21.523a1.884 1.884 0 0 0-1.883-1.883z" fill="#fff" data-name="Path 218" transform="translate(-11.914)"></path>
+                        <path id="Path_219" d="M378.14 1332.072h-21.671a9.778 9.778 0 0 0 9.778 9.778h4.018v3.857a9.784 9.784 0 0 0 9.752 9.778v-21.536a1.877 1.877 0 0 0-1.877-1.877z" fill="#fff" data-name="Path 219" transform="translate(-5.957 -5.996)"></path>
+                        <path id="Path_220" d="M361.46 1348.862h-21.671a9.778 9.778 0 0 0 9.778 9.778h3.992v3.857a9.778 9.778 0 0 0 9.778 9.778v-21.529a1.883 1.883 0 0 0-1.877-1.884z" fill="#fff" data-name="Path 220" transform="translate(0 -11.993)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://s.apache.org/airflow-slack">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45.073" height="45.073" viewBox="0 0 45.073 45.073">
+                    <g id="Group_208" data-name="Group 208" transform="translate(-661.145 -806.287)">
+                        <g id="Group_204" data-name="Group 204" transform="translate(661.145 830.01)">
+                            <path id="Path_208" d="M670.634 856.859a4.744 4.744 0 1 1-4.744-4.744h4.744z" fill="#fff" data-name="Path 208" transform="translate(-661.145 -852.115)"></path>
+                            <path id="Path_209" d="M684.059 856.859a4.744 4.744 0 0 1 9.489 0v11.861a4.744 4.744 0 1 1-9.489 0z" fill="#fff" data-name="Path 209" transform="translate(-672.198 -852.115)"></path>
+                        </g>
+                        <g id="Group_205" data-name="Group 205" transform="translate(661.145 806.287)">
+                            <path id="Path_210" d="M688.8 815.776a4.744 4.744 0 1 1 4.744-4.745v4.745z" fill="#fff" data-name="Path 210" transform="translate(-672.198 -806.287)"></path>
+                            <path id="Path_211" d="M677.751 829.2a4.744 4.744 0 0 1 0 9.489H665.89a4.744 4.744 0 1 1 0-9.489z" fill="#fff" data-name="Path 211" transform="translate(-661.145 -817.34)"></path>
+                        </g>
+                        <g id="Group_206" data-name="Group 206" transform="translate(684.868 806.287)">
+                            <path id="Path_212" d="M729.887 833.945a4.744 4.744 0 1 1 4.745 4.745h-4.745z" fill="#fff" data-name="Path 212" transform="translate(-718.026 -817.34)"></path>
+                            <path id="Path_213" d="M716.462 822.893a4.744 4.744 0 1 1-9.489 0v-11.862a4.744 4.744 0 0 1 9.489 0z" fill="#fff" data-name="Path 213" transform="translate(-706.973 -806.287)"></path>
+                        </g>
+                        <g id="Group_207" data-name="Group 207" transform="translate(684.868 830.01)">
+                            <path id="Path_214" d="M711.718 875.029a4.744 4.744 0 1 1-4.745 4.744v-4.744z" fill="#fff" data-name="Path 214" transform="translate(-706.973 -863.168)"></path>
+                            <path id="Path_215" d="M711.718 861.6a4.744 4.744 0 1 1 0-9.489h11.861a4.744 4.744 0 0 1 0 9.489z" fill="#fff" data-name="Path 215" transform="translate(-706.973 -852.115)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://stackoverflow.com/questions/tagged/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="37.647" height="44.6" viewBox="0 0 37.647 44.6">
+                    <g id="Group_209" data-name="Group 209" transform="translate(-645.2 -975.455)">
+                        <path id="Path_216" d="M677.028 1043.1v-11.948h3.966v15.914H645.2v-15.914h3.966v11.948z" fill="#fff" data-name="Path 216" transform="translate(0 -27.014)"></path>
+                        <path id="Path_217" d="M661.012 1003.008l19.467 4.069.824-3.914-19.467-4.069zm2.575-9.27l18.025 8.395 1.648-3.605-18.025-8.446zm5-8.858l15.3 12.721 2.524-3.039-15.3-12.721zm9.888-9.425l-3.193 2.369 11.845 15.965 3.193-2.369zm-17.875 36.617h19.879v-3.966H660.6z" fill="#fff" data-name="Path 217" transform="translate(-7.469)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://twitter.com/ApacheAirflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="44.355" height="44.355" viewBox="0 0 44.355 44.355">
+                    <g id="Group_211" data-name="Group 211" transform="translate(-503 -1382.2)">
+                        <path id="Path_221" d="M541.811 1382.2h-33.267a5.546 5.546 0 0 0-5.544 5.544v33.266a5.547 5.547 0 0 0 5.544 5.545h33.267a5.546 5.546 0 0 0 5.544-5.545v-33.266a5.546 5.546 0 0 0-5.544-5.544zm-5.611 16.533c.011.244.011.488.011.732 0 7.507-5.722 16.178-16.179 16.178a16.173 16.173 0 0 1-8.7-2.539 10.92 10.92 0 0 0 1.353.078 11.4 11.4 0 0 0 7.064-2.44 5.685 5.685 0 0 1-5.311-3.947 5.725 5.725 0 0 0 2.561-.1 5.7 5.7 0 0 1-4.557-5.578v-.078a5.752 5.752 0 0 0 2.572.71 5.7 [...]
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA">
+                <svg xmlns="http://www.w3.org/2000/svg" width="49.594" height="34.941" viewBox="0 0 49.594 34.941">
+                    <path id="Path_223" d="M1124.557 1230a6.232 6.232 0 0 0-4.385-4.413c-3.867-1.043-19.376-1.043-19.376-1.043s-15.508 0-19.376 1.043a6.232 6.232 0 0 0-4.385 4.413c-1.036 3.893-1.036 12.014-1.036 12.014s0 8.122 1.036 12.015a6.232 6.232 0 0 0 4.385 4.413c3.867 1.043 19.376 1.043 19.376 1.043s15.509 0 19.376-1.043a6.232 6.232 0 0 0 4.385-4.413c1.036-3.893 1.036-12.015 1.036-12.015s.001-8.123-1.036-12.014zm-28.833 19.388v-14.748l12.962 7.374z" fill="#fff" data-name="Path 223 [...]
+                </svg>
+
+            </a>
+
+        </div>
+        
+
+        <div class="footer-section__media-section--button-with-text">
+            <span class="footer-section__media-section--text">Want to be a part of Apache Airflow?</span>
+            <a href="/community">
+
+                <button id="" class="btn-filled bodytext__medium--white ">Join community</button>
+
+            </a>
+        </div>
+        
+
+    </div>
+    <div class="footer-section footer-section__policies-section">
+        <div class="footer-section">
+            <span>© The Apache Software Foundation <script>document.write(new Date().getFullYear())</script></span>
+            <div class="footer-section__policies-section--policies">
+
+                <a href="https://www.apache.org/licenses/" class="footer-section__policies-section--policy-item">
+                    <span>License</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/sponsorship.html" class="footer-section__policies-section--policy-item">
+                    <span>Donate</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/thanks.html" class="footer-section__policies-section--policy-item">
+                    <span>Thanks</span>
+                </a>
+
+                <a href="https://www.apache.org/security/" class="footer-section__policies-section--policy-item">
+                    <span>Security</span>
+                </a>
+                
+
+            </div>
+        </div>
+        <span class="footer-section__policies-section--disclaimer">
+            Apache Airflow, Apache, Airflow, the Airflow logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.
+            All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.
+        </span>
+    </div>
+</footer>
+    <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+    <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
+    <script src="/external/js/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
+    <script src="/external/js/cdnjs.cloudflare.com-1.14.3-popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
+    <script src="/external/js/stackpath.bootstrapcdn.com-4.1.3-bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
+        <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+        <script src="../../../../_static/jquery.js"></script>
+        <script src="../../../../_static/underscore.js"></script>
+        <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../../../../_static/doctools.js"></script>
+        <script src="../../../../_static/sphinx_highlight.js"></script>
+        <script src="../../../../_static/clipboard.min.js"></script>
+        <script src="../../../../_static/copybutton.js"></script>
+        <script src="../../../../_static/js/globaltoc.js"></script>
+        <script src="../../../../_static/design-tabs.js"></script>
+        <script src="../../../../_static/gh-jira-links.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/apache-airflow/2.8.0/_api/airflow/decorators/index.html b/docs/apache-airflow/2.8.0/_api/airflow/decorators/index.html
new file mode 100644
index 00000000..9e43654e
--- /dev/null
+++ b/docs/apache-airflow/2.8.0/_api/airflow/decorators/index.html
@@ -0,0 +1,1215 @@
+
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<head>
+        <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+        <title>airflow.decorators &mdash; Airflow Documentation</title>
+    <link rel="stylesheet" href="../../../_static/_gen/css/main.min.css" type="text/css" />
+            <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css" />
+            <link rel="stylesheet" type="text/css" href="../../../_static/_gen/css/main.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../_static/copybutton.css" />
+            <link rel="stylesheet" type="text/css" href="../../../_static/_gen/css/main-custom.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../_static/graphviz.css" />
+            <link rel="stylesheet" type="text/css" href="../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../_static/custom.css" />
+            <link rel="shortcut icon" href="../../../_static/pin_32.png"/>
+            <link rel="index" title="Index" href="../../../genindex.html" />
+            <link rel="search" title="Search" href="../../../search.html" />
+            <link rel="next" title="airflow.decorators.base" href="base/index.html" />
+            <link rel="prev" title="airflow.secrets.metastore" href="../secrets/metastore/index.html" />
+
+    <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/index.html" />
+
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+        /* We explicitly disable cookie tracking to avoid privacy issues */
+        _paq.push(['disableCookies']);
+        _paq.push(['trackPageView']);
+        _paq.push(['enableLinkTracking']);
+        (function() {
+        var u="https://analytics.apache.org/";
+        _paq.push(['setTrackerUrl', u+'matomo.php']);
+        _paq.push(['setSiteId', '13']);
+        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+        g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+
+    <!-- Scarf Telemetry Pixel -->
+    <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=7265a3c4-a6dd-4933-ba8b-9e3c13903c60" />
+    <!-- End Scarf Telemetry Pixel -->
+    
+</head><body class="td-section">
+    
+
+<header>
+    <nav class="js-navbar-scroll navbar">
+        <div class="navbar__icon-container">
+            <a href="/">
+                <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                    <defs>
+                        <clipPath id="clip-path">
+                            <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                        </clipPath>
+                    </defs>
+                    <g id="logo" transform="translate(-1305 -780.355)">
+                        <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                            <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178.258 [...]
+                                <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0zm-1 [...]
+                                <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482-.2h1 [...]
+                            </g>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+        </div>
+        <div class="desktop-only navbar__menu-container">
+
+            <div class="navbar__menu-content" id="main_navbar">
+
+                <div class="navbar__links-container">
+                    
+                        <a class="navbar__text-link" href="/community/">
+                            Community
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/meetups/">
+                            Meetups
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/docs/">
+                            Documentation
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/use-cases/">
+                            Use-cases
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/announcements/">
+                            Announcements
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/blog/">
+                            Blog
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/ecosystem/">
+                            Ecosystem
+                        </a>
+                    
+                </div>
+
+                
+
+            </div>
+
+        </div>
+        <div class="mobile-only navbar__drawer-container">
+            <button class="navbar__toggle-button" id="navbar-toggle-button">
+
+                <div id="hamburger-icon" class="navbar__toggle-button--icon visible">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="26" height="20" viewBox="0 0 26 20">
+                        <g id="Group_1294" data-name="Group 1294" transform="translate(-38.791 291)">
+                            <g id="Group_1291" data-name="Group 1291" transform="translate(39 -291)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="translate(39 -281.822)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                            <g id="Group_1293" data-name="Group 1293" transform="translate(39 -272.644)">
+                                <rect id="Rectangle_463" width="26" height="2" fill="#51504f" data-name="Rectangle 463" rx="1" transform="translate(-.209 -.356)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+                <div id="close-icon" class="navbar__toggle-button--icon">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                        <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                            <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+            </button>
+            <div class="navbar__drawer" id="navbar-drawer">
+                <div class="navbar__menu-content" id="main_navbar">
+
+                    <div class="navbar__links-container">
+                        
+                            <a class="navbar__text-link" href="/community/">
+                                Community
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/meetups/">
+                                Meetups
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/docs/">
+                                Documentation
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/use-cases/">
+                                Use-cases
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/announcements/">
+                                Announcements
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/blog/">
+                                Blog
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/ecosystem/">
+                                Ecosystem
+                            </a>
+                        
+
+                    </div>
+                    
+
+                </div>
+            </div>
+        </div>
+    </nav>
+
+</header>
+
+
+    <div class="roadmap container-fluid td-default base-layout">
+        
+        
+    <div class="content-drawer-wrapper">
+        <button class="content-drawer__toggle-button" id="content-open-button">
+
+            <div id="hamburger-icon" class="content-drawer__toggle-button--icon visible">
+                <svg xmlns="http://www.w3.org/2000/svg" width="20.005" height="13.879" viewBox="0 0 20.005 13.879">
+                    <g id="Group_1619" data-name="Group 1619" transform="translate(271.132 -418.872)">
+                        <g id="Group_1613" data-name="Group 1613" transform="translate(-266.229 431.045)">
+                            <path id="Path_1337" d="M-218.5 513.215h-14.583a.259.259 0 0 1-.259-.26.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.26z" fill="#51504f" data-name="Path 1337" transform="translate(233.345 -512.696)"></path>
+                        </g>
+                        <g id="Group_1614" data-name="Group 1614" transform="translate(-266.229 425.684)">
+                            <path id="Path_1338" d="M-218.5 471.9h-14.583a.259.259 0 0 1-.259-.26.26.26 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.26.26 0 0 1-.259.26z" fill="#51504f" data-name="Path 1338" transform="translate(233.345 -471.376)"></path>
+                        </g>
+                        <g id="Group_1615" data-name="Group 1615" transform="translate(-266.229 420.323)">
+                            <path id="Path_1339" d="M-218.5 430.574h-14.583a.259.259 0 0 1-.259-.259.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.259z" fill="#51504f" data-name="Path 1339" transform="translate(233.345 -430.055)"></path>
+                        </g>
+                        <g id="Group_1616" data-name="Group 1616" transform="translate(-271.132 429.814)">
+                            <path id="Path_1340" d="M-269.663 506.145a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1340" transform="translate(271.132 -503.208)"></path>
+                        </g>
+                        <g id="Group_1617" data-name="Group 1617" transform="translate(-271.132 424.556)">
+                            <path id="Path_1341" d="M-269.663 465.62a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.952z" fill="#51504f" data-name="Path 1341" transform="translate(271.132 -462.683)"></path>
+                        </g>
+                        <g id="Group_1618" data-name="Group 1618" transform="translate(-271.132 418.872)">
+                            <path id="Path_1342" d="M-269.663 421.809a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1342" transform="translate(271.132 -418.872)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+                <span class="bodytext__mobile--brownish-grey">Content</span>
+            </div>
+
+        </button>
+        <nav id="content-navbar" class="navbar navbar--hidden">
+            <div class="navbar__icon-container">
+                <a href="/">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                        <defs>
+                            <clipPath id="clip-path">
+                                <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                            </clipPath>
+                        </defs>
+                        <g id="logo" transform="translate(-1305 -780.355)">
+                            <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                                <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                    <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                    <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                    <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                    <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                    <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                    <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                    <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                    <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                    <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                    <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178 [...]
+                                    <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0 [...]
+                                    <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482- [...]
+                                </g>
+                            </g>
+                        </g>
+                    </svg>
+
+                </a>
+            </div>
+
+            <div id="content-close-button">
+                <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                    <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                        <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                            <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                        </g>
+                        <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                            <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                        </g>
+                    </g>
+                </svg>
+
+            </div>
+
+        </nav>
+        <div class="content-drawer-container" id="content-drawer">
+            <div class="content-drawer">
+                <div class="td-sidebar">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul>
+<li class="toctree-l5"><a class="reference internal" href="#submodules">Submodules</a><ul>
+<li class="toctree-l6"><a class="reference internal" href="base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="#package-contents">Package Contents</a><ul>
+<li class="toctree-l6"><a class="reference internal" href="#classes">Classes</a></li>
+<li class="toctree-l6"><a class="reference internal" href="#functions">Functions</a></li>
+<li class="toctree-l6"><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection</span></code></a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.virtualenv</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.external_python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_virtualenv</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_external_python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.short_circuit"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.short_circuit</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.sensor"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.sensor</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__call__</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__getattr__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__getattr__()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.task"><code class="docutils literal notranslate"><span class="pre">task</span></code></a></li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.setup"><code class="docutils literal notranslate"><span class="pre">setup</span></code></a></li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.teardown"><code class="docutils literal notranslate"><span class="pre">teardown</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+                </div>
+            </div>
+        </div>
+    </div>
+        
+        <div class="d-flex">
+            
+            
+    <div class="td-sidebar desktop-only d-print-none">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul>
+<li class="toctree-l5"><a class="reference internal" href="#submodules">Submodules</a><ul>
+<li class="toctree-l6"><a class="reference internal" href="base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="#package-contents">Package Contents</a><ul>
+<li class="toctree-l6"><a class="reference internal" href="#classes">Classes</a></li>
+<li class="toctree-l6"><a class="reference internal" href="#functions">Functions</a></li>
+<li class="toctree-l6"><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection</span></code></a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.virtualenv</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.external_python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_virtualenv</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_external_python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.short_circuit"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.short_circuit</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.sensor"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.sensor</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__call__</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__getattr__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__getattr__()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.task"><code class="docutils literal notranslate"><span class="pre">task</span></code></a></li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.setup"><code class="docutils literal notranslate"><span class="pre">setup</span></code></a></li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.teardown"><code class="docutils literal notranslate"><span class="pre">teardown</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+    </div>
+            
+
+            
+
+            <main class="col-12 col-md-9 col-xl-8" role="main">
+                
+
+
+    
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation" class="d-none d-md-block d-print-none">
+
+    <ul class="breadcrumb">
+        
+            <li class="breadcrumb-item"><a href="../../../index.html" class="icon icon-home"> Home</a></li>
+            
+                <li class="breadcrumb-item"><a href="../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
+            
+            <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
+        
+    </ul>
+</div>
+                
+                <div class="rst-content">
+                    <div class="document">
+                            <div class="documentwrapper">
+                                <div class="bodywrapper">
+                                    <div class="body" role="main">
+                                        
+  <div class="section" id="module-airflow.decorators">
+<span id="airflow-decorators"></span><h1><a class="reference internal" href="#module-airflow.decorators" title="airflow.decorators"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><a class="headerlink" href="#module-airflow.decorators" title="Permalink to this heading">¶</a></h1>
+<div class="section" id="submodules">
+<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this heading">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</div>
+</div>
+<div class="section" id="package-contents">
+<h2>Package Contents<a class="headerlink" href="#package-contents" title="Permalink to this heading">¶</a></h2>
+<div class="section" id="classes">
+<h3>Classes<a class="headerlink" href="#classes" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">TaskDecorator</span></code></p></td>
+<td><p>Type declaration for <code class="docutils literal notranslate"><span class="pre">task_decorator_factory</span></code> return type.</p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection" title="airflow.decorators.TaskDecoratorCollection"><code class="xref py py-obj docutils literal notranslate"><span class="pre">TaskDecoratorCollection</span></code></a></p></td>
+<td><p>Implementation to provide the <code class="docutils literal notranslate"><span class="pre">&#64;task</span></code> syntax.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section" id="functions">
+<h3>Functions<a class="headerlink" href="#functions" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_external_python_task</span></code>([python_callable, ...])</p></td>
+<td><p>Wrap a python function into a BranchExternalPythonOperator.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a python function into a BranchPythonOperator.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_virtualenv_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a python function into a BranchPythonVirtualenvOperator.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">external_python_task</span></code>([python, python_callable, ...])</p></td>
+<td><p>Wrap a callable into an Airflow operator to run via a Python virtual environment.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">python_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a function into an Airflow operator.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">virtualenv_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a callable into an Airflow operator to run via a Python virtual environment.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">sensor_task</span></code>([python_callable])</p></td>
+<td><p>Wrap a function into an Airflow operator.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">short_circuit_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a function into an ShortCircuitOperator.</p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="task_group/index.html#module-airflow.decorators.task_group" title="airflow.decorators.task_group"><code class="xref py py-obj docutils literal notranslate"><span class="pre">task_group</span></code></a></p></td>
+<td><p>Implements the <code class="docutils literal notranslate"><span class="pre">&#64;task_group</span></code> function decorator.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">dag</span></code>([dag_id, description, schedule, ...])</p></td>
+<td><p>Python dag decorator which wraps a function into an Airflow DAG.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section" id="attributes">
+<h3>Attributes<a class="headerlink" href="#attributes" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.task" title="airflow.decorators.task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">task</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#airflow.decorators.setup" title="airflow.decorators.setup"><code class="xref py py-obj docutils literal notranslate"><span class="pre">setup</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.teardown" title="airflow.decorators.teardown"><code class="xref py py-obj docutils literal notranslate"><span class="pre">teardown</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+</tbody>
+</table>
+<dl class="py class">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection">
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">airflow.decorators.</span></span><span class="sig-name descname"><span class="pre">TaskDecoratorCollection</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecorat [...]
+<dd><p>Implementation to provide the <code class="docutils literal notranslate"><span class="pre">&#64;task</span></code> syntax.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.python">
+<span class="sig-name descname"><span class="pre">python</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.python"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.python" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.virtualenv">
+<span class="sig-name descname"><span class="pre">virtualenv</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.virtualenv"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.virtualenv" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.external_python">
+<span class="sig-name descname"><span class="pre">external_python</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.external_python"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.external_python" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.branch">
+<span class="sig-name descname"><span class="pre">branch</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.branch"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.branch" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.branch_virtualenv">
+<span class="sig-name descname"><span class="pre">branch_virtualenv</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.branch_virtualenv"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.branch_virtualenv" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.branch_external_python">
+<span class="sig-name descname"><span class="pre">branch_external_python</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.branch_external_python"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.branch_external_python" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.short_circuit">
+<span class="sig-name descname"><span class="pre">short_circuit</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.short_circuit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.short_circuit" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.sensor">
+<span class="sig-name descname"><span class="pre">sensor</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.sensor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.sensor" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.__call__">
+<span class="sig-name descname"><span class="pre">__call__</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Any</span></em><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.__call__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.__call__" title="Permalink to this de [...]
+<dd></dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.__getattr__">
+<span class="sig-name descname"><span class="pre">__getattr__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.__getattr__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.__getattr__" ti [...]
+<dd><p>Dynamically get provider-registered task decorators, e.g. <code class="docutils literal notranslate"><span class="pre">&#64;task.docker</span></code>.</p>
+<dl class="field-list simple">
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py data">
+<dt class="sig sig-object py" id="airflow.decorators.task">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.</span></span><span class="sig-name descname"><span class="pre">task</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#task"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.task" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py data">
+<dt class="sig sig-object py" id="airflow.decorators.setup">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.</span></span><span class="sig-name descname"><span class="pre">setup</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Callable</span></em><a class="reference internal" href="../../../_modules/airflow/decorators.html#setup"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decora [...]
+<dd></dd></dl>
+
+<dl class="py data">
+<dt class="sig sig-object py" id="airflow.decorators.teardown">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.</span></span><span class="sig-name descname"><span class="pre">teardown</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Callable</span></em><a class="reference internal" href="../../../_modules/airflow/decorators.html#teardown"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow. [...]
+<dd></dd></dl>
+
+</div>
+</div>
+</div>
+
+
+    <div class="pager" role="navigation" aria-label="related navigation">
+            <a rel="prev" title="airflow.secrets.metastore" href="../secrets/metastore/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
+            </a>
+            <a rel="next" title="airflow.decorators.base" href="base/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+            </a>
+    </div>
+                                    </div>
+
+                                </div>
+                            </div>
+                    </div>
+                </div>
+    <div class="rating-container">
+        <p class="bodytext__medium--greyish-brown font-weight-500">Was this entry helpful?</p>
+        <div class="rating">
+
+            <div id="rate-star-5" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-4" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-3" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-2" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-1" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+        </div>
+    </div>
+                
+            </main>
+            
+
+            
+            
+    <nav class="wy-nav-side-toc">
+        <div class="wy-menu-vertical">
+            <ul>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul>
+<li><a class="reference internal" href="#submodules">Submodules</a></li>
+<li><a class="reference internal" href="#package-contents">Package Contents</a><ul>
+<li><a class="reference internal" href="#classes">Classes</a></li>
+<li><a class="reference internal" href="#functions">Functions</a></li>
+<li><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection</span></code></a><ul>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.python</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.virtualenv</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.external_python</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_virtualenv</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_external_python</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.short_circuit"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.short_circuit</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.sensor"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.sensor</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__call__</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__getattr__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__getattr__()</span></code></a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#airflow.decorators.task"><code class="docutils literal notranslate"><span class="pre">task</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.setup"><code class="docutils literal notranslate"><span class="pre">setup</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.teardown"><code class="docutils literal notranslate"><span class="pre">teardown</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+        </div>
+    </nav>
+            
+        </div>
+        
+
+
+    
+
+
+
+
+
+
+
+    
+        
+            
+        
+        <div class="base-layout--button">
+            <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/index.rst" rel="nofollow">
+
+                <button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
+                        <path d="M15.379 0a15.381 15.381 0 00-4.86 29.974c.769.141 1.05-.334 1.05-.741 0-.365-.013-1.332-.021-2.616-4.278.929-5.181-2.062-5.181-2.062a4.071 4.071 0 00-1.708-2.25c-1.4-.954.106-.935.106-.935a3.231 3.231 0 012.356 1.585 3.274 3.274 0 004.476 1.278 3.287 3.287 0 01.976-2.056c-3.415-.388-7.005-1.707-7.005-7.6a5.947 5.947 0 011.583-4.127 5.53 5.53 0 01.151-4.07s1.291-.413 4.229 1.577a14.577 14.577 0 017.7 0c2.936-1.99 4.225-1.577 4.225-1.577a5.523 5.523 0 01.15 [...]
+                    </svg>
+
+                    <span class="bodytext__medium--brownish-grey">Suggest a change on this page</span>
+                </button>
+            </a>
+        </div>
+    
+
+    </div>
+
+
+    
+
+<footer>
+    <div class="footer-section footer-section__media-section">
+        <div class="d-flex align-items-center">
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="46.14" height="45" viewBox="0 0 46.14 45">
+                    <path id="Path_207" d="M228.962 1078.578a23.072 23.072 0 0 0-7.29 44.96c1.154.212 1.574-.5 1.574-1.112 0-.548-.02-2-.031-3.924-6.417 1.394-7.771-3.093-7.771-3.093a6.109 6.109 0 0 0-2.562-3.375c-2.095-1.431.159-1.4.159-1.4a4.846 4.846 0 0 1 3.533 2.377c2.058 3.525 5.4 2.507 6.714 1.917a4.926 4.926 0 0 1 1.464-3.084c-5.123-.582-10.508-2.562-10.508-11.4a8.919 8.919 0 0 1 2.374-6.191 8.3 8.3 0 0 1 .226-6.105s1.937-.62 6.344 2.365a21.857 21.857 0 0 1 11.551 0c4.4-2.985 6.3 [...]
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow/issues">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45" height="45" viewBox="0 0 45 45">
+                    <g id="Group_210" data-name="Group 210" transform="translate(-339.789 -1315.282)">
+                        <path id="Path_218" d="M394.82 1315.282h-21.671a9.784 9.784 0 0 0 9.784 9.778h3.986v3.857a9.784 9.784 0 0 0 9.784 9.771v-21.523a1.884 1.884 0 0 0-1.883-1.883z" fill="#fff" data-name="Path 218" transform="translate(-11.914)"></path>
+                        <path id="Path_219" d="M378.14 1332.072h-21.671a9.778 9.778 0 0 0 9.778 9.778h4.018v3.857a9.784 9.784 0 0 0 9.752 9.778v-21.536a1.877 1.877 0 0 0-1.877-1.877z" fill="#fff" data-name="Path 219" transform="translate(-5.957 -5.996)"></path>
+                        <path id="Path_220" d="M361.46 1348.862h-21.671a9.778 9.778 0 0 0 9.778 9.778h3.992v3.857a9.778 9.778 0 0 0 9.778 9.778v-21.529a1.883 1.883 0 0 0-1.877-1.884z" fill="#fff" data-name="Path 220" transform="translate(0 -11.993)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://s.apache.org/airflow-slack">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45.073" height="45.073" viewBox="0 0 45.073 45.073">
+                    <g id="Group_208" data-name="Group 208" transform="translate(-661.145 -806.287)">
+                        <g id="Group_204" data-name="Group 204" transform="translate(661.145 830.01)">
+                            <path id="Path_208" d="M670.634 856.859a4.744 4.744 0 1 1-4.744-4.744h4.744z" fill="#fff" data-name="Path 208" transform="translate(-661.145 -852.115)"></path>
+                            <path id="Path_209" d="M684.059 856.859a4.744 4.744 0 0 1 9.489 0v11.861a4.744 4.744 0 1 1-9.489 0z" fill="#fff" data-name="Path 209" transform="translate(-672.198 -852.115)"></path>
+                        </g>
+                        <g id="Group_205" data-name="Group 205" transform="translate(661.145 806.287)">
+                            <path id="Path_210" d="M688.8 815.776a4.744 4.744 0 1 1 4.744-4.745v4.745z" fill="#fff" data-name="Path 210" transform="translate(-672.198 -806.287)"></path>
+                            <path id="Path_211" d="M677.751 829.2a4.744 4.744 0 0 1 0 9.489H665.89a4.744 4.744 0 1 1 0-9.489z" fill="#fff" data-name="Path 211" transform="translate(-661.145 -817.34)"></path>
+                        </g>
+                        <g id="Group_206" data-name="Group 206" transform="translate(684.868 806.287)">
+                            <path id="Path_212" d="M729.887 833.945a4.744 4.744 0 1 1 4.745 4.745h-4.745z" fill="#fff" data-name="Path 212" transform="translate(-718.026 -817.34)"></path>
+                            <path id="Path_213" d="M716.462 822.893a4.744 4.744 0 1 1-9.489 0v-11.862a4.744 4.744 0 0 1 9.489 0z" fill="#fff" data-name="Path 213" transform="translate(-706.973 -806.287)"></path>
+                        </g>
+                        <g id="Group_207" data-name="Group 207" transform="translate(684.868 830.01)">
+                            <path id="Path_214" d="M711.718 875.029a4.744 4.744 0 1 1-4.745 4.744v-4.744z" fill="#fff" data-name="Path 214" transform="translate(-706.973 -863.168)"></path>
+                            <path id="Path_215" d="M711.718 861.6a4.744 4.744 0 1 1 0-9.489h11.861a4.744 4.744 0 0 1 0 9.489z" fill="#fff" data-name="Path 215" transform="translate(-706.973 -852.115)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://stackoverflow.com/questions/tagged/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="37.647" height="44.6" viewBox="0 0 37.647 44.6">
+                    <g id="Group_209" data-name="Group 209" transform="translate(-645.2 -975.455)">
+                        <path id="Path_216" d="M677.028 1043.1v-11.948h3.966v15.914H645.2v-15.914h3.966v11.948z" fill="#fff" data-name="Path 216" transform="translate(0 -27.014)"></path>
+                        <path id="Path_217" d="M661.012 1003.008l19.467 4.069.824-3.914-19.467-4.069zm2.575-9.27l18.025 8.395 1.648-3.605-18.025-8.446zm5-8.858l15.3 12.721 2.524-3.039-15.3-12.721zm9.888-9.425l-3.193 2.369 11.845 15.965 3.193-2.369zm-17.875 36.617h19.879v-3.966H660.6z" fill="#fff" data-name="Path 217" transform="translate(-7.469)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://twitter.com/ApacheAirflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="44.355" height="44.355" viewBox="0 0 44.355 44.355">
+                    <g id="Group_211" data-name="Group 211" transform="translate(-503 -1382.2)">
+                        <path id="Path_221" d="M541.811 1382.2h-33.267a5.546 5.546 0 0 0-5.544 5.544v33.266a5.547 5.547 0 0 0 5.544 5.545h33.267a5.546 5.546 0 0 0 5.544-5.545v-33.266a5.546 5.546 0 0 0-5.544-5.544zm-5.611 16.533c.011.244.011.488.011.732 0 7.507-5.722 16.178-16.179 16.178a16.173 16.173 0 0 1-8.7-2.539 10.92 10.92 0 0 0 1.353.078 11.4 11.4 0 0 0 7.064-2.44 5.685 5.685 0 0 1-5.311-3.947 5.725 5.725 0 0 0 2.561-.1 5.7 5.7 0 0 1-4.557-5.578v-.078a5.752 5.752 0 0 0 2.572.71 5.7 [...]
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA">
+                <svg xmlns="http://www.w3.org/2000/svg" width="49.594" height="34.941" viewBox="0 0 49.594 34.941">
+                    <path id="Path_223" d="M1124.557 1230a6.232 6.232 0 0 0-4.385-4.413c-3.867-1.043-19.376-1.043-19.376-1.043s-15.508 0-19.376 1.043a6.232 6.232 0 0 0-4.385 4.413c-1.036 3.893-1.036 12.014-1.036 12.014s0 8.122 1.036 12.015a6.232 6.232 0 0 0 4.385 4.413c3.867 1.043 19.376 1.043 19.376 1.043s15.509 0 19.376-1.043a6.232 6.232 0 0 0 4.385-4.413c1.036-3.893 1.036-12.015 1.036-12.015s.001-8.123-1.036-12.014zm-28.833 19.388v-14.748l12.962 7.374z" fill="#fff" data-name="Path 223 [...]
+                </svg>
+
+            </a>
+
+        </div>
+        
+
+        <div class="footer-section__media-section--button-with-text">
+            <span class="footer-section__media-section--text">Want to be a part of Apache Airflow?</span>
+            <a href="/community">
+
+                <button id="" class="btn-filled bodytext__medium--white ">Join community</button>
+
+            </a>
+        </div>
+        
+
+    </div>
+    <div class="footer-section footer-section__policies-section">
+        <div class="footer-section">
+            <span>© The Apache Software Foundation <script>document.write(new Date().getFullYear())</script></span>
+            <div class="footer-section__policies-section--policies">
+
+                <a href="https://www.apache.org/licenses/" class="footer-section__policies-section--policy-item">
+                    <span>License</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/sponsorship.html" class="footer-section__policies-section--policy-item">
+                    <span>Donate</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/thanks.html" class="footer-section__policies-section--policy-item">
+                    <span>Thanks</span>
+                </a>
+
+                <a href="https://www.apache.org/security/" class="footer-section__policies-section--policy-item">
+                    <span>Security</span>
+                </a>
+                
+
+            </div>
+        </div>
+        <span class="footer-section__policies-section--disclaimer">
+            Apache Airflow, Apache, Airflow, the Airflow logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.
+            All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.
+        </span>
+    </div>
+</footer>
+    <script type="text/javascript" src="../../../_static/_gen/js/docs.js"></script>
+    <script type="text/javascript" id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
+    <script src="/external/js/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
+    <script src="/external/js/cdnjs.cloudflare.com-1.14.3-popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
+    <script src="/external/js/stackpath.bootstrapcdn.com-4.1.3-bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
+        <script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script>
+        <script src="../../../_static/jquery.js"></script>
+        <script src="../../../_static/underscore.js"></script>
+        <script src="../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../../../_static/doctools.js"></script>
+        <script src="../../../_static/sphinx_highlight.js"></script>
+        <script src="../../../_static/clipboard.min.js"></script>
+        <script src="../../../_static/copybutton.js"></script>
+        <script src="../../../_static/js/globaltoc.js"></script>
+        <script src="../../../_static/design-tabs.js"></script>
+        <script src="../../../_static/gh-jira-links.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/apache-airflow/2.8.0/_api/airflow/decorators/python/index.html b/docs/apache-airflow/2.8.0/_api/airflow/decorators/python/index.html
new file mode 100644
index 00000000..6b15ce11
--- /dev/null
+++ b/docs/apache-airflow/2.8.0/_api/airflow/decorators/python/index.html
@@ -0,0 +1,1031 @@
+
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<head>
+        <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+        <title>airflow.decorators.python &mdash; Airflow Documentation</title>
+    <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+            <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+            <link rel="index" title="Index" href="../../../../genindex.html" />
+            <link rel="search" title="Search" href="../../../../search.html" />
+            <link rel="next" title="airflow.decorators.python_virtualenv" href="../python_virtualenv/index.html" />
+            <link rel="prev" title="airflow.decorators.external_python" href="../external_python/index.html" />
+
+    <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/python/index.html" />
+
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+        /* We explicitly disable cookie tracking to avoid privacy issues */
+        _paq.push(['disableCookies']);
+        _paq.push(['trackPageView']);
+        _paq.push(['enableLinkTracking']);
+        (function() {
+        var u="https://analytics.apache.org/";
+        _paq.push(['setTrackerUrl', u+'matomo.php']);
+        _paq.push(['setSiteId', '13']);
+        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+        g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+
+    <!-- Scarf Telemetry Pixel -->
+    <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=7265a3c4-a6dd-4933-ba8b-9e3c13903c60" />
+    <!-- End Scarf Telemetry Pixel -->
+    
+</head><body class="td-section">
+    
+
+<header>
+    <nav class="js-navbar-scroll navbar">
+        <div class="navbar__icon-container">
+            <a href="/">
+                <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                    <defs>
+                        <clipPath id="clip-path">
+                            <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                        </clipPath>
+                    </defs>
+                    <g id="logo" transform="translate(-1305 -780.355)">
+                        <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                            <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178.258 [...]
+                                <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0zm-1 [...]
+                                <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482-.2h1 [...]
+                            </g>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+        </div>
+        <div class="desktop-only navbar__menu-container">
+
+            <div class="navbar__menu-content" id="main_navbar">
+
+                <div class="navbar__links-container">
+                    
+                        <a class="navbar__text-link" href="/community/">
+                            Community
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/meetups/">
+                            Meetups
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/docs/">
+                            Documentation
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/use-cases/">
+                            Use-cases
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/announcements/">
+                            Announcements
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/blog/">
+                            Blog
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/ecosystem/">
+                            Ecosystem
+                        </a>
+                    
+                </div>
+
+                
+
+            </div>
+
+        </div>
+        <div class="mobile-only navbar__drawer-container">
+            <button class="navbar__toggle-button" id="navbar-toggle-button">
+
+                <div id="hamburger-icon" class="navbar__toggle-button--icon visible">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="26" height="20" viewBox="0 0 26 20">
+                        <g id="Group_1294" data-name="Group 1294" transform="translate(-38.791 291)">
+                            <g id="Group_1291" data-name="Group 1291" transform="translate(39 -291)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="translate(39 -281.822)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                            <g id="Group_1293" data-name="Group 1293" transform="translate(39 -272.644)">
+                                <rect id="Rectangle_463" width="26" height="2" fill="#51504f" data-name="Rectangle 463" rx="1" transform="translate(-.209 -.356)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+                <div id="close-icon" class="navbar__toggle-button--icon">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                        <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                            <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+            </button>
+            <div class="navbar__drawer" id="navbar-drawer">
+                <div class="navbar__menu-content" id="main_navbar">
+
+                    <div class="navbar__links-container">
+                        
+                            <a class="navbar__text-link" href="/community/">
+                                Community
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/meetups/">
+                                Meetups
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/docs/">
+                                Documentation
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/use-cases/">
+                                Use-cases
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/announcements/">
+                                Announcements
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/blog/">
+                                Blog
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/ecosystem/">
+                                Ecosystem
+                            </a>
+                        
+
+                    </div>
+                    
+
+                </div>
+            </div>
+        </div>
+    </nav>
+
+</header>
+
+
+    <div class="roadmap container-fluid td-default base-layout">
+        
+        
+    <div class="content-drawer-wrapper">
+        <button class="content-drawer__toggle-button" id="content-open-button">
+
+            <div id="hamburger-icon" class="content-drawer__toggle-button--icon visible">
+                <svg xmlns="http://www.w3.org/2000/svg" width="20.005" height="13.879" viewBox="0 0 20.005 13.879">
+                    <g id="Group_1619" data-name="Group 1619" transform="translate(271.132 -418.872)">
+                        <g id="Group_1613" data-name="Group 1613" transform="translate(-266.229 431.045)">
+                            <path id="Path_1337" d="M-218.5 513.215h-14.583a.259.259 0 0 1-.259-.26.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.26z" fill="#51504f" data-name="Path 1337" transform="translate(233.345 -512.696)"></path>
+                        </g>
+                        <g id="Group_1614" data-name="Group 1614" transform="translate(-266.229 425.684)">
+                            <path id="Path_1338" d="M-218.5 471.9h-14.583a.259.259 0 0 1-.259-.26.26.26 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.26.26 0 0 1-.259.26z" fill="#51504f" data-name="Path 1338" transform="translate(233.345 -471.376)"></path>
+                        </g>
+                        <g id="Group_1615" data-name="Group 1615" transform="translate(-266.229 420.323)">
+                            <path id="Path_1339" d="M-218.5 430.574h-14.583a.259.259 0 0 1-.259-.259.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.259z" fill="#51504f" data-name="Path 1339" transform="translate(233.345 -430.055)"></path>
+                        </g>
+                        <g id="Group_1616" data-name="Group 1616" transform="translate(-271.132 429.814)">
+                            <path id="Path_1340" d="M-269.663 506.145a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1340" transform="translate(271.132 -503.208)"></path>
+                        </g>
+                        <g id="Group_1617" data-name="Group 1617" transform="translate(-271.132 424.556)">
+                            <path id="Path_1341" d="M-269.663 465.62a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.952z" fill="#51504f" data-name="Path 1341" transform="translate(271.132 -462.683)"></path>
+                        </g>
+                        <g id="Group_1618" data-name="Group 1618" transform="translate(-271.132 418.872)">
+                            <path id="Path_1342" d="M-269.663 421.809a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1342" transform="translate(271.132 -418.872)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+                <span class="bodytext__mobile--brownish-grey">Content</span>
+            </div>
+
+        </button>
+        <nav id="content-navbar" class="navbar navbar--hidden">
+            <div class="navbar__icon-container">
+                <a href="/">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                        <defs>
+                            <clipPath id="clip-path">
+                                <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                            </clipPath>
+                        </defs>
+                        <g id="logo" transform="translate(-1305 -780.355)">
+                            <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                                <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                    <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                    <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                    <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                    <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                    <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                    <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                    <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                    <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                    <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                    <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178 [...]
+                                    <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0 [...]
+                                    <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482- [...]
+                                </g>
+                            </g>
+                        </g>
+                    </svg>
+
+                </a>
+            </div>
+
+            <div id="content-close-button">
+                <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                    <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                        <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                            <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                        </g>
+                        <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                            <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                        </g>
+                    </g>
+                </svg>
+
+            </div>
+
+        </nav>
+        <div class="content-drawer-container" id="content-drawer">
+            <div class="content-drawer">
+                <div class="td-sidebar">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.python.python_task"><code class="docutils literal notranslate"><span class="pre">python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+                </div>
+            </div>
+        </div>
+    </div>
+        
+        <div class="d-flex">
+            
+            
+    <div class="td-sidebar desktop-only d-print-none">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.python.python_task"><code class="docutils literal notranslate"><span class="pre">python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+    </div>
+            
+
+            
+
+            <main class="col-12 col-md-9 col-xl-8" role="main">
+                
+
+
+    
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation" class="d-none d-md-block d-print-none">
+
+    <ul class="breadcrumb">
+        
+            <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+            
+                <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
+            
+                <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
+            
+            <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+        
+    </ul>
+</div>
+                
+                <div class="rst-content">
+                    <div class="document">
+                            <div class="documentwrapper">
+                                <div class="bodywrapper">
+                                    <div class="body" role="main">
+                                        
+  <div class="section" id="module-airflow.decorators.python">
+<span id="airflow-decorators-python"></span><h1><a class="reference internal" href="#module-airflow.decorators.python" title="airflow.decorators.python"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a><a class="headerlink" href="#module-airflow.decorators.python" title="Permalink to this heading">¶</a></h1>
+<div class="section" id="module-contents">
+<h2>Module Contents<a class="headerlink" href="#module-contents" title="Permalink to this heading">¶</a></h2>
+<div class="section" id="functions">
+<h3>Functions<a class="headerlink" href="#functions" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.python.python_task" title="airflow.decorators.python.python_task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">python_task</span></code></a>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a function into an Airflow operator.</p></td>
+</tr>
+</tbody>
+</table>
+<dl class="py function">
+<dt class="sig sig-object py" id="airflow.decorators.python.python_task">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.python.</span></span><span class="sig-name descname"><span class="pre">python_task</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">python_callable</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">multiple_outputs</span></s [...]
+<dd><p>Wrap a function into an Airflow operator.</p>
+<p>Accepts kwargs for operator kwarg. Can be reused in a single DAG.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>python_callable</strong> (<em>Callable</em><em> | </em><em>None</em>) – Function to decorate</p></li>
+<li><p><strong>multiple_outputs</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><em>bool</em></a><em> | </em><em>None</em>) – If set to True, the decorated function’s return value will be unrolled to
+multiple XCom values. Dict will unroll to XCom values with its keys as XCom keys. Defaults to False.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+</div>
+</div>
+</div>
+
+
+    <div class="pager" role="navigation" aria-label="related navigation">
+            <a rel="prev" title="airflow.decorators.external_python" href="../external_python/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
+            </a>
+            <a rel="next" title="airflow.decorators.python_virtualenv" href="../python_virtualenv/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+            </a>
+    </div>
+                                    </div>
+
+                                </div>
+                            </div>
+                    </div>
+                </div>
+    <div class="rating-container">
+        <p class="bodytext__medium--greyish-brown font-weight-500">Was this entry helpful?</p>
+        <div class="rating">
+
+            <div id="rate-star-5" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-4" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-3" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-2" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-1" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+        </div>
+    </div>
+                
+            </main>
+            
+
+            
+            
+    <nav class="wy-nav-side-toc">
+        <div class="wy-menu-vertical">
+            <ul>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a><ul>
+<li><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li><a class="reference internal" href="#functions">Functions</a><ul>
+<li><a class="reference internal" href="#airflow.decorators.python.python_task"><code class="docutils literal notranslate"><span class="pre">python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+        </div>
+    </nav>
+            
+        </div>
+        
+
+
+    
+
+
+
+
+
+
+
+    
+        
+            
+        
+        <div class="base-layout--button">
+            <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/python/index.rst" rel="nofollow">
+
+                <button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
+                        <path d="M15.379 0a15.381 15.381 0 00-4.86 29.974c.769.141 1.05-.334 1.05-.741 0-.365-.013-1.332-.021-2.616-4.278.929-5.181-2.062-5.181-2.062a4.071 4.071 0 00-1.708-2.25c-1.4-.954.106-.935.106-.935a3.231 3.231 0 012.356 1.585 3.274 3.274 0 004.476 1.278 3.287 3.287 0 01.976-2.056c-3.415-.388-7.005-1.707-7.005-7.6a5.947 5.947 0 011.583-4.127 5.53 5.53 0 01.151-4.07s1.291-.413 4.229 1.577a14.577 14.577 0 017.7 0c2.936-1.99 4.225-1.577 4.225-1.577a5.523 5.523 0 01.15 [...]
+                    </svg>
+
+                    <span class="bodytext__medium--brownish-grey">Suggest a change on this page</span>
+                </button>
+            </a>
+        </div>
+    
+
+    </div>
+
+
+    
+
+<footer>
+    <div class="footer-section footer-section__media-section">
+        <div class="d-flex align-items-center">
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="46.14" height="45" viewBox="0 0 46.14 45">
+                    <path id="Path_207" d="M228.962 1078.578a23.072 23.072 0 0 0-7.29 44.96c1.154.212 1.574-.5 1.574-1.112 0-.548-.02-2-.031-3.924-6.417 1.394-7.771-3.093-7.771-3.093a6.109 6.109 0 0 0-2.562-3.375c-2.095-1.431.159-1.4.159-1.4a4.846 4.846 0 0 1 3.533 2.377c2.058 3.525 5.4 2.507 6.714 1.917a4.926 4.926 0 0 1 1.464-3.084c-5.123-.582-10.508-2.562-10.508-11.4a8.919 8.919 0 0 1 2.374-6.191 8.3 8.3 0 0 1 .226-6.105s1.937-.62 6.344 2.365a21.857 21.857 0 0 1 11.551 0c4.4-2.985 6.3 [...]
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow/issues">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45" height="45" viewBox="0 0 45 45">
+                    <g id="Group_210" data-name="Group 210" transform="translate(-339.789 -1315.282)">
+                        <path id="Path_218" d="M394.82 1315.282h-21.671a9.784 9.784 0 0 0 9.784 9.778h3.986v3.857a9.784 9.784 0 0 0 9.784 9.771v-21.523a1.884 1.884 0 0 0-1.883-1.883z" fill="#fff" data-name="Path 218" transform="translate(-11.914)"></path>
+                        <path id="Path_219" d="M378.14 1332.072h-21.671a9.778 9.778 0 0 0 9.778 9.778h4.018v3.857a9.784 9.784 0 0 0 9.752 9.778v-21.536a1.877 1.877 0 0 0-1.877-1.877z" fill="#fff" data-name="Path 219" transform="translate(-5.957 -5.996)"></path>
+                        <path id="Path_220" d="M361.46 1348.862h-21.671a9.778 9.778 0 0 0 9.778 9.778h3.992v3.857a9.778 9.778 0 0 0 9.778 9.778v-21.529a1.883 1.883 0 0 0-1.877-1.884z" fill="#fff" data-name="Path 220" transform="translate(0 -11.993)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://s.apache.org/airflow-slack">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45.073" height="45.073" viewBox="0 0 45.073 45.073">
+                    <g id="Group_208" data-name="Group 208" transform="translate(-661.145 -806.287)">
+                        <g id="Group_204" data-name="Group 204" transform="translate(661.145 830.01)">
+                            <path id="Path_208" d="M670.634 856.859a4.744 4.744 0 1 1-4.744-4.744h4.744z" fill="#fff" data-name="Path 208" transform="translate(-661.145 -852.115)"></path>
+                            <path id="Path_209" d="M684.059 856.859a4.744 4.744 0 0 1 9.489 0v11.861a4.744 4.744 0 1 1-9.489 0z" fill="#fff" data-name="Path 209" transform="translate(-672.198 -852.115)"></path>
+                        </g>
+                        <g id="Group_205" data-name="Group 205" transform="translate(661.145 806.287)">
+                            <path id="Path_210" d="M688.8 815.776a4.744 4.744 0 1 1 4.744-4.745v4.745z" fill="#fff" data-name="Path 210" transform="translate(-672.198 -806.287)"></path>
+                            <path id="Path_211" d="M677.751 829.2a4.744 4.744 0 0 1 0 9.489H665.89a4.744 4.744 0 1 1 0-9.489z" fill="#fff" data-name="Path 211" transform="translate(-661.145 -817.34)"></path>
+                        </g>
+                        <g id="Group_206" data-name="Group 206" transform="translate(684.868 806.287)">
+                            <path id="Path_212" d="M729.887 833.945a4.744 4.744 0 1 1 4.745 4.745h-4.745z" fill="#fff" data-name="Path 212" transform="translate(-718.026 -817.34)"></path>
+                            <path id="Path_213" d="M716.462 822.893a4.744 4.744 0 1 1-9.489 0v-11.862a4.744 4.744 0 0 1 9.489 0z" fill="#fff" data-name="Path 213" transform="translate(-706.973 -806.287)"></path>
+                        </g>
+                        <g id="Group_207" data-name="Group 207" transform="translate(684.868 830.01)">
+                            <path id="Path_214" d="M711.718 875.029a4.744 4.744 0 1 1-4.745 4.744v-4.744z" fill="#fff" data-name="Path 214" transform="translate(-706.973 -863.168)"></path>
+                            <path id="Path_215" d="M711.718 861.6a4.744 4.744 0 1 1 0-9.489h11.861a4.744 4.744 0 0 1 0 9.489z" fill="#fff" data-name="Path 215" transform="translate(-706.973 -852.115)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://stackoverflow.com/questions/tagged/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="37.647" height="44.6" viewBox="0 0 37.647 44.6">
+                    <g id="Group_209" data-name="Group 209" transform="translate(-645.2 -975.455)">
+                        <path id="Path_216" d="M677.028 1043.1v-11.948h3.966v15.914H645.2v-15.914h3.966v11.948z" fill="#fff" data-name="Path 216" transform="translate(0 -27.014)"></path>
+                        <path id="Path_217" d="M661.012 1003.008l19.467 4.069.824-3.914-19.467-4.069zm2.575-9.27l18.025 8.395 1.648-3.605-18.025-8.446zm5-8.858l15.3 12.721 2.524-3.039-15.3-12.721zm9.888-9.425l-3.193 2.369 11.845 15.965 3.193-2.369zm-17.875 36.617h19.879v-3.966H660.6z" fill="#fff" data-name="Path 217" transform="translate(-7.469)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://twitter.com/ApacheAirflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="44.355" height="44.355" viewBox="0 0 44.355 44.355">
+                    <g id="Group_211" data-name="Group 211" transform="translate(-503 -1382.2)">
+                        <path id="Path_221" d="M541.811 1382.2h-33.267a5.546 5.546 0 0 0-5.544 5.544v33.266a5.547 5.547 0 0 0 5.544 5.545h33.267a5.546 5.546 0 0 0 5.544-5.545v-33.266a5.546 5.546 0 0 0-5.544-5.544zm-5.611 16.533c.011.244.011.488.011.732 0 7.507-5.722 16.178-16.179 16.178a16.173 16.173 0 0 1-8.7-2.539 10.92 10.92 0 0 0 1.353.078 11.4 11.4 0 0 0 7.064-2.44 5.685 5.685 0 0 1-5.311-3.947 5.725 5.725 0 0 0 2.561-.1 5.7 5.7 0 0 1-4.557-5.578v-.078a5.752 5.752 0 0 0 2.572.71 5.7 [...]
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA">
+                <svg xmlns="http://www.w3.org/2000/svg" width="49.594" height="34.941" viewBox="0 0 49.594 34.941">
+                    <path id="Path_223" d="M1124.557 1230a6.232 6.232 0 0 0-4.385-4.413c-3.867-1.043-19.376-1.043-19.376-1.043s-15.508 0-19.376 1.043a6.232 6.232 0 0 0-4.385 4.413c-1.036 3.893-1.036 12.014-1.036 12.014s0 8.122 1.036 12.015a6.232 6.232 0 0 0 4.385 4.413c3.867 1.043 19.376 1.043 19.376 1.043s15.509 0 19.376-1.043a6.232 6.232 0 0 0 4.385-4.413c1.036-3.893 1.036-12.015 1.036-12.015s.001-8.123-1.036-12.014zm-28.833 19.388v-14.748l12.962 7.374z" fill="#fff" data-name="Path 223 [...]
+                </svg>
+
+            </a>
+
+        </div>
+        
+
+        <div class="footer-section__media-section--button-with-text">
+            <span class="footer-section__media-section--text">Want to be a part of Apache Airflow?</span>
+            <a href="/community">
+
+                <button id="" class="btn-filled bodytext__medium--white ">Join community</button>
+
+            </a>
+        </div>
+        
+
+    </div>
+    <div class="footer-section footer-section__policies-section">
+        <div class="footer-section">
+            <span>© The Apache Software Foundation <script>document.write(new Date().getFullYear())</script></span>
+            <div class="footer-section__policies-section--policies">
+
+                <a href="https://www.apache.org/licenses/" class="footer-section__policies-section--policy-item">
+                    <span>License</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/sponsorship.html" class="footer-section__policies-section--policy-item">
+                    <span>Donate</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/thanks.html" class="footer-section__policies-section--policy-item">
+                    <span>Thanks</span>
+                </a>
+
+                <a href="https://www.apache.org/security/" class="footer-section__policies-section--policy-item">
+                    <span>Security</span>
+                </a>
+                
+
+            </div>
+        </div>
+        <span class="footer-section__policies-section--disclaimer">
+            Apache Airflow, Apache, Airflow, the Airflow logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.
+            All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.
+        </span>
+    </div>
+</footer>
+    <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+    <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
+    <script src="/external/js/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
+    <script src="/external/js/cdnjs.cloudflare.com-1.14.3-popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
+    <script src="/external/js/stackpath.bootstrapcdn.com-4.1.3-bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
+        <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+        <script src="../../../../_static/jquery.js"></script>
+        <script src="../../../../_static/underscore.js"></script>
+        <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../../../../_static/doctools.js"></script>
+        <script src="../../../../_static/sphinx_highlight.js"></script>
+        <script src="../../../../_static/clipboard.min.js"></script>
+        <script src="../../../../_static/copybutton.js"></script>
+        <script src="../../../../_static/js/globaltoc.js"></script>
+        <script src="../../../../_static/design-tabs.js"></script>
+        <script src="../../../../_static/gh-jira-links.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/apache-airflow/2.8.0/_api/airflow/decorators/python_virtualenv/index.html b/docs/apache-airflow/2.8.0/_api/airflow/decorators/python_virtualenv/index.html
new file mode 100644
index 00000000..a07a6269
--- /dev/null
+++ b/docs/apache-airflow/2.8.0/_api/airflow/decorators/python_virtualenv/index.html
@@ -0,0 +1,971 @@
+
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<head>
+        <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+        <title>airflow.decorators.python_virtualenv &mdash; Airflow Documentation</title>
+    <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+            <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+            <link rel="index" title="Index" href="../../../../genindex.html" />
+            <link rel="search" title="Search" href="../../../../search.html" />
+            <link rel="next" title="airflow.decorators.sensor" href="../sensor/index.html" />
+            <link rel="prev" title="airflow.decorators.python" href="../python/index.html" />
+
+    <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/python_virtualenv/index.html" />
+
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+        /* We explicitly disable cookie tracking to avoid privacy issues */
+        _paq.push(['disableCookies']);
+        _paq.push(['trackPageView']);
+        _paq.push(['enableLinkTracking']);
+        (function() {
+        var u="https://analytics.apache.org/";
+        _paq.push(['setTrackerUrl', u+'matomo.php']);
+        _paq.push(['setSiteId', '13']);
+        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+        g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+
+    <!-- Scarf Telemetry Pixel -->
+    <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=7265a3c4-a6dd-4933-ba8b-9e3c13903c60" />
+    <!-- End Scarf Telemetry Pixel -->
+    
+</head><body class="td-section">
+    
+
+<header>
+    <nav class="js-navbar-scroll navbar">
+        <div class="navbar__icon-container">
+            <a href="/">
+                <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                    <defs>
+                        <clipPath id="clip-path">
+                            <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                        </clipPath>
+                    </defs>
+                    <g id="logo" transform="translate(-1305 -780.355)">
+                        <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                            <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178.258 [...]
+                                <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0zm-1 [...]
+                                <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482-.2h1 [...]
+                            </g>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+        </div>
+        <div class="desktop-only navbar__menu-container">
+
+            <div class="navbar__menu-content" id="main_navbar">
+
+                <div class="navbar__links-container">
+                    
+                        <a class="navbar__text-link" href="/community/">
+                            Community
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/meetups/">
+                            Meetups
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/docs/">
+                            Documentation
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/use-cases/">
+                            Use-cases
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/announcements/">
+                            Announcements
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/blog/">
+                            Blog
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/ecosystem/">
+                            Ecosystem
+                        </a>
+                    
+                </div>
+
+                
+
+            </div>
+
+        </div>
+        <div class="mobile-only navbar__drawer-container">
+            <button class="navbar__toggle-button" id="navbar-toggle-button">
+
+                <div id="hamburger-icon" class="navbar__toggle-button--icon visible">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="26" height="20" viewBox="0 0 26 20">
+                        <g id="Group_1294" data-name="Group 1294" transform="translate(-38.791 291)">
+                            <g id="Group_1291" data-name="Group 1291" transform="translate(39 -291)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="translate(39 -281.822)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                            <g id="Group_1293" data-name="Group 1293" transform="translate(39 -272.644)">
+                                <rect id="Rectangle_463" width="26" height="2" fill="#51504f" data-name="Rectangle 463" rx="1" transform="translate(-.209 -.356)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+                <div id="close-icon" class="navbar__toggle-button--icon">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                        <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                            <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+            </button>
+            <div class="navbar__drawer" id="navbar-drawer">
+                <div class="navbar__menu-content" id="main_navbar">
+
+                    <div class="navbar__links-container">
+                        
+                            <a class="navbar__text-link" href="/community/">
+                                Community
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/meetups/">
+                                Meetups
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/docs/">
+                                Documentation
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/use-cases/">
+                                Use-cases
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/announcements/">
+                                Announcements
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/blog/">
+                                Blog
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/ecosystem/">
+                                Ecosystem
+                            </a>
+                        
+
+                    </div>
+                    
+
+                </div>
+            </div>
+        </div>
+    </nav>
+
+</header>
+
+
+    <div class="roadmap container-fluid td-default base-layout">
+        
+        
+    <div class="content-drawer-wrapper">
+        <button class="content-drawer__toggle-button" id="content-open-button">
+
+            <div id="hamburger-icon" class="content-drawer__toggle-button--icon visible">
+                <svg xmlns="http://www.w3.org/2000/svg" width="20.005" height="13.879" viewBox="0 0 20.005 13.879">
+                    <g id="Group_1619" data-name="Group 1619" transform="translate(271.132 -418.872)">
+                        <g id="Group_1613" data-name="Group 1613" transform="translate(-266.229 431.045)">
+                            <path id="Path_1337" d="M-218.5 513.215h-14.583a.259.259 0 0 1-.259-.26.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.26z" fill="#51504f" data-name="Path 1337" transform="translate(233.345 -512.696)"></path>
+                        </g>
+                        <g id="Group_1614" data-name="Group 1614" transform="translate(-266.229 425.684)">
+                            <path id="Path_1338" d="M-218.5 471.9h-14.583a.259.259 0 0 1-.259-.26.26.26 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.26.26 0 0 1-.259.26z" fill="#51504f" data-name="Path 1338" transform="translate(233.345 -471.376)"></path>
+                        </g>
+                        <g id="Group_1615" data-name="Group 1615" transform="translate(-266.229 420.323)">
+                            <path id="Path_1339" d="M-218.5 430.574h-14.583a.259.259 0 0 1-.259-.259.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.259z" fill="#51504f" data-name="Path 1339" transform="translate(233.345 -430.055)"></path>
+                        </g>
+                        <g id="Group_1616" data-name="Group 1616" transform="translate(-271.132 429.814)">
+                            <path id="Path_1340" d="M-269.663 506.145a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1340" transform="translate(271.132 -503.208)"></path>
+                        </g>
+                        <g id="Group_1617" data-name="Group 1617" transform="translate(-271.132 424.556)">
+                            <path id="Path_1341" d="M-269.663 465.62a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.952z" fill="#51504f" data-name="Path 1341" transform="translate(271.132 -462.683)"></path>
+                        </g>
+                        <g id="Group_1618" data-name="Group 1618" transform="translate(-271.132 418.872)">
+                            <path id="Path_1342" d="M-269.663 421.809a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1342" transform="translate(271.132 -418.872)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+                <span class="bodytext__mobile--brownish-grey">Content</span>
+            </div>
+
+        </button>
+        <nav id="content-navbar" class="navbar navbar--hidden">
+            <div class="navbar__icon-container">
+                <a href="/">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                        <defs>
+                            <clipPath id="clip-path">
+                                <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                            </clipPath>
+                        </defs>
+                        <g id="logo" transform="translate(-1305 -780.355)">
+                            <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                                <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                    <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                    <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                    <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                    <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                    <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                    <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                    <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                    <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                    <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                    <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178 [...]
+                                    <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0 [...]
+                                    <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482- [...]
+                                </g>
+                            </g>
+                        </g>
+                    </svg>
+
+                </a>
+            </div>
+
+            <div id="content-close-button">
+                <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                    <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                        <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                            <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                        </g>
+                        <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                            <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                        </g>
+                    </g>
+                </svg>
+
+            </div>
+
+        </nav>
+        <div class="content-drawer-container" id="content-drawer">
+            <div class="content-drawer">
+                <div class="td-sidebar">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+                </div>
+            </div>
+        </div>
+    </div>
+        
+        <div class="d-flex">
+            
+            
+    <div class="td-sidebar desktop-only d-print-none">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+
+</div>
+
+<style type="text/css">
+    .toctree {
+    }
+    .toctree li {
+        list-style: none;
+    }
+    .toctree .caption {
+        font-family: Roboto;
+        font-size: 18px;
+        font-weight: bold;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.33;
+        letter-spacing: normal;
+        color: #51504f;
+        padding-bottom: 13px;
+        text-transform: uppercase;
+        margin-bottom: 0;
+    }
+    .toctree .current > a:not([href="#"])  {
+        color: #017cee;
+    }
+    .toctree > ul {
+        padding-left: 0;
+    }
+    .toctree ul {
+        padding-left: 15px;
+        display: none;
+    }
+    .toctree > ul,
+    .toctree li.current > ul {
+        display: block;
+    }
+
+    .toctree a .toctree-expand {
+        display: inline-block;
+        position: relative;
+        height: 1em;
+    }
+
+    .toctree a .toctree-expand:before {
+        position: absolute;
+        top: 6px;
+        left: -12px;
+        content: '►';
+        font-size: 7px;
+    }
+    .toctree .current > a > .toctree-expand:before {
+        content: '▼';
+    }
+
+    .toctree .current {
+        color: #017cee;
+    }
+    .toctree li {
+        font-family: Roboto;
+        font-size: 16px;
+        font-weight: normal;
+        font-stretch: normal;
+        font-style: normal;
+        line-height: 1.63;
+        letter-spacing: normal;
+        color: #707070;
+    }
+
+</style>
+    </div>
+            
+
+            
+
+            <main class="col-12 col-md-9 col-xl-8" role="main">
+                
+
+
+    
+
+
+
+
+<div role="navigation" aria-label="breadcrumbs navigation" class="d-none d-md-block d-print-none">
+
+    <ul class="breadcrumb">
+        
+            <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+            
+                <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
+            
+                <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
+            
+            <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+        
+    </ul>
+</div>
+                
+                <div class="rst-content">
+                    <div class="document">
+                            <div class="documentwrapper">
+                                <div class="bodywrapper">
+                                    <div class="body" role="main">
+                                        
+  <div class="section" id="module-airflow.decorators.python_virtualenv">
+<span id="airflow-decorators-python-virtualenv"></span><h1><a class="reference internal" href="#module-airflow.decorators.python_virtualenv" title="airflow.decorators.python_virtualenv"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a><a class="headerlink" href="#module-airflow.decorators.python_virtualenv" title="Permalink to this heading">¶</a></h1>
+</div>
+
+
+    <div class="pager" role="navigation" aria-label="related navigation">
+            <a rel="prev" title="airflow.decorators.python" href="../python/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
+            </a>
+            <a rel="next" title="airflow.decorators.sensor" href="../sensor/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+            </a>
+    </div>
+                                    </div>
+
+                                </div>
+                            </div>
+                    </div>
+                </div>
+    <div class="rating-container">
+        <p class="bodytext__medium--greyish-brown font-weight-500">Was this entry helpful?</p>
+        <div class="rating">
+
+            <div id="rate-star-5" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-4" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-3" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-2" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+            <div id="rate-star-1" class="rate-star">
+                <svg xmlns="http://www.w3.org/2000/svg" width="21.05" height="20.02" viewBox="0 0 21.05 20.02">
+                    <g id="Group_806" data-name="Group 806" transform="translate(-774.404 -13.178)">
+                        <path id="Path_715" d="M791.434 33.2l-6.5-3.42-6.5 3.42 1.242-7.243-5.262-5.13 7.273-1.057 3.252-6.59 3.252 6.59 7.273 1.057-5.262 5.13z" fill="#017cee" data-name="Path 715"></path>
+                    </g>
+                </svg>
+
+            </div>
+
+        </div>
+    </div>
+                
+            </main>
+            
+
+            
+            
+    <nav class="wy-nav-side-toc">
+        <div class="wy-menu-vertical">
+            <ul>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+</ul>
+
+        </div>
+    </nav>
+            
+        </div>
+        
+
+
+    
+
+
+
+
+
+
+
+    
+        
+            
+        
+        <div class="base-layout--button">
+            <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/python_virtualenv/index.rst" rel="nofollow">
+
+                <button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
+                        <path d="M15.379 0a15.381 15.381 0 00-4.86 29.974c.769.141 1.05-.334 1.05-.741 0-.365-.013-1.332-.021-2.616-4.278.929-5.181-2.062-5.181-2.062a4.071 4.071 0 00-1.708-2.25c-1.4-.954.106-.935.106-.935a3.231 3.231 0 012.356 1.585 3.274 3.274 0 004.476 1.278 3.287 3.287 0 01.976-2.056c-3.415-.388-7.005-1.707-7.005-7.6a5.947 5.947 0 011.583-4.127 5.53 5.53 0 01.151-4.07s1.291-.413 4.229 1.577a14.577 14.577 0 017.7 0c2.936-1.99 4.225-1.577 4.225-1.577a5.523 5.523 0 01.15 [...]
+                    </svg>
+
+                    <span class="bodytext__medium--brownish-grey">Suggest a change on this page</span>
+                </button>
+            </a>
+        </div>
+    
+
+    </div>
+
+
+    
+
+<footer>
+    <div class="footer-section footer-section__media-section">
+        <div class="d-flex align-items-center">
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="46.14" height="45" viewBox="0 0 46.14 45">
+                    <path id="Path_207" d="M228.962 1078.578a23.072 23.072 0 0 0-7.29 44.96c1.154.212 1.574-.5 1.574-1.112 0-.548-.02-2-.031-3.924-6.417 1.394-7.771-3.093-7.771-3.093a6.109 6.109 0 0 0-2.562-3.375c-2.095-1.431.159-1.4.159-1.4a4.846 4.846 0 0 1 3.533 2.377c2.058 3.525 5.4 2.507 6.714 1.917a4.926 4.926 0 0 1 1.464-3.084c-5.123-.582-10.508-2.562-10.508-11.4a8.919 8.919 0 0 1 2.374-6.191 8.3 8.3 0 0 1 .226-6.105s1.937-.62 6.344 2.365a21.857 21.857 0 0 1 11.551 0c4.4-2.985 6.3 [...]
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://github.com/apache/airflow/issues">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45" height="45" viewBox="0 0 45 45">
+                    <g id="Group_210" data-name="Group 210" transform="translate(-339.789 -1315.282)">
+                        <path id="Path_218" d="M394.82 1315.282h-21.671a9.784 9.784 0 0 0 9.784 9.778h3.986v3.857a9.784 9.784 0 0 0 9.784 9.771v-21.523a1.884 1.884 0 0 0-1.883-1.883z" fill="#fff" data-name="Path 218" transform="translate(-11.914)"></path>
+                        <path id="Path_219" d="M378.14 1332.072h-21.671a9.778 9.778 0 0 0 9.778 9.778h4.018v3.857a9.784 9.784 0 0 0 9.752 9.778v-21.536a1.877 1.877 0 0 0-1.877-1.877z" fill="#fff" data-name="Path 219" transform="translate(-5.957 -5.996)"></path>
+                        <path id="Path_220" d="M361.46 1348.862h-21.671a9.778 9.778 0 0 0 9.778 9.778h3.992v3.857a9.778 9.778 0 0 0 9.778 9.778v-21.529a1.883 1.883 0 0 0-1.877-1.884z" fill="#fff" data-name="Path 220" transform="translate(0 -11.993)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://s.apache.org/airflow-slack">
+                <svg xmlns="http://www.w3.org/2000/svg" width="45.073" height="45.073" viewBox="0 0 45.073 45.073">
+                    <g id="Group_208" data-name="Group 208" transform="translate(-661.145 -806.287)">
+                        <g id="Group_204" data-name="Group 204" transform="translate(661.145 830.01)">
+                            <path id="Path_208" d="M670.634 856.859a4.744 4.744 0 1 1-4.744-4.744h4.744z" fill="#fff" data-name="Path 208" transform="translate(-661.145 -852.115)"></path>
+                            <path id="Path_209" d="M684.059 856.859a4.744 4.744 0 0 1 9.489 0v11.861a4.744 4.744 0 1 1-9.489 0z" fill="#fff" data-name="Path 209" transform="translate(-672.198 -852.115)"></path>
+                        </g>
+                        <g id="Group_205" data-name="Group 205" transform="translate(661.145 806.287)">
+                            <path id="Path_210" d="M688.8 815.776a4.744 4.744 0 1 1 4.744-4.745v4.745z" fill="#fff" data-name="Path 210" transform="translate(-672.198 -806.287)"></path>
+                            <path id="Path_211" d="M677.751 829.2a4.744 4.744 0 0 1 0 9.489H665.89a4.744 4.744 0 1 1 0-9.489z" fill="#fff" data-name="Path 211" transform="translate(-661.145 -817.34)"></path>
+                        </g>
+                        <g id="Group_206" data-name="Group 206" transform="translate(684.868 806.287)">
+                            <path id="Path_212" d="M729.887 833.945a4.744 4.744 0 1 1 4.745 4.745h-4.745z" fill="#fff" data-name="Path 212" transform="translate(-718.026 -817.34)"></path>
+                            <path id="Path_213" d="M716.462 822.893a4.744 4.744 0 1 1-9.489 0v-11.862a4.744 4.744 0 0 1 9.489 0z" fill="#fff" data-name="Path 213" transform="translate(-706.973 -806.287)"></path>
+                        </g>
+                        <g id="Group_207" data-name="Group 207" transform="translate(684.868 830.01)">
+                            <path id="Path_214" d="M711.718 875.029a4.744 4.744 0 1 1-4.745 4.744v-4.744z" fill="#fff" data-name="Path 214" transform="translate(-706.973 -863.168)"></path>
+                            <path id="Path_215" d="M711.718 861.6a4.744 4.744 0 1 1 0-9.489h11.861a4.744 4.744 0 0 1 0 9.489z" fill="#fff" data-name="Path 215" transform="translate(-706.973 -852.115)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://stackoverflow.com/questions/tagged/airflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="37.647" height="44.6" viewBox="0 0 37.647 44.6">
+                    <g id="Group_209" data-name="Group 209" transform="translate(-645.2 -975.455)">
+                        <path id="Path_216" d="M677.028 1043.1v-11.948h3.966v15.914H645.2v-15.914h3.966v11.948z" fill="#fff" data-name="Path 216" transform="translate(0 -27.014)"></path>
+                        <path id="Path_217" d="M661.012 1003.008l19.467 4.069.824-3.914-19.467-4.069zm2.575-9.27l18.025 8.395 1.648-3.605-18.025-8.446zm5-8.858l15.3 12.721 2.524-3.039-15.3-12.721zm9.888-9.425l-3.193 2.369 11.845 15.965 3.193-2.369zm-17.875 36.617h19.879v-3.966H660.6z" fill="#fff" data-name="Path 217" transform="translate(-7.469)"></path>
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://twitter.com/ApacheAirflow">
+                <svg xmlns="http://www.w3.org/2000/svg" width="44.355" height="44.355" viewBox="0 0 44.355 44.355">
+                    <g id="Group_211" data-name="Group 211" transform="translate(-503 -1382.2)">
+                        <path id="Path_221" d="M541.811 1382.2h-33.267a5.546 5.546 0 0 0-5.544 5.544v33.266a5.547 5.547 0 0 0 5.544 5.545h33.267a5.546 5.546 0 0 0 5.544-5.545v-33.266a5.546 5.546 0 0 0-5.544-5.544zm-5.611 16.533c.011.244.011.488.011.732 0 7.507-5.722 16.178-16.179 16.178a16.173 16.173 0 0 1-8.7-2.539 10.92 10.92 0 0 0 1.353.078 11.4 11.4 0 0 0 7.064-2.44 5.685 5.685 0 0 1-5.311-3.947 5.725 5.725 0 0 0 2.561-.1 5.7 5.7 0 0 1-4.557-5.578v-.078a5.752 5.752 0 0 0 2.572.71 5.7 [...]
+                    </g>
+                </svg>
+
+            </a>
+
+            <a class="footer-section__media-section--link" target="_blank" href="https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA">
+                <svg xmlns="http://www.w3.org/2000/svg" width="49.594" height="34.941" viewBox="0 0 49.594 34.941">
+                    <path id="Path_223" d="M1124.557 1230a6.232 6.232 0 0 0-4.385-4.413c-3.867-1.043-19.376-1.043-19.376-1.043s-15.508 0-19.376 1.043a6.232 6.232 0 0 0-4.385 4.413c-1.036 3.893-1.036 12.014-1.036 12.014s0 8.122 1.036 12.015a6.232 6.232 0 0 0 4.385 4.413c3.867 1.043 19.376 1.043 19.376 1.043s15.509 0 19.376-1.043a6.232 6.232 0 0 0 4.385-4.413c1.036-3.893 1.036-12.015 1.036-12.015s.001-8.123-1.036-12.014zm-28.833 19.388v-14.748l12.962 7.374z" fill="#fff" data-name="Path 223 [...]
+                </svg>
+
+            </a>
+
+        </div>
+        
+
+        <div class="footer-section__media-section--button-with-text">
+            <span class="footer-section__media-section--text">Want to be a part of Apache Airflow?</span>
+            <a href="/community">
+
+                <button id="" class="btn-filled bodytext__medium--white ">Join community</button>
+
+            </a>
+        </div>
+        
+
+    </div>
+    <div class="footer-section footer-section__policies-section">
+        <div class="footer-section">
+            <span>© The Apache Software Foundation <script>document.write(new Date().getFullYear())</script></span>
+            <div class="footer-section__policies-section--policies">
+
+                <a href="https://www.apache.org/licenses/" class="footer-section__policies-section--policy-item">
+                    <span>License</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/sponsorship.html" class="footer-section__policies-section--policy-item">
+                    <span>Donate</span>
+                </a>
+
+                <a href="https://www.apache.org/foundation/thanks.html" class="footer-section__policies-section--policy-item">
+                    <span>Thanks</span>
+                </a>
+
+                <a href="https://www.apache.org/security/" class="footer-section__policies-section--policy-item">
+                    <span>Security</span>
+                </a>
+                
+
+            </div>
+        </div>
+        <span class="footer-section__policies-section--disclaimer">
+            Apache Airflow, Apache, Airflow, the Airflow logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.
+            All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.
+        </span>
+    </div>
+</footer>
+    <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+    <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
+    <script src="/external/js/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
+    <script src="/external/js/cdnjs.cloudflare.com-1.14.3-popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
+    <script src="/external/js/stackpath.bootstrapcdn.com-4.1.3-bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
+        <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+        <script src="../../../../_static/jquery.js"></script>
+        <script src="../../../../_static/underscore.js"></script>
+        <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+        <script src="../../../../_static/doctools.js"></script>
+        <script src="../../../../_static/sphinx_highlight.js"></script>
+        <script src="../../../../_static/clipboard.min.js"></script>
+        <script src="../../../../_static/copybutton.js"></script>
+        <script src="../../../../_static/js/globaltoc.js"></script>
+        <script src="../../../../_static/design-tabs.js"></script>
+        <script src="../../../../_static/gh-jira-links.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/apache-airflow/2.8.0/_api/airflow/decorators/sensor/index.html b/docs/apache-airflow/2.8.0/_api/airflow/decorators/sensor/index.html
new file mode 100644
index 00000000..90922c5e
--- /dev/null
+++ b/docs/apache-airflow/2.8.0/_api/airflow/decorators/sensor/index.html
@@ -0,0 +1,1105 @@
+
+
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+    <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<head>
+        <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+        <title>airflow.decorators.sensor &mdash; Airflow Documentation</title>
+    <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+            <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+            <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+            <link rel="index" title="Index" href="../../../../genindex.html" />
+            <link rel="search" title="Search" href="../../../../search.html" />
+            <link rel="next" title="airflow.decorators.setup_teardown" href="../setup_teardown/index.html" />
+            <link rel="prev" title="airflow.decorators.python_virtualenv" href="../python_virtualenv/index.html" />
+
+    <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/sensor/index.html" />
+
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+        /* We explicitly disable cookie tracking to avoid privacy issues */
+        _paq.push(['disableCookies']);
+        _paq.push(['trackPageView']);
+        _paq.push(['enableLinkTracking']);
+        (function() {
+        var u="https://analytics.apache.org/";
+        _paq.push(['setTrackerUrl', u+'matomo.php']);
+        _paq.push(['setSiteId', '13']);
+        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+        g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
+
+    <!-- Scarf Telemetry Pixel -->
+    <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=7265a3c4-a6dd-4933-ba8b-9e3c13903c60" />
+    <!-- End Scarf Telemetry Pixel -->
+    
+</head><body class="td-section">
+    
+
+<header>
+    <nav class="js-navbar-scroll navbar">
+        <div class="navbar__icon-container">
+            <a href="/">
+                <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                    <defs>
+                        <clipPath id="clip-path">
+                            <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                        </clipPath>
+                    </defs>
+                    <g id="logo" transform="translate(-1305 -780.355)">
+                        <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                            <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178.258 [...]
+                                <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0zm-1 [...]
+                                <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482-.2h1 [...]
+                            </g>
+                        </g>
+                    </g>
+                </svg>
+
+            </a>
+        </div>
+        <div class="desktop-only navbar__menu-container">
+
+            <div class="navbar__menu-content" id="main_navbar">
+
+                <div class="navbar__links-container">
+                    
+                        <a class="navbar__text-link" href="/community/">
+                            Community
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/meetups/">
+                            Meetups
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/docs/">
+                            Documentation
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/use-cases/">
+                            Use-cases
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/announcements/">
+                            Announcements
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/blog/">
+                            Blog
+                        </a>
+                    
+                        <a class="navbar__text-link" href="/ecosystem/">
+                            Ecosystem
+                        </a>
+                    
+                </div>
+
+                
+
+            </div>
+
+        </div>
+        <div class="mobile-only navbar__drawer-container">
+            <button class="navbar__toggle-button" id="navbar-toggle-button">
+
+                <div id="hamburger-icon" class="navbar__toggle-button--icon visible">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="26" height="20" viewBox="0 0 26 20">
+                        <g id="Group_1294" data-name="Group 1294" transform="translate(-38.791 291)">
+                            <g id="Group_1291" data-name="Group 1291" transform="translate(39 -291)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="translate(39 -281.822)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                            <g id="Group_1293" data-name="Group 1293" transform="translate(39 -272.644)">
+                                <rect id="Rectangle_463" width="26" height="2" fill="#51504f" data-name="Rectangle 463" rx="1" transform="translate(-.209 -.356)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+                <div id="close-icon" class="navbar__toggle-button--icon">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                        <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                            <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                                <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                            </g>
+                            <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                                <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                            </g>
+                        </g>
+                    </svg>
+
+                </div>
+
+            </button>
+            <div class="navbar__drawer" id="navbar-drawer">
+                <div class="navbar__menu-content" id="main_navbar">
+
+                    <div class="navbar__links-container">
+                        
+                            <a class="navbar__text-link" href="/community/">
+                                Community
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/meetups/">
+                                Meetups
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/docs/">
+                                Documentation
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/use-cases/">
+                                Use-cases
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/announcements/">
+                                Announcements
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/blog/">
+                                Blog
+                            </a>
+                        
+                            <a class="navbar__text-link" href="/ecosystem/">
+                                Ecosystem
+                            </a>
+                        
+
+                    </div>
+                    
+
+                </div>
+            </div>
+        </div>
+    </nav>
+
+</header>
+
+
+    <div class="roadmap container-fluid td-default base-layout">
+        
+        
+    <div class="content-drawer-wrapper">
+        <button class="content-drawer__toggle-button" id="content-open-button">
+
+            <div id="hamburger-icon" class="content-drawer__toggle-button--icon visible">
+                <svg xmlns="http://www.w3.org/2000/svg" width="20.005" height="13.879" viewBox="0 0 20.005 13.879">
+                    <g id="Group_1619" data-name="Group 1619" transform="translate(271.132 -418.872)">
+                        <g id="Group_1613" data-name="Group 1613" transform="translate(-266.229 431.045)">
+                            <path id="Path_1337" d="M-218.5 513.215h-14.583a.259.259 0 0 1-.259-.26.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.26z" fill="#51504f" data-name="Path 1337" transform="translate(233.345 -512.696)"></path>
+                        </g>
+                        <g id="Group_1614" data-name="Group 1614" transform="translate(-266.229 425.684)">
+                            <path id="Path_1338" d="M-218.5 471.9h-14.583a.259.259 0 0 1-.259-.26.26.26 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.26.26 0 0 1-.259.26z" fill="#51504f" data-name="Path 1338" transform="translate(233.345 -471.376)"></path>
+                        </g>
+                        <g id="Group_1615" data-name="Group 1615" transform="translate(-266.229 420.323)">
+                            <path id="Path_1339" d="M-218.5 430.574h-14.583a.259.259 0 0 1-.259-.259.259.259 0 0 1 .259-.259h14.583a.26.26 0 0 1 .259.259.259.259 0 0 1-.259.259z" fill="#51504f" data-name="Path 1339" transform="translate(233.345 -430.055)"></path>
+                        </g>
+                        <g id="Group_1616" data-name="Group 1616" transform="translate(-271.132 429.814)">
+                            <path id="Path_1340" d="M-269.663 506.145a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1340" transform="translate(271.132 -503.208)"></path>
+                        </g>
+                        <g id="Group_1617" data-name="Group 1617" transform="translate(-271.132 424.556)">
+                            <path id="Path_1341" d="M-269.663 465.62a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.952z" fill="#51504f" data-name="Path 1341" transform="translate(271.132 -462.683)"></path>
+                        </g>
+                        <g id="Group_1618" data-name="Group 1618" transform="translate(-271.132 418.872)">
+                            <path id="Path_1342" d="M-269.663 421.809a1.47 1.47 0 0 1-1.469-1.469 1.47 1.47 0 0 1 1.469-1.469 1.47 1.47 0 0 1 1.469 1.469 1.47 1.47 0 0 1-1.469 1.469zm0-2.418a.951.951 0 0 0-.95.95.951.951 0 0 0 .95.95.951.951 0 0 0 .95-.95.951.951 0 0 0-.95-.95z" fill="#51504f" data-name="Path 1342" transform="translate(271.132 -418.872)"></path>
+                        </g>
+                    </g>
+                </svg>
+
+                <span class="bodytext__mobile--brownish-grey">Content</span>
+            </div>
+
+        </button>
+        <nav id="content-navbar" class="navbar navbar--hidden">
+            <div class="navbar__icon-container">
+                <a href="/">
+                    <svg xmlns="http://www.w3.org/2000/svg" width="155.314" height="60" viewBox="0 0 155.314 60">
+                        <defs>
+                            <clipPath id="clip-path">
+                                <path id="Rectangle_1" d="M0 0h155.314v60H0z" fill="none" data-name="Rectangle 1"></path>
+                            </clipPath>
+                        </defs>
+                        <g id="logo" transform="translate(-1305 -780.355)">
+                            <g id="Group_2" clip-path="url(#clip-path)" data-name="Group 2" transform="translate(1305 780.355)">
+                                <g id="Group_1" data-name="Group 1" transform="translate(.486 .486)">
+                                    <path id="Path_1" d="M1307.562 880.867l28.187-28.893a.521.521 0 0 0 .063-.666c-1.714-2.393-4.877-2.808-6.049-4.416-3.472-4.763-4.353-7.459-5.845-7.292a.456.456 0 0 0-.271.143l-10.182 10.438c-5.858 6-6.7 19.225-6.852 30.3a.552.552 0 0 0 .949.386z" fill="#017cee" data-name="Path 1" transform="translate(-1306.613 -822.232)"></path>
+                                    <path id="Path_2" d="M1405.512 908.489l-28.893-28.189a.521.521 0 0 0-.667-.063c-2.393 1.715-2.808 4.877-4.416 6.049-4.763 3.472-7.459 4.353-7.292 5.845a.456.456 0 0 0 .143.27l10.438 10.182c6 5.858 19.225 6.7 30.3 6.852a.552.552 0 0 0 .387-.946z" fill="#00ad46" data-name="Path 2" transform="translate(-1346.876 -850.567)"></path>
+                                    <path id="Path_3" d="M1373.909 902.252c-3.28-3.2-4.8-9.53 1.486-22.583-10.219 4.567-13.8 10.57-12.039 12.289z" fill="#04d659" data-name="Path 3" transform="translate(-1345.96 -850.233)"></path>
+                                    <path id="Path_4" d="M1433.132 782.359l-28.186 28.893a.52.52 0 0 0-.063.666c1.715 2.393 4.876 2.808 6.049 4.416 3.472 4.763 4.354 7.459 5.845 7.292a.454.454 0 0 0 .271-.143l10.182-10.438c5.858-6 6.7-19.225 6.852-30.3a.553.553 0 0 0-.95-.386z" fill="#00c7d4" data-name="Path 4" transform="translate(-1375.21 -782.123)"></path>
+                                    <path id="Path_5" d="M1426.9 881.155c-3.2 3.28-9.53 4.8-22.584-1.486 4.567 10.219 10.57 13.8 12.289 12.039z" fill="#11e1ee" data-name="Path 5" transform="translate(-1374.875 -850.233)"></path>
+                                    <path id="Path_6" d="M1307 782.919l28.893 28.186a.521.521 0 0 0 .666.063c2.393-1.715 2.808-4.877 4.416-6.049 4.763-3.472 7.459-4.353 7.292-5.845a.459.459 0 0 0-.143-.271l-10.438-10.182c-6-5.858-19.225-6.7-30.3-6.852a.552.552 0 0 0-.386.95z" fill="#e43921" data-name="Path 6" transform="translate(-1306.766 -781.97)"></path>
+                                    <path id="Path_7" d="M1405.8 804.711c3.28 3.2 4.8 9.53-1.486 22.584 10.219-4.567 13.8-10.571 12.039-12.289z" fill-rule="evenodd" fill="#ff7557" data-name="Path 7" transform="translate(-1374.875 -797.859)"></path>
+                                    <path id="Path_8" d="M1329.355 849.266c3.2-3.28 9.53-4.8 22.584 1.486-4.567-10.219-10.57-13.8-12.289-12.039z" fill="#0cb6ff" data-name="Path 8" transform="translate(-1322.503 -821.316)"></path>
+                                    <circle id="Ellipse_1" cx="1.26" cy="1.26" r="1.26" fill="#4a4848" data-name="Ellipse 1" transform="translate(28.18 28.171)"></circle>
+                                    <path id="Path_9" d="M1527.558 827.347a.229.229 0 0 1-.223-.223.458.458 0 0 1 .011-.123l2.766-7.214a.346.346 0 0 1 .357-.245h.758a.348.348 0 0 1 .357.245l2.754 7.214.022.123a.228.228 0 0 1-.223.223h-.568a.288.288 0 0 1-.19-.056.352.352 0 0 1-.089-.134l-.613-1.583h-3.657l-.613 1.583a.317.317 0 0 1-.1.134.269.269 0 0 1-.178.056zm4.795-2.732l-1.505-3.958-1.505 3.958zm3.322 4.85a.258.258 0 0 1-.189-.078.241.241 0 0 1-.067-.178v-7.4a.241.241 0 0 1 .067-.178 [...]
+                                    <path id="Path_10" d="M1527.2 827.081l-.061.061zm-.056-.279l-.08-.031zm2.766-7.214l.08.031zm1.472 0l-.081.029zm2.754 7.214l.084-.015a.064.064 0 0 0 0-.015zm.022.123h.086v-.015zm-.067.156l.06.061zm-.914.011l-.061.061.006.005zm-.089-.134l.081-.027zm-.613-1.583l.08-.031a.086.086 0 0 0-.08-.055zm-3.657 0v-.086a.086.086 0 0 0-.08.055zm-.613 1.583l-.08-.031zm-.1.134l.055.066zm4.047-2.676v.086a.086.086 0 0 0 .08-.116zm-1.505-3.958l.08-.03a.086.086 0 0 0-.16 0 [...]
+                                    <path id="Path_11" d="M1519.066 884.011a.581.581 0 0 1-.567-.567 1.151 1.151 0 0 1 .028-.312l7.026-18.328a.881.881 0 0 1 .906-.623h1.926a.882.882 0 0 1 .907.623l7 18.328.057.312a.583.583 0 0 1-.567.567h-1.445a.735.735 0 0 1-.482-.142.9.9 0 0 1-.226-.34l-1.558-4.023h-9.292l-1.558 4.023a.8.8 0 0 1-.255.34.688.688 0 0 1-.453.142zm12.181-6.94l-3.824-10.056-3.823 10.055zm8.184-10.538a.592.592 0 0 1-.652-.651v-1.53a.714.714 0 0 1 .17-.482.656.656 0 0 1 .482- [...]
+                                </g>
+                            </g>
+                        </g>
+                    </svg>
+
+                </a>
+            </div>
+
+            <div id="content-close-button">
+                <svg xmlns="http://www.w3.org/2000/svg" width="19.799" height="19.799" viewBox="0 0 19.799 19.799">
+                    <g id="Group_1574" data-name="Group 1574" transform="translate(-41.892 290.899)">
+                        <g id="Group_1291" data-name="Group 1291" transform="rotate(-45 -308.114 -187.077)">
+                            <rect id="Rectangle_461" width="26" height="2" fill="#51504f" data-name="Rectangle 461" rx="1" transform="translate(-.209)"></rect>
+                        </g>
+                        <g id="Group_1292" data-name="Group 1292" transform="rotate(45 372.48 -93.011)">
+                            <rect id="Rectangle_462" width="26" height="2" fill="#51504f" data-name="Rectangle 462" rx="1" transform="translate(-.209 -.178)"></rect>
+                        </g>
+                    </g>
+                </svg>
+
+            </div>
+
+        </nav>
+        <div class="content-drawer-container" id="content-drawer">
+            <div class="content-drawer">
+                <div class="td-sidebar">
+
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+    <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+       aria-expanded="false">
+        <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.8.0</span>
+    </a>
+    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+    </div>
+    <script type="application/x-template" id="version-item-template">
+        <a class="dropdown-item"></a>
+    </script>
+</div>
+
+<div class="searchb-box">
+    <form class="search-form" action="../../../../search.html" method="get">
+        <input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
+        <input type="hidden" name="check_keywords" value="yes" />
+        <input type="hidden" name="area" value="default" />
+
+        <button class="search-form__button" type="submit">
+
+            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+                <g id="Group_1579" data-name="Group 1579" transform="translate(-41.001 -41)">
+                    <path id="Path_169" d="M71.415 64.687a7.215 7.215 0 1 0-6.729 6.728 7.222 7.222 0 0 0 6.729-6.728z" fill="none" data-name="Path 169" transform="translate(-14.277 -14.276)"></path>
+                    <path id="Path_170" d="M60.863 59.8l-6.093-6.09a7.78 7.78 0 1 0-1.06 1.06l6.09 6.093a.468.468 0 0 0 .662 0l.4-.4a.468.468 0 0 0 .001-.663zM42.512 49.183a6.274 6.274 0 1 1 5.851 5.85 6.28 6.28 0 0 1-5.851-5.85z" fill="#51504f" data-name="Path 170"></path>
+                </g>
+            </svg>
+        </button>
+    </form>
+</div>
+
+
+<style>
+    .searchb-box {
+        margin-bottom: 26px;
+    }
+    .searchb-box .search-form {
+        width: 100%;
+        margin-top: 20px;
+    }
+</style>
+
+
+<div class="toctree" role="navigation" aria-label="main navigation">
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Apache Airflow&#174;</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
... 513892 lines suppressed ...