You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ut...@apache.org on 2024/09/06 09:53:23 UTC

(airflow-site) branch 2.10.1-docs created (now 892de461af)

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

utkarsharma pushed a change to branch 2.10.1-docs
in repository https://gitbox.apache.org/repos/asf/airflow-site.git


      at 892de461af Add documentation for Apache Airflow 2.10.1

This branch includes the following new commits:

     new 892de461af Add documentation for Apache Airflow 2.10.1

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(airflow-site) 01/01: Add documentation for Apache Airflow 2.10.1

Posted by ut...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

utkarsharma pushed a commit to branch 2.10.1-docs
in repository https://gitbox.apache.org/repos/asf/airflow-site.git

commit 892de461afcfd370aba0775b0fa5b2d3d4754668
Author: utkarsh sharma <ut...@gmail.com>
AuthorDate: Fri Sep 6 15:22:56 2024 +0530

    Add documentation for Apache Airflow 2.10.1
---
 .../2.10.1}/.buildinfo                             |     2 +-
 .../_api/airflow/decorators/base/index.html}       |  1110 +-
 .../_api/airflow/decorators/bash}/index.html       |   476 +-
 .../decorators/branch_external_python/index.html}  |   732 +-
 .../airflow/decorators/branch_python/index.html}   |   732 +-
 .../decorators/branch_virtualenv/index.html}       |   732 +-
 .../_api/airflow/decorators/condition/index.html}  |   745 +-
 .../airflow/decorators/external_python}/index.html |   476 +-
 .../2.10.1/_api/airflow/decorators/index.html}     |   966 +-
 .../_api/airflow/decorators/python/index.html}     |   729 +-
 .../decorators/python_virtualenv}/index.html       |   476 +-
 .../_api/airflow/decorators/sensor/index.html}     |   843 +-
 .../airflow/decorators/setup_teardown/index.html}  |   845 +-
 .../airflow/decorators/short_circuit}/index.html   |   476 +-
 .../_api/airflow/decorators/task_group/index.html} |   819 +-
 .../example_bash_decorator/index.html}             |   832 +-
 .../example_dags/example_bash_operator/index.html} |   830 +-
 .../example_branch_datetime_operator/index.html}   |   911 +-
 .../index.html}                                    |   822 +-
 .../example_dags/example_branch_labels/index.html} |   822 +-
 .../example_branch_operator/index.html}            |   824 +-
 .../example_branch_operator_decorator/index.html}  |   825 +-
 .../index.html}                                    |   869 +-
 .../example_dags/example_complex/index.html}       |   822 +-
 .../example_dags/example_dataset_alias/index.html} |   871 +-
 .../index.html}                                    |   869 +-
 .../example_dags/example_datasets/index.html}      |   862 +-
 .../example_dags/example_display_name/index.html}  |   855 +-
 .../example_dynamic_task_mapping/index.html}       |   835 +-
 .../index.html}                                    |   911 +-
 .../example_external_task_marker_dag/index.html}   |   851 +-
 .../example_inlet_event_extra/index.html}          |   857 +-
 .../example_kubernetes_executor/index.html}        |   838 +-
 .../example_dags/example_latest_only/index.html}   |   822 +-
 .../example_latest_only_with_trigger/index.html}   |   822 +-
 .../example_local_kubernetes_executor/index.html}  |   854 +-
 .../example_nested_branch_dag/index.html}          |   837 +-
 .../example_outlet_event_extra/index.html}         |   866 +-
 .../example_params_trigger_ui/index.html}          |   836 +-
 .../example_params_ui_tutorial/index.html}         |   837 +-
 .../index.html}                                    |   871 +-
 .../example_python_decorator/index.html}           |   866 +-
 .../example_python_operator/index.html}            |   867 +-
 .../example_sensor_decorator/index.html}           |   856 +-
 .../example_dags/example_sensors/index.html}       |   864 +-
 .../example_setup_teardown/index.html}             |   822 +-
 .../example_setup_teardown_taskflow/index.html}    |   833 +-
 .../example_short_circuit_decorator/index.html}    |   856 +-
 .../example_short_circuit_operator/index.html}     |   822 +-
 .../example_dags/example_skip_dag/index.html}      |   895 +-
 .../example_subdag_operator/index.html}            |   822 +-
 .../example_dags/example_task_group/index.html}    |   822 +-
 .../example_task_group_decorator/index.html}       |   921 +-
 .../example_time_delta_sensor_async/index.html}    |   823 +-
 .../example_trigger_controller_dag/index.html}     |   824 +-
 .../example_trigger_target_dag/index.html}         |   864 +-
 .../example_workday_timetable/index.html}          |   801 +-
 .../airflow/example_dags/example_xcom/index.html}  |   908 +-
 .../example_dags/example_xcomargs/index.html}      |   876 +-
 .../2.10.1/_api/airflow/example_dags/index.html}   |   859 +-
 .../airflow/example_dags/libs/helper}/index.html   |   507 +-
 .../_api/airflow/example_dags/libs}/index.html     |   467 +-
 .../index.html}                                    |   812 +-
 .../plugins/event_listener/index.html}             |   834 +-
 .../_api/airflow/example_dags/plugins}/index.html  |   476 +-
 .../plugins/listener_plugin/index.html}            |   748 +-
 .../example_dags/plugins/workday/index.html}       |   887 +-
 .../_api/airflow/example_dags/subdags}/index.html  |   467 +-
 .../example_dags/subdags/subdag/index.html}        |   729 +-
 .../_api/airflow/example_dags/tutorial/index.html} |   824 +-
 .../airflow/example_dags/tutorial_dag/index.html}  |   834 +-
 .../tutorial_objectstorage/index.html}             |   878 +-
 .../example_dags/tutorial_taskflow_api/index.html} |   838 +-
 .../tutorial_taskflow_api_virtualenv/index.html}   |   858 +-
 .../2.10.1/_api/airflow/exceptions/index.html      |  1870 ++
 .../2.10.1/_api/airflow/hooks/base/index.html}     |   963 +-
 .../2.10.1/_api/airflow/hooks/dbapi}/index.html    |   451 +-
 .../_api/airflow/hooks/filesystem/index.html}      |   833 +-
 .../2.10.1/_api/airflow/hooks}/index.html          |   452 +-
 .../_api/airflow/hooks/package_index/index.html}   |   817 +-
 .../_api/airflow/hooks/subprocess/index.html}      |   753 +-
 .../_api/airflow/models/baseoperator/index.html    |  2061 +++
 .../airflow/models/baseoperatorlink/index.html}    |   720 +-
 .../_api/airflow/models/connection/index.html}     |  1135 +-
 .../2.10.1/_api/airflow/models/dag/index.html      |  3436 ++++
 .../2.10.1/_api/airflow/models/dagbag/index.html}  |  1016 +-
 .../2.10.1/_api/airflow/models/dagrun/index.html   |  1846 ++
 .../2.10.1/_api/airflow/models/param/index.html}   |  1148 +-
 .../_api/airflow/models/taskinstance/index.html    |  2545 +++
 .../airflow/models/taskinstancekey/index.html}     |   812 +-
 .../_api/airflow/models/variable/index.html}       |   945 +-
 .../2.10.1/_api/airflow/models/xcom/index.html}    |   975 +-
 .../2.10.1/_api/airflow/operators/bash/index.html} |   750 +-
 .../_api/airflow/operators/branch/index.html}      |   669 +-
 .../_api/airflow/operators/datetime}/index.html    |   458 +-
 .../_api/airflow/operators/email}/index.html       |   455 +-
 .../_api/airflow/operators/empty/index.html}       |   641 +-
 .../airflow/operators/generic_transfer}/index.html |   455 +-
 .../2.10.1/_api/airflow/operators}/index.html      |   260 +-
 .../_api/airflow/operators/latest_only/index.html} |   640 +-
 .../_api/airflow/operators/python/index.html       |  1489 ++
 .../_api/airflow/operators/smooth}/index.html      |   293 +-
 .../_api/airflow/operators/subdag/index.html}      |   694 +-
 .../airflow/operators/trigger_dagrun/index.html}   |   800 +-
 .../_api/airflow/operators/weekday}/index.html     |   472 +-
 .../_api/airflow/secrets/base_secrets/index.html}  |   863 +-
 .../2.10.1/_api/airflow/secrets/cache/index.html}  |   829 +-
 .../secrets/environment_variables/index.html}      |   831 +-
 .../2.10.1/_api/airflow/secrets}/index.html        |   514 +-
 .../airflow/secrets/local_filesystem/index.html}   |   900 +-
 .../_api/airflow/secrets/metastore/index.html}     |   762 +-
 .../2.10.1/_api/airflow/sensors/base/index.html}   |   821 +-
 .../2.10.1/_api/airflow/sensors/bash}/index.html   |   308 +-
 .../_api/airflow/sensors/date_time/index.html}     |   704 +-
 .../_api/airflow/sensors/external_task/index.html} |   892 +-
 .../_api/airflow/sensors/filesystem}/index.html    |   485 +-
 .../2.10.1/_api/airflow/sensors}/index.html        |   257 +-
 .../2.10.1/_api/airflow/sensors/python}/index.html |   307 +-
 .../_api/airflow/sensors/time_delta}/index.html    |   465 +-
 .../_api/airflow/sensors/time_sensor}/index.html   |   480 +-
 .../_api/airflow/sensors/weekday}/index.html       |   459 +-
 .../_api/airflow/timetables/_cron}/index.html      |   297 +-
 .../_api/airflow/timetables/base/index.html}       |  1074 +-
 .../_api/airflow/timetables/datasets/index.html}   |   830 +-
 .../_api/airflow/timetables/events/index.html}     |   830 +-
 .../2.10.1/_api/airflow/timetables}/index.html     |   315 +-
 .../_api/airflow/timetables/interval/index.html}   |   905 +-
 .../_api/airflow/timetables/simple/index.html}     |   922 +-
 .../_api/airflow/timetables/trigger/index.html}    |   775 +-
 .../2.10.1/_api/airflow/triggers/base/index.html}  |  1020 +-
 .../airflow/triggers/external_task/index.html}     |   894 +-
 .../2.10.1/_api/airflow/triggers/file/index.html}  |   725 +-
 .../2.10.1/_api/airflow/triggers}/index.html       |   312 +-
 .../_api/airflow/triggers/temporal/index.html}     |   758 +-
 .../_api/airflow/triggers/testing/index.html}      |   783 +-
 .../2.10.1/_api/airflow/utils/state/index.html     |  1458 ++
 docs-archive/apache-airflow/2.10.1/_api/index.html |     1 +
 .../index.html                                     |   261 +-
 .../index.html                                     |   263 +-
 .../2.10.1/_api/tests/system/core}/index.html      |   255 +-
 .../apache-airflow/2.10.1/_images/add-dag-tags.png |   Bin 0 -> 54332 bytes
 .../_images/add_container_python_interpreter.png   |   Bin 0 -> 339750 bytes
 .../apache-airflow/2.10.1/_images/airflow_erd.svg  |  2293 +++
 .../apache-airflow/2.10.1/_images/apache.jpg       |   Bin 0 -> 43364 bytes
 .../2.10.1/_images/arch-diag-logging.png           |   Bin 0 -> 25843 bytes
 .../apache-airflow/2.10.1/_images/audit_log.png    |   Bin 0 -> 456601 bytes
 .../apache-airflow/2.10.1/_images/basic-dag.png    |   Bin 0 -> 12837 bytes
 .../apache-airflow/2.10.1/_images/branch_note.png  |   Bin 0 -> 31259 bytes
 .../2.10.1/_images/branch_with_trigger.png         |   Bin 0 -> 28541 bytes
 .../2.10.1/_images/branch_without_trigger.png      |   Bin 0 -> 28914 bytes
 .../apache-airflow/2.10.1/_images/calendar.png     |   Bin 0 -> 34689 bytes
 .../2.10.1/_images/cli_completion.gif              |   Bin 0 -> 775263 bytes
 .../2.10.1/_images/cluster_activity.png            |   Bin 0 -> 116167 bytes
 .../apache-airflow/2.10.1/_images/code.png         |   Bin 0 -> 504063 bytes
 .../2.10.1/_images/connection_create.png           |   Bin 0 -> 52889 bytes
 .../2.10.1/_images/connection_edit.png             |   Bin 0 -> 31186 bytes
 .../apache-airflow/2.10.1/_images/dag_doc.png      |   Bin 0 -> 93757 bytes
 .../2.10.1/_images/dag_file_processing_diagram.png |   Bin 0 -> 263825 bytes
 .../2.10.1/_images/dag_serialization.png           |   Bin 0 -> 99917 bytes
 .../2.10.1/_images/dags-page-new.png               |   Bin 0 -> 74143 bytes
 .../2.10.1/_images/dags-page-old.png               |   Bin 0 -> 72288 bytes
 .../apache-airflow/2.10.1/_images/dags.png         |   Bin 0 -> 614240 bytes
 .../2.10.1/_images/dataset-scheduled-dags.png      |   Bin 0 -> 77225 bytes
 .../apache-airflow/2.10.1/_images/datasets.png     |   Bin 0 -> 406053 bytes
 .../default_instance_name_configuration.png        |   Bin 0 -> 68441 bytes
 .../2.10.1/_images/demo_graph_view.png             |   Bin 0 -> 382210 bytes
 .../2.10.1/_images/demo_grid_view.png              |   Bin 0 -> 65574 bytes
 .../diagram_auth_manager_airflow_architecture.png  |   Bin 0 -> 54220 bytes
 .../_images/diagram_basic_airflow_architecture.png |   Bin 0 -> 117106 bytes
 .../diagram_dag_processor_airflow_architecture.png |   Bin 0 -> 238002 bytes
 .../diagram_distributed_airflow_architecture.png   |   Bin 0 -> 192331 bytes
 .../apache-airflow/2.10.1/_images/duration.png     |   Bin 0 -> 358076 bytes
 .../2.10.1/_images/edge_label_example.png          |   Bin 0 -> 37438 bytes
 .../2.10.1/_images/email_connection.png            |   Bin 0 -> 59515 bytes
 .../example_instance_name_configuration.png        |   Bin 0 -> 68231 bytes
 .../2.10.1/_images/example_passing_conf.png        |   Bin 0 -> 53383 bytes
 .../apache-airflow/2.10.1/_images/gantt.png        |   Bin 0 -> 313750 bytes
 .../2.10.1/_images/graph-view-new.png              |   Bin 0 -> 34492 bytes
 .../2.10.1/_images/graph-view-old.png              |   Bin 0 -> 34721 bytes
 .../apache-airflow/2.10.1/_images/graph.png        |   Bin 0 -> 417210 bytes
 ...iz-5817c4b4cb6cd3ea7d604aa85ab3420b64a24446.svg |   200 +
 .../apache-airflow/2.10.1/_images/grid.png         |   Bin 0 -> 334128 bytes
 .../2.10.1/_images/grid_instance_details.png       |   Bin 0 -> 178129 bytes
 .../2.10.1/_images/grid_mapped_task.png            |   Bin 0 -> 135753 bytes
 .../2.10.1/_images/grid_run_details.png            |   Bin 0 -> 202106 bytes
 .../2.10.1/_images/grid_task_details.png           |   Bin 0 -> 227349 bytes
 .../2.10.1/_images/grid_task_group.png             |   Bin 0 -> 56287 bytes
 .../2.10.1/_images/howto-owner-links.gif           |   Bin 0 -> 829619 bytes
 .../2.10.1/_images/landing_times.png               |   Bin 0 -> 303523 bytes
 .../2.10.1/_images/latest_only_with_trigger.png    |   Bin 0 -> 59580 bytes
 .../2.10.1/_images/mapping-simple-graph.png        |   Bin 0 -> 7731 bytes
 .../2.10.1/_images/mapping-simple-grid.png         |   Bin 0 -> 93751 bytes
 .../2.10.1/_images/operator_extra_link.png         |   Bin 0 -> 75061 bytes
 .../apache-airflow/2.10.1/_images/run_types.png    |   Bin 0 -> 5950 bytes
 .../2.10.1/_images/setup-teardown-complex.png      |   Bin 0 -> 114476 bytes
 .../2.10.1/_images/setup-teardown-group.png        |   Bin 0 -> 48789 bytes
 .../2.10.1/_images/setup-teardown-nesting.png      |   Bin 0 -> 83934 bytes
 .../2.10.1/_images/setup-teardown-parallel.png     |   Bin 0 -> 43571 bytes
 .../2.10.1/_images/setup-teardown-scope.png        |   Bin 0 -> 62951 bytes
 .../2.10.1/_images/setup-teardown-setup-group.png  |   Bin 0 -> 76759 bytes
 .../2.10.1/_images/setup-teardown-simple.png       |   Bin 0 -> 29606 bytes
 .../apache-airflow/2.10.1/_images/subdag_after.png |   Bin 0 -> 30245 bytes
 .../2.10.1/_images/subdag_before.png               |   Bin 0 -> 70382 bytes
 .../apache-airflow/2.10.1/_images/subdag_zoom.png  |   Bin 0 -> 145017 bytes
 .../apache-airflow/2.10.1/_images/task_doc.png     |   Bin 0 -> 145331 bytes
 .../apache-airflow/2.10.1/_images/task_group.gif   |   Bin 0 -> 137189 bytes
 .../2.10.1/_images/task_instance_history.png       |   Bin 0 -> 118727 bytes
 .../2.10.1/_images/task_instance_history_log.png   |   Bin 0 -> 156398 bytes
 .../2.10.1/_images/task_lifecycle_diagram.png      |   Bin 0 -> 32164 bytes
 .../_images/template_field_renderer_path.png       |   Bin 0 -> 64442 bytes
 .../2.10.1/_images/tree-view-new.png               |   Bin 0 -> 20188 bytes
 .../2.10.1/_images/tree-view-old.png               |   Bin 0 -> 20146 bytes
 .../2.10.1/_images/trigger-dag-tutorial-form.png   |   Bin 0 -> 247468 bytes
 .../2.10.1/_images/tutorial-pipeline-1.png         |   Bin 0 -> 66411 bytes
 .../2.10.1/_images/tutorial-pipeline-2.png         |   Bin 0 -> 137595 bytes
 .../2.10.1/_images/ui-alert-message.png            |   Bin 0 -> 48753 bytes
 .../2.10.1/_images/ui-timezone-chooser.png         |   Bin 0 -> 16644 bytes
 .../2.10.1/_images/usage_cli_export.png            |   Bin 0 -> 397830 bytes
 .../2.10.1/_images/usage_cli_imgcat.png            |   Bin 0 -> 475224 bytes
 .../2.10.1/_images/variable_hidden.png             |   Bin 0 -> 55331 bytes
 .../apache-airflow/2.10.1/_images/watcher.png      |   Bin 0 -> 20310 bytes
 .../2.10.1/_modules/airflow/decorators.html}       |   494 +-
 .../2.10.1/_modules/airflow/decorators/base.html   |  1537 ++
 .../decorators/branch_external_python.html}        |   271 +-
 .../airflow/decorators/branch_python.html}         |   271 +-
 .../airflow/decorators/branch_virtualenv.html}     |   271 +-
 .../_modules/airflow/decorators/condition.html}    |   521 +-
 .../_modules/airflow/decorators/python.html}       |   294 +-
 .../_modules/airflow/decorators/sensor.html}       |   289 +-
 .../airflow/decorators/setup_teardown.html}        |   298 +-
 .../_modules/airflow/decorators/task_group.html}   |   621 +-
 .../example_dags/example_bash_decorator.html}      |   328 +-
 .../example_dags/example_bash_operator.html}       |   289 +-
 .../example_branch_datetime_operator.html}         |   317 +-
 .../example_branch_day_of_week_operator.html}      |   273 +-
 .../example_dags/example_branch_labels.html}       |   258 +-
 .../example_dags/example_branch_operator.html}     |   383 +-
 .../example_branch_operator_decorator.html}        |   362 +-
 .../example_branch_python_dop_operator_3.html}     |   273 +-
 .../airflow/example_dags/example_complex.html}     |   891 +-
 .../example_dags/example_dataset_alias.html}       |   508 +-
 .../example_dataset_alias_with_no_taskflow.html}   |   320 +-
 .../airflow/example_dags/example_datasets.html}    |   404 +-
 .../example_dags/example_display_name.html}        |   260 +-
 .../example_dynamic_task_mapping.html}             |   251 +-
 ...c_task_mapping_with_no_taskflow_operators.html} |   276 +-
 .../example_external_task_marker_dag.html}         |   310 +-
 .../example_dags/example_inlet_event_extra.html}   |   273 +-
 .../example_dags/example_kubernetes_executor.html} |   451 +-
 .../airflow/example_dags/example_latest_only.html} |   250 +-
 .../example_latest_only_with_trigger.html}         |   261 +-
 .../example_local_kubernetes_executor.html}        |   284 +-
 .../example_dags/example_nested_branch_dag.html}   |   269 +-
 .../example_dags/example_outlet_event_extra.html}  |   292 +-
 .../example_dags/example_params_trigger_ui.html}   |   316 +-
 .../example_dags/example_params_ui_tutorial.html}  |   658 +-
 .../example_passing_params_via_test_command.html}  |   299 +-
 .../example_dags/example_python_decorator.html}    |   543 +-
 .../example_dags/example_python_operator.html}     |   777 +-
 .../example_dags/example_sensor_decorator.html}    |   279 +-
 .../airflow/example_dags/example_sensors.html}     |   344 +-
 .../example_dags/example_setup_teardown.html}      |   262 +-
 .../example_setup_teardown_taskflow.html}          |   319 +-
 .../example_short_circuit_decorator.html}          |   273 +-
 .../example_short_circuit_operator.html}           |   279 +-
 .../airflow/example_dags/example_skip_dag.html}    |   285 +-
 .../example_dags/example_subdag_operator.html}     |   282 +-
 .../airflow/example_dags/example_task_group.html}  |   278 +-
 .../example_task_group_decorator.html}             |   293 +-
 .../example_time_delta_sensor_async.html}          |   254 +-
 .../example_trigger_controller_dag.html}           |   254 +-
 .../example_dags/example_trigger_target_dag.html}  |   268 +-
 .../airflow/example_dags/example_xcom.html}        |   502 +-
 .../airflow/example_dags/example_xcomargs.html}    |   278 +-
 .../airflow/example_dags/libs/helper.html}         |   234 +-
 .../decreasing_priority_weight_strategy.html}      |   253 +-
 .../example_dags/plugins/event_listener.html}      |   384 +-
 .../example_dags/plugins/listener_plugin.html}     |   238 +-
 .../airflow/example_dags/plugins/workday.html}     |   511 +-
 .../airflow/example_dags/subdags/subdag.html}      |   268 +-
 .../_modules/airflow/example_dags/tutorial.html}   |   339 +-
 .../airflow/example_dags/tutorial_dag.html}        |   348 +-
 .../example_dags/tutorial_objectstorage.html}      |   542 +-
 .../example_dags/tutorial_taskflow_api.html}       |   318 +-
 .../tutorial_taskflow_api_virtualenv.html}         |   299 +-
 .../2.10.1/_modules/airflow/exceptions.html        |  1367 ++
 .../2.10.1/_modules/airflow/hooks/base.html}       |   401 +-
 .../2.10.1/_modules/airflow/hooks/filesystem.html} |   301 +-
 .../_modules/airflow/hooks/package_index.html}     |   502 +-
 .../2.10.1/_modules/airflow/hooks/subprocess.html} |   318 +-
 .../2.10.1/_modules/airflow/macros.html}           |   336 +-
 .../_modules/airflow/models/baseoperator.html      |  2985 +++
 .../_modules/airflow/models/baseoperatorlink.html} |   270 +-
 .../2.10.1/_modules/airflow/models/connection.html |  1452 ++
 .../2.10.1/_modules/airflow/models/dag.html        |  5292 ++++++
 .../2.10.1/_modules/airflow/models/dagbag.html     |  1641 ++
 .../2.10.1/_modules/airflow/models/dagrun.html     |  2585 +++
 .../2.10.1/_modules/airflow/models/param.html}     |   768 +-
 .../_modules/airflow/models/taskinstance.html      |  5088 ++++++
 .../_modules/airflow/models/taskinstancekey.html}  |   273 +-
 .../2.10.1/_modules/airflow/models/variable.html}  |   994 +-
 .../2.10.1/_modules/airflow/models/xcom.html       |  1678 ++
 .../2.10.1/_modules/airflow/operators/bash.html}   |   663 +-
 .../2.10.1/_modules/airflow/operators/branch.html} |   505 +-
 .../_modules/airflow/operators/datetime.html}      |   331 +-
 .../2.10.1/_modules/airflow/operators/email.html}  |   302 +-
 .../2.10.1/_modules/airflow/operators/empty.html}  |   251 +-
 .../airflow/operators/generic_transfer.html}       |   515 +-
 .../_modules/airflow/operators/latest_only.html}   |   289 +-
 .../2.10.1/_modules/airflow/operators/python.html  |  2015 +++
 .../2.10.1/_modules/airflow/operators/smooth.html} |   250 +-
 .../2.10.1/_modules/airflow/operators/subdag.html} |   921 +-
 .../airflow/operators/trigger_dagrun.html}         |   931 +-
 .../_modules/airflow/operators/weekday.html}       |   536 +-
 .../2.10.1/_modules/airflow/policies.html}         |   617 +-
 .../2.10.1/_modules/airflow/secrets.html}          |   249 +-
 .../_modules/airflow/secrets/base_secrets.html}    |   562 +-
 .../2.10.1/_modules/airflow/secrets/cache.html}    |   344 +-
 .../airflow/secrets/environment_variables.html}    |   275 +-
 .../airflow/secrets/local_filesystem.html}         |   743 +-
 .../_modules/airflow/secrets/metastore.html}       |   302 +-
 .../2.10.1/_modules/airflow/sensors/base.html}     |   862 +-
 .../2.10.1/_modules/airflow/sensors/bash.html}     |   521 +-
 .../_modules/airflow/sensors/date_time.html}       |   540 +-
 .../_modules/airflow/sensors/external_task.html    |  1394 ++
 .../_modules/airflow/sensors/filesystem.html}      |   545 +-
 .../2.10.1/_modules/airflow/sensors/python.html}   |   292 +-
 .../_modules/airflow/sensors/time_delta.html}      |   303 +-
 .../_modules/airflow/sensors/time_sensor.html}     |   518 +-
 .../2.10.1/_modules/airflow/sensors/weekday.html}  |   327 +-
 .../2.10.1/_modules/airflow/timetables/_cron.html} |   555 +-
 .../2.10.1/_modules/airflow/timetables/base.html}  |   696 +-
 .../_modules/airflow/timetables/datasets.html}     |   504 +-
 .../_modules/airflow/timetables/events.html}       |   541 +-
 .../_modules/airflow/timetables/interval.html}     |   682 +-
 .../_modules/airflow/timetables/simple.html}       |   640 +-
 .../_modules/airflow/timetables/trigger.html}      |   522 +-
 .../2.10.1/_modules/airflow/triggers/base.html}    |   649 +-
 .../_modules/airflow/triggers/external_task.html}  |   943 +-
 .../2.10.1/_modules/airflow/triggers/file.html}    |   299 +-
 .../_modules/airflow/triggers/temporal.html}       |   317 +-
 .../2.10.1/_modules/airflow/triggers/testing.html} |   265 +-
 .../2.10.1/_modules/airflow/utils/state.html}      |   438 +-
 .../2.10.1}/_modules/index.html                    |   277 +-
 .../example_external_task_child_deferrable.html}   |   252 +-
 .../example_external_task_parent_deferrable.html}  |   282 +-
 .../_api/airflow/decorators/base/index.rst.txt     |   222 +
 .../_api/airflow/decorators/bash/index.rst.txt     |     6 +
 .../branch_external_python/index.rst.txt           |    34 +
 .../airflow/decorators/branch_python/index.rst.txt |    34 +
 .../decorators/branch_virtualenv/index.rst.txt     |    34 +
 .../airflow/decorators/condition/index.rst.txt     |    38 +
 .../decorators/external_python/index.rst.txt       |     6 +
 .../_sources/_api/airflow/decorators/index.rst.txt |   155 +
 .../_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_decorator/index.rst.txt           |    22 +
 .../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          |    21 +
 .../index.rst.txt                                  |    22 +
 .../index.rst.txt                                  |    45 +
 .../example_dags/example_complex/index.rst.txt     |    18 +
 .../example_dataset_alias/index.rst.txt            |    54 +
 .../index.rst.txt                                  |    52 +
 .../example_dags/example_datasets/index.rst.txt    |    58 +
 .../example_display_name/index.rst.txt             |    34 +
 .../example_dynamic_task_mapping/index.rst.txt     |    27 +
 .../index.rst.txt                                  |    76 +
 .../example_external_task_marker_dag/index.rst.txt |    44 +
 .../example_inlet_event_extra/index.rst.txt        |    41 +
 .../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_outlet_event_extra/index.rst.txt       |    45 +
 .../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          |    19 +
 .../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_workday_timetable/index.rst.txt        |     6 +
 .../example_dags/example_xcom/index.rst.txt        |    68 +
 .../example_dags/example_xcomargs/index.rst.txt    |    52 +
 .../_api/airflow/example_dags/index.rst.txt        |    74 +
 .../airflow/example_dags/libs/helper/index.rst.txt |    22 +
 .../_api/airflow/example_dags/libs/index.rst.txt   |    15 +
 .../index.rst.txt                                  |    50 +
 .../plugins/event_listener/index.rst.txt           |    63 +
 .../airflow/example_dags/plugins/index.rst.txt     |    18 +
 .../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 |   569 +
 .../_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 |   947 +
 .../airflow/models/baseoperatorlink/index.rst.txt  |    55 +
 .../_api/airflow/models/connection/index.rst.txt   |   258 +
 .../_sources/_api/airflow/models/dag/index.rst.txt |  1340 ++
 .../_api/airflow/models/dagbag/index.rst.txt       |   197 +
 .../_api/airflow/models/dagrun/index.rst.txt       |   483 +
 .../_api/airflow/models/param/index.rst.txt        |   249 +
 .../_api/airflow/models/taskinstance/index.rst.txt |   870 +
 .../airflow/models/taskinstancekey/index.rst.txt   |    84 +
 .../_api/airflow/models/variable/index.rst.txt     |   169 +
 .../_api/airflow/models/xcom/index.rst.txt         |   175 +
 .../_api/airflow/operators/bash/index.rst.txt      |   173 +
 .../_api/airflow/operators/branch/index.rst.txt    |    77 +
 .../_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  |    35 +
 .../airflow/operators/latest_only/index.rst.txt    |    54 +
 .../_api/airflow/operators/python/index.rst.txt    |   481 +
 .../_api/airflow/operators/smooth/index.rst.txt    |    47 +
 .../_api/airflow/operators/subdag/index.rst.txt    |    98 +
 .../airflow/operators/trigger_dagrun/index.rst.txt |   133 +
 .../_api/airflow/operators/weekday/index.rst.txt   |    98 +
 .../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        |   154 +
 .../_api/airflow/sensors/bash/index.rst.txt        |    59 +
 .../_api/airflow/sensors/date_time/index.rst.txt   |   103 +
 .../airflow/sensors/external_task/index.rst.txt    |   216 +
 .../_api/airflow/sensors/filesystem/index.rst.txt  |    88 +
 .../_sources/_api/airflow/sensors/index.rst.txt    |    32 +
 .../_api/airflow/sensors/python/index.rst.txt      |    57 +
 .../_api/airflow/sensors/time_delta/index.rst.txt  |    73 +
 .../_api/airflow/sensors/time_sensor/index.rst.txt |    83 +
 .../_api/airflow/sensors/weekday/index.rst.txt     |    81 +
 .../_api/airflow/timetables/_cron/index.rst.txt    |    41 +
 .../_api/airflow/timetables/base/index.rst.txt     |   271 +
 .../_api/airflow/timetables/datasets/index.rst.txt |    96 +
 .../_api/airflow/timetables/events/index.rst.txt   |    99 +
 .../_sources/_api/airflow/timetables/index.rst.txt |    20 +
 .../_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       |   200 +
 .../airflow/triggers/external_task/index.rst.txt   |   126 +
 .../_api/airflow/triggers/file/index.rst.txt       |    44 +
 .../_sources/_api/airflow/triggers/index.rst.txt   |    19 +
 .../_api/airflow/triggers/temporal/index.rst.txt   |    73 +
 .../_api/airflow/triggers/testing/index.rst.txt    |    90 +
 .../_api/airflow/utils/state/index.rst.txt         |   300 +
 .../index.rst.txt                                  |    13 +
 .../index.rst.txt                                  |    17 +
 .../_sources/_api/tests/system/core/index.rst.txt  |    16 +
 .../cluster-policies.rst.txt                       |   185 +
 .../dag-serialization.rst.txt                      |   121 +
 .../administration-and-deployment/index.rst.txt    |    36 +
 .../kubernetes.rst.txt                             |    67 +
 .../administration-and-deployment/lineage.rst.txt  |   156 +
 .../listeners.rst.txt                              |   185 +
 .../advanced-logging-configuration.rst.txt         |   184 +
 .../logging-monitoring/callbacks.rst.txt           |   101 +
 .../logging-monitoring/check-health.rst.txt        |   163 +
 .../logging-monitoring/errors.rst.txt              |   112 +
 .../logging-monitoring/index.rst.txt               |    41 +
 .../logging-architecture.rst.txt                   |    47 +
 .../logging-monitoring/logging-tasks.rst.txt       |   206 +
 .../logging-monitoring/metrics.rst.txt             |   294 +
 .../logging-monitoring/traces.rst.txt              |    61 +
 .../tracking-user-activity.rst.txt                 |    40 +
 .../modules_management.rst.txt                     |   405 +
 .../administration-and-deployment/pools.rst.txt    |    90 +
 .../priority-weight.rst.txt                        |    98 +
 .../production-deployment.rst.txt                  |   296 +
 .../scheduler.rst.txt                              |   389 +
 .../authoring-and-scheduling/connections.rst.txt   |    51 +
 .../_sources/authoring-and-scheduling/cron.rst.txt |    70 +
 .../dagfile-processing.rst.txt                     |    47 +
 .../authoring-and-scheduling/datasets.rst.txt      |   532 +
 .../authoring-and-scheduling/deferring.rst.txt     |   436 +
 .../dynamic-task-mapping.rst.txt                   |   671 +
 .../authoring-and-scheduling/index.rst.txt         |    45 +
 .../authoring-and-scheduling/plugins.rst.txt       |   340 +
 .../authoring-and-scheduling/serializers.rst.txt   |   129 +
 .../authoring-and-scheduling/timetable.rst.txt     |   337 +
 .../authoring-and-scheduling/timezone.rst.txt      |   193 +
 .../2.10.1/_sources/best-practices.rst.txt         |  1111 ++
 .../_sources/cli-and-env-variables-ref.rst.txt     |   113 +
 .../2.10.1/_sources/configurations-ref.rst.txt     |    52 +
 .../_sources/core-concepts/auth-manager.rst.txt    |   179 +
 .../2.10.1/_sources/core-concepts/dag-run.rst.txt  |   286 +
 .../2.10.1/_sources/core-concepts/dags.rst.txt     |   926 +
 .../2.10.1/_sources/core-concepts/debug.rst.txt    |   139 +
 .../_sources/core-concepts/executor/index.rst.txt  |   350 +
 .../_sources/core-concepts/executor/local.rst.txt  |    57 +
 .../core-concepts/executor/sequential.rst.txt      |    26 +
 .../2.10.1/_sources/core-concepts/index.rst.txt    |    60 +
 .../_sources/core-concepts/objectstorage.rst.txt   |   330 +
 .../_sources/core-concepts/operators.rst.txt       |   310 +
 .../2.10.1/_sources/core-concepts/overview.rst.txt |   246 +
 .../2.10.1/_sources/core-concepts/params.rst.txt   |   404 +
 .../2.10.1/_sources/core-concepts/sensors.rst.txt  |    32 +
 .../2.10.1/_sources/core-concepts/taskflow.rst.txt |   208 +
 .../2.10.1/_sources/core-concepts/tasks.rst.txt    |   343 +
 .../_sources/core-concepts/variables.rst.txt       |    48 +
 .../2.10.1/_sources/core-concepts/xcoms.rst.txt    |   133 +
 .../2.10.1/_sources/database-erd-ref.rst.txt       |    38 +
 .../_sources/deprecated-rest-api-ref.rst.txt       |   132 +
 .../2.10.1/_sources/extra-packages-ref.rst.txt     |   486 +
 .../apache-airflow/2.10.1/_sources/faq.rst.txt     |   550 +
 .../2.10.1/_sources/howto/add-dag-tags.rst.txt     |    44 +
 .../2.10.1/_sources/howto/add-owner-links.rst.txt  |    50 +
 .../2.10.1/_sources/howto/connection.rst.txt       |   515 +
 .../_sources/howto/create-custom-decorator.rst.txt |   124 +
 .../2.10.1/_sources/howto/custom-operator.rst.txt  |   431 +
 .../_sources/howto/custom-view-plugin.rst.txt      |    76 +
 .../2.10.1/_sources/howto/customize-ui.rst.txt     |   171 +
 .../_sources/howto/define-extra-link.rst.txt       |   179 +
 .../_sources/howto/docker-compose/index.rst.txt    |   473 +
 .../_sources/howto/dynamic-dag-generation.rst.txt  |   220 +
 .../2.10.1/_sources/howto/email-config.rst.txt     |   194 +
 .../_sources/howto/export-more-env-vars.rst.txt    |    46 +
 .../2.10.1/_sources/howto/index.rst.txt            |    55 +
 .../2.10.1/_sources/howto/listener-plugin.rst.txt  |    95 +
 .../2.10.1/_sources/howto/notifications.rst.txt    |    80 +
 .../2.10.1/_sources/howto/operator/bash.rst.txt    |   400 +
 .../_sources/howto/operator/datetime.rst.txt       |    74 +
 .../howto/operator/external_task_sensor.rst.txt    |    88 +
 .../2.10.1/_sources/howto/operator/file.rst.txt    |    41 +
 .../2.10.1/_sources/howto/operator/index.rst.txt   |    38 +
 .../2.10.1/_sources/howto/operator/python.rst.txt  |   488 +
 .../2.10.1/_sources/howto/operator/time.rst.txt    |    78 +
 .../2.10.1/_sources/howto/operator/weekday.rst.txt |    44 +
 .../2.10.1/_sources/howto/run-behind-proxy.rst.txt |    84 +
 .../2.10.1/_sources/howto/run-with-systemd.rst.txt |    40 +
 .../2.10.1/_sources/howto/set-config.rst.txt       |   220 +
 .../2.10.1/_sources/howto/set-up-database.rst.txt  |   469 +
 .../_sources/howto/setup-and-teardown.rst.txt      |   233 +
 .../2.10.1/_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.10.1/_sources/howto/usage-cli.rst.txt        |   407 +
 .../2.10.1/_sources/howto/variable.rst.txt         |    76 +
 .../apache-airflow/2.10.1/_sources/index.rst.txt   |   185 +
 .../_sources/installation/dependencies.rst.txt     |    88 +
 .../2.10.1/_sources/installation/index.rst.txt     |   397 +
 .../installation/installing-from-pypi.rst.txt      |   378 +
 .../installation/installing-from-sources.rst.txt   |   161 +
 .../_sources/installation/prerequisites.rst.txt    |    59 +
 .../installation/setting-up-the-database.rst.txt   |    39 +
 .../installation/supported-versions.rst.txt        |    69 +
 .../2.10.1/_sources/installation/upgrading.rst.txt |   290 +
 .../2.10.1/_sources/integration.rst.txt            |    38 +
 .../apache-airflow/2.10.1/_sources/license.rst.txt |   201 +
 .../2.10.1/_sources/migrations-ref.rst.txt         |   377 +
 .../_sources/operators-and-hooks-ref.rst.txt       |   128 +
 .../2.10.1/_sources/privacy_notice.rst.txt         |    23 +
 .../apache-airflow/2.10.1/_sources/project.rst.txt |   122 +
 .../_sources/public-airflow-interface.rst.txt      |   431 +
 .../2.10.1/_sources/release-process.rst.txt        |    97 +
 .../2.10.1/_sources/release_notes.rst.txt          |    23 +
 .../2.10.1/_sources/security/api.rst.txt           |    52 +
 .../2.10.1/_sources/security/audit_logs.rst.txt    |    67 +
 .../2.10.1/_sources/security/flower.rst.txt        |    62 +
 .../2.10.1/_sources/security/index.rst.txt         |    36 +
 .../2.10.1/_sources/security/kerberos.rst.txt      |   188 +
 .../security/releasing_security_patches.rst.txt    |    49 +
 .../2.10.1/_sources/security/sbom.rst.txt          |    31 +
 .../_sources/security/secrets/fernet.rst.txt       |    63 +
 .../2.10.1/_sources/security/secrets/index.rst.txt |    37 +
 .../security/secrets/mask-sensitive-values.rst.txt |    91 +
 .../security/secrets/secrets-backend/index.rst.txt |   121 +
 .../local-filesystem-secrets-backend.rst.txt       |   145 +
 .../_sources/security/security_model.rst.txt       |   293 +
 .../2.10.1/_sources/security/webserver.rst.txt     |   111 +
 .../2.10.1/_sources/security/workload.rst.txt      |    52 +
 .../2.10.1/_sources/stable-rest-api-ref.rst.txt    |    23 +
 .../apache-airflow/2.10.1/_sources/start.rst.txt   |   137 +
 .../2.10.1/_sources/templates-ref.rst.txt          |   214 +
 .../2.10.1/_sources/troubleshooting.rst.txt        |    48 +
 .../2.10.1/_sources/tutorial/fundamentals.rst.txt  |   406 +
 .../2.10.1/_sources/tutorial/index.rst.txt         |    29 +
 .../2.10.1/_sources/tutorial/objectstorage.rst.txt |   134 +
 .../2.10.1/_sources/tutorial/pipeline.rst.txt      |   336 +
 .../2.10.1/_sources/tutorial/taskflow.rst.txt      |   695 +
 .../apache-airflow/2.10.1/_sources/ui.rst.txt      |   237 +
 docs-archive/apache-airflow/2.10.1/_specs/v1.yaml  |  6062 +++++++
 ...-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css |     1 +
 .../2.10.1/_sphinx_design_static/design-tabs.js    |    27 +
 .../2.10.1/_static/_gen/css/main-custom.min.css    |     1 +
 .../2.10.1/_static/_gen/css/main.min.css           |     7 +
 .../apache-airflow/2.10.1/_static/_gen/js/docs.js  |     1 +
 .../_sphinx_javascript_frameworks_compat.js        |   134 +
 .../apache-airflow/2.10.1/_static/basic.css        |   899 +
 .../apache-airflow/2.10.1/_static/check-solid.svg  |     4 +
 .../apache-airflow/2.10.1/_static/clipboard.min.js |     7 +
 .../apache-airflow/2.10.1/_static/copy-button.svg  |     5 +
 .../apache-airflow/2.10.1/_static/copybutton.css   |    94 +
 .../apache-airflow/2.10.1/_static/copybutton.js    |   248 +
 .../2.10.1/_static/copybutton_funcs.js             |    73 +
 .../apache-airflow/2.10.1/_static/custom.css       |    33 +
 ...-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css |     1 +
 .../apache-airflow/2.10.1/_static/design-tabs.js   |    27 +
 .../apache-airflow/2.10.1/_static/doctools.js      |   156 +
 .../2.10.1/_static/documentation_options.js        |    14 +
 .../2.10.1/_static/exampleinclude.css              |    86 +
 .../apache-airflow/2.10.1/_static/file.png         |   Bin 0 -> 286 bytes
 .../apache-airflow/2.10.1/_static/gh-jira-links.js |    36 +
 .../apache-airflow/2.10.1/_static/graphviz.css     |    19 +
 .../apache-airflow/2.10.1/_static/jquery-3.6.0.js  | 10881 +++++++++++
 .../apache-airflow/2.10.1/_static/jquery.js        |     2 +
 .../apache-airflow/2.10.1/_static/js/globaltoc.js  |    24 +
 .../apache-airflow/2.10.1/_static/language_data.js |   199 +
 .../apache-airflow/2.10.1/_static/minus.png        |   Bin 0 -> 90 bytes
 .../apache-airflow/2.10.1/_static/pin_32.png       |   Bin 0 -> 1201 bytes
 .../apache-airflow/2.10.1/_static/plus.png         |   Bin 0 -> 90 bytes
 .../apache-airflow/2.10.1/_static/pygments.css     |    75 +
 .../apache-airflow/2.10.1/_static/redoc.js         |   103 +
 .../apache-airflow/2.10.1/_static/searchtools.js   |   566 +
 .../2.10.1/_static/sphinx_highlight.js             |   144 +
 .../2.10.1/_static/underscore-1.13.1.js            |  2042 +++
 .../apache-airflow/2.10.1/_static/underscore.js    |     6 +
 .../cluster-policies.html}                         |   877 +-
 .../dag-serialization.html}                        |   322 +-
 .../administration-and-deployment}/index.html      |   307 +-
 .../administration-and-deployment/kubernetes.html} |   282 +-
 .../administration-and-deployment/lineage.html}    |   359 +-
 .../administration-and-deployment/listeners.html}  |   892 +-
 .../advanced-logging-configuration.html}           |   577 +-
 .../logging-monitoring/callbacks.html}             |   712 +-
 .../logging-monitoring/check-health.html}          |   779 +-
 .../logging-monitoring/errors.html}                |   709 +-
 .../logging-monitoring}/index.html                 |   314 +-
 .../logging-monitoring/logging-architecture.html}  |   321 +-
 .../logging-monitoring/logging-tasks.html}         |   840 +-
 .../logging-monitoring/metrics.html}               |  1092 +-
 .../logging-monitoring/traces.html}                |   346 +-
 .../tracking-user-activity.html}                   |   322 +-
 .../modules_management.html}                       |   905 +-
 .../administration-and-deployment/pools.html}      |   290 +-
 .../priority-weight.html}                          |   325 +-
 .../production-deployment.html}                    |   487 +-
 .../administration-and-deployment/scheduler.html}  |   962 +-
 .../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-archive/apache-airflow/2.10.1/airflow.sh      |    39 +
 .../authoring-and-scheduling/connections.html}     |   255 +-
 .../2.10.1/authoring-and-scheduling/cron.html}     |   307 +-
 .../dagfile-processing.html}                       |   244 +-
 .../2.10.1/authoring-and-scheduling/datasets.html} |  1037 +-
 .../authoring-and-scheduling/deferring.html}       |   951 +-
 .../dynamic-task-mapping.html                      |  1695 ++
 .../2.10.1/authoring-and-scheduling}/index.html    |   307 +-
 .../2.10.1/authoring-and-scheduling/plugins.html}  |   542 +-
 .../authoring-and-scheduling/serializers.html}     |   341 +-
 .../authoring-and-scheduling/timetable.html}       |   942 +-
 .../2.10.1/authoring-and-scheduling/timezone.html} |   411 +-
 .../apache-airflow/2.10.1/best-practices.html      |  1952 ++
 docs-archive/apache-airflow/2.10.1/changelog.html  |     1 +
 .../2.10.1/cli-and-env-variables-ref.html          |  6150 +++++++
 docs-archive/apache-airflow/2.10.1/cli-ref.html    |     1 +
 docs-archive/apache-airflow/2.10.1/concepts.html   |     1 +
 .../2.10.1/concepts/cluster-policies.html          |     1 +
 .../2.10.1/concepts/connections.html               |     1 +
 .../2.10.1/concepts/dagfile-processing.html        |     1 +
 .../apache-airflow/2.10.1/concepts/dags.html       |     1 +
 .../apache-airflow/2.10.1/concepts/datasets.html   |     1 +
 .../apache-airflow/2.10.1/concepts/deferring.html  |     1 +
 .../2.10.1/concepts/dynamic-task-mapping.html      |     1 +
 .../apache-airflow/2.10.1/concepts/index.html      |     1 +
 .../apache-airflow/2.10.1/concepts/operators.html  |     1 +
 .../apache-airflow/2.10.1/concepts/overview.html   |     1 +
 .../apache-airflow/2.10.1/concepts/params.html     |     1 +
 .../apache-airflow/2.10.1/concepts/pools.html      |     1 +
 .../2.10.1/concepts/priority-weight.html           |     1 +
 .../apache-airflow/2.10.1/concepts/scheduler.html  |     1 +
 .../apache-airflow/2.10.1/concepts/sensors.html    |     1 +
 .../apache-airflow/2.10.1/concepts/taskflow.html   |     1 +
 .../apache-airflow/2.10.1/concepts/tasks.html      |     1 +
 .../apache-airflow/2.10.1/concepts/timetable.html  |     1 +
 .../apache-airflow/2.10.1/concepts/variables.html  |     1 +
 .../apache-airflow/2.10.1/concepts/xcoms.html      |     1 +
 .../apache-airflow/2.10.1/configurations-ref.html  |  8969 +++++++++
 .../2.10.1/core-concepts/auth-manager.html}        |   414 +-
 .../2.10.1/core-concepts/dag-run.html}             |   516 +-
 .../apache-airflow/2.10.1/core-concepts/dags.html  |  1943 ++
 .../2.10.1/core-concepts/debug.html}               |   354 +-
 .../2.10.1/core-concepts/executor/celery.html      |     1 +
 .../core-concepts/executor/celery_kubernetes.html  |     1 +
 .../2.10.1/core-concepts/executor/dask.html        |     1 +
 .../2.10.1/core-concepts/executor/debug.html       |     1 +
 .../2.10.1/core-concepts/executor/index.html}      |   901 +-
 .../2.10.1/core-concepts/executor/kubernetes.html  |     1 +
 .../2.10.1/core-concepts/executor/local.html}      |   471 +-
 .../core-concepts/executor/local_kubernetes.html   |     1 +
 .../2.10.1/core-concepts/executor/sequential.html} |   312 +-
 .../2.10.1/core-concepts}/index.html               |   348 +-
 .../2.10.1/core-concepts/objectstorage.html}       |   975 +-
 .../2.10.1/core-concepts/operators.html}           |   812 +-
 .../2.10.1/core-concepts/overview.html}            |   854 +-
 .../2.10.1/core-concepts/params.html}              |  1095 +-
 .../2.10.1/core-concepts/sensors.html}             |   239 +-
 .../2.10.1/core-concepts/taskflow.html}            |   458 +-
 .../2.10.1/core-concepts/tasks.html}               |   994 +-
 .../2.10.1/core-concepts/variables.html}           |   254 +-
 .../2.10.1/core-concepts/xcoms.html}               |   330 +-
 docs-archive/apache-airflow/2.10.1/dag-run.html    |     1 +
 .../apache-airflow/2.10.1/dag-serialization.html   |     1 +
 .../2.10.1/database-erd-ref.html}                  |   261 +-
 .../2.10.1/deprecated-rest-api-ref.html}           |   448 +-
 .../apache-airflow/2.10.1/docker-compose.yaml      |   288 +
 docs-archive/apache-airflow/2.10.1/errors.html     |     1 +
 .../apache-airflow/2.10.1/executor/celery.html     |     1 +
 .../2.10.1/executor/celery_kubernetes.html         |     1 +
 .../apache-airflow/2.10.1/executor/dask.html       |     1 +
 .../apache-airflow/2.10.1/executor/debug.html      |     1 +
 .../apache-airflow/2.10.1/executor/index.html      |     1 +
 .../apache-airflow/2.10.1/executor/kubernetes.html |     1 +
 .../apache-airflow/2.10.1/executor/local.html      |     1 +
 .../2.10.1/executor/local_kubernetes.html          |     1 +
 .../apache-airflow/2.10.1/executor/sequential.html |     1 +
 .../2.10.1/extra-packages-ref.html}                |  1331 +-
 .../2.10.1/faq.html}                               |  1028 +-
 docs-archive/apache-airflow/2.10.1/genindex.html   |  5468 ++++++
 .../2.10.1/howto/add-dag-tags.html}                |   270 +-
 .../apache-airflow/2.10.1/howto/add-new-role.html  |     1 +
 .../2.10.1/howto/add-owner-links.html}             |   276 +-
 .../apache-airflow/2.10.1/howto/check-health.html  |     1 +
 .../2.10.1/howto/connection.html}                  |  1065 +-
 .../2.10.1/howto/connection/index.html             |     1 +
 .../2.10.1/howto/create-custom-decorator.html}     |   503 +-
 .../2.10.1/howto/custom-operator.html}             |   952 +-
 .../2.10.1/howto/custom-view-plugin.html}          |   365 +-
 .../howto/customize-dag-ui-page-instance-name.html |     1 +
 .../2.10.1/howto/customize-state-colors-ui.html    |     1 +
 .../2.10.1/howto/customize-ui.html}                |   445 +-
 ...stomizing-dag-ui-header-and-airflow-page-titles |     1 +
 .../customize-ui.html#customizing-state-colours    |     1 +
 .../2.10.1/howto/define-extra-link.html}           |   400 +-
 .../2.10.1/howto/define_extra_link.html            |     1 +
 .../2.10.1/howto/docker-compose/index.html}        |  1045 +-
 .../2.10.1/howto/dynamic-dag-generation.html}      |   449 +-
 .../2.10.1/howto/email-config.html}                |   430 +-
 .../2.10.1/howto/export-more-env-vars.html}        |   272 +-
 .../2.10.1/howto}/index.html                       |   423 +-
 .../2.10.1/howto/initialize-database.html          |     1 +
 .../2.10.1/howto/listener-plugin.html}             |   370 +-
 .../2.10.1/howto/notifications.html}               |   318 +-
 .../2.10.1/howto/operator/bash.html}               |  1057 +-
 .../2.10.1/howto/operator/datetime.html}           |   821 +-
 .../2.10.1/howto/operator/external.html            |     1 +
 .../howto/operator/external_task_sensor.html}      |   820 +-
 .../2.10.1/howto/operator/file.html}               |   498 +-
 .../2.10.1/howto/operator/index.html}              |   753 +-
 .../2.10.1/howto/operator/python.html              |  1736 ++
 .../2.10.1/howto/operator/time.html}               |   757 +-
 .../2.10.1/howto/operator/weekday.html}            |   738 +-
 .../2.10.1/howto/run-behind-proxy.html}            |   316 +-
 .../2.10.1/howto/run-with-systemd.html}            |   269 +-
 .../2.10.1/howto/secure-connections.html           |     1 +
 .../2.10.1/howto/set-config.html}                  |   416 +-
 .../2.10.1/howto/set-up-database.html}             |  1016 +-
 .../2.10.1/howto/setup-and-teardown.html}          |   446 +-
 .../2.10.1/howto/timetable.html}                   |   990 +-
 .../2.10.1/howto/tracking-user-activity.html       |     1 +
 .../2.10.1/howto/upgrading-from-1-10/index.html    |  2351 +++
 .../howto/upgrading-from-1-10/upgrade-check.html}  |   875 +-
 .../2.10.1/howto/usage-cli.html}                   |   949 +-
 .../howto/use-alternative-secrets-backend.html     |     1 +
 .../2.10.1/howto/use-test-config.html              |     1 +
 .../2.10.1/howto/variable.html}                    |   313 +-
 .../apache-airflow/2.10.1/howto/write-logs.html    |     1 +
 .../2.10.1/http-routingtable.html}                 |   298 +-
 .../2.10.1}/index.html                             |   416 +-
 .../apache-airflow/2.10.1/installation.html        |     1 +
 .../2.10.1/installation/dependencies.html}         |   313 +-
 .../2.10.1/installation/index.html}                |   931 +-
 .../2.10.1/installation/installing-from-pypi.html} |   898 +-
 .../installation/installing-from-sources.html}     |   346 +-
 .../2.10.1/installation/prerequisites.html}        |   266 +-
 .../installation/setting-up-the-database.html}     |   244 +-
 .../2.10.1/installation/supported-versions.html}   |   330 +-
 .../2.10.1/installation/upgrade-check.html         |     1 +
 .../2.10.1/installation/upgrading.html}            |   816 +-
 .../2.10.1/integration.html}                       |   263 +-
 docs-archive/apache-airflow/2.10.1/kubernetes.html |     1 +
 .../2.10.1/license.html}                           |   509 +-
 docs-archive/apache-airflow/2.10.1/lineage.html    |     1 +
 docs-archive/apache-airflow/2.10.1/listeners.html  |     1 +
 .../2.10.1/logging-monitoring/callbacks.html       |     1 +
 .../2.10.1/logging-monitoring/check-health.html    |     1 +
 .../2.10.1/logging-monitoring/errors.html          |     1 +
 .../2.10.1/logging-monitoring/index.html           |     1 +
 .../logging-monitoring/logging-architecture.html   |     1 +
 .../2.10.1/logging-monitoring/logging-tasks.html   |     1 +
 .../2.10.1/logging-monitoring/metrics.html         |     1 +
 .../2.10.1/logging-monitoring/traces.html          |     1 +
 .../logging-monitoring/tracking-user-activity.html |     1 +
 docs-archive/apache-airflow/2.10.1/macros-ref.html |     1 +
 docs-archive/apache-airflow/2.10.1/metrics.html    |     1 +
 .../2.10.1/migrations-ref.html}                    |  1328 +-
 .../apache-airflow/2.10.1/modules_management.html  |     1 +
 docs-archive/apache-airflow/2.10.1/objects.inv     |   Bin 0 -> 28295 bytes
 .../2.10.1/operators-and-hooks-ref.html}           |   463 +-
 ...-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css |     1 +
 .../_sphinx_design_static/design-tabs.js           |    27 +
 .../_static/redoc.js                               |     8 +
 docs-archive/apache-airflow/2.10.1/plugins.html    |     1 +
 .../2.10.1/privacy_notice.html}                    |   248 +-
 .../2.10.1/production-deployment.html              |     1 +
 .../2.10.1/project.html}                           |   357 +-
 .../2.10.1/public-airflow-interface.html}          |  1013 +-
 .../2.10.1/py-modindex.html}                       |  1313 +-
 .../apache-airflow/2.10.1/python-api-ref.html      |     1 +
 .../2.10.1/release-process.html}                   |   314 +-
 .../apache-airflow/2.10.1/release_notes.html       | 17973 +++++++++++++++++++
 .../apache-airflow/2.10.1/rest-api-ref.html        |     1 +
 .../sbom/apache-airflow-sbom-2.10.1-npm-only.json  |     1 +
 ...apache-airflow-sbom-2.10.1-python3.10-full.json |     1 +
 ...ow-sbom-2.10.1-python3.10-python-only-full.json |     1 +
 ...airflow-sbom-2.10.1-python3.10-python-only.json |     1 +
 .../apache-airflow-sbom-2.10.1-python3.10.json     |     1 +
 ...apache-airflow-sbom-2.10.1-python3.11-full.json |     1 +
 ...ow-sbom-2.10.1-python3.11-python-only-full.json |     1 +
 ...airflow-sbom-2.10.1-python3.11-python-only.json |     1 +
 .../apache-airflow-sbom-2.10.1-python3.11.json     |     1 +
 ...apache-airflow-sbom-2.10.1-python3.12-full.json |     1 +
 ...ow-sbom-2.10.1-python3.12-python-only-full.json |     1 +
 ...airflow-sbom-2.10.1-python3.12-python-only.json |     1 +
 .../apache-airflow-sbom-2.10.1-python3.12.json     |     1 +
 .../apache-airflow-sbom-2.10.1-python3.8-full.json |     1 +
 ...low-sbom-2.10.1-python3.8-python-only-full.json |     1 +
 ...-airflow-sbom-2.10.1-python3.8-python-only.json |     1 +
 .../sbom/apache-airflow-sbom-2.10.1-python3.8.json |     1 +
 .../apache-airflow-sbom-2.10.1-python3.9-full.json |     1 +
 ...low-sbom-2.10.1-python3.9-python-only-full.json |     1 +
 ...-airflow-sbom-2.10.1-python3.9-python-only.json |     1 +
 .../sbom/apache-airflow-sbom-2.10.1-python3.9.json |     1 +
 docs-archive/apache-airflow/2.10.1/sbom/index.html |    52 +
 docs-archive/apache-airflow/2.10.1/scheduler.html  |     1 +
 .../2.10.1/search.html}                            |   262 +-
 docs-archive/apache-airflow/2.10.1/searchindex.js  |     1 +
 docs-archive/apache-airflow/2.10.1/security.html   |     1 +
 .../2.10.1/security/access-control.html            |     1 +
 .../2.10.1/security/api.html}                      |   264 +-
 .../2.10.1/security/audit_logs.html}               |   275 +-
 .../2.10.1/security/flower.html}                   |   264 +-
 .../2.10.1/security}/index.html                    |   237 +-
 .../2.10.1/security/kerberos.html}                 |   379 +-
 .../security/releasing_security_patches.html}      |   258 +-
 .../2.10.1/security/sbom.html}                     |   229 +-
 .../2.10.1/security/secrets/fernet.html}           |   336 +-
 .../2.10.1/security/secrets}/index.html            |   296 +-
 .../security/secrets/mask-sensitive-values.html}   |   476 +-
 .../security/secrets/secrets-backend/index.html}   |   731 +-
 .../local-filesystem-secrets-backend.html}         |   546 +-
 .../security/secrets/secrets-backends/index.html   |     1 +
 .../local-filesystem-secrets-backend.html          |     1 +
 .../2.10.1/security/security-model.html            |     1 +
 .../2.10.1/security/security_model.html}           |   967 +-
 .../2.10.1/security/webserver.html}                |   319 +-
 .../2.10.1/security/workload.html}                 |   265 +-
 .../apache-airflow/2.10.1/stable-rest-api-ref.html |    34 +
 .../2.10.1/start.html}                             |   420 +-
 .../apache-airflow/2.10.1/start/docker.html        |     1 +
 .../apache-airflow/2.10.1/start/index.html         |     1 +
 .../apache-airflow/2.10.1/start/local.html         |     1 +
 .../2.10.1/templates-ref.html}                     |   933 +-
 docs-archive/apache-airflow/2.10.1/timezone.html   |     1 +
 docs-archive/apache-airflow/2.10.1/traces.html     |     1 +
 .../2.10.1/troubleshooting.html}                   |   291 +-
 docs-archive/apache-airflow/2.10.1/tutorial.html   |     1 +
 .../2.10.1/tutorial/fundamentals.html}             |  1200 +-
 .../2.10.1/tutorial}/index.html                    |   214 +-
 .../2.10.1/tutorial/objectstorage.html}            |   474 +-
 .../2.10.1/tutorial/pipeline.html}                 |   524 +-
 .../apache-airflow/2.10.1/tutorial/taskflow.html   |  1906 ++
 .../2.10.1/tutorial_taskflow_api.html              |     1 +
 .../index.html => apache-airflow/2.10.1/ui.html}   |   492 +-
 .../apache-airflow/2.10.1/upgrade-check.html       |     1 +
 .../2.10.1/upgrading-from-1-10/index.html          |     1 +
 .../2.10.1/upgrading-from-1-10/upgrade-check.html  |     1 +
 .../apache-airflow/2.10.1/upgrading-to-2.html      |     1 +
 docs-archive/apache-airflow/2.10.1/usage-cli.html  |     1 +
 docs-archive/apache-airflow/stable.txt             |     2 +-
 docs-archive/docker-stack/.buildinfo               |     2 +-
 docs-archive/docker-stack/_modules/index.html      |     1 -
 docs-archive/docker-stack/_sources/build.rst.txt   |    21 -
 .../docker-stack/_sources/changelog.rst.txt        |     4 +
 .../docker-stack/_sources/entrypoint.rst.txt       |    14 +-
 docs-archive/docker-stack/build-arg-ref.html       |     4 +-
 docs-archive/docker-stack/build.html               |    63 +-
 docs-archive/docker-stack/changelog.html           |    11 +
 docs-archive/docker-stack/entrypoint.html          |    14 +-
 docs-archive/docker-stack/index.html               |    14 +-
 docs-archive/docker-stack/objects.inv              |   Bin 648 -> 629 bytes
 docs-archive/docker-stack/searchindex.js           |     2 +-
 939 files changed, 274472 insertions(+), 96239 deletions(-)

diff --git a/docs-archive/docker-stack/.buildinfo b/docs-archive/apache-airflow/2.10.1/.buildinfo
similarity index 82%
copy from docs-archive/docker-stack/.buildinfo
copy to docs-archive/apache-airflow/2.10.1/.buildinfo
index 0ca5e51464..f42807fbbe 100644
--- a/docs-archive/docker-stack/.buildinfo
+++ b/docs-archive/apache-airflow/2.10.1/.buildinfo
@@ -1,4 +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: c701345503657fd1e617ca5939b5c35e
+config: 0046f2acc7f5aeb117181c06fa801b04
 tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs-archive/docker-stack/changelog.html b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/base/index.html
similarity index 50%
copy from docs-archive/docker-stack/changelog.html
copy to docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/base/index.html
index 93278865bf..0703bc3207 100644
--- a/docs-archive/docker-stack/changelog.html
+++ b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/base/index.html
@@ -9,21 +9,22 @@
 <head>
         <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1">
-        <title>Dockerfile Changelog &mdash; docker-stack 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/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="Recipes" href="recipes.html" />
-            <link rel="prev" title="Entrypoint" href="entrypoint.html" />
-
-    <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/changelog.html" />
+        <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.bash" href="../bash/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>
@@ -285,8 +286,21 @@
             <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.10.1</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">
+    <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" />
@@ -316,29 +330,136 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Dockerfile Changelog</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-9">Airflow 2.9</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-8">Airflow 2.8</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-7">Airflow 2.7</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-6">Airflow 2.6</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-5">Airflow 2.5</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-4">Airflow 2.4</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-3">Airflow 2.3</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-2">Airflow 2.2</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-1">Airflow 2.1</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-0">Airflow 2.0</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#changes-after-publishing-the-images">Changes after publishing the images</a></li>
+    <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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="recipes.html">Recipes</a></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="../../../../troubleshooting.html">Troubleshooting</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="build-arg-ref.html">Image build arguments reference</a></li>
+<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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -419,8 +540,21 @@
             
     <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.10.1</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">
+    <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" />
@@ -450,29 +584,136 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Dockerfile Changelog</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-9">Airflow 2.9</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-8">Airflow 2.8</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-7">Airflow 2.7</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-6">Airflow 2.6</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-5">Airflow 2.5</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-4">Airflow 2.4</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-3">Airflow 2.3</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-2">Airflow 2.2</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-1">Airflow 2.1</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-0">Airflow 2.0</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#changes-after-publishing-the-images">Changes after publishing the images</a></li>
+    <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 Airflow®</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#auth-managers">Auth managers</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-l1"><a class="reference internal" href="recipes.html">Recipes</a></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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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="build-arg-ref.html">Image build arguments reference</a></li>
+<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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -561,9 +802,13 @@
 
     <ul class="breadcrumb">
         
-            <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+            <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="changelog.html"> Dockerfile Changelog</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>
@@ -574,432 +819,299 @@
                                 <div class="bodywrapper">
                                     <div class="body" role="main">
                                         
-  <blockquote>
-<div></div></blockquote>
-<div class="section" id="dockerfile-changelog">
-<h1>Dockerfile Changelog<a class="headerlink" href="#dockerfile-changelog" title="Permalink to this heading">¶</a></h1>
-<p>The <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> does not strictly follow the <a class="reference external" href="https://semver.org/">SemVer</a> approach of
-Apache Airflow when it comes to features and backwards compatibility. While Airflow code strictly
-follows it, the <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> is really a way to give users a conveniently packaged Airflow
-using standard container approach, so occasionally there are some changes in the building process
-or in the entrypoint of the image that require slight adaptation of how it is used or built.</p>
-<p>The Changelog below describes the changes introduced in each version of the docker images released by
-the Airflow team.</p>
-<dl class="field-list simple">
-<dt class="field-odd">note</dt>
-<dd class="field-odd"><p>The Changelog below concerns only the convenience production images released at
-<a class="reference external" href="https://hub.docker.com/r/apache/airflow">Airflow DockerHub</a> . The images that are released
-there are usually built using the <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> released together with Airflow. However, you are
-free to take latest released <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> from Airflow and use it to build an image for
-any Airflow version from the <code class="docutils literal notranslate"><span class="pre">Airflow</span> <span class="pre">2</span></code> line. There is no guarantee that it will work, but if it does,
-then you can use latest features from that image to build images for previous Airflow versions.</p>
-</dd>
-</dl>
-<div class="section" id="airflow-2-9">
-<h2>Airflow 2.9<a class="headerlink" href="#airflow-2-9" title="Permalink to this heading">¶</a></h2>
-<blockquote>
-<div><ul class="simple">
-<li><p>The “latest” image (i.e. default Airflow image when <code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code> is used or
-<code class="docutils literal notranslate"><span class="pre">apache/airflow:slim-latest</span></code>) uses now the newest supported Python version. Previously it was using
-the “default” Python version which was Python 3.8 as of Airflow 2.8. With Airflow reference images
-released for Airflow 2.9.0, the images are going to use Python 3.12 as this is the latest supported
-version for Airflow 2.9 line. Users can use Python 3.8 by using <code class="docutils literal notranslate"><span class="pre">apache/airflow:2.9.0-python3.8</span></code> and
-<code class="docutils literal notranslate"><span class="pre">apache/airflow:slim-2.9.0-python-3.8</span></code> images respectively so while the change is potentially
-breaking, it is very easy to switch to the previous behaviour.</p></li>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">PIP_USER</span></code> flag is removed and replaced by <code class="docutils literal notranslate"><span class="pre">VIRTUAL_ENV</span></code> pointing to <code class="docutils literal notranslate"><span class="pre">~/.local</span></code> where Airflow
-is installed. This has the effect that the Airflow installation is treated as a regular virtual environment,
-but unlike a regular virtualenv, the <code class="docutils literal notranslate"><span class="pre">~/.local</span></code> directory is seen as <code class="docutils literal notranslate"><span class="pre">system</span> <span class="pre">level</span></code> and when the
-worker creates dynamically the virtualenv with <code class="docutils literal notranslate"><span class="pre">--system-site-packages</span></code> flag, the Airflow installation and all
-packages there are also present in the new virtualenv. When you do not use the flag, they are not
-copied there which is a backwards-compatible behaviour with having <code class="docutils literal notranslate"><span class="pre">PIP_USER</span></code> set.</p></li>
-<li><p>The image contains latest <code class="docutils literal notranslate"><span class="pre">uv</span></code> binary (latest at the moment of release) - which is a new faster
-replacement for <code class="docutils literal notranslate"><span class="pre">pip</span></code>. While the image is still using <code class="docutils literal notranslate"><span class="pre">pip</span></code> by default, you can use <code class="docutils literal notranslate"><span class="pre">uv</span></code>
-to install packages and - experimentally - you can also build custom images with
-<code class="docutils literal notranslate"><span class="pre">--arg</span> <span class="pre">AIRFLOW_USE_UV=true</span></code> which will us <code class="docutils literal notranslate"><span class="pre">uv</span></code> to perform the installation. This is an experimental
-support, as <code class="docutils literal notranslate"><span class="pre">uv</span></code> is very fast but also a very new feature in the Python ecosystem.</p></li>
-<li><p>Constraints used to install the image are available in “${HOME}/constraints.txt” now - you can use them
-to install additional packages in the image without having to find out which constraints you should use.</p></li>
-<li><p>The image adds <code class="docutils literal notranslate"><span class="pre">libev</span></code> library to the image as it is required by cassandra driver for Python 3.12, also
-<code class="docutils literal notranslate"><span class="pre">libev</span></code> will be used in other Python versions as a more robust and faster way for cassandra driver
-to handle events.</p></li>
-</ul>
-</div></blockquote>
-</div>
-<div class="section" id="airflow-2-8">
-<h2>Airflow 2.8<a class="headerlink" href="#airflow-2-8" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.8.3</p>
-<ul>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">gosu</span></code> binary was removed from the image. This is a potentially breaking change for users who relied on
-<code class="docutils literal notranslate"><span class="pre">gosu</span></code> to change the user in the container. The <code class="docutils literal notranslate"><span class="pre">gosu</span></code> binary was removed because it was a source of
-security vulnerabilities as it was linked against older Go standard libraries.</p></li>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">smtp</span></code> provider is now included in the list of providers installed by default in the image.</p></li>
-</ul>
-</li>
-<li><p>2.8.1</p>
-<ul>
-<li><p>Fixed a discrepancy in MySQL client libraries. In 2.8.0 if not specify <code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE</span></code> build arg
-during build custom X86 image by default packages would be compiled by using <strong>MariaDB</strong> libraries,
-however <strong>MySQL</strong> libraries were installed in the final image.</p></li>
-</ul>
-</li>
-<li><p>2.8.0</p>
-<ul>
-<li><p>Add <code class="docutils literal notranslate"><span class="pre">libxmlsec1</span></code> and <code class="docutils literal notranslate"><span class="pre">libxmlsec1-dev</span></code> libraries to dev PROD image and <code class="docutils literal notranslate"><span class="pre">libxmlsec1</span></code> library to runtime PROD
-image as it is required by <code class="docutils literal notranslate"><span class="pre">python3-saml</span></code> library.</p></li>
-<li><p>The image is based on <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bookworm</span></code> in 2.8.0 rather than <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bullseye</span></code>. This might cause some
-problems when building custom images. You are advised to make sure your system level dependencies are
-working with <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bookworm</span></code>. While all reference images of Airflow 2.8.0 are built on <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bookworm</span></code>,
-it is still possible to build deprecated custom <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bullseye</span></code> based image in 2.8.0 following the</p></li>
-<li><p>By default the images now have “MariaDB” client installed. Previous images had “MySQL” client installed.
-The MariaDB client is a drop-in replacement for “MySQL” one and is compatible with MySQL. This might
-be a breaking change for users who used MySQL client in their images, however those should be very
-specific cases and vast majority of users should not see any difference. Users can still use
-MySQL client by setting <code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE=mysql</span></code> build arg and build the custom X86 image.
-The ARM image always uses MariaDB client, this argument is ignored. The “mysql” apt repository is
-removed from the /etc/apt/sources.list.d/ and if you want to install anything from this repository when
-extending the images, you need to manually add the right key and repository in your Dockerfile,
-following the instructions in <a class="reference external" href="https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/">A Quick Guide to Using the MySQL APT repository</a>.</p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-7">
-<h2>Airflow 2.7<a class="headerlink" href="#airflow-2-7" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.7.3</p>
-<ul>
-<li><p>Add experimental feature for select type of MySQL Client libraries during the build custom image via <code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE</span></code>
-build arg. <code class="docutils literal notranslate"><span class="pre">mysql</span></code> for install MySQL client libraries from <a class="reference external" href="https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/">Oracle APT repository</a>,
-<code class="docutils literal notranslate"><span class="pre">mariadb</span></code> for install MariaDB client libraries from <a class="reference external" href="https://mariadb.com/kb/en/mariadb-package-repository-setup-and-usage/#mariadb-repository">MariaDB repository</a>.
-The selection of MySQL Client libraries only available on AMD64 (x86_64) for ARM docker image it will always install
-MariaDB client.</p></li>
-<li><p>Docker CLI version in the image is bumped to 24.0.6 version.</p></li>
-<li><p>PIP caching for local builds has been enabled to speed up local custom image building</p></li>
-</ul>
-</li>
-<li><p>2.7.0</p>
-<ul>
-<li><p>As of now, Python 3.7 is no longer supported by the Python community. Therefore, to use Airflow 2.7.0, you must ensure your Python version is
-either 3.8, 3.9, 3.10, or 3.11.</p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-6">
-<h2>Airflow 2.6<a class="headerlink" href="#airflow-2-6" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.6.3</p>
-<ul>
-<li><p>Add <code class="docutils literal notranslate"><span class="pre">libgeos-dev</span></code> library to runtime PROD image as it is required by BigQuery library on ARM image</p></li>
-</ul>
-</li>
-<li><p>2.6.0</p>
-<ul>
-<li><p>Snowflake provider installed by default</p></li>
-<li><p>The ARM experimental image adds support for MySQL via MariaDB client libraries.</p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-5">
-<h2>Airflow 2.5<a class="headerlink" href="#airflow-2-5" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.5.1</p>
-<ul>
-<li><p>The ARM experimental image adds support for MSSQL</p></li>
-</ul>
-</li>
-<li><p>2.5.0</p>
-<ul>
-<li><p>The docker CLI binary is now added to the images by default (available on PATH). Version 20.10.9 is used.</p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-4">
-<h2>Airflow 2.4<a class="headerlink" href="#airflow-2-4" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.4.0</p>
-<ul>
-<li><p>You can specify additional <code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span></code> flags when you build the image via <code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code>
-build arg.</p></li>
-<li><p>Support for <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Buster</span></code> was dropped, including the possibility of building customized images as
-<code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Buster</span></code> reached end of life.</p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-3">
-<h2>Airflow 2.3<a class="headerlink" href="#airflow-2-3" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.3.0</p>
-<ul>
-<li><p>Airflow 2.3 <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> is now better optimized for caching and “standalone” which means that you
-can copy <strong>just</strong> the <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> to any folder and start building custom images. This,
-however, requires <a class="reference external" href="https://docs.docker.com/develop/develop-images/build_enhancements/">Buildkit</a>
-to build the image because we started using features that are only available in <code class="docutils literal notranslate"><span class="pre">Buildkit</span></code>.
-This can be done by setting <code class="docutils literal notranslate"><span class="pre">DOCKER_BUILDKIT=1</span></code> as an environment variable
-or by installing <a class="reference external" href="https://docs.docker.com/buildx/working-with-buildx/">the buildx plugin</a>
-and running <code class="docutils literal notranslate"><span class="pre">docker</span> <span class="pre">buildx</span> <span class="pre">build</span></code> command.</p></li>
-<li><p>MySQL is experimentally supported on ARM through MariaDB client library</p></li>
-<li><p>Add Python 3.10 support</p></li>
-<li><p>Switch to <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bullseye</span></code> based images. <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Buster</span></code> is deprecated and only available for
-customized image building.</p></li>
-<li><p>Add Multi-Platform support (AMD64/ARM64) in order to accommodate MacOS M1 users</p></li>
-<li><p>Build parameters which control if packages and Airflow should be installed from context file were
-unified</p></li>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">INSTALL_FROM_PYPI</span></code> arg was removed - it is automatically detected now.</p></li>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">INSTALL_FROM_DOCKER_CONTEXT_FILES</span></code> arg changed to <code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></li>
-</ul>
-</li>
-</ul>
+  <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="airflow-2-2">
-<h2>Airflow 2.2<a class="headerlink" href="#airflow-2-2" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.2.4
-* Add support for both <code class="docutils literal notranslate"><span class="pre">.piprc</span></code> and <code class="docutils literal notranslate"><span class="pre">pip.conf</span></code> customizations
-* Add ArtifactHub labels for better discovery of the images
-* Update default Python image to be 3.7
-* Build images with <code class="docutils literal notranslate"><span class="pre">Buildkit</span></code> (optional)
-* Fix building the image on Azure with <code class="docutils literal notranslate"><span class="pre">text</span> <span class="pre">file</span> <span class="pre">busy</span></code> error</p></li>
-<li><p>2.2.3
-* No changes</p></li>
-<li><p>2.2.2
-* No changes</p></li>
-<li><p>2.2.1
-* Workaround the problem with <code class="docutils literal notranslate"><span class="pre">libstdcpp</span></code> TLS error</p></li>
-<li><p>2.2.0
-* Remove AIRFLOW_GID (5000) from Airflow images (potentially breaking change for users using it)
-* Added warnings for Quick-start docker compose
-* Fix warm shutdown for celery worker (signal propagation)
-* Add Oauth libraries to PROD images
-* Add Python 3.9 support</p></li>
-</ul>
+<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="airflow-2-1">
-<h2>Airflow 2.1<a class="headerlink" href="#airflow-2-1" title="Permalink to this heading">¶</a></h2>
-<ul>
-<li><p>MySQL changed the keys to sign their packages on 17 Feb 2022. This caused all released images
-to fail when being extended. As result, on 18 Feb 2021 we re-released all
-the <code class="docutils literal notranslate"><span class="pre">2.2</span></code> and <code class="docutils literal notranslate"><span class="pre">2.1</span></code> images with latest versions of <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code>
-containing the new signing key.</p>
-<p>There were subtle changes in the behaviour of some 2.1 images due to that (more details below)
-Detailed <a class="reference external" href="https://github.com/apache/airflow/issues/20911">issue here</a></p>
-</li>
-</ul>
-<dl class="field-list simple">
-<dt class="field-odd">note</dt>
-<dd class="field-odd"><p>that the changes below were valid before image refreshing on 18 Feb 2022.
-Since all the images were refreshed on 18 Feb with the same <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code>
-as 2.1.4, the changes 2.1.1 -&gt; 2.1.3 are
-effectively applied to all the images in 2.1.* line.
-The images refreshed have also those fixes added:</p>
+<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>
-<ul class="simple">
-<li><p>All 2.1.* image versions refreshed on 18 Feb 2022 have those fixes applied:
-* Fix building the image on Azure with <code class="docutils literal notranslate"><span class="pre">text</span> <span class="pre">file</span> <span class="pre">busy</span></code> error
-* Workaround the problem with <code class="docutils literal notranslate"><span class="pre">libstdcpp</span></code> TLS error
-* Remove AIRFLOW_GID (5000) from Airflow images (potentially breaking change for users using it)
-* Added warnings for Quick-start docker compose
-* Add Oauth libraries to PROD images</p></li>
-</ul>
-<p>Original image Changelog (before the refresh on 18 Feb 2022):</p>
-<ul class="simple">
-<li><dl class="simple">
-<dt>2.1.4</dt><dd><ul>
-<li><p>Workaround the problem with <code class="docutils literal notranslate"><span class="pre">libstdcpp</span></code> TLS error</p></li>
-<li><p>fixed detection of port number in connection URL</p></li>
-<li><p>Improve warnings for quick-start-docker compose</p></li>
-<li><p>Fix warm shutdown for celery worker (signal propagation)</p></li>
-</ul>
-</dd>
+<dl class="field-list simple">
 </dl>
-</li>
-<li><dl class="simple">
-<dt>2.1.3</dt><dd><ul>
-<li><p>fixed auto-creation of user to use non-deprecated <code class="docutils literal notranslate"><span class="pre">create</span> <span class="pre">user</span></code> rather than <code class="docutils literal notranslate"><span class="pre">user_create</span></code></p></li>
-<li><p>remove waiting for celery backend for <code class="docutils literal notranslate"><span class="pre">worker</span></code> and <code class="docutils literal notranslate"><span class="pre">flower</span></code> commands rather than <code class="docutils literal notranslate"><span class="pre">scheduler</span></code> and <code class="docutils literal notranslate"><span class="pre">celery</span></code> only</p></li>
-<li><p>remove deprecated <code class="docutils literal notranslate"><span class="pre">airflow</span> <span class="pre">upgradedb</span></code> command from Airflow 1.10 in case upgrade is requested</p></li>
-<li><p>Add Python 3.9 support</p></li>
+</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> – 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>
-</li>
-<li><dl class="simple">
-<dt>2.1.2</dt><dd><ul>
-<li><p>No changes</p></li>
-</ul>
-</dd>
+<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>
-</li>
-<li><dl class="simple">
-<dt>2.1.1</dt><dd><ul>
-<li><p>Fix failure of lack of default commands (failed when no commands were passed)</p></li>
-<li><p>Added <code class="docutils literal notranslate"><span class="pre">_PIP_ADDITIONAL_REQUIREMENTS</span></code> development feature</p></li>
-</ul>
-</dd>
+</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>
-</li>
-<li><dl class="simple">
-<dt>2.1.0</dt><dd><ul>
-<li><p>Unset default <code class="docutils literal notranslate"><span class="pre">PIP_USER</span></code> variable - which caused PythonVirtualEnv to fail</p></li>
-</ul>
-</dd>
+</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>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-0">
-<h2>Airflow 2.0<a class="headerlink" href="#airflow-2-0" title="Permalink to this heading">¶</a></h2>
-<ul>
-<li><p>MySQL changed the keys to sign their packages on 17 Feb 2022. This caused all released images
-to fail when being extended. As result, on 18 Feb 2021 we re-released all
-the <code class="docutils literal notranslate"><span class="pre">2.2</span></code> and <code class="docutils literal notranslate"><span class="pre">2.1</span></code> images with latest versions of <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code>
-containing the new signing key.</p>
-<p>There were no changes in the behaviour of 2.0.2 image due to that
-Detailed <a class="reference external" href="https://github.com/apache/airflow/issues/20911">issue here</a> .
-Only 2.0.2 image was regenerated, as 2.0.1 and 2.0.0 versions are hardly used and it is unlikely someone
-would like to extend those images. Extending 2.0.1 and 2.0.0 images will lead to failures of “missing key”.</p>
-</li>
-<li><dl class="simple">
-<dt>2.0.2</dt><dd><ul class="simple">
-<li><p>Set correct PYTHONPATH for <code class="docutils literal notranslate"><span class="pre">root</span></code> user. Allows to run the image as root</p></li>
-<li><p>Warn if the deprecated 5000 group ID was used for airflow user when running the image
-(should be 0 for the OpenShift compatibility). Fails if the group 5000 was used with any other user
-(it would not work anyway but with cryptic errors)</p></li>
-<li><p>Set umask as 002 by default, so that you can actually change the user id used to run the image
-(required for OpenShift compatibility)</p></li>
-<li><p>Skip checking the DB and celery backend if CONNECTION_CHECK_MAX_COUNT is equal to 0</p></li>
-</ul>
-</dd>
+</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>
-</li>
-<li><dl class="simple">
-<dt>2.0.1</dt><dd><ul class="simple">
-<li><p>Avoid reverse IP lookup when checking DB availability. This helped to solve long delays on misconfigured
-docker engines</p></li>
-<li><p>Add auto-detection of redis and amqp broker ports</p></li>
-<li><p>Fixed detection of all user/password combinations in URLs - helps in auto-detecting ports and testing
-connectivity</p></li>
-<li><p>Add possibility to create Admin user automatically when entering the image</p></li>
-<li><p>Automatically create system user when different user than <code class="docutils literal notranslate"><span class="pre">airflow</span></code> is used. Needed for OpenShift
-compatibility</p></li>
-<li><p>Allows to exec to <code class="docutils literal notranslate"><span class="pre">bash</span></code> or <code class="docutils literal notranslate"><span class="pre">python</span></code> if specified as parameters</p></li>
-<li><p>Remove <code class="docutils literal notranslate"><span class="pre">airflow</span></code> command if it is specified as first parameter of the <code class="docutils literal notranslate"><span class="pre">run</span></code> command</p></li>
-</ul>
-</dd>
+</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>
-</li>
-<li><dl class="simple">
-<dt>2.0.0</dt><dd><ul class="simple">
-<li><p>Initial release of the image based on Debian Buster</p></li>
+</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>
-</li>
-</ul>
+<p>Other kwargs are directly forwarded to the underlying operator class when
+it’s instantiated.</p>
+</dd></dl>
+
 </div>
-<div class="section" id="changes-after-publishing-the-images">
-<h2>Changes after publishing the images<a class="headerlink" href="#changes-after-publishing-the-images" title="Permalink to this heading">¶</a></h2>
-<p>Occasionally our images need to be regenerated using newer <code class="docutils literal notranslate"><span class="pre">Dockerfiles</span></code> or constraints.
-This happens when an issue is found or a breaking change is released by our dependencies
-that invalidates the already released image, and regenerating the image makes it usable again.
-While we cannot assure 100% backwards compatibility when it happens, we at least document it
-here so that users affected can find the reason for the changes.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 9%" />
-<col style="width: 14%" />
-<col style="width: 28%" />
-<col style="width: 16%" />
-<col style="width: 32%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Date</p></th>
-<th class="head"><p>Affected images</p></th>
-<th class="head"><p>Potentially breaking change</p></th>
-<th class="head"><p>Reason</p></th>
-<th class="head"><p>Link to Pull Request / Issue</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p>02 Aug 2024</p></td>
-<td><p>2.9.3</p></td>
-<td><ul class="simple">
-<li><p>The <code class="docutils literal notranslate"><span class="pre">apache-airflow-providers-fab</span></code>
-upgraded from 1.2.1 to 1.2.2</p></li>
-</ul>
-</td>
-<td><p>FAB provider logout
-did not work for 2.9.3</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/issues/40922">https://github.com/apache/airflow/issues/40922</a></p></td>
-</tr>
-<tr class="row-odd"><td><p>12 Mar 2024</p></td>
-<td><p>2.8.3</p></td>
-<td><ul class="simple">
-<li><p>The image was refreshed with new
-dependencies (pandas &lt; 2.2 and
-SMTP provider 1.6.1</p></li>
-</ul>
-</td>
-<td><p>Both dependencies
-caused breaking
-changes</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/pull/37748">https://github.com/apache/airflow/pull/37748</a>
-<a class="reference external" href="https://github.com/apache/airflow/pull/37701">https://github.com/apache/airflow/pull/37701</a></p></td>
-</tr>
-<tr class="row-even"><td><p>16 Dec 2023</p></td>
-<td><p>All 2..*</p></td>
-<td><ul class="simple">
-<li><p>The AIRFLOW_GID 500 was removed</p></li>
-<li><p>MySQL <code class="docutils literal notranslate"><span class="pre">apt</span></code> repository key changed.</p></li>
-</ul>
-</td>
-<td><p>MySQL repository is
-removed after the
-key expiry fiasco</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/issues/36231">https://github.com/apache/airflow/issues/36231</a></p></td>
-</tr>
-<tr class="row-odd"><td><p>17 June 2022</p></td>
-<td><p>2.2.5</p>
-<p>2.3.0-2.3.2</p>
-</td>
-<td><ul class="simple">
-<li><p>The <code class="docutils literal notranslate"><span class="pre">Authlib</span></code> library downgraded
-from 1.0.1 to 0.15.5 version</p></li>
-</ul>
-</td>
-<td><p>Flask App Builder
-not compatible with
-Authlib &gt;= 1.0.0</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/pull/24516">https://github.com/apache/airflow/pull/24516</a></p></td>
-</tr>
-<tr class="row-even"><td><p>18 Jan 2022</p></td>
-<td><p>All 2.2.*, 2.1.*</p></td>
-<td><ul class="simple">
-<li><p>The AIRFLOW_GID 500 was removed</p></li>
-<li><p>MySQL <code class="docutils literal notranslate"><span class="pre">apt</span></code> repository key changed.</p></li>
-</ul>
-</td>
-<td><p>MySQL changed keys
-to sign their packages
-on 17 Jan 2022</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/pull/20912">https://github.com/apache/airflow/pull/20912</a></p></td>
-</tr>
-</tbody>
-</table>
 </div>
 </div>
 
 
     <div class="pager" role="navigation" aria-label="related navigation">
-            <a rel="prev" title="Entrypoint" href="entrypoint.html" >
+            <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="Recipes" href="recipes.html" >
+            <a rel="next" title="airflow.decorators.bash" href="../bash/index.html" >
                 <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
             </a>
     </div>
@@ -1069,18 +1181,51 @@ on 17 Jan 2022</p></td>
     <nav class="wy-nav-side-toc">
         <div class="wy-menu-vertical">
             <ul>
-<li><a class="reference internal" href="#">Dockerfile Changelog</a><ul>
-<li><a class="reference internal" href="#airflow-2-9">Airflow 2.9</a></li>
-<li><a class="reference internal" href="#airflow-2-8">Airflow 2.8</a></li>
-<li><a class="reference internal" href="#airflow-2-7">Airflow 2.7</a></li>
-<li><a class="reference internal" href="#airflow-2-6">Airflow 2.6</a></li>
-<li><a class="reference internal" href="#airflow-2-5">Airflow 2.5</a></li>
-<li><a class="reference internal" href="#airflow-2-4">Airflow 2.4</a></li>
-<li><a class="reference internal" href="#airflow-2-3">Airflow 2.3</a></li>
-<li><a class="reference internal" href="#airflow-2-2">Airflow 2.2</a></li>
-<li><a class="reference internal" href="#airflow-2-1">Airflow 2.1</a></li>
-<li><a class="reference internal" href="#airflow-2-0">Airflow 2.0</a></li>
-<li><a class="reference internal" href="#changes-after-publishing-the-images">Changes after publishing the images</a></li>
+<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>
@@ -1105,7 +1250,7 @@ on 17 Jan 2022</p></td>
             
         
         <div class="base-layout--button">
-            <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/changelog.rst" rel="nofollow">
+            <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">
@@ -1239,20 +1384,21 @@ on 17 Jan 2022</p></td>
         </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 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="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/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 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-archive/docker-stack/index.html b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/bash/index.html
similarity index 76%
copy from docs-archive/docker-stack/index.html
copy to docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/bash/index.html
index 3b875d85f0..1079cf7f56 100644
--- a/docs-archive/docker-stack/index.html
+++ b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/bash/index.html
@@ -9,20 +9,22 @@
 <head>
         <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1">
-        <title>Docker Image for Apache Airflow &mdash; docker-stack 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/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="Building the image" href="build.html" />
-
-    <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/index.html" />
+        <title>airflow.decorators.bash &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.base" href="../base/index.html" />
+
+    <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/bash/index.html" />
 
     <!-- Matomo -->
     <script>
@@ -284,8 +286,21 @@
             <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.10.1</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">
+    <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" />
@@ -315,16 +330,90 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+    <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 Airflow®</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#auth-managers">Auth managers</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.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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="build-arg-ref.html">Image build arguments reference</a></li>
+<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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -405,8 +494,21 @@
             
     <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.10.1</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">
+    <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" />
@@ -436,16 +538,90 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+    <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 Airflow®</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#auth-managers">Auth managers</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.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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="build-arg-ref.html">Image build arguments reference</a></li>
+<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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -534,9 +710,13 @@
 
     <ul class="breadcrumb">
         
-            <li class="breadcrumb-item"><a href="#" class="icon icon-home"> Home</a></li>
+            <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"> Docker Image for Apache 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.bash</span></code></a></li>
         
     </ul>
 </div>
@@ -547,195 +727,16 @@
                                 <div class="bodywrapper">
                                     <div class="body" role="main">
                                         
-  <blockquote>
-<div></div></blockquote>
-<a class="reference internal image-reference" href="_images/docker-logo.png"><img alt="_images/docker-logo.png" src="_images/docker-logo.png" style="width: 100px;" /></a>
-<div class="section" id="docker-image-for-apache-airflow">
-<h1>Docker Image for Apache Airflow<a class="headerlink" href="#docker-image-for-apache-airflow" title="Permalink to this heading">¶</a></h1>
-<div class="toctree-wrapper compound">
-</div>
-<div class="toctree-wrapper compound">
-</div>
-<p>For the ease of deployment in production, the community releases a production-ready reference container
-image.</p>
-<p>The Apache Airflow community, releases Docker Images which are <code class="docutils literal notranslate"><span class="pre">reference</span> <span class="pre">images</span></code> for Apache Airflow.
-Every time a new version of Airflow is released, the images are prepared in the
-<a class="reference external" href="https://hub.docker.com/r/apache/airflow">apache/airflow DockerHub</a>
-for all the supported Python versions.</p>
-<p>You can find the following images there (Assuming Airflow version <code class="code docutils literal notranslate"><span class="pre">2.10.0</span></code>):</p>
-<ul class="simple">
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:latest</span></code>              - the latest released Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:latest-pythonX.Y</span></code>    - the latest released Airflow image with specific Python version</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:2.10.0</span></code>           - the versioned Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:2.10.0-pythonX.Y</span></code> - the versioned Airflow image with specific Python version</p></li>
-</ul>
-<p>Those are “reference” regular images. They contain the most common set of extras, dependencies and providers that are
-often used by the users and they are good to “try-things-out” when you want to just take Airflow for a spin,</p>
-<p>You can also use “slim” images that contain only core airflow and are about half the size of the “regular” images
-but you need to add all the <a class="reference external" href="/docs/apache-airflow/stable/extra-packages-ref.html" title="(in apache-airflow v2.10.0.dev0)"><span>Reference for package extras</span></a> and providers that you need separately
-via <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a>.</p>
-<ul class="simple">
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-latest</span></code>              - the latest released Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-latest-pythonX.Y</span></code>    - the latest released Airflow image with specific Python version</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-2.10.0</span></code>           - the versioned Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-2.10.0-pythonX.Y</span></code> - the versioned Airflow image with specific Python version</p></li>
-</ul>
-<p>The Apache Airflow image provided as convenience package is optimized for size, and
-it provides just a bare minimal set of the extras and dependencies installed and in most cases
-you want to either extend or customize the image. You can see all possible extras in <a class="reference external" href="/docs/apache-airflow/stable/extra-packages-ref.html" title="(in apache-airflow v2.10.0.dev0)"><span>Reference for package extras</span></a>.
-The set of extras used in Airflow Production image are available in the
-<a class="reference external" href="https://github.com/apache/airflow/blob/2.10.0/Dockerfile">Dockerfile</a>.</p>
-<p>However, Airflow has more than 60 community-managed providers (installable via extras) and some of the
-default extras/providers installed are not used by everyone, sometimes others extras/providers
-are needed, sometimes (very often actually) you need to add your own custom dependencies,
-packages or even custom providers. You can learn how to do it in <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a>.</p>
-<p>The production images are build in DockerHub from released version and release candidates. There
-are also images published from branches but they are used mainly for development and testing purpose.
-See <a class="reference external" href="https://github.com/apache/airflow/blob/main/contributing-docs/working-with-git#airflow-git-branches">Airflow Git Branching</a>
-for details.</p>
-</div>
-<div class="section" id="fixing-images-at-release-time">
-<h1>Fixing images at release time<a class="headerlink" href="#fixing-images-at-release-time" title="Permalink to this heading">¶</a></h1>
-<p>The released “versioned” reference images are mostly <code class="docutils literal notranslate"><span class="pre">fixed</span></code> when we release Airflow version and we only
-update them in exceptional circumstances. For example when we find out that there are dependency errors
-that might prevent important Airflow or embedded provider’s functionalities working. In normal circumstances,
-the images are not going to change after release, even if new version of Airflow dependencies are released -
-not even when those versions contain critical security fixes. The process of Airflow releases is designed
-around upgrading dependencies automatically where applicable but only when we release a new version of Airflow,
-not for already released versions.</p>
-</div>
-<div class="section" id="what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image">
-<h1>What should I do if my security scan shows critical and high vulnerabilities in the image?<a class="headerlink" href="#what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image" title="Permalink to this heading">¶</a></h1>
-<p>We often hear questions that our users use various security scanners on the image and find out that
-there are some critical and high vulnerabilities in the image - not coming from Airflow but for some other
-components. In general, this is normal and expected that such vulnerabilities are found in the image after
-it’s been released and fixed - precisely because we are NOT updating the images after they are released as
-explained above. Also sometimes even the latest releases contain vulnerabilities that are not yet fixed
-in the base image we use or in the dependencies we use and cannot upgrade, because some of our providers
-have limits and did not manage to upgrade yet and we have no control over that. So it is possible
-that even the most recent release of our image there are some High and Critical vulnerabilities that
-are not yet fixed.</p>
-<p><strong>What can you do in such case?</strong></p>
-<p>First of all - you should know what you should NOT do.</p>
-<p>Do NOT send private email to the Airflow Security Team with scan results and asking what to do.
-The Security team at Airflow takes care exclusively about undisclosed vulnerabilities in Airflow itself, not
-in the dependencies or in the base image. The security email should only be used to report privately any
-security issues that can be exploited via Airflow. This is nicely explained in our
-<a class="reference external" href="https://github.com/apache/airflow/security/policy">Security Policy</a> where you can find more details
-including the need to provide reproducible scenarios and submitting ONE issue per email. NEVER submit multiple
-vulnerabilities in one email - those are rejected immediately, as they make the process of handling the issue
-way harder for everyone, including the reporters.</p>
-<p>Also DO NOT open a GitHub Issue with the scan results and asking what to do. The GitHub Issues are for
-reporting bugs and feature requests to Airflow itself, not for asking for help with the security scans on
-3rd party components.</p>
-<p>So what are your options?</p>
-<p>You have four options:</p>
-<ol class="arabic simple">
-<li><p>Build your own custom image following the examples we share there - using the latest base image and
-possibly manually bumping dependencies you want to bump. There are quite a few examples
-in <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a> which you can follow. You can use “slim” image as a base
-for your images and rather than basing your image on the “reference” image that has a number of extras
-and providers installed, you can only install what you actually need and upgrade some dependencies that
-otherwise would not be possible to upgrade - because some of the provider libraries have limits and
-did not manage to upgrade yet and we have no control over that. This is the most flexible way to
-build your image and you can build your process to combine it with quickly upgrading to latest Airflow
-versions (see point 2. below).</p></li>
-<li><p>Wait for a new version of Airflow and upgrade to it. Airflow images are updated to latest “non-conflicting”
-dependencies and use latest “base” image at release time, so what you have in the reference images
-at the moment we publish the image / release the version is what is “latest and greatest”
-available at the moment with the base platform we use (Debian Bookworm is the reference image we use).
-This is one of good strategies you can take - build a process to upgrade your Airflow version regularly
-- quickly after it has been released by the community, this will help you to keep up with the latest
-security fixes in the dependencies.</p></li>
-<li><p>If the base platform we use (currently Debian Bookworm) does not contain the latest versions you want
-and you want to use other base images, you can take a look at what system dependencies are installed
-and scripts in the latest <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> of airflow and take inspiration from it and build your own image
-or copy it and modify it to your needs. See the
-<a class="reference external" href="https://github.com/apache/airflow/blob/2.10.0/Dockerfile">Dockerfile</a> for the latest version.</p></li>
-<li><p>Research if the vulnerability affects you or not. Even if there is a dependency with high or critical
-vulnerability, it does not mean that it can be exploited in Airflow (or specifically in the way you are
-using Airflow). If you do have a reproducible scenario how a vulnerability can be exploited in Airflow, you should -
-of course - privately report it to the security team. But if you do not have reproducible
-scenario, please do some research and try to understand the impact of the vulnerability on Airflow. That
-research might result in a  public GitHub Discussion where you can discuss the impact of the
-vulnerability if you research will indicate Airflow might not be impacted or private security email if
-you find a reproducible scenario on how to exploit it.</p></li>
-</ol>
-<p><strong>How do I discuss publicly about public CVEs in the image?</strong></p>
-<p>The security scans report public vulnerabilities in 3rd-party components of Airflow. Since those are
-already public vulnerabilities, this is something you can talk about but others also are talking about.
-So you can do research on your own first. Try to find discussions about the issues, how others were handling
-it and possibly even try to explore, whether the vulnerability can be exploited in Airflow or not.
-This is a very valuable contribution to the community you can do in order to help others to
-understand the impact of the vulnerability on Airflow. We highly appreciate our commercial users do it,
-because Airflow is maintained by volunteers, so if you or your company can spend some time and skills of
-security researchers to help the community to understand the impact of the vulnerability on Airflow, it
-could be a fantastic contribution to the community and way to give back to the project that your company uses
-for free.</p>
-<p>You are free to discuss it publicly, open a <a class="reference external" href="https://github.com/apache/airflow/discussions">GitHub Discussion</a>
-mentioning your findings and research you’ve done so far. Ideally (as a way to contribute to Airflow) you
-should explain the findings of your own security team in your company to help to research and understand
-the impact of the vulnerability on Airflow (and your way of using it).
-Again - strong suggestion is to open ONE discussion per vulnerability. You should NOT post scan results in
-bulk - this is not helpful for a discussion, and you will not get meaningful answers if you will attempt to
-discuss all the issues in one discussion thread.</p>
-<p>Yes - we know it’s the easy way to copy &amp; paste your result and ask others what to do, but doing it is
-going to likely result in silence because such actions in the community as seen as pretty selfish way of
-getting your problems solved by tapping into time of other volunteers, without spending your time on making it
-easier for them to help. If you really want to get help from the community, focus your discussion on
-particular CVE, provide your findings - including analyzing your report in detail and finding which
-binaries and base images exactly are causing the scanner to report the vulnerability. Remember that only
-you have access to your scanner and you should bring as much helpful information so that others can
-comment on it. Show that you have done your homework and that you bring valuable information to the community.</p>
-<p>Opening a GitHub Discussion for this kind of issues is also a great way to communicate with the
-maintainers and security team in an open and transparent way - without reverting to the private security
-mailing list (which serves different purpose as explained above). If after such a discussion there will be
-a way to remove such a vulnerability from the scanned image - great, you can even contribute a PR to the
-Dockerfile to remove the vulnerability from the image. Maybe such a discussion will lead to a PR to allow
-Airflow to upgrade to newer dependency that fixes the vulnerability or remove it altogether, or maybe
-there is already a way to mitigate it or maybe there is already a PR that someone works on to fix it.
-All this can (and should) be discussed publicly and transparently in a GitHub Discussion, not via private
-security email, nor GitHub Issues which are exclusively about Airflow Issues not 3rd-party components
-public security issues.</p>
-</div>
-<div class="section" id="support">
-<h1>Support<a class="headerlink" href="#support" title="Permalink to this heading">¶</a></h1>
-<p>The reference Docker Image supports the following platforms and database:</p>
-<div class="section" id="intel-platform-x86-64">
-<h2>Intel platform (x86_64)<a class="headerlink" href="#intel-platform-x86-64" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>Postgres Client</p></li>
-<li><p>MySQL Client</p></li>
-<li><p>MSSQL Client</p></li>
-</ul>
-</div>
-<div class="section" id="arm-platform-aarch64">
-<h2>ARM platform (aarch64)<a class="headerlink" href="#arm-platform-aarch64" title="Permalink to this heading">¶</a></h2>
-<p>ARM support is experimental, might change any time.</p>
-<ul class="simple">
-<li><p>Postgres Client</p></li>
-<li><p>MySQL Client (MySQL 8)</p></li>
-<li><p>MSSQL Client</p></li>
-</ul>
-<p>Note that MySQL on arm has experimental support through MariaDB client library.</p>
-</div>
-</div>
-<div class="section" id="usage">
-<h1>Usage<a class="headerlink" href="#usage" title="Permalink to this heading">¶</a></h1>
-<p>The <span class="target" id="index-0"></span><a class="reference external" href="/docs/apache-airflow/stable/cli-and-env-variables-ref.html#envvar-AIRFLOW_HOME" title="(in apache-airflow v2.10.0.dev0)"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">AIRFLOW_HOME</span></code></a> is set by default to <code class="docutils literal notranslate"><span class="pre">/opt/airflow/</span></code> - this means that DAGs
-are by default in the <code class="docutils literal notranslate"><span class="pre">/opt/airflow/dags</span></code> folder and logs are in the <code class="docutils literal notranslate"><span class="pre">/opt/airflow/logs</span></code></p>
-<p>The working directory is <code class="docutils literal notranslate"><span class="pre">/opt/airflow</span></code> by default.</p>
-<p>If no <span class="target" id="index-1"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">AIRFLOW__DATABASE__SQL_ALCHEMY_CONN</span></code> variable is set then SQLite database is created in
-<code class="docutils literal notranslate"><span class="pre">${AIRFLOW_HOME}/airflow.db</span></code>.</p>
-<p>For example commands that start Airflow see: <a class="reference internal" href="entrypoint.html#entrypoint-commands"><span class="std std-ref">Executing commands</span></a>.</p>
-<p>Airflow requires many components to function as it is a distributed application. You may therefore also be interested
-in launching Airflow in the Docker Compose environment, see: <a class="reference external" href="/docs/apache-airflow/stable/howto/docker-compose/index.html" title="(in apache-airflow v2.10.0.dev0)"><span>Running Airflow in Docker</span></a>.</p>
-<p>You can use this image in <a class="reference external" href="/docs/helm-chart/stable/index.html" title="(in helm-chart v1.16.0-dev)"><span class="xref std std-doc">Helm Chart</span></a> as well.</p>
+  <div class="section" id="module-airflow.decorators.bash">
+<span id="airflow-decorators-bash"></span><h1><a class="reference internal" href="#module-airflow.decorators.bash" title="airflow.decorators.bash"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a><a class="headerlink" href="#module-airflow.decorators.bash" title="Permalink to this heading">¶</a></h1>
 </div>
 
 
-    <div class="pager" role="navigation" aria-label="related navigation"><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Previous</button>
-            <a rel="next" title="Building the image" href="build.html" >
+    <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_external_python" href="../branch_external_python/index.html" >
                 <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
             </a>
     </div>
@@ -805,17 +806,7 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
     <nav class="wy-nav-side-toc">
         <div class="wy-menu-vertical">
             <ul>
-<li><a class="reference internal" href="#">Docker Image for Apache Airflow</a><ul>
-</ul>
-</li>
-<li><a class="reference internal" href="#fixing-images-at-release-time">Fixing images at release time</a></li>
-<li><a class="reference internal" href="#what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image">What should I do if my security scan shows critical and high vulnerabilities in the image?</a></li>
-<li><a class="reference internal" href="#support">Support</a><ul>
-<li><a class="reference internal" href="#intel-platform-x86-64">Intel platform (x86_64)</a></li>
-<li><a class="reference internal" href="#arm-platform-aarch64">ARM platform (aarch64)</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#usage">Usage</a></li>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
 </ul>
 
         </div>
@@ -838,7 +829,7 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
             
         
         <div class="base-layout--button">
-            <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/index.rst" rel="nofollow">
+            <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/bash/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">
@@ -972,20 +963,21 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
         </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 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="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/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 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-archive/docker-stack/build-arg-ref.html b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/branch_external_python/index.html
similarity index 73%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/branch_external_python/index.html
index 6ffac8e3cf..191d9aa91b 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/branch_external_python/index.html
@@ -9,20 +9,22 @@
 <head>
         <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1">
-        <title>Image build arguments reference &mdash; docker-stack 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/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="prev" title="Recipes" href="recipes.html" />
-
-    <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/build-arg-ref.html" />
+        <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.bash" href="../bash/index.html" />
+
+    <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/branch_external_python/index.html" />
 
     <!-- Matomo -->
     <script>
@@ -284,8 +286,21 @@
             <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.10.1</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">
+    <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" />
@@ -315,23 +330,100 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
 <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
+</ul>
 
 </div>
 
@@ -411,8 +503,21 @@
             
     <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.10.1</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">
+    <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" />
@@ -442,22 +547,99 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
 <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -546,9 +728,13 @@
 
     <ul class="breadcrumb">
         
-            <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+            <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="build-arg-ref.html"> Image build arguments reference</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>
@@ -559,408 +745,54 @@
                                 <div class="bodywrapper">
                                     <div class="body" role="main">
                                         
-  <blockquote>
-<div></div></blockquote>
-<div class="section" id="image-build-arguments-reference">
-<h1>Image build arguments reference<a class="headerlink" href="#image-build-arguments-reference" title="Permalink to this heading">¶</a></h1>
-<p>The following build arguments (<code class="docutils literal notranslate"><span class="pre">--build-arg</span></code> in docker build command) can be used for production images.
-Those arguments are used when you want to customize the image. You can see some examples of it in
-<a class="reference internal" href="build.html#image-build-pypi"><span class="std std-ref">Building from PyPI packages</span></a>.</p>
-<div class="section" id="basic-arguments">
-<h2>Basic arguments<a class="headerlink" href="#basic-arguments" title="Permalink to this heading">¶</a></h2>
-<p>Those are the most common arguments that you use when you want to build a custom image.</p>
-<table class="docutils align-default">
+  <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: 33%" />
-<col style="width: 33%" />
-<col style="width: 35%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
 </colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
 <tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PYTHON_BASE_IMAGE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">python:3.8-slim-bookworm</span></code></p></td>
-<td><p>Base python image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION</span></code></p></td>
-<td><p><code class="code docutils literal notranslate"><span class="pre">2.10.0</span></code></p></td>
-<td><p>version of Airflow.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_EXTRAS</span></code></p></td>
-<td><p>(see below the table)</p></td>
-<td><p>Default extras with which airflow is
-installed.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_AIRFLOW_EXTRAS</span></code></p></td>
-<td></td>
-<td><p>Optional additional extras with which
-airflow is installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_HOME</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/opt/airflow</span></code></p></td>
-<td><p>Airflow’s HOME (that’s where logs and
-SQLite databases are stored).</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USER_HOME_DIR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/home/airflow</span></code></p></td>
-<td><p>Home directory of the Airflow user.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PIP_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&lt;LATEST_AVAILABLE_IN_PYPI&gt;</span></code></p></td>
-<td><p>PIP version used.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UV_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&lt;LATEST_AVAILABLE_IN_PYPI&gt;</span></code></p></td>
-<td><p>UV version used.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USE_UV</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Whether to use UV to build the image.
-This is an experimental feature.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">UV_HTTP_TIMEOUT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">300</span></code></p></td>
-<td><p>Timeout in seconds for UV pull requests.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code></p></td>
-<td></td>
-<td><p>additional <code class="docutils literal notranslate"><span class="pre">pip</span></code> flags passed to the
-installation commands (except when
-reinstalling <code class="docutils literal notranslate"><span class="pre">pip</span></code> itself)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_PROGRESS_BAR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">on</span></code></p></td>
-<td><p>Progress bar for PIP installation</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UID</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">50000</span></code></p></td>
-<td><p>Airflow user UID.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">constraints</span></code></p></td>
-<td><p>Type of constraints to build the image.
-This can be <code class="docutils literal notranslate"><span class="pre">constraints</span></code> for regular
-images or <code class="docutils literal notranslate"><span class="pre">constraints-no-providers</span></code> for
-slim images.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_REFERENCE</span></code></p></td>
-<td></td>
-<td><p>Reference (branch or tag) from GitHub
-where constraints file is taken from
-It can be <code class="docutils literal notranslate"><span class="pre">constraints-main</span></code> or
-<code class="docutils literal notranslate"><span class="pre">constraints-2-0</span></code> for
-2.0.* installation. In case of building
-specific version you want to point it
-to specific tag, for example
-<code class="code docutils literal notranslate"><span class="pre">constraints-2.10.0</span></code>.
-Auto-detected if empty.</p></td>
+<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>
-<div class="admonition note">
-<p class="admonition-title">Note</p>
-<p>Before Airflow 2.2, the image also had <code class="docutils literal notranslate"><span class="pre">AIRFLOW_GID</span></code> parameter, but it did not provide any additional
-functionality - only added confusion - so it has been removed.</p>
-</div>
-<p>List of default extras in the production Dockerfile:</p>
-<ul class="simple">
-<li><p>aiobotocore</p></li>
-<li><p>amazon</p></li>
-<li><p>async</p></li>
-<li><p>celery</p></li>
-<li><p>cncf-kubernetes</p></li>
-<li><p>common-io</p></li>
-<li><p>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>fab</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google-auth</p></li>
-<li><p>graphviz</p></li>
-<li><p>grpc</p></li>
-<li><p>hashicorp</p></li>
-<li><p>http</p></li>
-<li><p>ldap</p></li>
-<li><p>microsoft-azure</p></li>
-<li><p>mysql</p></li>
-<li><p>odbc</p></li>
-<li><p>openlineage</p></li>
-<li><p>pandas</p></li>
-<li><p>postgres</p></li>
-<li><p>redis</p></li>
-<li><p>sendgrid</p></li>
-<li><p>sftp</p></li>
-<li><p>slack</p></li>
-<li><p>snowflake</p></li>
-<li><p>ssh</p></li>
-<li><p>statsd</p></li>
-<li><p>uv</p></li>
-<li><p>virtualenv</p></li>
-</ul>
-</div>
-<div class="section" id="image-optimization-options">
-<h2>Image optimization options<a class="headerlink" href="#image-optimization-options" title="Permalink to this heading">¶</a></h2>
-<p>The main advantage of Customization method of building Airflow image, is that it allows to build highly optimized image because
-the final image (RUNTIME) might not contain all the dependencies that are needed to build and install all other dependencies
-(DEV). Those arguments allow to control what is installed in the DEV image and what is installed in RUNTIME one, thus
-allowing to produce much more optimized images. See <a class="reference internal" href="build.html#image-build-optimized"><span class="std std-ref">Building optimized images</span></a>.
-for examples of using those arguments.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">UPGRADE_INVALIDATION_STRING</span></code></p></td>
-<td></td>
-<td><p>If set to a random, non-empty value
-the dependencies are upgraded to newer
-versions. In CI it is set to build id
-to make sure subsequent builds are not
-reusing cached images with same value.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PYTHON_DEPS</span></code></p></td>
-<td></td>
-<td><p>Optional python packages to extend
-the image with some extra dependencies.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Dev apt command executed before dev deps
-are installed in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Dev apt command executed
-before dev dep are installed
-in the Build image. Should start with
-<code class="docutils literal notranslate"><span class="pre">&amp;&amp;</span></code>.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_DEPS</span></code></p></td>
-<td><p>Empty - install default dependencies
-(see <code class="docutils literal notranslate"><span class="pre">install_os_dependencies.sh</span></code>)</p></td>
-<td><p>Dev APT dependencies installed
-in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_DEPS</span></code></p></td>
-<td></td>
-<td><p>Additional apt dev dependencies
-installed in the Build image.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_ENV</span></code></p></td>
-<td></td>
-<td><p>Additional env variables defined
-when installing dev deps.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">RUNTIME_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Runtime apt command executed before deps
-are installed in the <code class="docutils literal notranslate"><span class="pre">main</span></code> stage.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Runtime apt command executed
-before runtime dep are installed
-in the <code class="docutils literal notranslate"><span class="pre">main</span></code> stage. Should start with
-<code class="docutils literal notranslate"><span class="pre">&amp;&amp;</span></code>.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">RUNTIME_APT_DEPS</span></code></p></td>
-<td><p>Empty - install default dependencies
-(see <code class="docutils literal notranslate"><span class="pre">install_os_dependencies.sh</span></code>)</p></td>
-<td><p>Runtime APT dependencies installed
-in the Main image.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_DEPS</span></code></p></td>
-<td></td>
-<td><p>Additional apt runtime dependencies
-installed in the Main image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_ENV</span></code></p></td>
-<td></td>
-<td><p>Additional env variables defined
-when installing runtime deps.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether MySQL client should be installed
-The mysql extra is removed from extras
-if the client is not installed.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">mariadb</span></code></p></td>
-<td><p>Type of MySQL client library. This
-can be <code class="docutils literal notranslate"><span class="pre">mariadb</span></code> or <code class="docutils literal notranslate"><span class="pre">mysql</span></code>
-Regardless of the parameter, <code class="docutils literal notranslate"><span class="pre">mariadb</span></code>
-will always be used on ARM.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MSSQL_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether MsSQL client should be installed</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_POSTGRES_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether Postgres client should be
-installed</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="section" id="installing-airflow-using-different-methods">
-<h2>Installing Airflow using different methods<a class="headerlink" href="#installing-airflow-using-different-methods" title="Permalink to this heading">¶</a></h2>
-<p>Those parameters are useful only if you want to install Airflow using different installation methods than the default
-(installing from PyPI packages).</p>
-<p>This is usually only useful if you have your own fork of Airflow and want to build the images locally from
-those sources - either locally or directly from GitHub sources. This way you do not need to release your
-Airflow and Providers via PyPI - they can be installed directly from sources or from GitHub repository.
-Another option of installation is to build Airflow from previously prepared binary Python packages which might
-be useful if you need to build Airflow in environments that require high levels of security.</p>
-<dl class="simple">
-<dt>You can see some examples of those in:</dt><dd><ul class="simple">
-<li><p><a class="reference internal" href="build.html#image-build-github"><span class="std std-ref">Building from GitHub</span></a>,</p></li>
-<li><p><a class="reference internal" href="build.html#image-build-custom"><span class="std std-ref">Using custom installation sources</span></a>,</p></li>
-<li><p><a class="reference internal" href="build.html#image-build-secure-environments"><span class="std std-ref">Build images in security restricted environments</span></a></p></li>
+<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>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_INSTALLATION_METHOD</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache-airflow</span></code></p></td>
-<td><p>Installation method of Apache Airflow.
-<code class="docutils literal notranslate"><span class="pre">apache-airflow</span></code> for installation from
-PyPI. It can be GitHub repository URL
-including branch or tag to install from
-that repository or “.” to install from
-local sources. Installing from sources
-requires appropriate values of the
-<code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_FROM</span></code> and
-<code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_TO</span></code> variables (see
-below)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_FROM</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>Sources of Airflow. Set it to “.” when
-you install Airflow from local sources</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_TO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/Dockerfile</span></code></p></td>
-<td><p>Target for Airflow sources. Set to
-“/opt/airflow” when you install Airflow
-from local sources.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION_SPECIFICATION</span></code></p></td>
-<td></td>
-<td><p>Optional - might be used for using limit
-for Airflow version installation - for
-example <code class="docutils literal notranslate"><span class="pre">&lt;2.0.2</span></code> for automated builds.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_LOCATION</span></code></p></td>
-<td></td>
-<td><p>If not empty, it will override the
-source of the constraints with the
-specified URL or file. Note that the
-file has to be in Docker context so
-it’s best to place such file in
-one of the folders included in
-<code class="docutils literal notranslate"><span class="pre">.dockerignore</span></code> file.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DOCKER_CONTEXT_FILES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>If set to a folder (for example to
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> folder), then
-this folder will be copied to the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> inside the
-context of docker and you will be able
-to install from binary files present
-there. By default we set it to
-Dockerfile as we know the file is there,
-otherwise the COPY instruction fails.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to true, Airflow, providers and
-all dependencies are installed from
-from locally built/downloaded
-.whl and .tar.gz files placed in the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code>.</p></td>
-</tr>
-</tbody>
-</table>
+</dd></dl>
+
 </div>
-<div class="section" id="pre-caching-pip-dependencies">
-<h2>Pre-caching PIP dependencies<a class="headerlink" href="#pre-caching-pip-dependencies" title="Permalink to this heading">¶</a></h2>
-<p>When image is build from PIP, by default pre-caching of PIP dependencies is used. This is in order to speed-up incremental
-builds during development. When pre-cached PIP dependencies are used and <code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code> changes, the
-PIP dependencies are already pre-installed, thus resulting in much faster image rebuild. This is purely an optimization
-of time needed to build the images and should be disabled if you want to install Airflow from
-Docker context files.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 33%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_BRANCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">main</span></code></p></td>
-<td><p>the branch from which PIP dependencies
-are pre-installed initially.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_REPO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code></p></td>
-<td><p>the repository from which PIP
-dependencies are pre-installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PRE_CACHED_PIP_PACKAGES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Allows to pre-cache airflow PIP packages
-from the GitHub of Apache Airflow
-This allows to optimize iterations for
-Image builds and speeds up CI builds.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_CACHE_EPOCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&quot;0&quot;</span></code></p></td>
-<td><p>Allow to invalidate cache by passing a
-new argument.</p></td>
-</tr>
-</tbody>
-</table>
 </div>
 </div>
 
 
     <div class="pager" role="navigation" aria-label="related navigation">
-            <a rel="prev" title="Recipes" href="recipes.html" >
+            <a rel="prev" title="airflow.decorators.bash" href="../bash/index.html" >
                 <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
-            </a><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Next</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>
 
@@ -1028,11 +860,14 @@ new argument.</p></td>
     <nav class="wy-nav-side-toc">
         <div class="wy-menu-vertical">
             <ul>
-<li><a class="reference internal" href="#">Image build arguments reference</a><ul>
-<li><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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>
@@ -1057,7 +892,7 @@ new argument.</p></td>
             
         
         <div class="base-layout--button">
-            <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/build-arg-ref.rst" rel="nofollow">
+            <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">
@@ -1191,20 +1026,21 @@ new argument.</p></td>
         </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 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="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/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 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-archive/docker-stack/build-arg-ref.html b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/branch_python/index.html
similarity index 73%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/branch_python/index.html
index 6ffac8e3cf..6cc978fcef 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/branch_python/index.html
@@ -9,20 +9,22 @@
 <head>
         <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1">
-        <title>Image build arguments reference &mdash; docker-stack 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/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="prev" title="Recipes" href="recipes.html" />
-
-    <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/build-arg-ref.html" />
+        <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>
@@ -284,8 +286,21 @@
             <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.10.1</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">
+    <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" />
@@ -315,23 +330,100 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
 <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
+</ul>
 
 </div>
 
@@ -411,8 +503,21 @@
             
     <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.10.1</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">
+    <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" />
@@ -442,22 +547,99 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
 <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -546,9 +728,13 @@
 
     <ul class="breadcrumb">
         
-            <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+            <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="build-arg-ref.html"> Image build arguments reference</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>
@@ -559,408 +745,54 @@
                                 <div class="bodywrapper">
                                     <div class="body" role="main">
                                         
-  <blockquote>
-<div></div></blockquote>
-<div class="section" id="image-build-arguments-reference">
-<h1>Image build arguments reference<a class="headerlink" href="#image-build-arguments-reference" title="Permalink to this heading">¶</a></h1>
-<p>The following build arguments (<code class="docutils literal notranslate"><span class="pre">--build-arg</span></code> in docker build command) can be used for production images.
-Those arguments are used when you want to customize the image. You can see some examples of it in
-<a class="reference internal" href="build.html#image-build-pypi"><span class="std std-ref">Building from PyPI packages</span></a>.</p>
-<div class="section" id="basic-arguments">
-<h2>Basic arguments<a class="headerlink" href="#basic-arguments" title="Permalink to this heading">¶</a></h2>
-<p>Those are the most common arguments that you use when you want to build a custom image.</p>
-<table class="docutils align-default">
+  <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: 33%" />
-<col style="width: 33%" />
-<col style="width: 35%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
 </colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
 <tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PYTHON_BASE_IMAGE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">python:3.8-slim-bookworm</span></code></p></td>
-<td><p>Base python image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION</span></code></p></td>
-<td><p><code class="code docutils literal notranslate"><span class="pre">2.10.0</span></code></p></td>
-<td><p>version of Airflow.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_EXTRAS</span></code></p></td>
-<td><p>(see below the table)</p></td>
-<td><p>Default extras with which airflow is
-installed.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_AIRFLOW_EXTRAS</span></code></p></td>
-<td></td>
-<td><p>Optional additional extras with which
-airflow is installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_HOME</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/opt/airflow</span></code></p></td>
-<td><p>Airflow’s HOME (that’s where logs and
-SQLite databases are stored).</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USER_HOME_DIR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/home/airflow</span></code></p></td>
-<td><p>Home directory of the Airflow user.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PIP_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&lt;LATEST_AVAILABLE_IN_PYPI&gt;</span></code></p></td>
-<td><p>PIP version used.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UV_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&lt;LATEST_AVAILABLE_IN_PYPI&gt;</span></code></p></td>
-<td><p>UV version used.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USE_UV</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Whether to use UV to build the image.
-This is an experimental feature.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">UV_HTTP_TIMEOUT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">300</span></code></p></td>
-<td><p>Timeout in seconds for UV pull requests.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code></p></td>
-<td></td>
-<td><p>additional <code class="docutils literal notranslate"><span class="pre">pip</span></code> flags passed to the
-installation commands (except when
-reinstalling <code class="docutils literal notranslate"><span class="pre">pip</span></code> itself)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_PROGRESS_BAR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">on</span></code></p></td>
-<td><p>Progress bar for PIP installation</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UID</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">50000</span></code></p></td>
-<td><p>Airflow user UID.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">constraints</span></code></p></td>
-<td><p>Type of constraints to build the image.
-This can be <code class="docutils literal notranslate"><span class="pre">constraints</span></code> for regular
-images or <code class="docutils literal notranslate"><span class="pre">constraints-no-providers</span></code> for
-slim images.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_REFERENCE</span></code></p></td>
-<td></td>
-<td><p>Reference (branch or tag) from GitHub
-where constraints file is taken from
-It can be <code class="docutils literal notranslate"><span class="pre">constraints-main</span></code> or
-<code class="docutils literal notranslate"><span class="pre">constraints-2-0</span></code> for
-2.0.* installation. In case of building
-specific version you want to point it
-to specific tag, for example
-<code class="code docutils literal notranslate"><span class="pre">constraints-2.10.0</span></code>.
-Auto-detected if empty.</p></td>
+<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>
-<div class="admonition note">
-<p class="admonition-title">Note</p>
-<p>Before Airflow 2.2, the image also had <code class="docutils literal notranslate"><span class="pre">AIRFLOW_GID</span></code> parameter, but it did not provide any additional
-functionality - only added confusion - so it has been removed.</p>
-</div>
-<p>List of default extras in the production Dockerfile:</p>
-<ul class="simple">
-<li><p>aiobotocore</p></li>
-<li><p>amazon</p></li>
-<li><p>async</p></li>
-<li><p>celery</p></li>
-<li><p>cncf-kubernetes</p></li>
-<li><p>common-io</p></li>
-<li><p>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>fab</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google-auth</p></li>
-<li><p>graphviz</p></li>
-<li><p>grpc</p></li>
-<li><p>hashicorp</p></li>
-<li><p>http</p></li>
-<li><p>ldap</p></li>
-<li><p>microsoft-azure</p></li>
-<li><p>mysql</p></li>
-<li><p>odbc</p></li>
-<li><p>openlineage</p></li>
-<li><p>pandas</p></li>
-<li><p>postgres</p></li>
-<li><p>redis</p></li>
-<li><p>sendgrid</p></li>
-<li><p>sftp</p></li>
-<li><p>slack</p></li>
-<li><p>snowflake</p></li>
-<li><p>ssh</p></li>
-<li><p>statsd</p></li>
-<li><p>uv</p></li>
-<li><p>virtualenv</p></li>
-</ul>
-</div>
-<div class="section" id="image-optimization-options">
-<h2>Image optimization options<a class="headerlink" href="#image-optimization-options" title="Permalink to this heading">¶</a></h2>
-<p>The main advantage of Customization method of building Airflow image, is that it allows to build highly optimized image because
-the final image (RUNTIME) might not contain all the dependencies that are needed to build and install all other dependencies
-(DEV). Those arguments allow to control what is installed in the DEV image and what is installed in RUNTIME one, thus
-allowing to produce much more optimized images. See <a class="reference internal" href="build.html#image-build-optimized"><span class="std std-ref">Building optimized images</span></a>.
-for examples of using those arguments.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">UPGRADE_INVALIDATION_STRING</span></code></p></td>
-<td></td>
-<td><p>If set to a random, non-empty value
-the dependencies are upgraded to newer
-versions. In CI it is set to build id
-to make sure subsequent builds are not
-reusing cached images with same value.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PYTHON_DEPS</span></code></p></td>
-<td></td>
-<td><p>Optional python packages to extend
-the image with some extra dependencies.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Dev apt command executed before dev deps
-are installed in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Dev apt command executed
-before dev dep are installed
-in the Build image. Should start with
-<code class="docutils literal notranslate"><span class="pre">&amp;&amp;</span></code>.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_DEPS</span></code></p></td>
-<td><p>Empty - install default dependencies
-(see <code class="docutils literal notranslate"><span class="pre">install_os_dependencies.sh</span></code>)</p></td>
-<td><p>Dev APT dependencies installed
-in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_DEPS</span></code></p></td>
-<td></td>
-<td><p>Additional apt dev dependencies
-installed in the Build image.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_ENV</span></code></p></td>
-<td></td>
-<td><p>Additional env variables defined
-when installing dev deps.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">RUNTIME_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Runtime apt command executed before deps
-are installed in the <code class="docutils literal notranslate"><span class="pre">main</span></code> stage.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Runtime apt command executed
-before runtime dep are installed
-in the <code class="docutils literal notranslate"><span class="pre">main</span></code> stage. Should start with
-<code class="docutils literal notranslate"><span class="pre">&amp;&amp;</span></code>.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">RUNTIME_APT_DEPS</span></code></p></td>
-<td><p>Empty - install default dependencies
-(see <code class="docutils literal notranslate"><span class="pre">install_os_dependencies.sh</span></code>)</p></td>
-<td><p>Runtime APT dependencies installed
-in the Main image.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_DEPS</span></code></p></td>
-<td></td>
-<td><p>Additional apt runtime dependencies
-installed in the Main image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_ENV</span></code></p></td>
-<td></td>
-<td><p>Additional env variables defined
-when installing runtime deps.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether MySQL client should be installed
-The mysql extra is removed from extras
-if the client is not installed.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">mariadb</span></code></p></td>
-<td><p>Type of MySQL client library. This
-can be <code class="docutils literal notranslate"><span class="pre">mariadb</span></code> or <code class="docutils literal notranslate"><span class="pre">mysql</span></code>
-Regardless of the parameter, <code class="docutils literal notranslate"><span class="pre">mariadb</span></code>
-will always be used on ARM.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MSSQL_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether MsSQL client should be installed</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_POSTGRES_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether Postgres client should be
-installed</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="section" id="installing-airflow-using-different-methods">
-<h2>Installing Airflow using different methods<a class="headerlink" href="#installing-airflow-using-different-methods" title="Permalink to this heading">¶</a></h2>
-<p>Those parameters are useful only if you want to install Airflow using different installation methods than the default
-(installing from PyPI packages).</p>
-<p>This is usually only useful if you have your own fork of Airflow and want to build the images locally from
-those sources - either locally or directly from GitHub sources. This way you do not need to release your
-Airflow and Providers via PyPI - they can be installed directly from sources or from GitHub repository.
-Another option of installation is to build Airflow from previously prepared binary Python packages which might
-be useful if you need to build Airflow in environments that require high levels of security.</p>
-<dl class="simple">
-<dt>You can see some examples of those in:</dt><dd><ul class="simple">
-<li><p><a class="reference internal" href="build.html#image-build-github"><span class="std std-ref">Building from GitHub</span></a>,</p></li>
-<li><p><a class="reference internal" href="build.html#image-build-custom"><span class="std std-ref">Using custom installation sources</span></a>,</p></li>
-<li><p><a class="reference internal" href="build.html#image-build-secure-environments"><span class="std std-ref">Build images in security restricted environments</span></a></p></li>
+<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>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_INSTALLATION_METHOD</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache-airflow</span></code></p></td>
-<td><p>Installation method of Apache Airflow.
-<code class="docutils literal notranslate"><span class="pre">apache-airflow</span></code> for installation from
-PyPI. It can be GitHub repository URL
-including branch or tag to install from
-that repository or “.” to install from
-local sources. Installing from sources
-requires appropriate values of the
-<code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_FROM</span></code> and
-<code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_TO</span></code> variables (see
-below)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_FROM</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>Sources of Airflow. Set it to “.” when
-you install Airflow from local sources</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_TO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/Dockerfile</span></code></p></td>
-<td><p>Target for Airflow sources. Set to
-“/opt/airflow” when you install Airflow
-from local sources.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION_SPECIFICATION</span></code></p></td>
-<td></td>
-<td><p>Optional - might be used for using limit
-for Airflow version installation - for
-example <code class="docutils literal notranslate"><span class="pre">&lt;2.0.2</span></code> for automated builds.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_LOCATION</span></code></p></td>
-<td></td>
-<td><p>If not empty, it will override the
-source of the constraints with the
-specified URL or file. Note that the
-file has to be in Docker context so
-it’s best to place such file in
-one of the folders included in
-<code class="docutils literal notranslate"><span class="pre">.dockerignore</span></code> file.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DOCKER_CONTEXT_FILES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>If set to a folder (for example to
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> folder), then
-this folder will be copied to the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> inside the
-context of docker and you will be able
-to install from binary files present
-there. By default we set it to
-Dockerfile as we know the file is there,
-otherwise the COPY instruction fails.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to true, Airflow, providers and
-all dependencies are installed from
-from locally built/downloaded
-.whl and .tar.gz files placed in the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code>.</p></td>
-</tr>
-</tbody>
-</table>
+</dd></dl>
+
 </div>
-<div class="section" id="pre-caching-pip-dependencies">
-<h2>Pre-caching PIP dependencies<a class="headerlink" href="#pre-caching-pip-dependencies" title="Permalink to this heading">¶</a></h2>
-<p>When image is build from PIP, by default pre-caching of PIP dependencies is used. This is in order to speed-up incremental
-builds during development. When pre-cached PIP dependencies are used and <code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code> changes, the
-PIP dependencies are already pre-installed, thus resulting in much faster image rebuild. This is purely an optimization
-of time needed to build the images and should be disabled if you want to install Airflow from
-Docker context files.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 33%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_BRANCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">main</span></code></p></td>
-<td><p>the branch from which PIP dependencies
-are pre-installed initially.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_REPO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code></p></td>
-<td><p>the repository from which PIP
-dependencies are pre-installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PRE_CACHED_PIP_PACKAGES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Allows to pre-cache airflow PIP packages
-from the GitHub of Apache Airflow
-This allows to optimize iterations for
-Image builds and speeds up CI builds.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_CACHE_EPOCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&quot;0&quot;</span></code></p></td>
-<td><p>Allow to invalidate cache by passing a
-new argument.</p></td>
-</tr>
-</tbody>
-</table>
 </div>
 </div>
 
 
     <div class="pager" role="navigation" aria-label="related navigation">
-            <a rel="prev" title="Recipes" href="recipes.html" >
+            <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><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Next</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>
 
@@ -1028,11 +860,14 @@ new argument.</p></td>
     <nav class="wy-nav-side-toc">
         <div class="wy-menu-vertical">
             <ul>
-<li><a class="reference internal" href="#">Image build arguments reference</a><ul>
-<li><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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>
@@ -1057,7 +892,7 @@ new argument.</p></td>
             
         
         <div class="base-layout--button">
-            <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/build-arg-ref.rst" rel="nofollow">
+            <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">
@@ -1191,20 +1026,21 @@ new argument.</p></td>
         </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 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="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/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 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-archive/docker-stack/build-arg-ref.html b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/branch_virtualenv/index.html
similarity index 73%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/branch_virtualenv/index.html
index 6ffac8e3cf..093fd909d4 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/branch_virtualenv/index.html
@@ -9,20 +9,22 @@
 <head>
         <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1">
-        <title>Image build arguments reference &mdash; docker-stack 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/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="prev" title="Recipes" href="recipes.html" />
-
-    <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/build-arg-ref.html" />
+        <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.condition" href="../condition/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>
@@ -284,8 +286,21 @@
             <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.10.1</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">
+    <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" />
@@ -315,23 +330,100 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
 <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
+</ul>
 
 </div>
 
@@ -411,8 +503,21 @@
             
     <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.10.1</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">
+    <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" />
@@ -442,22 +547,99 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
 <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -546,9 +728,13 @@
 
     <ul class="breadcrumb">
         
-            <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+            <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="build-arg-ref.html"> Image build arguments reference</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>
@@ -559,408 +745,54 @@
                                 <div class="bodywrapper">
                                     <div class="body" role="main">
                                         
-  <blockquote>
-<div></div></blockquote>
-<div class="section" id="image-build-arguments-reference">
-<h1>Image build arguments reference<a class="headerlink" href="#image-build-arguments-reference" title="Permalink to this heading">¶</a></h1>
-<p>The following build arguments (<code class="docutils literal notranslate"><span class="pre">--build-arg</span></code> in docker build command) can be used for production images.
-Those arguments are used when you want to customize the image. You can see some examples of it in
-<a class="reference internal" href="build.html#image-build-pypi"><span class="std std-ref">Building from PyPI packages</span></a>.</p>
-<div class="section" id="basic-arguments">
-<h2>Basic arguments<a class="headerlink" href="#basic-arguments" title="Permalink to this heading">¶</a></h2>
-<p>Those are the most common arguments that you use when you want to build a custom image.</p>
-<table class="docutils align-default">
+  <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: 33%" />
-<col style="width: 33%" />
-<col style="width: 35%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
 </colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
 <tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PYTHON_BASE_IMAGE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">python:3.8-slim-bookworm</span></code></p></td>
-<td><p>Base python image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION</span></code></p></td>
-<td><p><code class="code docutils literal notranslate"><span class="pre">2.10.0</span></code></p></td>
-<td><p>version of Airflow.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_EXTRAS</span></code></p></td>
-<td><p>(see below the table)</p></td>
-<td><p>Default extras with which airflow is
-installed.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_AIRFLOW_EXTRAS</span></code></p></td>
-<td></td>
-<td><p>Optional additional extras with which
-airflow is installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_HOME</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/opt/airflow</span></code></p></td>
-<td><p>Airflow’s HOME (that’s where logs and
-SQLite databases are stored).</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USER_HOME_DIR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/home/airflow</span></code></p></td>
-<td><p>Home directory of the Airflow user.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PIP_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&lt;LATEST_AVAILABLE_IN_PYPI&gt;</span></code></p></td>
-<td><p>PIP version used.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UV_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&lt;LATEST_AVAILABLE_IN_PYPI&gt;</span></code></p></td>
-<td><p>UV version used.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USE_UV</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Whether to use UV to build the image.
-This is an experimental feature.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">UV_HTTP_TIMEOUT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">300</span></code></p></td>
-<td><p>Timeout in seconds for UV pull requests.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code></p></td>
-<td></td>
-<td><p>additional <code class="docutils literal notranslate"><span class="pre">pip</span></code> flags passed to the
-installation commands (except when
-reinstalling <code class="docutils literal notranslate"><span class="pre">pip</span></code> itself)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_PROGRESS_BAR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">on</span></code></p></td>
-<td><p>Progress bar for PIP installation</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UID</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">50000</span></code></p></td>
-<td><p>Airflow user UID.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">constraints</span></code></p></td>
-<td><p>Type of constraints to build the image.
-This can be <code class="docutils literal notranslate"><span class="pre">constraints</span></code> for regular
-images or <code class="docutils literal notranslate"><span class="pre">constraints-no-providers</span></code> for
-slim images.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_REFERENCE</span></code></p></td>
-<td></td>
-<td><p>Reference (branch or tag) from GitHub
-where constraints file is taken from
-It can be <code class="docutils literal notranslate"><span class="pre">constraints-main</span></code> or
-<code class="docutils literal notranslate"><span class="pre">constraints-2-0</span></code> for
-2.0.* installation. In case of building
-specific version you want to point it
-to specific tag, for example
-<code class="code docutils literal notranslate"><span class="pre">constraints-2.10.0</span></code>.
-Auto-detected if empty.</p></td>
+<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>
-<div class="admonition note">
-<p class="admonition-title">Note</p>
-<p>Before Airflow 2.2, the image also had <code class="docutils literal notranslate"><span class="pre">AIRFLOW_GID</span></code> parameter, but it did not provide any additional
-functionality - only added confusion - so it has been removed.</p>
-</div>
-<p>List of default extras in the production Dockerfile:</p>
-<ul class="simple">
-<li><p>aiobotocore</p></li>
-<li><p>amazon</p></li>
-<li><p>async</p></li>
-<li><p>celery</p></li>
-<li><p>cncf-kubernetes</p></li>
-<li><p>common-io</p></li>
-<li><p>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>fab</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google-auth</p></li>
-<li><p>graphviz</p></li>
-<li><p>grpc</p></li>
-<li><p>hashicorp</p></li>
-<li><p>http</p></li>
-<li><p>ldap</p></li>
-<li><p>microsoft-azure</p></li>
-<li><p>mysql</p></li>
-<li><p>odbc</p></li>
-<li><p>openlineage</p></li>
-<li><p>pandas</p></li>
-<li><p>postgres</p></li>
-<li><p>redis</p></li>
-<li><p>sendgrid</p></li>
-<li><p>sftp</p></li>
-<li><p>slack</p></li>
-<li><p>snowflake</p></li>
-<li><p>ssh</p></li>
-<li><p>statsd</p></li>
-<li><p>uv</p></li>
-<li><p>virtualenv</p></li>
-</ul>
-</div>
-<div class="section" id="image-optimization-options">
-<h2>Image optimization options<a class="headerlink" href="#image-optimization-options" title="Permalink to this heading">¶</a></h2>
-<p>The main advantage of Customization method of building Airflow image, is that it allows to build highly optimized image because
-the final image (RUNTIME) might not contain all the dependencies that are needed to build and install all other dependencies
-(DEV). Those arguments allow to control what is installed in the DEV image and what is installed in RUNTIME one, thus
-allowing to produce much more optimized images. See <a class="reference internal" href="build.html#image-build-optimized"><span class="std std-ref">Building optimized images</span></a>.
-for examples of using those arguments.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">UPGRADE_INVALIDATION_STRING</span></code></p></td>
-<td></td>
-<td><p>If set to a random, non-empty value
-the dependencies are upgraded to newer
-versions. In CI it is set to build id
-to make sure subsequent builds are not
-reusing cached images with same value.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PYTHON_DEPS</span></code></p></td>
-<td></td>
-<td><p>Optional python packages to extend
-the image with some extra dependencies.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Dev apt command executed before dev deps
-are installed in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Dev apt command executed
-before dev dep are installed
-in the Build image. Should start with
-<code class="docutils literal notranslate"><span class="pre">&amp;&amp;</span></code>.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_DEPS</span></code></p></td>
-<td><p>Empty - install default dependencies
-(see <code class="docutils literal notranslate"><span class="pre">install_os_dependencies.sh</span></code>)</p></td>
-<td><p>Dev APT dependencies installed
-in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_DEPS</span></code></p></td>
-<td></td>
-<td><p>Additional apt dev dependencies
-installed in the Build image.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_ENV</span></code></p></td>
-<td></td>
-<td><p>Additional env variables defined
-when installing dev deps.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">RUNTIME_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Runtime apt command executed before deps
-are installed in the <code class="docutils literal notranslate"><span class="pre">main</span></code> stage.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Runtime apt command executed
-before runtime dep are installed
-in the <code class="docutils literal notranslate"><span class="pre">main</span></code> stage. Should start with
-<code class="docutils literal notranslate"><span class="pre">&amp;&amp;</span></code>.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">RUNTIME_APT_DEPS</span></code></p></td>
-<td><p>Empty - install default dependencies
-(see <code class="docutils literal notranslate"><span class="pre">install_os_dependencies.sh</span></code>)</p></td>
-<td><p>Runtime APT dependencies installed
-in the Main image.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_DEPS</span></code></p></td>
-<td></td>
-<td><p>Additional apt runtime dependencies
-installed in the Main image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_ENV</span></code></p></td>
-<td></td>
-<td><p>Additional env variables defined
-when installing runtime deps.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether MySQL client should be installed
-The mysql extra is removed from extras
-if the client is not installed.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">mariadb</span></code></p></td>
-<td><p>Type of MySQL client library. This
-can be <code class="docutils literal notranslate"><span class="pre">mariadb</span></code> or <code class="docutils literal notranslate"><span class="pre">mysql</span></code>
-Regardless of the parameter, <code class="docutils literal notranslate"><span class="pre">mariadb</span></code>
-will always be used on ARM.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MSSQL_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether MsSQL client should be installed</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_POSTGRES_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether Postgres client should be
-installed</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="section" id="installing-airflow-using-different-methods">
-<h2>Installing Airflow using different methods<a class="headerlink" href="#installing-airflow-using-different-methods" title="Permalink to this heading">¶</a></h2>
-<p>Those parameters are useful only if you want to install Airflow using different installation methods than the default
-(installing from PyPI packages).</p>
-<p>This is usually only useful if you have your own fork of Airflow and want to build the images locally from
-those sources - either locally or directly from GitHub sources. This way you do not need to release your
-Airflow and Providers via PyPI - they can be installed directly from sources or from GitHub repository.
-Another option of installation is to build Airflow from previously prepared binary Python packages which might
-be useful if you need to build Airflow in environments that require high levels of security.</p>
-<dl class="simple">
-<dt>You can see some examples of those in:</dt><dd><ul class="simple">
-<li><p><a class="reference internal" href="build.html#image-build-github"><span class="std std-ref">Building from GitHub</span></a>,</p></li>
-<li><p><a class="reference internal" href="build.html#image-build-custom"><span class="std std-ref">Using custom installation sources</span></a>,</p></li>
-<li><p><a class="reference internal" href="build.html#image-build-secure-environments"><span class="std std-ref">Build images in security restricted environments</span></a></p></li>
+<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>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_INSTALLATION_METHOD</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache-airflow</span></code></p></td>
-<td><p>Installation method of Apache Airflow.
-<code class="docutils literal notranslate"><span class="pre">apache-airflow</span></code> for installation from
-PyPI. It can be GitHub repository URL
-including branch or tag to install from
-that repository or “.” to install from
-local sources. Installing from sources
-requires appropriate values of the
-<code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_FROM</span></code> and
-<code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_TO</span></code> variables (see
-below)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_FROM</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>Sources of Airflow. Set it to “.” when
-you install Airflow from local sources</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_TO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/Dockerfile</span></code></p></td>
-<td><p>Target for Airflow sources. Set to
-“/opt/airflow” when you install Airflow
-from local sources.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION_SPECIFICATION</span></code></p></td>
-<td></td>
-<td><p>Optional - might be used for using limit
-for Airflow version installation - for
-example <code class="docutils literal notranslate"><span class="pre">&lt;2.0.2</span></code> for automated builds.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_LOCATION</span></code></p></td>
-<td></td>
-<td><p>If not empty, it will override the
-source of the constraints with the
-specified URL or file. Note that the
-file has to be in Docker context so
-it’s best to place such file in
-one of the folders included in
-<code class="docutils literal notranslate"><span class="pre">.dockerignore</span></code> file.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DOCKER_CONTEXT_FILES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>If set to a folder (for example to
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> folder), then
-this folder will be copied to the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> inside the
-context of docker and you will be able
-to install from binary files present
-there. By default we set it to
-Dockerfile as we know the file is there,
-otherwise the COPY instruction fails.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to true, Airflow, providers and
-all dependencies are installed from
-from locally built/downloaded
-.whl and .tar.gz files placed in the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code>.</p></td>
-</tr>
-</tbody>
-</table>
+</dd></dl>
+
 </div>
-<div class="section" id="pre-caching-pip-dependencies">
-<h2>Pre-caching PIP dependencies<a class="headerlink" href="#pre-caching-pip-dependencies" title="Permalink to this heading">¶</a></h2>
-<p>When image is build from PIP, by default pre-caching of PIP dependencies is used. This is in order to speed-up incremental
-builds during development. When pre-cached PIP dependencies are used and <code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code> changes, the
-PIP dependencies are already pre-installed, thus resulting in much faster image rebuild. This is purely an optimization
-of time needed to build the images and should be disabled if you want to install Airflow from
-Docker context files.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 33%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_BRANCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">main</span></code></p></td>
-<td><p>the branch from which PIP dependencies
-are pre-installed initially.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_REPO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code></p></td>
-<td><p>the repository from which PIP
-dependencies are pre-installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PRE_CACHED_PIP_PACKAGES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Allows to pre-cache airflow PIP packages
-from the GitHub of Apache Airflow
-This allows to optimize iterations for
-Image builds and speeds up CI builds.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_CACHE_EPOCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&quot;0&quot;</span></code></p></td>
-<td><p>Allow to invalidate cache by passing a
-new argument.</p></td>
-</tr>
-</tbody>
-</table>
 </div>
 </div>
 
 
     <div class="pager" role="navigation" aria-label="related navigation">
-            <a rel="prev" title="Recipes" href="recipes.html" >
+            <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><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Next</button>
+            </a>
+            <a rel="next" title="airflow.decorators.condition" href="../condition/index.html" >
+                <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+            </a>
     </div>
                                     </div>
 
@@ -1028,11 +860,14 @@ new argument.</p></td>
     <nav class="wy-nav-side-toc">
         <div class="wy-menu-vertical">
             <ul>
-<li><a class="reference internal" href="#">Image build arguments reference</a><ul>
-<li><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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>
@@ -1057,7 +892,7 @@ new argument.</p></td>
             
         
         <div class="base-layout--button">
-            <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/build-arg-ref.rst" rel="nofollow">
+            <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">
@@ -1191,20 +1026,21 @@ new argument.</p></td>
         </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 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="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/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 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-archive/docker-stack/build-arg-ref.html b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/condition/index.html
similarity index 72%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/condition/index.html
index 6ffac8e3cf..0b1857e319 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/condition/index.html
@@ -9,20 +9,22 @@
 <head>
         <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1">
-        <title>Image build arguments reference &mdash; docker-stack 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/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="prev" title="Recipes" href="recipes.html" />
-
-    <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/build-arg-ref.html" />
+        <title>airflow.decorators.condition &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_virtualenv" href="../branch_virtualenv/index.html" />
+
+    <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/condition/index.html" />
 
     <!-- Matomo -->
     <script>
@@ -284,8 +286,21 @@
             <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.10.1</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">
+    <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" />
@@ -315,23 +330,101 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
 <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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.condition</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.condition.run_if"><code class="docutils literal notranslate"><span class="pre">run_if()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.condition.skip_if"><code class="docutils literal notranslate"><span class="pre">skip_if()</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="../../../../troubleshooting.html">Troubleshooting</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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
+</ul>
 
 </div>
 
@@ -411,8 +504,21 @@
             
     <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.10.1</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">
+    <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" />
@@ -442,22 +548,100 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
 <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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.condition</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.condition.run_if"><code class="docutils literal notranslate"><span class="pre">run_if()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.condition.skip_if"><code class="docutils literal notranslate"><span class="pre">skip_if()</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="../../../../troubleshooting.html">Troubleshooting</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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -546,9 +730,13 @@
 
     <ul class="breadcrumb">
         
-            <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+            <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="build-arg-ref.html"> Image build arguments reference</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.condition</span></code></a></li>
         
     </ul>
 </div>
@@ -559,408 +747,68 @@
                                 <div class="bodywrapper">
                                     <div class="body" role="main">
                                         
-  <blockquote>
-<div></div></blockquote>
-<div class="section" id="image-build-arguments-reference">
-<h1>Image build arguments reference<a class="headerlink" href="#image-build-arguments-reference" title="Permalink to this heading">¶</a></h1>
-<p>The following build arguments (<code class="docutils literal notranslate"><span class="pre">--build-arg</span></code> in docker build command) can be used for production images.
-Those arguments are used when you want to customize the image. You can see some examples of it in
-<a class="reference internal" href="build.html#image-build-pypi"><span class="std std-ref">Building from PyPI packages</span></a>.</p>
-<div class="section" id="basic-arguments">
-<h2>Basic arguments<a class="headerlink" href="#basic-arguments" title="Permalink to this heading">¶</a></h2>
-<p>Those are the most common arguments that you use when you want to build a custom image.</p>
-<table class="docutils align-default">
+  <div class="section" id="module-airflow.decorators.condition">
+<span id="airflow-decorators-condition"></span><h1><a class="reference internal" href="#module-airflow.decorators.condition" title="airflow.decorators.condition"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a><a class="headerlink" href="#module-airflow.decorators.condition" 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: 33%" />
-<col style="width: 33%" />
-<col style="width: 35%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
 </colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
 <tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PYTHON_BASE_IMAGE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">python:3.8-slim-bookworm</span></code></p></td>
-<td><p>Base python image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION</span></code></p></td>
-<td><p><code class="code docutils literal notranslate"><span class="pre">2.10.0</span></code></p></td>
-<td><p>version of Airflow.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_EXTRAS</span></code></p></td>
-<td><p>(see below the table)</p></td>
-<td><p>Default extras with which airflow is
-installed.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_AIRFLOW_EXTRAS</span></code></p></td>
-<td></td>
-<td><p>Optional additional extras with which
-airflow is installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_HOME</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/opt/airflow</span></code></p></td>
-<td><p>Airflow’s HOME (that’s where logs and
-SQLite databases are stored).</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USER_HOME_DIR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/home/airflow</span></code></p></td>
-<td><p>Home directory of the Airflow user.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PIP_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&lt;LATEST_AVAILABLE_IN_PYPI&gt;</span></code></p></td>
-<td><p>PIP version used.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UV_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&lt;LATEST_AVAILABLE_IN_PYPI&gt;</span></code></p></td>
-<td><p>UV version used.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USE_UV</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Whether to use UV to build the image.
-This is an experimental feature.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">UV_HTTP_TIMEOUT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">300</span></code></p></td>
-<td><p>Timeout in seconds for UV pull requests.</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.condition.run_if" title="airflow.decorators.condition.run_if"><code class="xref py py-obj docutils literal notranslate"><span class="pre">run_if</span></code></a>(condition[, skip_message])</p></td>
+<td><p>Decorate a task to run only if a condition is met.</p></td>
 </tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code></p></td>
-<td></td>
-<td><p>additional <code class="docutils literal notranslate"><span class="pre">pip</span></code> flags passed to the
-installation commands (except when
-reinstalling <code class="docutils literal notranslate"><span class="pre">pip</span></code> itself)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_PROGRESS_BAR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">on</span></code></p></td>
-<td><p>Progress bar for PIP installation</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UID</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">50000</span></code></p></td>
-<td><p>Airflow user UID.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">constraints</span></code></p></td>
-<td><p>Type of constraints to build the image.
-This can be <code class="docutils literal notranslate"><span class="pre">constraints</span></code> for regular
-images or <code class="docutils literal notranslate"><span class="pre">constraints-no-providers</span></code> for
-slim images.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_REFERENCE</span></code></p></td>
-<td></td>
-<td><p>Reference (branch or tag) from GitHub
-where constraints file is taken from
-It can be <code class="docutils literal notranslate"><span class="pre">constraints-main</span></code> or
-<code class="docutils literal notranslate"><span class="pre">constraints-2-0</span></code> for
-2.0.* installation. In case of building
-specific version you want to point it
-to specific tag, for example
-<code class="code docutils literal notranslate"><span class="pre">constraints-2.10.0</span></code>.
-Auto-detected if empty.</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#airflow.decorators.condition.skip_if" title="airflow.decorators.condition.skip_if"><code class="xref py py-obj docutils literal notranslate"><span class="pre">skip_if</span></code></a>(condition[, skip_message])</p></td>
+<td><p>Decorate a task to skip if a condition is met.</p></td>
 </tr>
 </tbody>
 </table>
-<div class="admonition note">
-<p class="admonition-title">Note</p>
-<p>Before Airflow 2.2, the image also had <code class="docutils literal notranslate"><span class="pre">AIRFLOW_GID</span></code> parameter, but it did not provide any additional
-functionality - only added confusion - so it has been removed.</p>
-</div>
-<p>List of default extras in the production Dockerfile:</p>
-<ul class="simple">
-<li><p>aiobotocore</p></li>
-<li><p>amazon</p></li>
-<li><p>async</p></li>
-<li><p>celery</p></li>
-<li><p>cncf-kubernetes</p></li>
-<li><p>common-io</p></li>
-<li><p>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>fab</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google-auth</p></li>
-<li><p>graphviz</p></li>
-<li><p>grpc</p></li>
-<li><p>hashicorp</p></li>
-<li><p>http</p></li>
-<li><p>ldap</p></li>
-<li><p>microsoft-azure</p></li>
-<li><p>mysql</p></li>
-<li><p>odbc</p></li>
-<li><p>openlineage</p></li>
-<li><p>pandas</p></li>
-<li><p>postgres</p></li>
-<li><p>redis</p></li>
-<li><p>sendgrid</p></li>
-<li><p>sftp</p></li>
-<li><p>slack</p></li>
-<li><p>snowflake</p></li>
-<li><p>ssh</p></li>
-<li><p>statsd</p></li>
-<li><p>uv</p></li>
-<li><p>virtualenv</p></li>
+<dl class="py function">
+<dt class="sig sig-object py" id="airflow.decorators.condition.run_if">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.condition.</span></span><span class="sig-name descname"><span class="pre">run_if</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">condition</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">skip_message</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><sp [...]
+<dd><p>Decorate a task to run only if a condition is met.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>condition</strong> (<em>AnyConditionFunc</em>) – A function that takes a context and returns a boolean.</p></li>
+<li><p><strong>skip_message</strong> (<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>None</em>) – The message to log if the task is skipped.
+If None, a default message is used.</p></li>
 </ul>
-</div>
-<div class="section" id="image-optimization-options">
-<h2>Image optimization options<a class="headerlink" href="#image-optimization-options" title="Permalink to this heading">¶</a></h2>
-<p>The main advantage of Customization method of building Airflow image, is that it allows to build highly optimized image because
-the final image (RUNTIME) might not contain all the dependencies that are needed to build and install all other dependencies
-(DEV). Those arguments allow to control what is installed in the DEV image and what is installed in RUNTIME one, thus
-allowing to produce much more optimized images. See <a class="reference internal" href="build.html#image-build-optimized"><span class="std std-ref">Building optimized images</span></a>.
-for examples of using those arguments.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">UPGRADE_INVALIDATION_STRING</span></code></p></td>
-<td></td>
-<td><p>If set to a random, non-empty value
-the dependencies are upgraded to newer
-versions. In CI it is set to build id
-to make sure subsequent builds are not
-reusing cached images with same value.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PYTHON_DEPS</span></code></p></td>
-<td></td>
-<td><p>Optional python packages to extend
-the image with some extra dependencies.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Dev apt command executed before dev deps
-are installed in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Dev apt command executed
-before dev dep are installed
-in the Build image. Should start with
-<code class="docutils literal notranslate"><span class="pre">&amp;&amp;</span></code>.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_DEPS</span></code></p></td>
-<td><p>Empty - install default dependencies
-(see <code class="docutils literal notranslate"><span class="pre">install_os_dependencies.sh</span></code>)</p></td>
-<td><p>Dev APT dependencies installed
-in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_DEPS</span></code></p></td>
-<td></td>
-<td><p>Additional apt dev dependencies
-installed in the Build image.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_ENV</span></code></p></td>
-<td></td>
-<td><p>Additional env variables defined
-when installing dev deps.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">RUNTIME_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Runtime apt command executed before deps
-are installed in the <code class="docutils literal notranslate"><span class="pre">main</span></code> stage.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Runtime apt command executed
-before runtime dep are installed
-in the <code class="docutils literal notranslate"><span class="pre">main</span></code> stage. Should start with
-<code class="docutils literal notranslate"><span class="pre">&amp;&amp;</span></code>.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">RUNTIME_APT_DEPS</span></code></p></td>
-<td><p>Empty - install default dependencies
-(see <code class="docutils literal notranslate"><span class="pre">install_os_dependencies.sh</span></code>)</p></td>
-<td><p>Runtime APT dependencies installed
-in the Main image.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_DEPS</span></code></p></td>
-<td></td>
-<td><p>Additional apt runtime dependencies
-installed in the Main image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_ENV</span></code></p></td>
-<td></td>
-<td><p>Additional env variables defined
-when installing runtime deps.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether MySQL client should be installed
-The mysql extra is removed from extras
-if the client is not installed.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">mariadb</span></code></p></td>
-<td><p>Type of MySQL client library. This
-can be <code class="docutils literal notranslate"><span class="pre">mariadb</span></code> or <code class="docutils literal notranslate"><span class="pre">mysql</span></code>
-Regardless of the parameter, <code class="docutils literal notranslate"><span class="pre">mariadb</span></code>
-will always be used on ARM.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MSSQL_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether MsSQL client should be installed</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_POSTGRES_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether Postgres client should be
-installed</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="section" id="installing-airflow-using-different-methods">
-<h2>Installing Airflow using different methods<a class="headerlink" href="#installing-airflow-using-different-methods" title="Permalink to this heading">¶</a></h2>
-<p>Those parameters are useful only if you want to install Airflow using different installation methods than the default
-(installing from PyPI packages).</p>
-<p>This is usually only useful if you have your own fork of Airflow and want to build the images locally from
-those sources - either locally or directly from GitHub sources. This way you do not need to release your
-Airflow and Providers via PyPI - they can be installed directly from sources or from GitHub repository.
-Another option of installation is to build Airflow from previously prepared binary Python packages which might
-be useful if you need to build Airflow in environments that require high levels of security.</p>
-<dl class="simple">
-<dt>You can see some examples of those in:</dt><dd><ul class="simple">
-<li><p><a class="reference internal" href="build.html#image-build-github"><span class="std std-ref">Building from GitHub</span></a>,</p></li>
-<li><p><a class="reference internal" href="build.html#image-build-custom"><span class="std std-ref">Using custom installation sources</span></a>,</p></li>
-<li><p><a class="reference internal" href="build.html#image-build-secure-environments"><span class="std std-ref">Build images in security restricted environments</span></a></p></li>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="airflow.decorators.condition.skip_if">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.condition.</span></span><span class="sig-name descname"><span class="pre">skip_if</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">condition</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">skip_message</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><s [...]
+<dd><p>Decorate a task to skip if a condition is met.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>condition</strong> (<em>AnyConditionFunc</em>) – A function that takes a context and returns a boolean.</p></li>
+<li><p><strong>skip_message</strong> (<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>None</em>) – The message to log if the task is skipped.
+If None, a default message is used.</p></li>
 </ul>
 </dd>
 </dl>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_INSTALLATION_METHOD</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache-airflow</span></code></p></td>
-<td><p>Installation method of Apache Airflow.
-<code class="docutils literal notranslate"><span class="pre">apache-airflow</span></code> for installation from
-PyPI. It can be GitHub repository URL
-including branch or tag to install from
-that repository or “.” to install from
-local sources. Installing from sources
-requires appropriate values of the
-<code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_FROM</span></code> and
-<code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_TO</span></code> variables (see
-below)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_FROM</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>Sources of Airflow. Set it to “.” when
-you install Airflow from local sources</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_TO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/Dockerfile</span></code></p></td>
-<td><p>Target for Airflow sources. Set to
-“/opt/airflow” when you install Airflow
-from local sources.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION_SPECIFICATION</span></code></p></td>
-<td></td>
-<td><p>Optional - might be used for using limit
-for Airflow version installation - for
-example <code class="docutils literal notranslate"><span class="pre">&lt;2.0.2</span></code> for automated builds.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_LOCATION</span></code></p></td>
-<td></td>
-<td><p>If not empty, it will override the
-source of the constraints with the
-specified URL or file. Note that the
-file has to be in Docker context so
-it’s best to place such file in
-one of the folders included in
-<code class="docutils literal notranslate"><span class="pre">.dockerignore</span></code> file.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DOCKER_CONTEXT_FILES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>If set to a folder (for example to
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> folder), then
-this folder will be copied to the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> inside the
-context of docker and you will be able
-to install from binary files present
-there. By default we set it to
-Dockerfile as we know the file is there,
-otherwise the COPY instruction fails.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to true, Airflow, providers and
-all dependencies are installed from
-from locally built/downloaded
-.whl and .tar.gz files placed in the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code>.</p></td>
-</tr>
-</tbody>
-</table>
+</dd></dl>
+
 </div>
-<div class="section" id="pre-caching-pip-dependencies">
-<h2>Pre-caching PIP dependencies<a class="headerlink" href="#pre-caching-pip-dependencies" title="Permalink to this heading">¶</a></h2>
-<p>When image is build from PIP, by default pre-caching of PIP dependencies is used. This is in order to speed-up incremental
-builds during development. When pre-cached PIP dependencies are used and <code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code> changes, the
-PIP dependencies are already pre-installed, thus resulting in much faster image rebuild. This is purely an optimization
-of time needed to build the images and should be disabled if you want to install Airflow from
-Docker context files.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 33%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_BRANCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">main</span></code></p></td>
-<td><p>the branch from which PIP dependencies
-are pre-installed initially.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_REPO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code></p></td>
-<td><p>the repository from which PIP
-dependencies are pre-installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PRE_CACHED_PIP_PACKAGES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Allows to pre-cache airflow PIP packages
-from the GitHub of Apache Airflow
-This allows to optimize iterations for
-Image builds and speeds up CI builds.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_CACHE_EPOCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&quot;0&quot;</span></code></p></td>
-<td><p>Allow to invalidate cache by passing a
-new argument.</p></td>
-</tr>
-</tbody>
-</table>
 </div>
 </div>
 
 
     <div class="pager" role="navigation" aria-label="related navigation">
-            <a rel="prev" title="Recipes" href="recipes.html" >
+            <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><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Next</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>
 
@@ -1028,11 +876,15 @@ new argument.</p></td>
     <nav class="wy-nav-side-toc">
         <div class="wy-menu-vertical">
             <ul>
-<li><a class="reference internal" href="#">Image build arguments reference</a><ul>
-<li><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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.condition.run_if"><code class="docutils literal notranslate"><span class="pre">run_if()</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.condition.skip_if"><code class="docutils literal notranslate"><span class="pre">skip_if()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
 </ul>
 </li>
 </ul>
@@ -1057,7 +909,7 @@ new argument.</p></td>
             
         
         <div class="base-layout--button">
-            <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/build-arg-ref.rst" rel="nofollow">
+            <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/condition/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">
@@ -1191,20 +1043,21 @@ new argument.</p></td>
         </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 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="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/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 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-archive/docker-stack/index.html b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/external_python/index.html
similarity index 76%
copy from docs-archive/docker-stack/index.html
copy to docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/external_python/index.html
index 3b875d85f0..2638c04120 100644
--- a/docs-archive/docker-stack/index.html
+++ b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/external_python/index.html
@@ -9,20 +9,22 @@
 <head>
         <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1">
-        <title>Docker Image for Apache Airflow &mdash; docker-stack 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/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="Building the image" href="build.html" />
-
-    <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/index.html" />
+        <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.condition" href="../condition/index.html" />
+
+    <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/external_python/index.html" />
 
     <!-- Matomo -->
     <script>
@@ -284,8 +286,21 @@
             <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.10.1</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">
+    <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" />
@@ -315,16 +330,90 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+    <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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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="build-arg-ref.html">Image build arguments reference</a></li>
+<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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -405,8 +494,21 @@
             
     <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.10.1</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">
+    <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" />
@@ -436,16 +538,90 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+    <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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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="build-arg-ref.html">Image build arguments reference</a></li>
+<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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -534,9 +710,13 @@
 
     <ul class="breadcrumb">
         
-            <li class="breadcrumb-item"><a href="#" class="icon icon-home"> Home</a></li>
+            <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"> Docker Image for Apache 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.external_python</span></code></a></li>
         
     </ul>
 </div>
@@ -547,195 +727,16 @@
                                 <div class="bodywrapper">
                                     <div class="body" role="main">
                                         
-  <blockquote>
-<div></div></blockquote>
-<a class="reference internal image-reference" href="_images/docker-logo.png"><img alt="_images/docker-logo.png" src="_images/docker-logo.png" style="width: 100px;" /></a>
-<div class="section" id="docker-image-for-apache-airflow">
-<h1>Docker Image for Apache Airflow<a class="headerlink" href="#docker-image-for-apache-airflow" title="Permalink to this heading">¶</a></h1>
-<div class="toctree-wrapper compound">
-</div>
-<div class="toctree-wrapper compound">
-</div>
-<p>For the ease of deployment in production, the community releases a production-ready reference container
-image.</p>
-<p>The Apache Airflow community, releases Docker Images which are <code class="docutils literal notranslate"><span class="pre">reference</span> <span class="pre">images</span></code> for Apache Airflow.
-Every time a new version of Airflow is released, the images are prepared in the
-<a class="reference external" href="https://hub.docker.com/r/apache/airflow">apache/airflow DockerHub</a>
-for all the supported Python versions.</p>
-<p>You can find the following images there (Assuming Airflow version <code class="code docutils literal notranslate"><span class="pre">2.10.0</span></code>):</p>
-<ul class="simple">
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:latest</span></code>              - the latest released Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:latest-pythonX.Y</span></code>    - the latest released Airflow image with specific Python version</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:2.10.0</span></code>           - the versioned Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:2.10.0-pythonX.Y</span></code> - the versioned Airflow image with specific Python version</p></li>
-</ul>
-<p>Those are “reference” regular images. They contain the most common set of extras, dependencies and providers that are
-often used by the users and they are good to “try-things-out” when you want to just take Airflow for a spin,</p>
-<p>You can also use “slim” images that contain only core airflow and are about half the size of the “regular” images
-but you need to add all the <a class="reference external" href="/docs/apache-airflow/stable/extra-packages-ref.html" title="(in apache-airflow v2.10.0.dev0)"><span>Reference for package extras</span></a> and providers that you need separately
-via <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a>.</p>
-<ul class="simple">
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-latest</span></code>              - the latest released Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-latest-pythonX.Y</span></code>    - the latest released Airflow image with specific Python version</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-2.10.0</span></code>           - the versioned Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-2.10.0-pythonX.Y</span></code> - the versioned Airflow image with specific Python version</p></li>
-</ul>
-<p>The Apache Airflow image provided as convenience package is optimized for size, and
-it provides just a bare minimal set of the extras and dependencies installed and in most cases
-you want to either extend or customize the image. You can see all possible extras in <a class="reference external" href="/docs/apache-airflow/stable/extra-packages-ref.html" title="(in apache-airflow v2.10.0.dev0)"><span>Reference for package extras</span></a>.
-The set of extras used in Airflow Production image are available in the
-<a class="reference external" href="https://github.com/apache/airflow/blob/2.10.0/Dockerfile">Dockerfile</a>.</p>
-<p>However, Airflow has more than 60 community-managed providers (installable via extras) and some of the
-default extras/providers installed are not used by everyone, sometimes others extras/providers
-are needed, sometimes (very often actually) you need to add your own custom dependencies,
-packages or even custom providers. You can learn how to do it in <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a>.</p>
-<p>The production images are build in DockerHub from released version and release candidates. There
-are also images published from branches but they are used mainly for development and testing purpose.
-See <a class="reference external" href="https://github.com/apache/airflow/blob/main/contributing-docs/working-with-git#airflow-git-branches">Airflow Git Branching</a>
-for details.</p>
-</div>
-<div class="section" id="fixing-images-at-release-time">
-<h1>Fixing images at release time<a class="headerlink" href="#fixing-images-at-release-time" title="Permalink to this heading">¶</a></h1>
-<p>The released “versioned” reference images are mostly <code class="docutils literal notranslate"><span class="pre">fixed</span></code> when we release Airflow version and we only
-update them in exceptional circumstances. For example when we find out that there are dependency errors
-that might prevent important Airflow or embedded provider’s functionalities working. In normal circumstances,
-the images are not going to change after release, even if new version of Airflow dependencies are released -
-not even when those versions contain critical security fixes. The process of Airflow releases is designed
-around upgrading dependencies automatically where applicable but only when we release a new version of Airflow,
-not for already released versions.</p>
-</div>
-<div class="section" id="what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image">
-<h1>What should I do if my security scan shows critical and high vulnerabilities in the image?<a class="headerlink" href="#what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image" title="Permalink to this heading">¶</a></h1>
-<p>We often hear questions that our users use various security scanners on the image and find out that
-there are some critical and high vulnerabilities in the image - not coming from Airflow but for some other
-components. In general, this is normal and expected that such vulnerabilities are found in the image after
-it’s been released and fixed - precisely because we are NOT updating the images after they are released as
-explained above. Also sometimes even the latest releases contain vulnerabilities that are not yet fixed
-in the base image we use or in the dependencies we use and cannot upgrade, because some of our providers
-have limits and did not manage to upgrade yet and we have no control over that. So it is possible
-that even the most recent release of our image there are some High and Critical vulnerabilities that
-are not yet fixed.</p>
-<p><strong>What can you do in such case?</strong></p>
-<p>First of all - you should know what you should NOT do.</p>
-<p>Do NOT send private email to the Airflow Security Team with scan results and asking what to do.
-The Security team at Airflow takes care exclusively about undisclosed vulnerabilities in Airflow itself, not
-in the dependencies or in the base image. The security email should only be used to report privately any
-security issues that can be exploited via Airflow. This is nicely explained in our
-<a class="reference external" href="https://github.com/apache/airflow/security/policy">Security Policy</a> where you can find more details
-including the need to provide reproducible scenarios and submitting ONE issue per email. NEVER submit multiple
-vulnerabilities in one email - those are rejected immediately, as they make the process of handling the issue
-way harder for everyone, including the reporters.</p>
-<p>Also DO NOT open a GitHub Issue with the scan results and asking what to do. The GitHub Issues are for
-reporting bugs and feature requests to Airflow itself, not for asking for help with the security scans on
-3rd party components.</p>
-<p>So what are your options?</p>
-<p>You have four options:</p>
-<ol class="arabic simple">
-<li><p>Build your own custom image following the examples we share there - using the latest base image and
-possibly manually bumping dependencies you want to bump. There are quite a few examples
-in <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a> which you can follow. You can use “slim” image as a base
-for your images and rather than basing your image on the “reference” image that has a number of extras
-and providers installed, you can only install what you actually need and upgrade some dependencies that
-otherwise would not be possible to upgrade - because some of the provider libraries have limits and
-did not manage to upgrade yet and we have no control over that. This is the most flexible way to
-build your image and you can build your process to combine it with quickly upgrading to latest Airflow
-versions (see point 2. below).</p></li>
-<li><p>Wait for a new version of Airflow and upgrade to it. Airflow images are updated to latest “non-conflicting”
-dependencies and use latest “base” image at release time, so what you have in the reference images
-at the moment we publish the image / release the version is what is “latest and greatest”
-available at the moment with the base platform we use (Debian Bookworm is the reference image we use).
-This is one of good strategies you can take - build a process to upgrade your Airflow version regularly
-- quickly after it has been released by the community, this will help you to keep up with the latest
-security fixes in the dependencies.</p></li>
-<li><p>If the base platform we use (currently Debian Bookworm) does not contain the latest versions you want
-and you want to use other base images, you can take a look at what system dependencies are installed
-and scripts in the latest <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> of airflow and take inspiration from it and build your own image
-or copy it and modify it to your needs. See the
-<a class="reference external" href="https://github.com/apache/airflow/blob/2.10.0/Dockerfile">Dockerfile</a> for the latest version.</p></li>
-<li><p>Research if the vulnerability affects you or not. Even if there is a dependency with high or critical
-vulnerability, it does not mean that it can be exploited in Airflow (or specifically in the way you are
-using Airflow). If you do have a reproducible scenario how a vulnerability can be exploited in Airflow, you should -
-of course - privately report it to the security team. But if you do not have reproducible
-scenario, please do some research and try to understand the impact of the vulnerability on Airflow. That
-research might result in a  public GitHub Discussion where you can discuss the impact of the
-vulnerability if you research will indicate Airflow might not be impacted or private security email if
-you find a reproducible scenario on how to exploit it.</p></li>
-</ol>
-<p><strong>How do I discuss publicly about public CVEs in the image?</strong></p>
-<p>The security scans report public vulnerabilities in 3rd-party components of Airflow. Since those are
-already public vulnerabilities, this is something you can talk about but others also are talking about.
-So you can do research on your own first. Try to find discussions about the issues, how others were handling
-it and possibly even try to explore, whether the vulnerability can be exploited in Airflow or not.
-This is a very valuable contribution to the community you can do in order to help others to
-understand the impact of the vulnerability on Airflow. We highly appreciate our commercial users do it,
-because Airflow is maintained by volunteers, so if you or your company can spend some time and skills of
-security researchers to help the community to understand the impact of the vulnerability on Airflow, it
-could be a fantastic contribution to the community and way to give back to the project that your company uses
-for free.</p>
-<p>You are free to discuss it publicly, open a <a class="reference external" href="https://github.com/apache/airflow/discussions">GitHub Discussion</a>
-mentioning your findings and research you’ve done so far. Ideally (as a way to contribute to Airflow) you
-should explain the findings of your own security team in your company to help to research and understand
-the impact of the vulnerability on Airflow (and your way of using it).
-Again - strong suggestion is to open ONE discussion per vulnerability. You should NOT post scan results in
-bulk - this is not helpful for a discussion, and you will not get meaningful answers if you will attempt to
-discuss all the issues in one discussion thread.</p>
-<p>Yes - we know it’s the easy way to copy &amp; paste your result and ask others what to do, but doing it is
-going to likely result in silence because such actions in the community as seen as pretty selfish way of
-getting your problems solved by tapping into time of other volunteers, without spending your time on making it
-easier for them to help. If you really want to get help from the community, focus your discussion on
-particular CVE, provide your findings - including analyzing your report in detail and finding which
-binaries and base images exactly are causing the scanner to report the vulnerability. Remember that only
-you have access to your scanner and you should bring as much helpful information so that others can
-comment on it. Show that you have done your homework and that you bring valuable information to the community.</p>
-<p>Opening a GitHub Discussion for this kind of issues is also a great way to communicate with the
-maintainers and security team in an open and transparent way - without reverting to the private security
-mailing list (which serves different purpose as explained above). If after such a discussion there will be
-a way to remove such a vulnerability from the scanned image - great, you can even contribute a PR to the
-Dockerfile to remove the vulnerability from the image. Maybe such a discussion will lead to a PR to allow
-Airflow to upgrade to newer dependency that fixes the vulnerability or remove it altogether, or maybe
-there is already a way to mitigate it or maybe there is already a PR that someone works on to fix it.
-All this can (and should) be discussed publicly and transparently in a GitHub Discussion, not via private
-security email, nor GitHub Issues which are exclusively about Airflow Issues not 3rd-party components
-public security issues.</p>
-</div>
-<div class="section" id="support">
-<h1>Support<a class="headerlink" href="#support" title="Permalink to this heading">¶</a></h1>
-<p>The reference Docker Image supports the following platforms and database:</p>
-<div class="section" id="intel-platform-x86-64">
-<h2>Intel platform (x86_64)<a class="headerlink" href="#intel-platform-x86-64" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>Postgres Client</p></li>
-<li><p>MySQL Client</p></li>
-<li><p>MSSQL Client</p></li>
-</ul>
-</div>
-<div class="section" id="arm-platform-aarch64">
-<h2>ARM platform (aarch64)<a class="headerlink" href="#arm-platform-aarch64" title="Permalink to this heading">¶</a></h2>
-<p>ARM support is experimental, might change any time.</p>
-<ul class="simple">
-<li><p>Postgres Client</p></li>
-<li><p>MySQL Client (MySQL 8)</p></li>
-<li><p>MSSQL Client</p></li>
-</ul>
-<p>Note that MySQL on arm has experimental support through MariaDB client library.</p>
-</div>
-</div>
-<div class="section" id="usage">
-<h1>Usage<a class="headerlink" href="#usage" title="Permalink to this heading">¶</a></h1>
-<p>The <span class="target" id="index-0"></span><a class="reference external" href="/docs/apache-airflow/stable/cli-and-env-variables-ref.html#envvar-AIRFLOW_HOME" title="(in apache-airflow v2.10.0.dev0)"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">AIRFLOW_HOME</span></code></a> is set by default to <code class="docutils literal notranslate"><span class="pre">/opt/airflow/</span></code> - this means that DAGs
-are by default in the <code class="docutils literal notranslate"><span class="pre">/opt/airflow/dags</span></code> folder and logs are in the <code class="docutils literal notranslate"><span class="pre">/opt/airflow/logs</span></code></p>
-<p>The working directory is <code class="docutils literal notranslate"><span class="pre">/opt/airflow</span></code> by default.</p>
-<p>If no <span class="target" id="index-1"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">AIRFLOW__DATABASE__SQL_ALCHEMY_CONN</span></code> variable is set then SQLite database is created in
-<code class="docutils literal notranslate"><span class="pre">${AIRFLOW_HOME}/airflow.db</span></code>.</p>
-<p>For example commands that start Airflow see: <a class="reference internal" href="entrypoint.html#entrypoint-commands"><span class="std std-ref">Executing commands</span></a>.</p>
-<p>Airflow requires many components to function as it is a distributed application. You may therefore also be interested
-in launching Airflow in the Docker Compose environment, see: <a class="reference external" href="/docs/apache-airflow/stable/howto/docker-compose/index.html" title="(in apache-airflow v2.10.0.dev0)"><span>Running Airflow in Docker</span></a>.</p>
-<p>You can use this image in <a class="reference external" href="/docs/helm-chart/stable/index.html" title="(in helm-chart v1.16.0-dev)"><span class="xref std std-doc">Helm Chart</span></a> as well.</p>
+  <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"><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Previous</button>
-            <a rel="next" title="Building the image" href="build.html" >
+    <div class="pager" role="navigation" aria-label="related navigation">
+            <a rel="prev" title="airflow.decorators.condition" href="../condition/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>
@@ -805,17 +806,7 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
     <nav class="wy-nav-side-toc">
         <div class="wy-menu-vertical">
             <ul>
-<li><a class="reference internal" href="#">Docker Image for Apache Airflow</a><ul>
-</ul>
-</li>
-<li><a class="reference internal" href="#fixing-images-at-release-time">Fixing images at release time</a></li>
-<li><a class="reference internal" href="#what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image">What should I do if my security scan shows critical and high vulnerabilities in the image?</a></li>
-<li><a class="reference internal" href="#support">Support</a><ul>
-<li><a class="reference internal" href="#intel-platform-x86-64">Intel platform (x86_64)</a></li>
-<li><a class="reference internal" href="#arm-platform-aarch64">ARM platform (aarch64)</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#usage">Usage</a></li>
+<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>
@@ -838,7 +829,7 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
             
         
         <div class="base-layout--button">
-            <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/index.rst" rel="nofollow">
+            <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">
@@ -972,20 +963,21 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
         </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 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="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/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 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-archive/docker-stack/changelog.html b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/index.html
similarity index 59%
copy from docs-archive/docker-stack/changelog.html
copy to docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/index.html
index 93278865bf..b7dc188bea 100644
--- a/docs-archive/docker-stack/changelog.html
+++ b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/index.html
@@ -9,21 +9,22 @@
 <head>
         <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1">
-        <title>Dockerfile Changelog &mdash; docker-stack 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/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="Recipes" href="recipes.html" />
-            <link rel="prev" title="Entrypoint" href="entrypoint.html" />
-
-    <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/changelog.html" />
+        <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>
@@ -285,8 +286,21 @@
             <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.10.1</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">
+    <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" />
@@ -316,29 +330,116 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Dockerfile Changelog</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-9">Airflow 2.9</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-8">Airflow 2.8</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-7">Airflow 2.7</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-6">Airflow 2.6</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-5">Airflow 2.5</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-4">Airflow 2.4</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-3">Airflow 2.3</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-2">Airflow 2.2</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-1">Airflow 2.1</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-0">Airflow 2.0</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#changes-after-publishing-the-images">Changes after publishing the images</a></li>
+    <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 Airflow®</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#auth-managers">Auth managers</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="bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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.bash"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.bash</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.run_if"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.run_if</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.skip_if"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.skip_if</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>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</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="../../../troubleshooting.html">Troubleshooting</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="build-arg-ref.html">Image build arguments reference</a></li>
+<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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -419,8 +520,21 @@
             
     <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.10.1</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">
+    <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" />
@@ -450,29 +564,116 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Dockerfile Changelog</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-9">Airflow 2.9</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-8">Airflow 2.8</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-7">Airflow 2.7</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-6">Airflow 2.6</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-5">Airflow 2.5</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-4">Airflow 2.4</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-3">Airflow 2.3</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-2">Airflow 2.2</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-1">Airflow 2.1</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-0">Airflow 2.0</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#changes-after-publishing-the-images">Changes after publishing the images</a></li>
+    <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 Airflow®</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#auth-managers">Auth managers</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="bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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-l1"><a class="reference internal" href="recipes.html">Recipes</a></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.bash"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.bash</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.run_if"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.run_if</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.skip_if"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.skip_if</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="../../../troubleshooting.html">Troubleshooting</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="build-arg-ref.html">Image build arguments reference</a></li>
+<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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -561,9 +762,11 @@
 
     <ul class="breadcrumb">
         
-            <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+            <li class="breadcrumb-item"><a href="../../../index.html" class="icon icon-home"> Home</a></li>
             
-            <li class="breadcrumb-item"><a href="changelog.html"> Dockerfile Changelog</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>
@@ -574,432 +777,209 @@
                                 <div class="bodywrapper">
                                     <div class="body" role="main">
                                         
-  <blockquote>
-<div></div></blockquote>
-<div class="section" id="dockerfile-changelog">
-<h1>Dockerfile Changelog<a class="headerlink" href="#dockerfile-changelog" title="Permalink to this heading">¶</a></h1>
-<p>The <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> does not strictly follow the <a class="reference external" href="https://semver.org/">SemVer</a> approach of
-Apache Airflow when it comes to features and backwards compatibility. While Airflow code strictly
-follows it, the <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> is really a way to give users a conveniently packaged Airflow
-using standard container approach, so occasionally there are some changes in the building process
-or in the entrypoint of the image that require slight adaptation of how it is used or built.</p>
-<p>The Changelog below describes the changes introduced in each version of the docker images released by
-the Airflow team.</p>
-<dl class="field-list simple">
-<dt class="field-odd">note</dt>
-<dd class="field-odd"><p>The Changelog below concerns only the convenience production images released at
-<a class="reference external" href="https://hub.docker.com/r/apache/airflow">Airflow DockerHub</a> . The images that are released
-there are usually built using the <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> released together with Airflow. However, you are
-free to take latest released <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> from Airflow and use it to build an image for
-any Airflow version from the <code class="docutils literal notranslate"><span class="pre">Airflow</span> <span class="pre">2</span></code> line. There is no guarantee that it will work, but if it does,
-then you can use latest features from that image to build images for previous Airflow versions.</p>
-</dd>
-</dl>
-<div class="section" id="airflow-2-9">
-<h2>Airflow 2.9<a class="headerlink" href="#airflow-2-9" title="Permalink to this heading">¶</a></h2>
-<blockquote>
-<div><ul class="simple">
-<li><p>The “latest” image (i.e. default Airflow image when <code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code> is used or
-<code class="docutils literal notranslate"><span class="pre">apache/airflow:slim-latest</span></code>) uses now the newest supported Python version. Previously it was using
-the “default” Python version which was Python 3.8 as of Airflow 2.8. With Airflow reference images
-released for Airflow 2.9.0, the images are going to use Python 3.12 as this is the latest supported
-version for Airflow 2.9 line. Users can use Python 3.8 by using <code class="docutils literal notranslate"><span class="pre">apache/airflow:2.9.0-python3.8</span></code> and
-<code class="docutils literal notranslate"><span class="pre">apache/airflow:slim-2.9.0-python-3.8</span></code> images respectively so while the change is potentially
-breaking, it is very easy to switch to the previous behaviour.</p></li>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">PIP_USER</span></code> flag is removed and replaced by <code class="docutils literal notranslate"><span class="pre">VIRTUAL_ENV</span></code> pointing to <code class="docutils literal notranslate"><span class="pre">~/.local</span></code> where Airflow
-is installed. This has the effect that the Airflow installation is treated as a regular virtual environment,
-but unlike a regular virtualenv, the <code class="docutils literal notranslate"><span class="pre">~/.local</span></code> directory is seen as <code class="docutils literal notranslate"><span class="pre">system</span> <span class="pre">level</span></code> and when the
-worker creates dynamically the virtualenv with <code class="docutils literal notranslate"><span class="pre">--system-site-packages</span></code> flag, the Airflow installation and all
-packages there are also present in the new virtualenv. When you do not use the flag, they are not
-copied there which is a backwards-compatible behaviour with having <code class="docutils literal notranslate"><span class="pre">PIP_USER</span></code> set.</p></li>
-<li><p>The image contains latest <code class="docutils literal notranslate"><span class="pre">uv</span></code> binary (latest at the moment of release) - which is a new faster
-replacement for <code class="docutils literal notranslate"><span class="pre">pip</span></code>. While the image is still using <code class="docutils literal notranslate"><span class="pre">pip</span></code> by default, you can use <code class="docutils literal notranslate"><span class="pre">uv</span></code>
-to install packages and - experimentally - you can also build custom images with
-<code class="docutils literal notranslate"><span class="pre">--arg</span> <span class="pre">AIRFLOW_USE_UV=true</span></code> which will us <code class="docutils literal notranslate"><span class="pre">uv</span></code> to perform the installation. This is an experimental
-support, as <code class="docutils literal notranslate"><span class="pre">uv</span></code> is very fast but also a very new feature in the Python ecosystem.</p></li>
-<li><p>Constraints used to install the image are available in “${HOME}/constraints.txt” now - you can use them
-to install additional packages in the image without having to find out which constraints you should use.</p></li>
-<li><p>The image adds <code class="docutils literal notranslate"><span class="pre">libev</span></code> library to the image as it is required by cassandra driver for Python 3.12, also
-<code class="docutils literal notranslate"><span class="pre">libev</span></code> will be used in other Python versions as a more robust and faster way for cassandra driver
-to handle events.</p></li>
-</ul>
-</div></blockquote>
-</div>
-<div class="section" id="airflow-2-8">
-<h2>Airflow 2.8<a class="headerlink" href="#airflow-2-8" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.8.3</p>
-<ul>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">gosu</span></code> binary was removed from the image. This is a potentially breaking change for users who relied on
-<code class="docutils literal notranslate"><span class="pre">gosu</span></code> to change the user in the container. The <code class="docutils literal notranslate"><span class="pre">gosu</span></code> binary was removed because it was a source of
-security vulnerabilities as it was linked against older Go standard libraries.</p></li>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">smtp</span></code> provider is now included in the list of providers installed by default in the image.</p></li>
-</ul>
-</li>
-<li><p>2.8.1</p>
+  <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><p>Fixed a discrepancy in MySQL client libraries. In 2.8.0 if not specify <code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE</span></code> build arg
-during build custom X86 image by default packages would be compiled by using <strong>MariaDB</strong> libraries,
-however <strong>MySQL</strong> libraries were installed in the final image.</p></li>
-</ul>
-</li>
-<li><p>2.8.0</p>
-<ul>
-<li><p>Add <code class="docutils literal notranslate"><span class="pre">libxmlsec1</span></code> and <code class="docutils literal notranslate"><span class="pre">libxmlsec1-dev</span></code> libraries to dev PROD image and <code class="docutils literal notranslate"><span class="pre">libxmlsec1</span></code> library to runtime PROD
-image as it is required by <code class="docutils literal notranslate"><span class="pre">python3-saml</span></code> library.</p></li>
-<li><p>The image is based on <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bookworm</span></code> in 2.8.0 rather than <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bullseye</span></code>. This might cause some
-problems when building custom images. You are advised to make sure your system level dependencies are
-working with <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bookworm</span></code>. While all reference images of Airflow 2.8.0 are built on <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bookworm</span></code>,
-it is still possible to build deprecated custom <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bullseye</span></code> based image in 2.8.0 following the</p></li>
-<li><p>By default the images now have “MariaDB” client installed. Previous images had “MySQL” client installed.
-The MariaDB client is a drop-in replacement for “MySQL” one and is compatible with MySQL. This might
-be a breaking change for users who used MySQL client in their images, however those should be very
-specific cases and vast majority of users should not see any difference. Users can still use
-MySQL client by setting <code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE=mysql</span></code> build arg and build the custom X86 image.
-The ARM image always uses MariaDB client, this argument is ignored. The “mysql” apt repository is
-removed from the /etc/apt/sources.list.d/ and if you want to install anything from this repository when
-extending the images, you need to manually add the right key and repository in your Dockerfile,
-following the instructions in <a class="reference external" href="https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/">A Quick Guide to Using the MySQL APT repository</a>.</p></li>
-</ul>
-</li>
+<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="bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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 class="section" id="airflow-2-7">
-<h2>Airflow 2.7<a class="headerlink" href="#airflow-2-7" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.7.3</p>
-<ul>
-<li><p>Add experimental feature for select type of MySQL Client libraries during the build custom image via <code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE</span></code>
-build arg. <code class="docutils literal notranslate"><span class="pre">mysql</span></code> for install MySQL client libraries from <a class="reference external" href="https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/">Oracle APT repository</a>,
-<code class="docutils literal notranslate"><span class="pre">mariadb</span></code> for install MariaDB client libraries from <a class="reference external" href="https://mariadb.com/kb/en/mariadb-package-repository-setup-and-usage/#mariadb-repository">MariaDB repository</a>.
-The selection of MySQL Client libraries only available on AMD64 (x86_64) for ARM docker image it will always install
-MariaDB client.</p></li>
-<li><p>Docker CLI version in the image is bumped to 24.0.6 version.</p></li>
-<li><p>PIP caching for local builds has been enabled to speed up local custom image building</p></li>
-</ul>
-</li>
-<li><p>2.7.0</p>
-<ul>
-<li><p>As of now, Python 3.7 is no longer supported by the Python community. Therefore, to use Airflow 2.7.0, you must ensure your Python version is
-either 3.8, 3.9, 3.10, or 3.11.</p></li>
-</ul>
-</li>
-</ul>
 </div>
-<div class="section" id="airflow-2-6">
-<h2>Airflow 2.6<a class="headerlink" href="#airflow-2-6" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.6.3</p>
-<ul>
-<li><p>Add <code class="docutils literal notranslate"><span class="pre">libgeos-dev</span></code> library to runtime PROD image as it is required by BigQuery library on ARM image</p></li>
-</ul>
-</li>
-<li><p>2.6.0</p>
-<ul>
-<li><p>Snowflake provider installed by default</p></li>
-<li><p>The ARM experimental image adds support for MySQL via MariaDB client libraries.</p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-5">
-<h2>Airflow 2.5<a class="headerlink" href="#airflow-2-5" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.5.1</p>
-<ul>
-<li><p>The ARM experimental image adds support for MSSQL</p></li>
-</ul>
-</li>
-<li><p>2.5.0</p>
-<ul>
-<li><p>The docker CLI binary is now added to the images by default (available on PATH). Version 20.10.9 is used.</p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-4">
-<h2>Airflow 2.4<a class="headerlink" href="#airflow-2-4" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.4.0</p>
-<ul>
-<li><p>You can specify additional <code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span></code> flags when you build the image via <code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code>
-build arg.</p></li>
-<li><p>Support for <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Buster</span></code> was dropped, including the possibility of building customized images as
-<code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Buster</span></code> reached end of life.</p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-3">
-<h2>Airflow 2.3<a class="headerlink" href="#airflow-2-3" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.3.0</p>
-<ul>
-<li><p>Airflow 2.3 <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> is now better optimized for caching and “standalone” which means that you
-can copy <strong>just</strong> the <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> to any folder and start building custom images. This,
-however, requires <a class="reference external" href="https://docs.docker.com/develop/develop-images/build_enhancements/">Buildkit</a>
-to build the image because we started using features that are only available in <code class="docutils literal notranslate"><span class="pre">Buildkit</span></code>.
-This can be done by setting <code class="docutils literal notranslate"><span class="pre">DOCKER_BUILDKIT=1</span></code> as an environment variable
-or by installing <a class="reference external" href="https://docs.docker.com/buildx/working-with-buildx/">the buildx plugin</a>
-and running <code class="docutils literal notranslate"><span class="pre">docker</span> <span class="pre">buildx</span> <span class="pre">build</span></code> command.</p></li>
-<li><p>MySQL is experimentally supported on ARM through MariaDB client library</p></li>
-<li><p>Add Python 3.10 support</p></li>
-<li><p>Switch to <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bullseye</span></code> based images. <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Buster</span></code> is deprecated and only available for
-customized image building.</p></li>
-<li><p>Add Multi-Platform support (AMD64/ARM64) in order to accommodate MacOS M1 users</p></li>
-<li><p>Build parameters which control if packages and Airflow should be installed from context file were
-unified</p></li>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">INSTALL_FROM_PYPI</span></code> arg was removed - it is automatically detected now.</p></li>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">INSTALL_FROM_DOCKER_CONTEXT_FILES</span></code> arg changed to <code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-2">
-<h2>Airflow 2.2<a class="headerlink" href="#airflow-2-2" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.2.4
-* Add support for both <code class="docutils literal notranslate"><span class="pre">.piprc</span></code> and <code class="docutils literal notranslate"><span class="pre">pip.conf</span></code> customizations
-* Add ArtifactHub labels for better discovery of the images
-* Update default Python image to be 3.7
-* Build images with <code class="docutils literal notranslate"><span class="pre">Buildkit</span></code> (optional)
-* Fix building the image on Azure with <code class="docutils literal notranslate"><span class="pre">text</span> <span class="pre">file</span> <span class="pre">busy</span></code> error</p></li>
-<li><p>2.2.3
-* No changes</p></li>
-<li><p>2.2.2
-* No changes</p></li>
-<li><p>2.2.1
-* Workaround the problem with <code class="docutils literal notranslate"><span class="pre">libstdcpp</span></code> TLS error</p></li>
-<li><p>2.2.0
-* Remove AIRFLOW_GID (5000) from Airflow images (potentially breaking change for users using it)
-* Added warnings for Quick-start docker compose
-* Fix warm shutdown for celery worker (signal propagation)
-* Add Oauth libraries to PROD images
-* Add Python 3.9 support</p></li>
-</ul>
-</div>
-<div class="section" id="airflow-2-1">
-<h2>Airflow 2.1<a class="headerlink" href="#airflow-2-1" title="Permalink to this heading">¶</a></h2>
-<ul>
-<li><p>MySQL changed the keys to sign their packages on 17 Feb 2022. This caused all released images
-to fail when being extended. As result, on 18 Feb 2021 we re-released all
-the <code class="docutils literal notranslate"><span class="pre">2.2</span></code> and <code class="docutils literal notranslate"><span class="pre">2.1</span></code> images with latest versions of <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code>
-containing the new signing key.</p>
-<p>There were subtle changes in the behaviour of some 2.1 images due to that (more details below)
-Detailed <a class="reference external" href="https://github.com/apache/airflow/issues/20911">issue here</a></p>
-</li>
-</ul>
-<dl class="field-list simple">
-<dt class="field-odd">note</dt>
-<dd class="field-odd"><p>that the changes below were valid before image refreshing on 18 Feb 2022.
-Since all the images were refreshed on 18 Feb with the same <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code>
-as 2.1.4, the changes 2.1.1 -&gt; 2.1.3 are
-effectively applied to all the images in 2.1.* line.
-The images refreshed have also those fixes added:</p>
-</dd>
-</dl>
-<ul class="simple">
-<li><p>All 2.1.* image versions refreshed on 18 Feb 2022 have those fixes applied:
-* Fix building the image on Azure with <code class="docutils literal notranslate"><span class="pre">text</span> <span class="pre">file</span> <span class="pre">busy</span></code> error
-* Workaround the problem with <code class="docutils literal notranslate"><span class="pre">libstdcpp</span></code> TLS error
-* Remove AIRFLOW_GID (5000) from Airflow images (potentially breaking change for users using it)
-* Added warnings for Quick-start docker compose
-* Add Oauth libraries to PROD images</p></li>
-</ul>
-<p>Original image Changelog (before the refresh on 18 Feb 2022):</p>
-<ul class="simple">
-<li><dl class="simple">
-<dt>2.1.4</dt><dd><ul>
-<li><p>Workaround the problem with <code class="docutils literal notranslate"><span class="pre">libstdcpp</span></code> TLS error</p></li>
-<li><p>fixed detection of port number in connection URL</p></li>
-<li><p>Improve warnings for quick-start-docker compose</p></li>
-<li><p>Fix warm shutdown for celery worker (signal propagation)</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-<li><dl class="simple">
-<dt>2.1.3</dt><dd><ul>
-<li><p>fixed auto-creation of user to use non-deprecated <code class="docutils literal notranslate"><span class="pre">create</span> <span class="pre">user</span></code> rather than <code class="docutils literal notranslate"><span class="pre">user_create</span></code></p></li>
-<li><p>remove waiting for celery backend for <code class="docutils literal notranslate"><span class="pre">worker</span></code> and <code class="docutils literal notranslate"><span class="pre">flower</span></code> commands rather than <code class="docutils literal notranslate"><span class="pre">scheduler</span></code> and <code class="docutils literal notranslate"><span class="pre">celery</span></code> only</p></li>
-<li><p>remove deprecated <code class="docutils literal notranslate"><span class="pre">airflow</span> <span class="pre">upgradedb</span></code> command from Airflow 1.10 in case upgrade is requested</p></li>
-<li><p>Add Python 3.9 support</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-<li><dl class="simple">
-<dt>2.1.2</dt><dd><ul>
-<li><p>No changes</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-<li><dl class="simple">
-<dt>2.1.1</dt><dd><ul>
-<li><p>Fix failure of lack of default commands (failed when no commands were passed)</p></li>
-<li><p>Added <code class="docutils literal notranslate"><span class="pre">_PIP_ADDITIONAL_REQUIREMENTS</span></code> development feature</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-<li><dl class="simple">
-<dt>2.1.0</dt><dd><ul>
-<li><p>Unset default <code class="docutils literal notranslate"><span class="pre">PIP_USER</span></code> variable - which caused PythonVirtualEnv to fail</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-0">
-<h2>Airflow 2.0<a class="headerlink" href="#airflow-2-0" title="Permalink to this heading">¶</a></h2>
-<ul>
-<li><p>MySQL changed the keys to sign their packages on 17 Feb 2022. This caused all released images
-to fail when being extended. As result, on 18 Feb 2021 we re-released all
-the <code class="docutils literal notranslate"><span class="pre">2.2</span></code> and <code class="docutils literal notranslate"><span class="pre">2.1</span></code> images with latest versions of <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code>
-containing the new signing key.</p>
-<p>There were no changes in the behaviour of 2.0.2 image due to that
-Detailed <a class="reference external" href="https://github.com/apache/airflow/issues/20911">issue here</a> .
-Only 2.0.2 image was regenerated, as 2.0.1 and 2.0.0 versions are hardly used and it is unlikely someone
-would like to extend those images. Extending 2.0.1 and 2.0.0 images will lead to failures of “missing key”.</p>
-</li>
-<li><dl class="simple">
-<dt>2.0.2</dt><dd><ul class="simple">
-<li><p>Set correct PYTHONPATH for <code class="docutils literal notranslate"><span class="pre">root</span></code> user. Allows to run the image as root</p></li>
-<li><p>Warn if the deprecated 5000 group ID was used for airflow user when running the image
-(should be 0 for the OpenShift compatibility). Fails if the group 5000 was used with any other user
-(it would not work anyway but with cryptic errors)</p></li>
-<li><p>Set umask as 002 by default, so that you can actually change the user id used to run the image
-(required for OpenShift compatibility)</p></li>
-<li><p>Skip checking the DB and celery backend if CONNECTION_CHECK_MAX_COUNT is equal to 0</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-<li><dl class="simple">
-<dt>2.0.1</dt><dd><ul class="simple">
-<li><p>Avoid reverse IP lookup when checking DB availability. This helped to solve long delays on misconfigured
-docker engines</p></li>
-<li><p>Add auto-detection of redis and amqp broker ports</p></li>
-<li><p>Fixed detection of all user/password combinations in URLs - helps in auto-detecting ports and testing
-connectivity</p></li>
-<li><p>Add possibility to create Admin user automatically when entering the image</p></li>
-<li><p>Automatically create system user when different user than <code class="docutils literal notranslate"><span class="pre">airflow</span></code> is used. Needed for OpenShift
-compatibility</p></li>
-<li><p>Allows to exec to <code class="docutils literal notranslate"><span class="pre">bash</span></code> or <code class="docutils literal notranslate"><span class="pre">python</span></code> if specified as parameters</p></li>
-<li><p>Remove <code class="docutils literal notranslate"><span class="pre">airflow</span></code> command if it is specified as first parameter of the <code class="docutils literal notranslate"><span class="pre">run</span></code> command</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-<li><dl class="simple">
-<dt>2.0.0</dt><dd><ul class="simple">
-<li><p>Initial release of the image based on Debian Buster</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-</ul>
-</div>
-<div class="section" id="changes-after-publishing-the-images">
-<h2>Changes after publishing the images<a class="headerlink" href="#changes-after-publishing-the-images" title="Permalink to this heading">¶</a></h2>
-<p>Occasionally our images need to be regenerated using newer <code class="docutils literal notranslate"><span class="pre">Dockerfiles</span></code> or constraints.
-This happens when an issue is found or a breaking change is released by our dependencies
-that invalidates the already released image, and regenerating the image makes it usable again.
-While we cannot assure 100% backwards compatibility when it happens, we at least document it
-here so that users affected can find the reason for the changes.</p>
-<table class="docutils align-default">
+<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: 9%" />
-<col style="width: 14%" />
-<col style="width: 28%" />
-<col style="width: 16%" />
-<col style="width: 32%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
 </colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Date</p></th>
-<th class="head"><p>Affected images</p></th>
-<th class="head"><p>Potentially breaking change</p></th>
-<th class="head"><p>Reason</p></th>
-<th class="head"><p>Link to Pull Request / Issue</p></th>
+<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>
-</thead>
+</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-even"><td><p>02 Aug 2024</p></td>
-<td><p>2.9.3</p></td>
-<td><ul class="simple">
-<li><p>The <code class="docutils literal notranslate"><span class="pre">apache-airflow-providers-fab</span></code>
-upgraded from 1.2.1 to 1.2.2</p></li>
-</ul>
-</td>
-<td><p>FAB provider logout
-did not work for 2.9.3</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/issues/40922">https://github.com/apache/airflow/issues/40922</a></p></td>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">bash_task</span></code>([python_callable])</p></td>
+<td><p>Wrap a function into a BashOperator.</p></td>
 </tr>
-<tr class="row-odd"><td><p>12 Mar 2024</p></td>
-<td><p>2.8.3</p></td>
-<td><ul class="simple">
-<li><p>The image was refreshed with new
-dependencies (pandas &lt; 2.2 and
-SMTP provider 1.6.1</p></li>
-</ul>
-</td>
-<td><p>Both dependencies
-caused breaking
-changes</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/pull/37748">https://github.com/apache/airflow/pull/37748</a>
-<a class="reference external" href="https://github.com/apache/airflow/pull/37701">https://github.com/apache/airflow/pull/37701</a></p></td>
+<tr class="row-even"><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>16 Dec 2023</p></td>
-<td><p>All 2..*</p></td>
-<td><ul class="simple">
-<li><p>The AIRFLOW_GID 500 was removed</p></li>
-<li><p>MySQL <code class="docutils literal notranslate"><span class="pre">apt</span></code> repository key changed.</p></li>
-</ul>
-</td>
-<td><p>MySQL repository is
-removed after the
-key expiry fiasco</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/issues/36231">https://github.com/apache/airflow/issues/36231</a></p></td>
+<tr class="row-odd"><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>17 June 2022</p></td>
-<td><p>2.2.5</p>
-<p>2.3.0-2.3.2</p>
-</td>
-<td><ul class="simple">
-<li><p>The <code class="docutils literal notranslate"><span class="pre">Authlib</span></code> library downgraded
-from 1.0.1 to 0.15.5 version</p></li>
-</ul>
-</td>
-<td><p>Flask App Builder
-not compatible with
-Authlib &gt;= 1.0.0</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/pull/24516">https://github.com/apache/airflow/pull/24516</a></p></td>
+<tr class="row-even"><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>18 Jan 2022</p></td>
-<td><p>All 2.2.*, 2.1.*</p></td>
-<td><ul class="simple">
-<li><p>The AIRFLOW_GID 500 was removed</p></li>
-<li><p>MySQL <code class="docutils literal notranslate"><span class="pre">apt</span></code> repository key changed.</p></li>
-</ul>
-</td>
-<td><p>MySQL changed keys
-to sign their packages
-on 17 Jan 2022</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/pull/20912">https://github.com/apache/airflow/pull/20912</a></p></td>
+<tr class="row-odd"><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-even"><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-odd"><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-even"><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-odd"><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-even"><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-odd"><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.bash">
+<span class="sig-name descname"><span class="pre">bash</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.bash"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.bash" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.run_if">
+<span class="sig-name descname"><span class="pre">run_if</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.run_if"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.run_if" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.skip_if">
+<span class="sig-name descname"><span class="pre">skip_if</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.skip_if"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.skip_if" 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="Entrypoint" href="entrypoint.html" >
+            <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="Recipes" href="recipes.html" >
+            <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>
@@ -1069,18 +1049,35 @@ on 17 Jan 2022</p></td>
     <nav class="wy-nav-side-toc">
         <div class="wy-menu-vertical">
             <ul>
-<li><a class="reference internal" href="#">Dockerfile Changelog</a><ul>
-<li><a class="reference internal" href="#airflow-2-9">Airflow 2.9</a></li>
-<li><a class="reference internal" href="#airflow-2-8">Airflow 2.8</a></li>
-<li><a class="reference internal" href="#airflow-2-7">Airflow 2.7</a></li>
-<li><a class="reference internal" href="#airflow-2-6">Airflow 2.6</a></li>
-<li><a class="reference internal" href="#airflow-2-5">Airflow 2.5</a></li>
-<li><a class="reference internal" href="#airflow-2-4">Airflow 2.4</a></li>
-<li><a class="reference internal" href="#airflow-2-3">Airflow 2.3</a></li>
-<li><a class="reference internal" href="#airflow-2-2">Airflow 2.2</a></li>
-<li><a class="reference internal" href="#airflow-2-1">Airflow 2.1</a></li>
-<li><a class="reference internal" href="#airflow-2-0">Airflow 2.0</a></li>
-<li><a class="reference internal" href="#changes-after-publishing-the-images">Changes after publishing the images</a></li>
+<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.bash"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.bash</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.run_if"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.run_if</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.skip_if"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.skip_if</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>
@@ -1105,7 +1102,7 @@ on 17 Jan 2022</p></td>
             
         
         <div class="base-layout--button">
-            <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/changelog.rst" rel="nofollow">
+            <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">
@@ -1239,20 +1236,21 @@ on 17 Jan 2022</p></td>
         </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 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="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/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 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-archive/docker-stack/build-arg-ref.html b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/python/index.html
similarity index 73%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/python/index.html
index 6ffac8e3cf..86feabbef5 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/python/index.html
@@ -9,20 +9,22 @@
 <head>
         <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1">
-        <title>Image build arguments reference &mdash; docker-stack 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/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="prev" title="Recipes" href="recipes.html" />
-
-    <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/build-arg-ref.html" />
+        <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>
@@ -284,8 +286,21 @@
             <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.10.1</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">
+    <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" />
@@ -315,23 +330,100 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
 <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
+</ul>
 
 </div>
 
@@ -411,8 +503,21 @@
             
     <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.10.1</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">
+    <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" />
@@ -442,22 +547,99 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+    <p class="caption" role="heading"><span class="caption-text">Content</span></p>
 <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -546,9 +728,13 @@
 
     <ul class="breadcrumb">
         
-            <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+            <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="build-arg-ref.html"> Image build arguments reference</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>
@@ -559,408 +745,51 @@
                                 <div class="bodywrapper">
                                     <div class="body" role="main">
                                         
-  <blockquote>
-<div></div></blockquote>
-<div class="section" id="image-build-arguments-reference">
-<h1>Image build arguments reference<a class="headerlink" href="#image-build-arguments-reference" title="Permalink to this heading">¶</a></h1>
-<p>The following build arguments (<code class="docutils literal notranslate"><span class="pre">--build-arg</span></code> in docker build command) can be used for production images.
-Those arguments are used when you want to customize the image. You can see some examples of it in
-<a class="reference internal" href="build.html#image-build-pypi"><span class="std std-ref">Building from PyPI packages</span></a>.</p>
-<div class="section" id="basic-arguments">
-<h2>Basic arguments<a class="headerlink" href="#basic-arguments" title="Permalink to this heading">¶</a></h2>
-<p>Those are the most common arguments that you use when you want to build a custom image.</p>
-<table class="docutils align-default">
+  <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: 33%" />
-<col style="width: 33%" />
-<col style="width: 35%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
 </colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
 <tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PYTHON_BASE_IMAGE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">python:3.8-slim-bookworm</span></code></p></td>
-<td><p>Base python image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION</span></code></p></td>
-<td><p><code class="code docutils literal notranslate"><span class="pre">2.10.0</span></code></p></td>
-<td><p>version of Airflow.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_EXTRAS</span></code></p></td>
-<td><p>(see below the table)</p></td>
-<td><p>Default extras with which airflow is
-installed.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_AIRFLOW_EXTRAS</span></code></p></td>
-<td></td>
-<td><p>Optional additional extras with which
-airflow is installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_HOME</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/opt/airflow</span></code></p></td>
-<td><p>Airflow’s HOME (that’s where logs and
-SQLite databases are stored).</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USER_HOME_DIR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/home/airflow</span></code></p></td>
-<td><p>Home directory of the Airflow user.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PIP_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&lt;LATEST_AVAILABLE_IN_PYPI&gt;</span></code></p></td>
-<td><p>PIP version used.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UV_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&lt;LATEST_AVAILABLE_IN_PYPI&gt;</span></code></p></td>
-<td><p>UV version used.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USE_UV</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Whether to use UV to build the image.
-This is an experimental feature.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">UV_HTTP_TIMEOUT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">300</span></code></p></td>
-<td><p>Timeout in seconds for UV pull requests.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code></p></td>
-<td></td>
-<td><p>additional <code class="docutils literal notranslate"><span class="pre">pip</span></code> flags passed to the
-installation commands (except when
-reinstalling <code class="docutils literal notranslate"><span class="pre">pip</span></code> itself)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_PROGRESS_BAR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">on</span></code></p></td>
-<td><p>Progress bar for PIP installation</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UID</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">50000</span></code></p></td>
-<td><p>Airflow user UID.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">constraints</span></code></p></td>
-<td><p>Type of constraints to build the image.
-This can be <code class="docutils literal notranslate"><span class="pre">constraints</span></code> for regular
-images or <code class="docutils literal notranslate"><span class="pre">constraints-no-providers</span></code> for
-slim images.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_REFERENCE</span></code></p></td>
-<td></td>
-<td><p>Reference (branch or tag) from GitHub
-where constraints file is taken from
-It can be <code class="docutils literal notranslate"><span class="pre">constraints-main</span></code> or
-<code class="docutils literal notranslate"><span class="pre">constraints-2-0</span></code> for
-2.0.* installation. In case of building
-specific version you want to point it
-to specific tag, for example
-<code class="code docutils literal notranslate"><span class="pre">constraints-2.10.0</span></code>.
-Auto-detected if empty.</p></td>
+<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>
-<div class="admonition note">
-<p class="admonition-title">Note</p>
-<p>Before Airflow 2.2, the image also had <code class="docutils literal notranslate"><span class="pre">AIRFLOW_GID</span></code> parameter, but it did not provide any additional
-functionality - only added confusion - so it has been removed.</p>
-</div>
-<p>List of default extras in the production Dockerfile:</p>
-<ul class="simple">
-<li><p>aiobotocore</p></li>
-<li><p>amazon</p></li>
-<li><p>async</p></li>
-<li><p>celery</p></li>
-<li><p>cncf-kubernetes</p></li>
-<li><p>common-io</p></li>
-<li><p>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>fab</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google-auth</p></li>
-<li><p>graphviz</p></li>
-<li><p>grpc</p></li>
-<li><p>hashicorp</p></li>
-<li><p>http</p></li>
-<li><p>ldap</p></li>
-<li><p>microsoft-azure</p></li>
-<li><p>mysql</p></li>
-<li><p>odbc</p></li>
-<li><p>openlineage</p></li>
-<li><p>pandas</p></li>
-<li><p>postgres</p></li>
-<li><p>redis</p></li>
-<li><p>sendgrid</p></li>
-<li><p>sftp</p></li>
-<li><p>slack</p></li>
-<li><p>snowflake</p></li>
-<li><p>ssh</p></li>
-<li><p>statsd</p></li>
-<li><p>uv</p></li>
-<li><p>virtualenv</p></li>
-</ul>
-</div>
-<div class="section" id="image-optimization-options">
-<h2>Image optimization options<a class="headerlink" href="#image-optimization-options" title="Permalink to this heading">¶</a></h2>
-<p>The main advantage of Customization method of building Airflow image, is that it allows to build highly optimized image because
-the final image (RUNTIME) might not contain all the dependencies that are needed to build and install all other dependencies
-(DEV). Those arguments allow to control what is installed in the DEV image and what is installed in RUNTIME one, thus
-allowing to produce much more optimized images. See <a class="reference internal" href="build.html#image-build-optimized"><span class="std std-ref">Building optimized images</span></a>.
-for examples of using those arguments.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">UPGRADE_INVALIDATION_STRING</span></code></p></td>
-<td></td>
-<td><p>If set to a random, non-empty value
-the dependencies are upgraded to newer
-versions. In CI it is set to build id
-to make sure subsequent builds are not
-reusing cached images with same value.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PYTHON_DEPS</span></code></p></td>
-<td></td>
-<td><p>Optional python packages to extend
-the image with some extra dependencies.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Dev apt command executed before dev deps
-are installed in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Dev apt command executed
-before dev dep are installed
-in the Build image. Should start with
-<code class="docutils literal notranslate"><span class="pre">&amp;&amp;</span></code>.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_DEPS</span></code></p></td>
-<td><p>Empty - install default dependencies
-(see <code class="docutils literal notranslate"><span class="pre">install_os_dependencies.sh</span></code>)</p></td>
-<td><p>Dev APT dependencies installed
-in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_DEPS</span></code></p></td>
-<td></td>
-<td><p>Additional apt dev dependencies
-installed in the Build image.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_ENV</span></code></p></td>
-<td></td>
-<td><p>Additional env variables defined
-when installing dev deps.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">RUNTIME_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Runtime apt command executed before deps
-are installed in the <code class="docutils literal notranslate"><span class="pre">main</span></code> stage.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Runtime apt command executed
-before runtime dep are installed
-in the <code class="docutils literal notranslate"><span class="pre">main</span></code> stage. Should start with
-<code class="docutils literal notranslate"><span class="pre">&amp;&amp;</span></code>.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">RUNTIME_APT_DEPS</span></code></p></td>
-<td><p>Empty - install default dependencies
-(see <code class="docutils literal notranslate"><span class="pre">install_os_dependencies.sh</span></code>)</p></td>
-<td><p>Runtime APT dependencies installed
-in the Main image.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_DEPS</span></code></p></td>
-<td></td>
-<td><p>Additional apt runtime dependencies
-installed in the Main image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_RUNTIME_APT_ENV</span></code></p></td>
-<td></td>
-<td><p>Additional env variables defined
-when installing runtime deps.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether MySQL client should be installed
-The mysql extra is removed from extras
-if the client is not installed.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">mariadb</span></code></p></td>
-<td><p>Type of MySQL client library. This
-can be <code class="docutils literal notranslate"><span class="pre">mariadb</span></code> or <code class="docutils literal notranslate"><span class="pre">mysql</span></code>
-Regardless of the parameter, <code class="docutils literal notranslate"><span class="pre">mariadb</span></code>
-will always be used on ARM.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_MSSQL_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether MsSQL client should be installed</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_POSTGRES_CLIENT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p></td>
-<td><p>Whether Postgres client should be
-installed</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="section" id="installing-airflow-using-different-methods">
-<h2>Installing Airflow using different methods<a class="headerlink" href="#installing-airflow-using-different-methods" title="Permalink to this heading">¶</a></h2>
-<p>Those parameters are useful only if you want to install Airflow using different installation methods than the default
-(installing from PyPI packages).</p>
-<p>This is usually only useful if you have your own fork of Airflow and want to build the images locally from
-those sources - either locally or directly from GitHub sources. This way you do not need to release your
-Airflow and Providers via PyPI - they can be installed directly from sources or from GitHub repository.
-Another option of installation is to build Airflow from previously prepared binary Python packages which might
-be useful if you need to build Airflow in environments that require high levels of security.</p>
-<dl class="simple">
-<dt>You can see some examples of those in:</dt><dd><ul class="simple">
-<li><p><a class="reference internal" href="build.html#image-build-github"><span class="std std-ref">Building from GitHub</span></a>,</p></li>
-<li><p><a class="reference internal" href="build.html#image-build-custom"><span class="std std-ref">Using custom installation sources</span></a>,</p></li>
-<li><p><a class="reference internal" href="build.html#image-build-secure-environments"><span class="std std-ref">Build images in security restricted environments</span></a></p></li>
+<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>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_INSTALLATION_METHOD</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache-airflow</span></code></p></td>
-<td><p>Installation method of Apache Airflow.
-<code class="docutils literal notranslate"><span class="pre">apache-airflow</span></code> for installation from
-PyPI. It can be GitHub repository URL
-including branch or tag to install from
-that repository or “.” to install from
-local sources. Installing from sources
-requires appropriate values of the
-<code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_FROM</span></code> and
-<code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_TO</span></code> variables (see
-below)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_FROM</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>Sources of Airflow. Set it to “.” when
-you install Airflow from local sources</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_TO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/Dockerfile</span></code></p></td>
-<td><p>Target for Airflow sources. Set to
-“/opt/airflow” when you install Airflow
-from local sources.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION_SPECIFICATION</span></code></p></td>
-<td></td>
-<td><p>Optional - might be used for using limit
-for Airflow version installation - for
-example <code class="docutils literal notranslate"><span class="pre">&lt;2.0.2</span></code> for automated builds.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_LOCATION</span></code></p></td>
-<td></td>
-<td><p>If not empty, it will override the
-source of the constraints with the
-specified URL or file. Note that the
-file has to be in Docker context so
-it’s best to place such file in
-one of the folders included in
-<code class="docutils literal notranslate"><span class="pre">.dockerignore</span></code> file.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DOCKER_CONTEXT_FILES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>If set to a folder (for example to
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> folder), then
-this folder will be copied to the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> inside the
-context of docker and you will be able
-to install from binary files present
-there. By default we set it to
-Dockerfile as we know the file is there,
-otherwise the COPY instruction fails.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to true, Airflow, providers and
-all dependencies are installed from
-from locally built/downloaded
-.whl and .tar.gz files placed in the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code>.</p></td>
-</tr>
-</tbody>
-</table>
+</dd></dl>
+
 </div>
-<div class="section" id="pre-caching-pip-dependencies">
-<h2>Pre-caching PIP dependencies<a class="headerlink" href="#pre-caching-pip-dependencies" title="Permalink to this heading">¶</a></h2>
-<p>When image is build from PIP, by default pre-caching of PIP dependencies is used. This is in order to speed-up incremental
-builds during development. When pre-cached PIP dependencies are used and <code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code> changes, the
-PIP dependencies are already pre-installed, thus resulting in much faster image rebuild. This is purely an optimization
-of time needed to build the images and should be disabled if you want to install Airflow from
-Docker context files.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 33%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_BRANCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">main</span></code></p></td>
-<td><p>the branch from which PIP dependencies
-are pre-installed initially.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_REPO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code></p></td>
-<td><p>the repository from which PIP
-dependencies are pre-installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PRE_CACHED_PIP_PACKAGES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Allows to pre-cache airflow PIP packages
-from the GitHub of Apache Airflow
-This allows to optimize iterations for
-Image builds and speeds up CI builds.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_CACHE_EPOCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">&quot;0&quot;</span></code></p></td>
-<td><p>Allow to invalidate cache by passing a
-new argument.</p></td>
-</tr>
-</tbody>
-</table>
 </div>
 </div>
 
 
     <div class="pager" role="navigation" aria-label="related navigation">
-            <a rel="prev" title="Recipes" href="recipes.html" >
+            <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><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Next</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>
 
@@ -1028,11 +857,14 @@ new argument.</p></td>
     <nav class="wy-nav-side-toc">
         <div class="wy-menu-vertical">
             <ul>
-<li><a class="reference internal" href="#">Image build arguments reference</a><ul>
-<li><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<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>
@@ -1057,7 +889,7 @@ new argument.</p></td>
             
         
         <div class="base-layout--button">
-            <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/build-arg-ref.rst" rel="nofollow">
+            <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">
@@ -1191,20 +1023,21 @@ new argument.</p></td>
         </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 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="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/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 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-archive/docker-stack/index.html b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/python_virtualenv/index.html
similarity index 76%
copy from docs-archive/docker-stack/index.html
copy to docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/python_virtualenv/index.html
index 3b875d85f0..c3ea211d57 100644
--- a/docs-archive/docker-stack/index.html
+++ b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/python_virtualenv/index.html
@@ -9,20 +9,22 @@
 <head>
         <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1">
-        <title>Docker Image for Apache Airflow &mdash; docker-stack 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/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="Building the image" href="build.html" />
-
-    <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/index.html" />
+        <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>
@@ -284,8 +286,21 @@
             <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.10.1</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">
+    <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" />
@@ -315,16 +330,90 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+    <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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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="build-arg-ref.html">Image build arguments reference</a></li>
+<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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -405,8 +494,21 @@
             
     <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.10.1</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">
+    <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" />
@@ -436,16 +538,90 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+    <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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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="../../../../troubleshooting.html">Troubleshooting</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="build-arg-ref.html">Image build arguments reference</a></li>
+<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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -534,9 +710,13 @@
 
     <ul class="breadcrumb">
         
-            <li class="breadcrumb-item"><a href="#" class="icon icon-home"> Home</a></li>
+            <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"> Docker Image for Apache 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.python_virtualenv</span></code></a></li>
         
     </ul>
 </div>
@@ -547,195 +727,16 @@
                                 <div class="bodywrapper">
                                     <div class="body" role="main">
                                         
-  <blockquote>
-<div></div></blockquote>
-<a class="reference internal image-reference" href="_images/docker-logo.png"><img alt="_images/docker-logo.png" src="_images/docker-logo.png" style="width: 100px;" /></a>
-<div class="section" id="docker-image-for-apache-airflow">
-<h1>Docker Image for Apache Airflow<a class="headerlink" href="#docker-image-for-apache-airflow" title="Permalink to this heading">¶</a></h1>
-<div class="toctree-wrapper compound">
-</div>
-<div class="toctree-wrapper compound">
-</div>
-<p>For the ease of deployment in production, the community releases a production-ready reference container
-image.</p>
-<p>The Apache Airflow community, releases Docker Images which are <code class="docutils literal notranslate"><span class="pre">reference</span> <span class="pre">images</span></code> for Apache Airflow.
-Every time a new version of Airflow is released, the images are prepared in the
-<a class="reference external" href="https://hub.docker.com/r/apache/airflow">apache/airflow DockerHub</a>
-for all the supported Python versions.</p>
-<p>You can find the following images there (Assuming Airflow version <code class="code docutils literal notranslate"><span class="pre">2.10.0</span></code>):</p>
-<ul class="simple">
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:latest</span></code>              - the latest released Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:latest-pythonX.Y</span></code>    - the latest released Airflow image with specific Python version</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:2.10.0</span></code>           - the versioned Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:2.10.0-pythonX.Y</span></code> - the versioned Airflow image with specific Python version</p></li>
-</ul>
-<p>Those are “reference” regular images. They contain the most common set of extras, dependencies and providers that are
-often used by the users and they are good to “try-things-out” when you want to just take Airflow for a spin,</p>
-<p>You can also use “slim” images that contain only core airflow and are about half the size of the “regular” images
-but you need to add all the <a class="reference external" href="/docs/apache-airflow/stable/extra-packages-ref.html" title="(in apache-airflow v2.10.0.dev0)"><span>Reference for package extras</span></a> and providers that you need separately
-via <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a>.</p>
-<ul class="simple">
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-latest</span></code>              - the latest released Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-latest-pythonX.Y</span></code>    - the latest released Airflow image with specific Python version</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-2.10.0</span></code>           - the versioned Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-2.10.0-pythonX.Y</span></code> - the versioned Airflow image with specific Python version</p></li>
-</ul>
-<p>The Apache Airflow image provided as convenience package is optimized for size, and
-it provides just a bare minimal set of the extras and dependencies installed and in most cases
-you want to either extend or customize the image. You can see all possible extras in <a class="reference external" href="/docs/apache-airflow/stable/extra-packages-ref.html" title="(in apache-airflow v2.10.0.dev0)"><span>Reference for package extras</span></a>.
-The set of extras used in Airflow Production image are available in the
-<a class="reference external" href="https://github.com/apache/airflow/blob/2.10.0/Dockerfile">Dockerfile</a>.</p>
-<p>However, Airflow has more than 60 community-managed providers (installable via extras) and some of the
-default extras/providers installed are not used by everyone, sometimes others extras/providers
-are needed, sometimes (very often actually) you need to add your own custom dependencies,
-packages or even custom providers. You can learn how to do it in <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a>.</p>
-<p>The production images are build in DockerHub from released version and release candidates. There
-are also images published from branches but they are used mainly for development and testing purpose.
-See <a class="reference external" href="https://github.com/apache/airflow/blob/main/contributing-docs/working-with-git#airflow-git-branches">Airflow Git Branching</a>
-for details.</p>
-</div>
-<div class="section" id="fixing-images-at-release-time">
-<h1>Fixing images at release time<a class="headerlink" href="#fixing-images-at-release-time" title="Permalink to this heading">¶</a></h1>
-<p>The released “versioned” reference images are mostly <code class="docutils literal notranslate"><span class="pre">fixed</span></code> when we release Airflow version and we only
-update them in exceptional circumstances. For example when we find out that there are dependency errors
-that might prevent important Airflow or embedded provider’s functionalities working. In normal circumstances,
-the images are not going to change after release, even if new version of Airflow dependencies are released -
-not even when those versions contain critical security fixes. The process of Airflow releases is designed
-around upgrading dependencies automatically where applicable but only when we release a new version of Airflow,
-not for already released versions.</p>
-</div>
-<div class="section" id="what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image">
-<h1>What should I do if my security scan shows critical and high vulnerabilities in the image?<a class="headerlink" href="#what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image" title="Permalink to this heading">¶</a></h1>
-<p>We often hear questions that our users use various security scanners on the image and find out that
-there are some critical and high vulnerabilities in the image - not coming from Airflow but for some other
-components. In general, this is normal and expected that such vulnerabilities are found in the image after
-it’s been released and fixed - precisely because we are NOT updating the images after they are released as
-explained above. Also sometimes even the latest releases contain vulnerabilities that are not yet fixed
-in the base image we use or in the dependencies we use and cannot upgrade, because some of our providers
-have limits and did not manage to upgrade yet and we have no control over that. So it is possible
-that even the most recent release of our image there are some High and Critical vulnerabilities that
-are not yet fixed.</p>
-<p><strong>What can you do in such case?</strong></p>
-<p>First of all - you should know what you should NOT do.</p>
-<p>Do NOT send private email to the Airflow Security Team with scan results and asking what to do.
-The Security team at Airflow takes care exclusively about undisclosed vulnerabilities in Airflow itself, not
-in the dependencies or in the base image. The security email should only be used to report privately any
-security issues that can be exploited via Airflow. This is nicely explained in our
-<a class="reference external" href="https://github.com/apache/airflow/security/policy">Security Policy</a> where you can find more details
-including the need to provide reproducible scenarios and submitting ONE issue per email. NEVER submit multiple
-vulnerabilities in one email - those are rejected immediately, as they make the process of handling the issue
-way harder for everyone, including the reporters.</p>
-<p>Also DO NOT open a GitHub Issue with the scan results and asking what to do. The GitHub Issues are for
-reporting bugs and feature requests to Airflow itself, not for asking for help with the security scans on
-3rd party components.</p>
-<p>So what are your options?</p>
-<p>You have four options:</p>
-<ol class="arabic simple">
-<li><p>Build your own custom image following the examples we share there - using the latest base image and
-possibly manually bumping dependencies you want to bump. There are quite a few examples
-in <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a> which you can follow. You can use “slim” image as a base
-for your images and rather than basing your image on the “reference” image that has a number of extras
-and providers installed, you can only install what you actually need and upgrade some dependencies that
-otherwise would not be possible to upgrade - because some of the provider libraries have limits and
-did not manage to upgrade yet and we have no control over that. This is the most flexible way to
-build your image and you can build your process to combine it with quickly upgrading to latest Airflow
-versions (see point 2. below).</p></li>
-<li><p>Wait for a new version of Airflow and upgrade to it. Airflow images are updated to latest “non-conflicting”
-dependencies and use latest “base” image at release time, so what you have in the reference images
-at the moment we publish the image / release the version is what is “latest and greatest”
-available at the moment with the base platform we use (Debian Bookworm is the reference image we use).
-This is one of good strategies you can take - build a process to upgrade your Airflow version regularly
-- quickly after it has been released by the community, this will help you to keep up with the latest
-security fixes in the dependencies.</p></li>
-<li><p>If the base platform we use (currently Debian Bookworm) does not contain the latest versions you want
-and you want to use other base images, you can take a look at what system dependencies are installed
-and scripts in the latest <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> of airflow and take inspiration from it and build your own image
-or copy it and modify it to your needs. See the
-<a class="reference external" href="https://github.com/apache/airflow/blob/2.10.0/Dockerfile">Dockerfile</a> for the latest version.</p></li>
-<li><p>Research if the vulnerability affects you or not. Even if there is a dependency with high or critical
-vulnerability, it does not mean that it can be exploited in Airflow (or specifically in the way you are
-using Airflow). If you do have a reproducible scenario how a vulnerability can be exploited in Airflow, you should -
-of course - privately report it to the security team. But if you do not have reproducible
-scenario, please do some research and try to understand the impact of the vulnerability on Airflow. That
-research might result in a  public GitHub Discussion where you can discuss the impact of the
-vulnerability if you research will indicate Airflow might not be impacted or private security email if
-you find a reproducible scenario on how to exploit it.</p></li>
-</ol>
-<p><strong>How do I discuss publicly about public CVEs in the image?</strong></p>
-<p>The security scans report public vulnerabilities in 3rd-party components of Airflow. Since those are
-already public vulnerabilities, this is something you can talk about but others also are talking about.
-So you can do research on your own first. Try to find discussions about the issues, how others were handling
-it and possibly even try to explore, whether the vulnerability can be exploited in Airflow or not.
-This is a very valuable contribution to the community you can do in order to help others to
-understand the impact of the vulnerability on Airflow. We highly appreciate our commercial users do it,
-because Airflow is maintained by volunteers, so if you or your company can spend some time and skills of
-security researchers to help the community to understand the impact of the vulnerability on Airflow, it
-could be a fantastic contribution to the community and way to give back to the project that your company uses
-for free.</p>
-<p>You are free to discuss it publicly, open a <a class="reference external" href="https://github.com/apache/airflow/discussions">GitHub Discussion</a>
-mentioning your findings and research you’ve done so far. Ideally (as a way to contribute to Airflow) you
-should explain the findings of your own security team in your company to help to research and understand
-the impact of the vulnerability on Airflow (and your way of using it).
-Again - strong suggestion is to open ONE discussion per vulnerability. You should NOT post scan results in
-bulk - this is not helpful for a discussion, and you will not get meaningful answers if you will attempt to
-discuss all the issues in one discussion thread.</p>
-<p>Yes - we know it’s the easy way to copy &amp; paste your result and ask others what to do, but doing it is
-going to likely result in silence because such actions in the community as seen as pretty selfish way of
-getting your problems solved by tapping into time of other volunteers, without spending your time on making it
-easier for them to help. If you really want to get help from the community, focus your discussion on
-particular CVE, provide your findings - including analyzing your report in detail and finding which
-binaries and base images exactly are causing the scanner to report the vulnerability. Remember that only
-you have access to your scanner and you should bring as much helpful information so that others can
-comment on it. Show that you have done your homework and that you bring valuable information to the community.</p>
-<p>Opening a GitHub Discussion for this kind of issues is also a great way to communicate with the
-maintainers and security team in an open and transparent way - without reverting to the private security
-mailing list (which serves different purpose as explained above). If after such a discussion there will be
-a way to remove such a vulnerability from the scanned image - great, you can even contribute a PR to the
-Dockerfile to remove the vulnerability from the image. Maybe such a discussion will lead to a PR to allow
-Airflow to upgrade to newer dependency that fixes the vulnerability or remove it altogether, or maybe
-there is already a way to mitigate it or maybe there is already a PR that someone works on to fix it.
-All this can (and should) be discussed publicly and transparently in a GitHub Discussion, not via private
-security email, nor GitHub Issues which are exclusively about Airflow Issues not 3rd-party components
-public security issues.</p>
-</div>
-<div class="section" id="support">
-<h1>Support<a class="headerlink" href="#support" title="Permalink to this heading">¶</a></h1>
-<p>The reference Docker Image supports the following platforms and database:</p>
-<div class="section" id="intel-platform-x86-64">
-<h2>Intel platform (x86_64)<a class="headerlink" href="#intel-platform-x86-64" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>Postgres Client</p></li>
-<li><p>MySQL Client</p></li>
-<li><p>MSSQL Client</p></li>
-</ul>
-</div>
-<div class="section" id="arm-platform-aarch64">
-<h2>ARM platform (aarch64)<a class="headerlink" href="#arm-platform-aarch64" title="Permalink to this heading">¶</a></h2>
-<p>ARM support is experimental, might change any time.</p>
-<ul class="simple">
-<li><p>Postgres Client</p></li>
-<li><p>MySQL Client (MySQL 8)</p></li>
-<li><p>MSSQL Client</p></li>
-</ul>
-<p>Note that MySQL on arm has experimental support through MariaDB client library.</p>
-</div>
-</div>
-<div class="section" id="usage">
-<h1>Usage<a class="headerlink" href="#usage" title="Permalink to this heading">¶</a></h1>
-<p>The <span class="target" id="index-0"></span><a class="reference external" href="/docs/apache-airflow/stable/cli-and-env-variables-ref.html#envvar-AIRFLOW_HOME" title="(in apache-airflow v2.10.0.dev0)"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">AIRFLOW_HOME</span></code></a> is set by default to <code class="docutils literal notranslate"><span class="pre">/opt/airflow/</span></code> - this means that DAGs
-are by default in the <code class="docutils literal notranslate"><span class="pre">/opt/airflow/dags</span></code> folder and logs are in the <code class="docutils literal notranslate"><span class="pre">/opt/airflow/logs</span></code></p>
-<p>The working directory is <code class="docutils literal notranslate"><span class="pre">/opt/airflow</span></code> by default.</p>
-<p>If no <span class="target" id="index-1"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">AIRFLOW__DATABASE__SQL_ALCHEMY_CONN</span></code> variable is set then SQLite database is created in
-<code class="docutils literal notranslate"><span class="pre">${AIRFLOW_HOME}/airflow.db</span></code>.</p>
-<p>For example commands that start Airflow see: <a class="reference internal" href="entrypoint.html#entrypoint-commands"><span class="std std-ref">Executing commands</span></a>.</p>
-<p>Airflow requires many components to function as it is a distributed application. You may therefore also be interested
-in launching Airflow in the Docker Compose environment, see: <a class="reference external" href="/docs/apache-airflow/stable/howto/docker-compose/index.html" title="(in apache-airflow v2.10.0.dev0)"><span>Running Airflow in Docker</span></a>.</p>
-<p>You can use this image in <a class="reference external" href="/docs/helm-chart/stable/index.html" title="(in helm-chart v1.16.0-dev)"><span class="xref std std-doc">Helm Chart</span></a> as well.</p>
+  <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"><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Previous</button>
-            <a rel="next" title="Building the image" href="build.html" >
+    <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>
@@ -805,17 +806,7 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
     <nav class="wy-nav-side-toc">
         <div class="wy-menu-vertical">
             <ul>
-<li><a class="reference internal" href="#">Docker Image for Apache Airflow</a><ul>
-</ul>
-</li>
-<li><a class="reference internal" href="#fixing-images-at-release-time">Fixing images at release time</a></li>
-<li><a class="reference internal" href="#what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image">What should I do if my security scan shows critical and high vulnerabilities in the image?</a></li>
-<li><a class="reference internal" href="#support">Support</a><ul>
-<li><a class="reference internal" href="#intel-platform-x86-64">Intel platform (x86_64)</a></li>
-<li><a class="reference internal" href="#arm-platform-aarch64">ARM platform (aarch64)</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#usage">Usage</a></li>
+<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>
@@ -838,7 +829,7 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
             
         
         <div class="base-layout--button">
-            <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/index.rst" rel="nofollow">
+            <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">
@@ -972,20 +963,21 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
         </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 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="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/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 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-archive/docker-stack/changelog.html b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/sensor/index.html
similarity index 67%
copy from docs-archive/docker-stack/changelog.html
copy to docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/sensor/index.html
index 93278865bf..83186b4ed8 100644
--- a/docs-archive/docker-stack/changelog.html
+++ b/docs-archive/apache-airflow/2.10.1/_api/airflow/decorators/sensor/index.html
@@ -9,21 +9,22 @@
 <head>
         <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1">
-        <title>Dockerfile Changelog &mdash; docker-stack 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/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="Recipes" href="recipes.html" />
-            <link rel="prev" title="Entrypoint" href="entrypoint.html" />
-
-    <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/changelog.html" />
+        <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>
@@ -285,8 +286,21 @@
             <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.10.1</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">
+    <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" />
@@ -316,29 +330,107 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Dockerfile Changelog</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-9">Airflow 2.9</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-8">Airflow 2.8</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-7">Airflow 2.7</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-6">Airflow 2.6</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-5">Airflow 2.5</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-4">Airflow 2.4</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-3">Airflow 2.3</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-2">Airflow 2.2</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-1">Airflow 2.1</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-0">Airflow 2.0</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#changes-after-publishing-the-images">Changes after publishing the images</a></li>
+    <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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</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><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.sensor.DecoratedSensorOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedSensorOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.sensor.DecoratedSensorOperator.template_fields"><code class="docutils literal notranslate"><span class="pre">DecoratedSensorOperator.template_fields</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.sensor.DecoratedSensorOperator.template_fields_renderers"><code class="docutils literal notranslate"><span class="pre">DecoratedSensorOperator.template_fields_renderers</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.sensor.DecoratedSensorOperator.custom_operator_name"><code class="docutils literal notranslate"><span class="pre">DecoratedSensorOperator.custom_operator_name</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.sensor.DecoratedSensorOperator.shallow_copy_attrs"><code class="docutils literal notranslate"><span class="pre">DecoratedSensorOperator.shallow_copy_attrs</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.sensor.sensor_task"><code class="docutils literal notranslate"><span class="pre">sensor_task()</span></code></a></li>
+</ul>
+</li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+</ul>
+</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="../../../../troubleshooting.html">Troubleshooting</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="build-arg-ref.html">Image build arguments reference</a></li>
+<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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -419,8 +511,21 @@
             
     <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.10.1</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">
+    <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" />
@@ -450,29 +555,107 @@
 
 
 <div class="toctree" role="navigation" aria-label="main navigation">
-    <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Dockerfile Changelog</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-9">Airflow 2.9</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-8">Airflow 2.8</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-7">Airflow 2.7</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-6">Airflow 2.6</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-5">Airflow 2.5</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-4">Airflow 2.4</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-3">Airflow 2.3</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-2">Airflow 2.2</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-1">Airflow 2.1</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#airflow-2-0">Airflow 2.0</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#changes-after-publishing-the-images">Changes after publishing the images</a></li>
+    <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 Airflow®</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#auth-managers">Auth managers</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="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</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="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</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 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</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><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.sensor.DecoratedSensorOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedSensorOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.sensor.DecoratedSensorOperator.template_fields"><code class="docutils literal notranslate"><span class="pre">DecoratedSensorOperator.template_fields</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.sensor.DecoratedSensorOperator.template_fields_renderers"><code class="docutils literal notranslate"><span class="pre">DecoratedSensorOperator.template_fields_renderers</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.sensor.DecoratedSensorOperator.custom_operator_name"><code class="docutils literal notranslate"><span class="pre">DecoratedSensorOperator.custom_operator_name</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.sensor.DecoratedSensorOperator.shallow_copy_attrs"><code class="docutils literal notranslate"><span class="pre">DecoratedSensorOperator.shallow_copy_attrs</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.sensor.sensor_task"><code class="docutils literal notranslate"><span class="pre">sensor_task()</span></code></a></li>
+</ul>
+</li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+</ul>
+</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="../../../../troubleshooting.html">Troubleshooting</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="build-arg-ref.html">Image build arguments reference</a></li>
+<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>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
 </ul>
 
 </div>
@@ -561,9 +744,13 @@
 
     <ul class="breadcrumb">
         
-            <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+            <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="changelog.html"> Dockerfile Changelog</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.sensor</span></code></a></li>
         
     </ul>
 </div>
@@ -574,432 +761,99 @@
                                 <div class="bodywrapper">
                                     <div class="body" role="main">
                                         
-  <blockquote>
-<div></div></blockquote>
-<div class="section" id="dockerfile-changelog">
-<h1>Dockerfile Changelog<a class="headerlink" href="#dockerfile-changelog" title="Permalink to this heading">¶</a></h1>
-<p>The <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> does not strictly follow the <a class="reference external" href="https://semver.org/">SemVer</a> approach of
-Apache Airflow when it comes to features and backwards compatibility. While Airflow code strictly
-follows it, the <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> is really a way to give users a conveniently packaged Airflow
-using standard container approach, so occasionally there are some changes in the building process
-or in the entrypoint of the image that require slight adaptation of how it is used or built.</p>
-<p>The Changelog below describes the changes introduced in each version of the docker images released by
-the Airflow team.</p>
-<dl class="field-list simple">
-<dt class="field-odd">note</dt>
-<dd class="field-odd"><p>The Changelog below concerns only the convenience production images released at
-<a class="reference external" href="https://hub.docker.com/r/apache/airflow">Airflow DockerHub</a> . The images that are released
-there are usually built using the <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> released together with Airflow. However, you are
-free to take latest released <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> from Airflow and use it to build an image for
-any Airflow version from the <code class="docutils literal notranslate"><span class="pre">Airflow</span> <span class="pre">2</span></code> line. There is no guarantee that it will work, but if it does,
-then you can use latest features from that image to build images for previous Airflow versions.</p>
-</dd>
-</dl>
-<div class="section" id="airflow-2-9">
-<h2>Airflow 2.9<a class="headerlink" href="#airflow-2-9" title="Permalink to this heading">¶</a></h2>
-<blockquote>
-<div><ul class="simple">
-<li><p>The “latest” image (i.e. default Airflow image when <code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code> is used or
-<code class="docutils literal notranslate"><span class="pre">apache/airflow:slim-latest</span></code>) uses now the newest supported Python version. Previously it was using
-the “default” Python version which was Python 3.8 as of Airflow 2.8. With Airflow reference images
-released for Airflow 2.9.0, the images are going to use Python 3.12 as this is the latest supported
-version for Airflow 2.9 line. Users can use Python 3.8 by using <code class="docutils literal notranslate"><span class="pre">apache/airflow:2.9.0-python3.8</span></code> and
-<code class="docutils literal notranslate"><span class="pre">apache/airflow:slim-2.9.0-python-3.8</span></code> images respectively so while the change is potentially
-breaking, it is very easy to switch to the previous behaviour.</p></li>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">PIP_USER</span></code> flag is removed and replaced by <code class="docutils literal notranslate"><span class="pre">VIRTUAL_ENV</span></code> pointing to <code class="docutils literal notranslate"><span class="pre">~/.local</span></code> where Airflow
-is installed. This has the effect that the Airflow installation is treated as a regular virtual environment,
-but unlike a regular virtualenv, the <code class="docutils literal notranslate"><span class="pre">~/.local</span></code> directory is seen as <code class="docutils literal notranslate"><span class="pre">system</span> <span class="pre">level</span></code> and when the
-worker creates dynamically the virtualenv with <code class="docutils literal notranslate"><span class="pre">--system-site-packages</span></code> flag, the Airflow installation and all
-packages there are also present in the new virtualenv. When you do not use the flag, they are not
-copied there which is a backwards-compatible behaviour with having <code class="docutils literal notranslate"><span class="pre">PIP_USER</span></code> set.</p></li>
-<li><p>The image contains latest <code class="docutils literal notranslate"><span class="pre">uv</span></code> binary (latest at the moment of release) - which is a new faster
-replacement for <code class="docutils literal notranslate"><span class="pre">pip</span></code>. While the image is still using <code class="docutils literal notranslate"><span class="pre">pip</span></code> by default, you can use <code class="docutils literal notranslate"><span class="pre">uv</span></code>
-to install packages and - experimentally - you can also build custom images with
-<code class="docutils literal notranslate"><span class="pre">--arg</span> <span class="pre">AIRFLOW_USE_UV=true</span></code> which will us <code class="docutils literal notranslate"><span class="pre">uv</span></code> to perform the installation. This is an experimental
-support, as <code class="docutils literal notranslate"><span class="pre">uv</span></code> is very fast but also a very new feature in the Python ecosystem.</p></li>
-<li><p>Constraints used to install the image are available in “${HOME}/constraints.txt” now - you can use them
-to install additional packages in the image without having to find out which constraints you should use.</p></li>
-<li><p>The image adds <code class="docutils literal notranslate"><span class="pre">libev</span></code> library to the image as it is required by cassandra driver for Python 3.12, also
-<code class="docutils literal notranslate"><span class="pre">libev</span></code> will be used in other Python versions as a more robust and faster way for cassandra driver
-to handle events.</p></li>
-</ul>
-</div></blockquote>
-</div>
-<div class="section" id="airflow-2-8">
-<h2>Airflow 2.8<a class="headerlink" href="#airflow-2-8" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.8.3</p>
-<ul>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">gosu</span></code> binary was removed from the image. This is a potentially breaking change for users who relied on
-<code class="docutils literal notranslate"><span class="pre">gosu</span></code> to change the user in the container. The <code class="docutils literal notranslate"><span class="pre">gosu</span></code> binary was removed because it was a source of
-security vulnerabilities as it was linked against older Go standard libraries.</p></li>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">smtp</span></code> provider is now included in the list of providers installed by default in the image.</p></li>
-</ul>
-</li>
-<li><p>2.8.1</p>
-<ul>
-<li><p>Fixed a discrepancy in MySQL client libraries. In 2.8.0 if not specify <code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE</span></code> build arg
-during build custom X86 image by default packages would be compiled by using <strong>MariaDB</strong> libraries,
-however <strong>MySQL</strong> libraries were installed in the final image.</p></li>
-</ul>
-</li>
-<li><p>2.8.0</p>
-<ul>
-<li><p>Add <code class="docutils literal notranslate"><span class="pre">libxmlsec1</span></code> and <code class="docutils literal notranslate"><span class="pre">libxmlsec1-dev</span></code> libraries to dev PROD image and <code class="docutils literal notranslate"><span class="pre">libxmlsec1</span></code> library to runtime PROD
-image as it is required by <code class="docutils literal notranslate"><span class="pre">python3-saml</span></code> library.</p></li>
-<li><p>The image is based on <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bookworm</span></code> in 2.8.0 rather than <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bullseye</span></code>. This might cause some
-problems when building custom images. You are advised to make sure your system level dependencies are
-working with <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bookworm</span></code>. While all reference images of Airflow 2.8.0 are built on <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bookworm</span></code>,
-it is still possible to build deprecated custom <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bullseye</span></code> based image in 2.8.0 following the</p></li>
-<li><p>By default the images now have “MariaDB” client installed. Previous images had “MySQL” client installed.
-The MariaDB client is a drop-in replacement for “MySQL” one and is compatible with MySQL. This might
-be a breaking change for users who used MySQL client in their images, however those should be very
-specific cases and vast majority of users should not see any difference. Users can still use
-MySQL client by setting <code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE=mysql</span></code> build arg and build the custom X86 image.
-The ARM image always uses MariaDB client, this argument is ignored. The “mysql” apt repository is
-removed from the /etc/apt/sources.list.d/ and if you want to install anything from this repository when
-extending the images, you need to manually add the right key and repository in your Dockerfile,
-following the instructions in <a class="reference external" href="https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/">A Quick Guide to Using the MySQL APT repository</a>.</p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-7">
-<h2>Airflow 2.7<a class="headerlink" href="#airflow-2-7" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.7.3</p>
-<ul>
-<li><p>Add experimental feature for select type of MySQL Client libraries during the build custom image via <code class="docutils literal notranslate"><span class="pre">INSTALL_MYSQL_CLIENT_TYPE</span></code>
-build arg. <code class="docutils literal notranslate"><span class="pre">mysql</span></code> for install MySQL client libraries from <a class="reference external" href="https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/">Oracle APT repository</a>,
-<code class="docutils literal notranslate"><span class="pre">mariadb</span></code> for install MariaDB client libraries from <a class="reference external" href="https://mariadb.com/kb/en/mariadb-package-repository-setup-and-usage/#mariadb-repository">MariaDB repository</a>.
-The selection of MySQL Client libraries only available on AMD64 (x86_64) for ARM docker image it will always install
-MariaDB client.</p></li>
-<li><p>Docker CLI version in the image is bumped to 24.0.6 version.</p></li>
-<li><p>PIP caching for local builds has been enabled to speed up local custom image building</p></li>
-</ul>
-</li>
-<li><p>2.7.0</p>
-<ul>
-<li><p>As of now, Python 3.7 is no longer supported by the Python community. Therefore, to use Airflow 2.7.0, you must ensure your Python version is
-either 3.8, 3.9, 3.10, or 3.11.</p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-6">
-<h2>Airflow 2.6<a class="headerlink" href="#airflow-2-6" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.6.3</p>
-<ul>
-<li><p>Add <code class="docutils literal notranslate"><span class="pre">libgeos-dev</span></code> library to runtime PROD image as it is required by BigQuery library on ARM image</p></li>
-</ul>
-</li>
-<li><p>2.6.0</p>
-<ul>
-<li><p>Snowflake provider installed by default</p></li>
-<li><p>The ARM experimental image adds support for MySQL via MariaDB client libraries.</p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-5">
-<h2>Airflow 2.5<a class="headerlink" href="#airflow-2-5" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.5.1</p>
-<ul>
-<li><p>The ARM experimental image adds support for MSSQL</p></li>
-</ul>
-</li>
-<li><p>2.5.0</p>
-<ul>
-<li><p>The docker CLI binary is now added to the images by default (available on PATH). Version 20.10.9 is used.</p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-4">
-<h2>Airflow 2.4<a class="headerlink" href="#airflow-2-4" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.4.0</p>
-<ul>
-<li><p>You can specify additional <code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span></code> flags when you build the image via <code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code>
-build arg.</p></li>
-<li><p>Support for <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Buster</span></code> was dropped, including the possibility of building customized images as
-<code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Buster</span></code> reached end of life.</p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-3">
-<h2>Airflow 2.3<a class="headerlink" href="#airflow-2-3" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.3.0</p>
-<ul>
-<li><p>Airflow 2.3 <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> is now better optimized for caching and “standalone” which means that you
-can copy <strong>just</strong> the <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> to any folder and start building custom images. This,
-however, requires <a class="reference external" href="https://docs.docker.com/develop/develop-images/build_enhancements/">Buildkit</a>
-to build the image because we started using features that are only available in <code class="docutils literal notranslate"><span class="pre">Buildkit</span></code>.
-This can be done by setting <code class="docutils literal notranslate"><span class="pre">DOCKER_BUILDKIT=1</span></code> as an environment variable
-or by installing <a class="reference external" href="https://docs.docker.com/buildx/working-with-buildx/">the buildx plugin</a>
-and running <code class="docutils literal notranslate"><span class="pre">docker</span> <span class="pre">buildx</span> <span class="pre">build</span></code> command.</p></li>
-<li><p>MySQL is experimentally supported on ARM through MariaDB client library</p></li>
-<li><p>Add Python 3.10 support</p></li>
-<li><p>Switch to <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Bullseye</span></code> based images. <code class="docutils literal notranslate"><span class="pre">Debian</span> <span class="pre">Buster</span></code> is deprecated and only available for
-customized image building.</p></li>
-<li><p>Add Multi-Platform support (AMD64/ARM64) in order to accommodate MacOS M1 users</p></li>
-<li><p>Build parameters which control if packages and Airflow should be installed from context file were
-unified</p></li>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">INSTALL_FROM_PYPI</span></code> arg was removed - it is automatically detected now.</p></li>
-<li><p>The <code class="docutils literal notranslate"><span class="pre">INSTALL_FROM_DOCKER_CONTEXT_FILES</span></code> arg changed to <code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-2">
-<h2>Airflow 2.2<a class="headerlink" href="#airflow-2-2" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>2.2.4
-* Add support for both <code class="docutils literal notranslate"><span class="pre">.piprc</span></code> and <code class="docutils literal notranslate"><span class="pre">pip.conf</span></code> customizations
-* Add ArtifactHub labels for better discovery of the images
-* Update default Python image to be 3.7
-* Build images with <code class="docutils literal notranslate"><span class="pre">Buildkit</span></code> (optional)
-* Fix building the image on Azure with <code class="docutils literal notranslate"><span class="pre">text</span> <span class="pre">file</span> <span class="pre">busy</span></code> error</p></li>
-<li><p>2.2.3
-* No changes</p></li>
-<li><p>2.2.2
-* No changes</p></li>
-<li><p>2.2.1
-* Workaround the problem with <code class="docutils literal notranslate"><span class="pre">libstdcpp</span></code> TLS error</p></li>
-<li><p>2.2.0
-* Remove AIRFLOW_GID (5000) from Airflow images (potentially breaking change for users using it)
-* Added warnings for Quick-start docker compose
-* Fix warm shutdown for celery worker (signal propagation)
-* Add Oauth libraries to PROD images
-* Add Python 3.9 support</p></li>
-</ul>
-</div>
-<div class="section" id="airflow-2-1">
-<h2>Airflow 2.1<a class="headerlink" href="#airflow-2-1" title="Permalink to this heading">¶</a></h2>
-<ul>
-<li><p>MySQL changed the keys to sign their packages on 17 Feb 2022. This caused all released images
-to fail when being extended. As result, on 18 Feb 2021 we re-released all
-the <code class="docutils literal notranslate"><span class="pre">2.2</span></code> and <code class="docutils literal notranslate"><span class="pre">2.1</span></code> images with latest versions of <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code>
-containing the new signing key.</p>
-<p>There were subtle changes in the behaviour of some 2.1 images due to that (more details below)
-Detailed <a class="reference external" href="https://github.com/apache/airflow/issues/20911">issue here</a></p>
-</li>
-</ul>
-<dl class="field-list simple">
-<dt class="field-odd">note</dt>
-<dd class="field-odd"><p>that the changes below were valid before image refreshing on 18 Feb 2022.
-Since all the images were refreshed on 18 Feb with the same <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code>
-as 2.1.4, the changes 2.1.1 -&gt; 2.1.3 are
-effectively applied to all the images in 2.1.* line.
-The images refreshed have also those fixes added:</p>
-</dd>
-</dl>
-<ul class="simple">
-<li><p>All 2.1.* image versions refreshed on 18 Feb 2022 have those fixes applied:
-* Fix building the image on Azure with <code class="docutils literal notranslate"><span class="pre">text</span> <span class="pre">file</span> <span class="pre">busy</span></code> error
-* Workaround the problem with <code class="docutils literal notranslate"><span class="pre">libstdcpp</span></code> TLS error
-* Remove AIRFLOW_GID (5000) from Airflow images (potentially breaking change for users using it)
-* Added warnings for Quick-start docker compose
-* Add Oauth libraries to PROD images</p></li>
-</ul>
-<p>Original image Changelog (before the refresh on 18 Feb 2022):</p>
-<ul class="simple">
-<li><dl class="simple">
-<dt>2.1.4</dt><dd><ul>
-<li><p>Workaround the problem with <code class="docutils literal notranslate"><span class="pre">libstdcpp</span></code> TLS error</p></li>
-<li><p>fixed detection of port number in connection URL</p></li>
-<li><p>Improve warnings for quick-start-docker compose</p></li>
-<li><p>Fix warm shutdown for celery worker (signal propagation)</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-<li><dl class="simple">
-<dt>2.1.3</dt><dd><ul>
-<li><p>fixed auto-creation of user to use non-deprecated <code class="docutils literal notranslate"><span class="pre">create</span> <span class="pre">user</span></code> rather than <code class="docutils literal notranslate"><span class="pre">user_create</span></code></p></li>
-<li><p>remove waiting for celery backend for <code class="docutils literal notranslate"><span class="pre">worker</span></code> and <code class="docutils literal notranslate"><span class="pre">flower</span></code> commands rather than <code class="docutils literal notranslate"><span class="pre">scheduler</span></code> and <code class="docutils literal notranslate"><span class="pre">celery</span></code> only</p></li>
-<li><p>remove deprecated <code class="docutils literal notranslate"><span class="pre">airflow</span> <span class="pre">upgradedb</span></code> command from Airflow 1.10 in case upgrade is requested</p></li>
-<li><p>Add Python 3.9 support</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-<li><dl class="simple">
-<dt>2.1.2</dt><dd><ul>
-<li><p>No changes</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-<li><dl class="simple">
-<dt>2.1.1</dt><dd><ul>
-<li><p>Fix failure of lack of default commands (failed when no commands were passed)</p></li>
-<li><p>Added <code class="docutils literal notranslate"><span class="pre">_PIP_ADDITIONAL_REQUIREMENTS</span></code> development feature</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-<li><dl class="simple">
-<dt>2.1.0</dt><dd><ul>
-<li><p>Unset default <code class="docutils literal notranslate"><span class="pre">PIP_USER</span></code> variable - which caused PythonVirtualEnv to fail</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-0">
-<h2>Airflow 2.0<a class="headerlink" href="#airflow-2-0" title="Permalink to this heading">¶</a></h2>
-<ul>
-<li><p>MySQL changed the keys to sign their packages on 17 Feb 2022. This caused all released images
-to fail when being extended. As result, on 18 Feb 2021 we re-released all
-the <code class="docutils literal notranslate"><span class="pre">2.2</span></code> and <code class="docutils literal notranslate"><span class="pre">2.1</span></code> images with latest versions of <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code>
-containing the new signing key.</p>
-<p>There were no changes in the behaviour of 2.0.2 image due to that
-Detailed <a class="reference external" href="https://github.com/apache/airflow/issues/20911">issue here</a> .
-Only 2.0.2 image was regenerated, as 2.0.1 and 2.0.0 versions are hardly used and it is unlikely someone
-would like to extend those images. Extending 2.0.1 and 2.0.0 images will lead to failures of “missing key”.</p>
-</li>
-<li><dl class="simple">
-<dt>2.0.2</dt><dd><ul class="simple">
-<li><p>Set correct PYTHONPATH for <code class="docutils literal notranslate"><span class="pre">root</span></code> user. Allows to run the image as root</p></li>
-<li><p>Warn if the deprecated 5000 group ID was used for airflow user when running the image
-(should be 0 for the OpenShift compatibility). Fails if the group 5000 was used with any other user
-(it would not work anyway but with cryptic errors)</p></li>
-<li><p>Set umask as 002 by default, so that you can actually change the user id used to run the image
-(required for OpenShift compatibility)</p></li>
-<li><p>Skip checking the DB and celery backend if CONNECTION_CHECK_MAX_COUNT is equal to 0</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-<li><dl class="simple">
-<dt>2.0.1</dt><dd><ul class="simple">
-<li><p>Avoid reverse IP lookup when checking DB availability. This helped to solve long delays on misconfigured
-docker engines</p></li>
-<li><p>Add auto-detection of redis and amqp broker ports</p></li>
-<li><p>Fixed detection of all user/password combinations in URLs - helps in auto-detecting ports and testing
-connectivity</p></li>
-<li><p>Add possibility to create Admin user automatically when entering the image</p></li>
-<li><p>Automatically create system user when different user than <code class="docutils literal notranslate"><span class="pre">airflow</span></code> is used. Needed for OpenShift
-compatibility</p></li>
-<li><p>Allows to exec to <code class="docutils literal notranslate"><span class="pre">bash</span></code> or <code class="docutils literal notranslate"><span class="pre">python</span></code> if specified as parameters</p></li>
-<li><p>Remove <code class="docutils literal notranslate"><span class="pre">airflow</span></code> command if it is specified as first parameter of the <code class="docutils literal notranslate"><span class="pre">run</span></code> command</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-<li><dl class="simple">
-<dt>2.0.0</dt><dd><ul class="simple">
-<li><p>Initial release of the image based on Debian Buster</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-</ul>
-</div>
-<div class="section" id="changes-after-publishing-the-images">
-<h2>Changes after publishing the images<a class="headerlink" href="#changes-after-publishing-the-images" title="Permalink to this heading">¶</a></h2>
-<p>Occasionally our images need to be regenerated using newer <code class="docutils literal notranslate"><span class="pre">Dockerfiles</span></code> or constraints.
-This happens when an issue is found or a breaking change is released by our dependencies
-that invalidates the already released image, and regenerating the image makes it usable again.
-While we cannot assure 100% backwards compatibility when it happens, we at least document it
-here so that users affected can find the reason for the changes.</p>
-<table class="docutils align-default">
+  <div class="section" id="module-airflow.decorators.sensor">
+<span id="airflow-decorators-sensor"></span><h1><a class="reference internal" href="#module-airflow.decorators.sensor" title="airflow.decorators.sensor"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a><a class="headerlink" href="#module-airflow.decorators.sensor" 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: 9%" />
-<col style="width: 14%" />
-<col style="width: 28%" />
-<col style="width: 16%" />
-<col style="width: 32%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
 </colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Date</p></th>
-<th class="head"><p>Affected images</p></th>
-<th class="head"><p>Potentially breaking change</p></th>
-<th class="head"><p>Reason</p></th>
-<th class="head"><p>Link to Pull Request / Issue</p></th>
-</tr>
-</thead>
 <tbody>
-<tr class="row-even"><td><p>02 Aug 2024</p></td>
-<td><p>2.9.3</p></td>
-<td><ul class="simple">
-<li><p>The <code class="docutils literal notranslate"><span class="pre">apache-airflow-providers-fab</span></code>
-upgraded from 1.2.1 to 1.2.2</p></li>
-</ul>
-</td>
-<td><p>FAB provider logout
-did not work for 2.9.3</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/issues/40922">https://github.com/apache/airflow/issues/40922</a></p></td>
-</tr>
-<tr class="row-odd"><td><p>12 Mar 2024</p></td>
-<td><p>2.8.3</p></td>
-<td><ul class="simple">
-<li><p>The image was refreshed with new
-dependencies (pandas &lt; 2.2 and
-SMTP provider 1.6.1</p></li>
-</ul>
-</td>
-<td><p>Both dependencies
-caused breaking
-changes</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/pull/37748">https://github.com/apache/airflow/pull/37748</a>
-<a class="reference external" href="https://github.com/apache/airflow/pull/37701">https://github.com/apache/airflow/pull/37701</a></p></td>
-</tr>
-<tr class="row-even"><td><p>16 Dec 2023</p></td>
-<td><p>All 2..*</p></td>
-<td><ul class="simple">
-<li><p>The AIRFLOW_GID 500 was removed</p></li>
-<li><p>MySQL <code class="docutils literal notranslate"><span class="pre">apt</span></code> repository key changed.</p></li>
-</ul>
-</td>
-<td><p>MySQL repository is
-removed after the
-key expiry fiasco</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/issues/36231">https://github.com/apache/airflow/issues/36231</a></p></td>
-</tr>
-<tr class="row-odd"><td><p>17 June 2022</p></td>
-<td><p>2.2.5</p>
-<p>2.3.0-2.3.2</p>
-</td>
-<td><ul class="simple">
-<li><p>The <code class="docutils literal notranslate"><span class="pre">Authlib</span></code> library downgraded
-from 1.0.1 to 0.15.5 version</p></li>
-</ul>
-</td>
-<td><p>Flask App Builder
-not compatible with
-Authlib &gt;= 1.0.0</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/pull/24516">https://github.com/apache/airflow/pull/24516</a></p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.sensor.DecoratedSensorOperator" title="airflow.decorators.sensor.DecoratedSensorOperator"><code class="xref py py-obj docutils literal notranslate"><span class="pre">DecoratedSensorOperator</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>18 Jan 2022</p></td>
-<td><p>All 2.2.*, 2.1.*</p></td>
-<td><ul class="simple">
-<li><p>The AIRFLOW_GID 500 was removed</p></li>
-<li><p>MySQL <code class="docutils literal notranslate"><span class="pre">apt</span></code> repository key changed.</p></li>
-</ul>
-</td>
-<td><p>MySQL changed keys
-to sign their packages
-on 17 Jan 2022</p></td>
-<td><p><a class="reference external" href="https://github.com/apache/airflow/pull/20912">https://github.com/apache/airflow/pull/20912</a></p></td>
+</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.sensor.sensor_task" title="airflow.decorators.sensor.sensor_task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sensor_task</span></code></a>([python_callable])</p></td>
+<td><p>Wrap a function into an Airflow operator.</p></td>
 </tr>
 </tbody>
 </table>
+<dl class="py class">
+<dt class="sig sig-object py" id="airflow.decorators.sensor.DecoratedSensorOperator">
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">airflow.decorators.sensor.</span></span><span class="sig-name descname"><span class="pre">DecoratedSensorOperator</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">task_id</span></span></em>, <em class="sig-param"><span class [...]
+<dd><p>Bases: <a class="reference internal" href="../../sensors/python/index.html#airflow.sensors.python.PythonSensor" title="airflow.sensors.python.PythonSensor"><code class="xref py py-obj docutils literal notranslate"><span class="pre">airflow.sensors.python.PythonSensor</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> – A reference to an object that is callable</p></li>
+<li><p><strong>task_id</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><em>str</em></a>) – task Id</p></li>
+<li><p><strong>op_args</strong> – a list of positional arguments that will get unpacked when
+calling your callable (templated)</p></li>
+<li><p><strong>op_kwargs</strong> – a dictionary of keyword arguments that will get unpacked
+in your function (templated)</p></li>
+<li><p><strong>kwargs_to_upstream</strong> – 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.sensor.DecoratedSensorOperator.template_fields">
... 401693 lines suppressed ...