You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ep...@apache.org on 2024/01/19 11:52:46 UTC
(airflow-site) branch 2.8.1-docs created (now be6eb7636e)
This is an automated email from the ASF dual-hosted git repository.
ephraimanierobi pushed a change to branch 2.8.1-docs
in repository https://gitbox.apache.org/repos/asf/airflow-site.git
at be6eb7636e Add documentation for Apache Airflow 2.8.1
This branch includes the following new commits:
new be6eb7636e Add documentation for Apache Airflow 2.8.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.8.1
Posted by ep...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ephraimanierobi pushed a commit to branch 2.8.1-docs
in repository https://gitbox.apache.org/repos/asf/airflow-site.git
commit be6eb7636e3b0ed42503a8ec3fd07c2e4a590231
Author: Ephraim Anierobi <sp...@gmail.com>
AuthorDate: Fri Jan 19 12:51:29 2024 +0100
Add documentation for Apache Airflow 2.8.1
---
.../sbom/apache-airflow-sbom-2.8.0-python3.10.json | 24 +-
.../sbom/apache-airflow-sbom-2.8.0-python3.11.json | 24 +-
.../sbom/apache-airflow-sbom-2.8.0-python3.8.json | 24 +-
.../sbom/apache-airflow-sbom-2.8.0-python3.9.json | 24 +-
.../2.8.1}/.buildinfo | 2 +-
.../2.8.1/_api/airflow/decorators/base/index.html} | 1037 +-
.../decorators/branch_external_python/index.html} | 707 +-
.../airflow/decorators/branch_python/index.html} | 707 +-
.../decorators/branch_virtualenv/index.html} | 707 +-
.../airflow/decorators/external_python}/index.html | 385 +-
.../2.8.1/_api/airflow/decorators/index.html} | 866 +-
.../_api/airflow/decorators/python/index.html} | 704 +-
.../decorators/python_virtualenv}/index.html | 385 +-
.../_api/airflow/decorators/sensor/index.html} | 770 +-
.../airflow/decorators/setup_teardown/index.html} | 772 +-
.../airflow/decorators/short_circuit}/index.html | 385 +-
.../_api/airflow/decorators/task_group/index.html} | 746 +-
.../example_dags/example_bash_operator/index.html} | 749 +-
.../example_branch_datetime_operator/index.html} | 830 +-
.../index.html} | 741 +-
.../example_dags/example_branch_labels/index.html} | 741 +-
.../example_branch_operator/index.html} | 751 +-
.../example_branch_operator_decorator/index.html} | 752 +-
.../index.html} | 788 +-
.../example_dags/example_complex/index.html} | 741 +-
.../example_dags/example_datasets/index.html} | 761 +-
.../example_dynamic_task_mapping/index.html} | 754 +-
.../index.html} | 830 +-
.../example_external_task_marker_dag/index.html} | 770 +-
.../example_kubernetes_executor/index.html} | 757 +-
.../example_dags/example_latest_only/index.html} | 741 +-
.../example_latest_only_with_trigger/index.html} | 741 +-
.../example_local_kubernetes_executor/index.html} | 773 +-
.../example_nested_branch_dag/index.html} | 756 +-
.../example_params_trigger_ui/index.html} | 755 +-
.../example_params_ui_tutorial/index.html} | 756 +-
.../index.html} | 790 +-
.../example_python_decorator/index.html} | 785 +-
.../example_python_operator/index.html} | 786 +-
.../example_sensor_decorator/index.html} | 775 +-
.../example_dags/example_sensors/index.html} | 783 +-
.../example_setup_teardown/index.html} | 741 +-
.../example_setup_teardown_taskflow/index.html} | 752 +-
.../example_short_circuit_decorator/index.html} | 775 +-
.../example_short_circuit_operator/index.html} | 741 +-
.../example_dags/example_skip_dag/index.html} | 814 +-
.../example_subdag_operator/index.html} | 749 +-
.../example_dags/example_task_group/index.html} | 741 +-
.../example_task_group_decorator/index.html} | 835 +-
.../example_time_delta_sensor_async/index.html} | 742 +-
.../example_trigger_controller_dag/index.html} | 743 +-
.../example_trigger_target_dag/index.html} | 783 +-
.../airflow/example_dags/example_xcom/index.html} | 818 +-
.../example_dags/example_xcomargs/index.html} | 797 +-
.../2.8.1/_api/airflow/example_dags/index.html} | 770 +-
.../airflow/example_dags/libs/helper}/index.html | 422 +-
.../_api/airflow/example_dags/libs}/index.html | 382 +-
.../plugins/event_listener/index.html} | 767 +-
.../_api/airflow/example_dags/plugins}/index.html | 388 +-
.../plugins/listener_plugin/index.html} | 715 +-
.../example_dags/plugins/workday/index.html} | 818 +-
.../_api/airflow/example_dags/subdags}/index.html | 382 +-
.../example_dags/subdags/subdag/index.html} | 710 +-
.../_api/airflow/example_dags/tutorial/index.html} | 743 +-
.../airflow/example_dags/tutorial_dag/index.html} | 753 +-
.../tutorial_objectstorage/index.html} | 797 +-
.../example_dags/tutorial_taskflow_api/index.html} | 757 +-
.../tutorial_taskflow_api_virtualenv/index.html} | 777 +-
.../2.8.1/_api/airflow/exceptions/index.html | 1785 ++
.../2.8.1/_api/airflow/hooks/base/index.html} | 896 +-
.../2.8.1/_api/airflow/hooks/dbapi}/index.html | 366 +-
.../_api/airflow/hooks/filesystem/index.html} | 766 +-
.../2.8.1/_api/airflow/hooks}/index.html | 367 +-
.../_api/airflow/hooks/package_index/index.html} | 750 +-
.../_api/airflow/hooks/subprocess/index.html} | 738 +-
.../_api/airflow/models/baseoperator/index.html | 2178 +++
.../airflow/models/baseoperatorlink}/index.html | 428 +-
.../_api/airflow/models/connection/index.html} | 1005 +-
.../2.8.1/_api/airflow/models/dag/index.html | 3337 ++++
.../2.8.1/_api/airflow/models/dagbag/index.html} | 845 +-
.../2.8.1/_api/airflow/models/dagrun/index.html | 1773 ++
.../2.8.1/_api/airflow/models/param/index.html} | 1081 +-
.../_api/airflow/models/taskinstance/index.html | 2503 +++
.../airflow/models/taskinstancekey/index.html} | 736 +-
.../2.8.1/_api/airflow/models/variable/index.html} | 875 +-
.../2.8.1/_api/airflow/models/xcom/index.html} | 899 +-
.../2.8.1/_api/airflow/operators/bash/index.html} | 848 +-
.../_api/airflow/operators/branch/index.html} | 758 +-
.../_api/airflow/operators/datetime/index.html} | 750 +-
.../2.8.1/_api/airflow/operators/email/index.html} | 755 +-
.../2.8.1/_api/airflow/operators/empty/index.html} | 726 +-
.../airflow/operators/generic_transfer/index.html} | 755 +-
.../2.8.1/_api/airflow/operators}/index.html | 392 +-
.../_api/airflow/operators/latest_only/index.html} | 725 +-
.../2.8.1/_api/airflow/operators/python/index.html | 1616 ++
.../_api/airflow/operators/smooth/index.html} | 722 +-
.../_api/airflow/operators/subdag/index.html} | 799 +-
.../airflow/operators/trigger_dagrun/index.html} | 847 +-
.../_api/airflow/operators/weekday/index.html} | 758 +-
.../_api/airflow/secrets/base_secrets/index.html} | 794 +-
.../2.8.1/_api/airflow/secrets/cache/index.html} | 760 +-
.../secrets/environment_variables/index.html} | 762 +-
.../2.8.1/_api/airflow/secrets}/index.html | 427 +-
.../airflow/secrets/local_filesystem/index.html} | 831 +-
.../_api/airflow/secrets/metastore/index.html} | 723 +-
.../2.8.1/_api/airflow/sensors/base/index.html} | 869 +-
.../2.8.1/_api/airflow/sensors/bash/index.html} | 729 +-
.../_api/airflow/sensors/date_time/index.html} | 769 +-
.../_api/airflow/sensors/external_task/index.html} | 958 +-
.../_api/airflow/sensors/filesystem/index.html} | 731 +-
.../2.8.1/_api/airflow/sensors}/index.html | 383 +-
.../2.8.1/_api/airflow/sensors/python/index.html} | 728 +-
.../_api/airflow/sensors/time_delta/index.html} | 750 +-
.../_api/airflow/sensors/time_sensor/index.html} | 750 +-
.../2.8.1/_api/airflow/sensors/weekday/index.html} | 743 +-
.../_api/airflow/timetables/_cron}/index.html | 347 +-
.../2.8.1/_api/airflow/timetables/base/index.html} | 990 +-
.../_api/airflow/timetables/events/index.html} | 761 +-
.../2.8.1/_api/airflow/timetables}/index.html | 358 +-
.../_api/airflow/timetables/interval/index.html} | 836 +-
.../_api/airflow/timetables/simple/index.html} | 853 +-
.../_api/airflow/timetables/trigger/index.html} | 736 +-
.../2.8.1/_api/airflow/triggers/base/index.html} | 771 +-
.../airflow/triggers/external_task/index.html} | 777 +-
.../2.8.1/_api/airflow/triggers/file}/index.html | 432 +-
.../2.8.1/_api/airflow/triggers}/index.html | 358 +-
.../_api/airflow/triggers/temporal/index.html} | 727 +-
.../_api/airflow/triggers/testing/index.html} | 754 +-
.../2.8.1/_api/airflow/utils/state/index.html | 1448 ++
docs-archive/apache-airflow/2.8.1/_api/index.html | 1 +
.../apache-airflow/2.8.1/_images/add-dag-tags.png | Bin 0 -> 68537 bytes
.../apache-airflow/2.8.1/_images/add-role.png | Bin 0 -> 30509 bytes
.../apache-airflow/2.8.1/_images/airflow_erd.svg | 1638 ++
.../apache-airflow/2.8.1/_images/apache.jpg | Bin 0 -> 43364 bytes
.../2.8.1/_images/arch-diag-kubernetes.png | Bin 0 -> 21804 bytes
.../2.8.1/_images/arch-diag-kubernetes2.png | Bin 0 -> 86384 bytes
.../2.8.1/_images/arch-diag-logging.png | Bin 0 -> 25843 bytes
.../apache-airflow/2.8.1/_images/basic-dag.png | Bin 0 -> 5393 bytes
.../apache-airflow/2.8.1/_images/branch_note.png | Bin 0 -> 31771 bytes
.../2.8.1/_images/branch_with_trigger.png | Bin 0 -> 34081 bytes
.../2.8.1/_images/branch_without_trigger.png | Bin 0 -> 39815 bytes
.../apache-airflow/2.8.1/_images/calendar.png | Bin 0 -> 58726 bytes
.../2.8.1/_images/cli_completion.gif | Bin 0 -> 775263 bytes
docs-archive/apache-airflow/2.8.1/_images/code.png | Bin 0 -> 506092 bytes
.../2.8.1/_images/connection_create.png | Bin 0 -> 52889 bytes
.../2.8.1/_images/connection_edit.png | Bin 0 -> 31186 bytes
.../apache-airflow/2.8.1/_images/dag_doc.png | Bin 0 -> 40094 bytes
.../2.8.1/_images/dag_file_processing_diagram.png | Bin 0 -> 263825 bytes
.../2.8.1/_images/dag_serialization.png | Bin 0 -> 99917 bytes
.../apache-airflow/2.8.1/_images/dags-page-new.png | Bin 0 -> 483599 bytes
.../apache-airflow/2.8.1/_images/dags-page-old.png | Bin 0 -> 493009 bytes
docs-archive/apache-airflow/2.8.1/_images/dags.png | Bin 0 -> 211122 bytes
.../2.8.1/_images/dataset-scheduled-dags.png | Bin 0 -> 77225 bytes
.../apache-airflow/2.8.1/_images/datasets.png | Bin 0 -> 341201 bytes
.../default_instance_name_configuration.png | Bin 0 -> 154888 bytes
.../2.8.1/_images/demo_graph_view.png | Bin 0 -> 382210 bytes
.../2.8.1/_images/demo_grid_view.png | Bin 0 -> 65574 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.8.1/_images/duration.png | Bin 0 -> 150876 bytes
.../2.8.1/_images/edge_label_example.png | Bin 0 -> 24592 bytes
.../2.8.1/_images/email_connection.png | Bin 0 -> 59515 bytes
.../example_instance_name_configuration.png | Bin 0 -> 154915 bytes
.../2.8.1/_images/example_passing_conf.png | Bin 0 -> 41080 bytes
.../apache-airflow/2.8.1/_images/gantt.png | Bin 0 -> 352148 bytes
.../2.8.1/_images/graph-view-new.png | Bin 0 -> 56973 bytes
.../2.8.1/_images/graph-view-old.png | Bin 0 -> 54884 bytes
.../apache-airflow/2.8.1/_images/graph.png | Bin 0 -> 429818 bytes
...iz-5817c4b4cb6cd3ea7d604aa85ab3420b64a24446.svg | 200 +
...iz-66e404e292d46e7c601f518726fab5fd4133292f.svg | 142 +
docs-archive/apache-airflow/2.8.1/_images/grid.png | Bin 0 -> 249561 bytes
.../2.8.1/_images/grid_instance_details.png | Bin 0 -> 178129 bytes
.../2.8.1/_images/grid_mapped_task.png | Bin 0 -> 135753 bytes
.../2.8.1/_images/grid_run_details.png | Bin 0 -> 202106 bytes
.../2.8.1/_images/grid_task_group.png | Bin 0 -> 56287 bytes
.../2.8.1/_images/howto-owner-links.gif | Bin 0 -> 829619 bytes
.../2.8.1/_images/k8s-failed-pod.png | Bin 0 -> 18937 bytes
.../2.8.1/_images/k8s-happy-path.png | Bin 0 -> 17257 bytes
.../apache-airflow/2.8.1/_images/landing_times.png | Bin 0 -> 84125 bytes
.../2.8.1/_images/latest_only_with_trigger.png | Bin 0 -> 42887 bytes
.../2.8.1/_images/mapping-simple-graph.png | Bin 0 -> 13312 bytes
.../2.8.1/_images/mapping-simple-grid.png | Bin 0 -> 179670 bytes
.../apache-airflow/2.8.1/_images/new-role.png | Bin 0 -> 14115 bytes
.../2.8.1/_images/operator_extra_link.png | Bin 0 -> 90359 bytes
.../2.8.1/_images/run_task_on_celery_executor.png | Bin 0 -> 55939 bytes
.../2.8.1/_images/setup-teardown-complex.png | Bin 0 -> 114476 bytes
.../2.8.1/_images/setup-teardown-group.png | Bin 0 -> 48789 bytes
.../2.8.1/_images/setup-teardown-nesting.png | Bin 0 -> 83934 bytes
.../2.8.1/_images/setup-teardown-parallel.png | Bin 0 -> 43571 bytes
.../2.8.1/_images/setup-teardown-scope.png | Bin 0 -> 62951 bytes
.../2.8.1/_images/setup-teardown-setup-group.png | Bin 0 -> 76759 bytes
.../2.8.1/_images/setup-teardown-simple.png | Bin 0 -> 29606 bytes
.../apache-airflow/2.8.1/_images/subdag_after.png | Bin 0 -> 30245 bytes
.../apache-airflow/2.8.1/_images/subdag_before.png | Bin 0 -> 70382 bytes
.../apache-airflow/2.8.1/_images/subdag_zoom.png | Bin 0 -> 145017 bytes
.../apache-airflow/2.8.1/_images/task_doc.png | Bin 0 -> 245714 bytes
.../apache-airflow/2.8.1/_images/task_group.gif | Bin 0 -> 137189 bytes
.../2.8.1/_images/task_lifecycle_diagram.png | Bin 0 -> 32164 bytes
.../2.8.1/_images/task_manual_vs_scheduled.png | Bin 0 -> 5686 bytes
.../2.8.1/_images/template_field_renderer_path.png | Bin 0 -> 64442 bytes
.../apache-airflow/2.8.1/_images/tree-view-new.png | Bin 0 -> 36934 bytes
.../apache-airflow/2.8.1/_images/tree-view-old.png | Bin 0 -> 21601 bytes
.../2.8.1/_images/trigger-dag-tutorial-form.png | Bin 0 -> 247468 bytes
.../2.8.1/_images/tutorial-pipeline-1.png | Bin 0 -> 566225 bytes
.../2.8.1/_images/tutorial-pipeline-2.png | Bin 0 -> 345529 bytes
.../2.8.1/_images/ui-alert-message.png | Bin 0 -> 7909 bytes
.../2.8.1/_images/ui-timezone-chooser.png | Bin 0 -> 16644 bytes
.../2.8.1/_images/usage_cli_export.png | Bin 0 -> 397830 bytes
.../2.8.1/_images/usage_cli_imgcat.png | Bin 0 -> 475224 bytes
.../2.8.1/_images/variable_hidden.png | Bin 0 -> 55331 bytes
.../apache-airflow/2.8.1/_images/watcher.png | Bin 0 -> 41592 bytes
.../2.8.1/_modules/airflow/decorators.html} | 403 +-
.../2.8.1/_modules/airflow/decorators/base.html | 1520 ++
.../decorators/branch_external_python.html} | 381 +-
.../airflow/decorators/branch_python.html} | 381 +-
.../airflow/decorators/branch_virtualenv.html} | 381 +-
.../2.8.1/_modules/airflow/decorators/python.html} | 404 +-
.../2.8.1/_modules/airflow/decorators/sensor.html} | 400 +-
.../airflow/decorators/setup_teardown.html} | 408 +-
.../_modules/airflow/decorators/task_group.html} | 535 +-
.../example_dags/example_bash_operator.html} | 398 +-
.../example_branch_datetime_operator.html} | 426 +-
.../example_branch_day_of_week_operator.html} | 382 +-
.../example_dags/example_branch_labels.html} | 367 +-
.../example_dags/example_branch_operator.html} | 774 +-
.../example_branch_operator_decorator.html} | 462 +-
.../example_branch_python_dop_operator_3.html} | 382 +-
.../airflow/example_dags/example_complex.html} | 823 +-
.../airflow/example_dags/example_datasets.html} | 452 +-
.../example_dynamic_task_mapping.html} | 360 +-
...c_task_mapping_with_no_taskflow_operators.html} | 384 +-
.../example_external_task_marker_dag.html} | 419 +-
.../example_dags/example_kubernetes_executor.html} | 560 +-
.../airflow/example_dags/example_latest_only.html} | 359 +-
.../example_latest_only_with_trigger.html} | 370 +-
.../example_local_kubernetes_executor.html} | 393 +-
.../example_dags/example_nested_branch_dag.html} | 378 +-
.../example_dags/example_params_trigger_ui.html} | 429 +-
.../example_dags/example_params_ui_tutorial.html} | 698 +-
.../example_passing_params_via_test_command.html} | 408 +-
.../example_dags/example_python_decorator.html} | 457 +-
.../example_dags/example_python_operator.html} | 468 +-
.../example_dags/example_sensor_decorator.html} | 389 +-
.../airflow/example_dags/example_sensors.html} | 448 +-
.../example_dags/example_setup_teardown.html} | 370 +-
.../example_setup_teardown_taskflow.html} | 427 +-
.../example_short_circuit_decorator.html} | 382 +-
.../example_short_circuit_operator.html} | 387 +-
.../airflow/example_dags/example_skip_dag.html} | 392 +-
.../example_dags/example_subdag_operator.html} | 383 +-
.../airflow/example_dags/example_task_group.html} | 386 +-
.../example_task_group_decorator.html} | 401 +-
.../example_time_delta_sensor_async.html} | 363 +-
.../example_trigger_controller_dag.html} | 363 +-
.../example_dags/example_trigger_target_dag.html} | 377 +-
.../airflow/example_dags/example_xcom.html} | 416 +-
.../airflow/example_dags/example_xcomargs.html} | 387 +-
.../airflow/example_dags/libs/helper.html} | 344 +-
.../example_dags/plugins/event_listener.html} | 479 +-
.../example_dags/plugins/listener_plugin.html} | 348 +-
.../airflow/example_dags/plugins/workday.html} | 425 +-
.../airflow/example_dags/subdags/subdag.html} | 377 +-
.../_modules/airflow/example_dags/tutorial.html} | 447 +-
.../airflow/example_dags/tutorial_dag.html} | 457 +-
.../example_dags/tutorial_objectstorage.html} | 457 +-
.../example_dags/tutorial_taskflow_api.html} | 428 +-
.../tutorial_taskflow_api_virtualenv.html} | 409 +-
.../2.8.1/_modules/airflow/exceptions.html} | 880 +-
.../2.8.1/_modules/airflow/hooks/base.html} | 506 +-
.../2.8.1/_modules/airflow/hooks/filesystem.html} | 411 +-
.../_modules/airflow/hooks/package_index.html} | 416 +-
.../2.8.1/_modules/airflow/hooks/subprocess.html} | 428 +-
.../2.8.1/_modules/airflow/macros.html} | 413 +-
.../_modules/airflow/models/baseoperator.html | 2763 ++++
.../_modules/airflow/models/baseoperatorlink.html} | 379 +-
.../2.8.1/_modules/airflow/models/connection.html | 1384 ++
.../2.8.1/_modules/airflow/models/dag.html | 4940 ++++++
.../2.8.1/_modules/airflow/models/dagbag.html | 1552 ++
.../2.8.1/_modules/airflow/models/dagrun.html | 2384 +++
.../2.8.1/_modules/airflow/models/param.html} | 964 +-
.../_modules/airflow/models/taskinstance.html | 4434 +++++
.../_modules/airflow/models/taskinstancekey.html} | 376 +-
.../2.8.1/_modules/airflow/models/variable.html} | 914 +-
.../2.8.1/_modules/airflow/models/xcom.html | 1730 ++
.../2.8.1/_modules/airflow/operators/bash.html} | 825 +-
.../2.8.1/_modules/airflow/operators/branch.html} | 388 +-
.../_modules/airflow/operators/datetime.html} | 440 +-
.../2.8.1/_modules/airflow/operators/email.html} | 412 +-
.../2.8.1/_modules/airflow/operators/empty.html} | 361 +-
.../airflow/operators/generic_transfer.html} | 430 +-
.../_modules/airflow/operators/latest_only.html} | 398 +-
.../2.8.1/_modules/airflow/operators/python.html | 1818 ++
.../2.8.1/_modules/airflow/operators/smooth.html} | 360 +-
.../2.8.1/_modules/airflow/operators/subdag.html} | 697 +-
.../airflow/operators/trigger_dagrun.html} | 876 +-
.../2.8.1/_modules/airflow/operators/weekday.html} | 448 +-
.../2.8.1/_modules/airflow/policies.html} | 816 +-
.../2.8.1/_modules/airflow/secrets.html} | 358 +-
.../_modules/airflow/secrets/base_secrets.html} | 477 +-
.../2.8.1/_modules/airflow/secrets/cache.html} | 453 +-
.../airflow/secrets/environment_variables.html} | 384 +-
.../airflow/secrets/local_filesystem.html} | 789 +-
.../2.8.1/_modules/airflow/secrets/metastore.html} | 411 +-
.../2.8.1/_modules/airflow/sensors/base.html} | 1011 +-
.../2.8.1/_modules/airflow/sensors/bash.html} | 436 +-
.../2.8.1/_modules/airflow/sensors/date_time.html} | 424 +-
.../_modules/airflow/sensors/external_task.html | 1396 ++
.../_modules/airflow/sensors/filesystem.html} | 399 +-
.../2.8.1/_modules/airflow/sensors/python.html} | 402 +-
.../_modules/airflow/sensors/time_delta.html} | 401 +-
.../_modules/airflow/sensors/time_sensor.html} | 406 +-
.../2.8.1/_modules/airflow/sensors/weekday.html} | 437 +-
.../2.8.1/_modules/airflow/timetables/_cron.html} | 751 +-
.../2.8.1/_modules/airflow/timetables/base.html} | 557 +-
.../2.8.1/_modules/airflow/timetables/events.html} | 456 +-
.../_modules/airflow/timetables/interval.html} | 589 +-
.../2.8.1/_modules/airflow/timetables/simple.html} | 516 +-
.../_modules/airflow/timetables/trigger.html} | 436 +-
.../2.8.1/_modules/airflow/triggers/base.html} | 437 +-
.../_modules/airflow/triggers/external_task.html} | 530 +-
.../2.8.1/_modules/airflow/triggers/file.html} | 395 +-
.../2.8.1/_modules/airflow/triggers/temporal.html} | 410 +-
.../2.8.1/_modules/airflow/triggers/testing.html} | 375 +-
.../2.8.1/_modules/airflow/utils/state.html} | 831 +-
.../2.8.1/_modules}/index.html | 430 +-
.../_api/airflow/decorators/base/index.rst.txt | 222 +
.../branch_external_python/index.rst.txt | 34 +
.../airflow/decorators/branch_python/index.rst.txt | 34 +
.../decorators/branch_virtualenv/index.rst.txt | 34 +
.../decorators/external_python/index.rst.txt | 6 +
.../_sources/_api/airflow/decorators/index.rst.txt | 139 +
.../_api/airflow/decorators/python/index.rst.txt | 30 +
.../decorators/python_virtualenv/index.rst.txt | 6 +
.../_api/airflow/decorators/sensor/index.rst.txt | 75 +
.../decorators/setup_teardown/index.rst.txt | 60 +
.../airflow/decorators/short_circuit/index.rst.txt | 6 +
.../airflow/decorators/task_group/index.rst.txt | 63 +
.../example_bash_operator/index.rst.txt | 22 +
.../example_branch_datetime_operator/index.rst.txt | 63 +
.../index.rst.txt | 18 +
.../example_branch_labels/index.rst.txt | 18 +
.../example_branch_operator/index.rst.txt | 25 +
.../index.rst.txt | 26 +
.../index.rst.txt | 45 +
.../example_dags/example_complex/index.rst.txt | 18 +
.../example_dags/example_datasets/index.rst.txt | 41 +
.../example_dynamic_task_mapping/index.rst.txt | 27 +
.../index.rst.txt | 76 +
.../example_external_task_marker_dag/index.rst.txt | 44 +
.../example_kubernetes_executor/index.rst.txt | 26 +
.../example_dags/example_latest_only/index.rst.txt | 18 +
.../example_latest_only_with_trigger/index.rst.txt | 18 +
.../index.rst.txt | 34 +
.../example_nested_branch_dag/index.rst.txt | 29 +
.../example_params_trigger_ui/index.rst.txt | 29 +
.../example_params_ui_tutorial/index.rst.txt | 30 +
.../index.rst.txt | 51 +
.../example_python_decorator/index.rst.txt | 45 +
.../example_python_operator/index.rst.txt | 47 +
.../example_sensor_decorator/index.rst.txt | 39 +
.../example_dags/example_sensors/index.rst.txt | 38 +
.../example_setup_teardown/index.rst.txt | 18 +
.../example_setup_teardown_taskflow/index.rst.txt | 27 +
.../example_short_circuit_decorator/index.rst.txt | 39 +
.../example_short_circuit_operator/index.rst.txt | 18 +
.../example_dags/example_skip_dag/index.rst.txt | 63 +
.../example_subdag_operator/index.rst.txt | 23 +
.../example_dags/example_task_group/index.rst.txt | 18 +
.../example_task_group_decorator/index.rst.txt | 71 +
.../example_time_delta_sensor_async/index.rst.txt | 19 +
.../example_trigger_controller_dag/index.rst.txt | 20 +
.../example_trigger_target_dag/index.rst.txt | 45 +
.../example_dags/example_xcom/index.rst.txt | 68 +
.../example_dags/example_xcomargs/index.rst.txt | 52 +
.../_api/airflow/example_dags/index.rst.txt | 67 +
.../airflow/example_dags/libs/helper/index.rst.txt | 22 +
.../_api/airflow/example_dags/libs/index.rst.txt | 15 +
.../plugins/event_listener/index.rst.txt | 63 +
.../airflow/example_dags/plugins/index.rst.txt | 17 +
.../plugins/listener_plugin/index.rst.txt | 36 +
.../example_dags/plugins/workday/index.rst.txt | 96 +
.../airflow/example_dags/subdags/index.rst.txt | 15 +
.../example_dags/subdags/subdag/index.rst.txt | 34 +
.../airflow/example_dags/tutorial/index.rst.txt | 20 +
.../example_dags/tutorial_dag/index.rst.txt | 28 +
.../tutorial_objectstorage/index.rst.txt | 51 +
.../tutorial_taskflow_api/index.rst.txt | 29 +
.../tutorial_taskflow_api_virtualenv/index.rst.txt | 38 +
.../_sources/_api/airflow/exceptions/index.rst.txt | 535 +
.../_sources/_api/airflow/hooks/base/index.rst.txt | 193 +
.../_api/airflow/hooks/dbapi/index.rst.txt | 11 +
.../_api/airflow/hooks/filesystem/index.rst.txt | 84 +
.../_sources/_api/airflow/hooks/index.rst.txt | 24 +
.../_api/airflow/hooks/package_index/index.rst.txt | 73 +
.../_api/airflow/hooks/subprocess/index.rst.txt | 64 +
.../_api/airflow/models/baseoperator/index.rst.txt | 870 +
.../airflow/models/baseoperatorlink/index.rst.txt | 55 +
.../_api/airflow/models/connection/index.rst.txt | 221 +
.../_sources/_api/airflow/models/dag/index.rst.txt | 1296 ++
.../_api/airflow/models/dagbag/index.rst.txt | 142 +
.../_api/airflow/models/dagrun/index.rst.txt | 432 +
.../_api/airflow/models/param/index.rst.txt | 249 +
.../_api/airflow/models/taskinstance/index.rst.txt | 863 +
.../airflow/models/taskinstancekey/index.rst.txt | 78 +
.../_api/airflow/models/variable/index.rst.txt | 166 +
.../_api/airflow/models/xcom/index.rst.txt | 169 +
.../_api/airflow/operators/bash/index.rst.txt | 167 +
.../_api/airflow/operators/branch/index.rst.txt | 75 +
.../_api/airflow/operators/datetime/index.rst.txt | 66 +
.../_api/airflow/operators/email/index.rst.txt | 69 +
.../_api/airflow/operators/empty/index.rst.txt | 49 +
.../operators/generic_transfer/index.rst.txt | 71 +
.../_sources/_api/airflow/operators/index.rst.txt | 31 +
.../airflow/operators/latest_only/index.rst.txt | 54 +
.../_api/airflow/operators/python/index.rst.txt | 441 +
.../_api/airflow/operators/smooth/index.rst.txt | 47 +
.../_api/airflow/operators/subdag/index.rst.txt | 98 +
.../airflow/operators/trigger_dagrun/index.rst.txt | 124 +
.../_api/airflow/operators/weekday/index.rst.txt | 96 +
.../airflow/secrets/base_secrets/index.rst.txt | 103 +
.../_api/airflow/secrets/cache/index.rst.txt | 75 +
.../secrets/environment_variables/index.rst.txt | 78 +
.../_sources/_api/airflow/secrets/index.rst.txt | 57 +
.../airflow/secrets/local_filesystem/index.rst.txt | 117 +
.../_api/airflow/secrets/metastore/index.rst.txt | 56 +
.../_api/airflow/sensors/base/index.rst.txt | 151 +
.../_api/airflow/sensors/bash/index.rst.txt | 59 +
.../_api/airflow/sensors/date_time/index.rst.txt | 90 +
.../airflow/sensors/external_task/index.rst.txt | 216 +
.../_api/airflow/sensors/filesystem/index.rst.txt | 59 +
.../_sources/_api/airflow/sensors/index.rst.txt | 28 +
.../_api/airflow/sensors/python/index.rst.txt | 57 +
.../_api/airflow/sensors/time_delta/index.rst.txt | 72 +
.../_api/airflow/sensors/time_sensor/index.rst.txt | 70 +
.../_api/airflow/sensors/weekday/index.rst.txt | 81 +
.../_api/airflow/timetables/_cron/index.rst.txt | 41 +
.../_api/airflow/timetables/base/index.rst.txt | 255 +
.../_api/airflow/timetables/events/index.rst.txt | 99 +
.../_sources/_api/airflow/timetables/index.rst.txt | 19 +
.../_api/airflow/timetables/interval/index.rst.txt | 146 +
.../_api/airflow/timetables/simple/index.rst.txt | 160 +
.../_api/airflow/timetables/trigger/index.rst.txt | 82 +
.../_api/airflow/triggers/base/index.rst.txt | 105 +
.../airflow/triggers/external_task/index.rst.txt | 96 +
.../_api/airflow/triggers/file/index.rst.txt | 43 +
.../_sources/_api/airflow/triggers/index.rst.txt | 19 +
.../_api/airflow/triggers/temporal/index.rst.txt | 65 +
.../_api/airflow/triggers/testing/index.rst.txt | 90 +
.../_api/airflow/utils/state/index.rst.txt | 300 +
.../cluster-policies.rst.txt | 177 +
.../dag-serialization.rst.txt | 118 +
.../administration-and-deployment/index.rst.txt | 36 +
.../kubernetes.rst.txt | 62 +
.../administration-and-deployment/lineage.rst.txt | 113 +
.../listeners.rst.txt | 76 +
.../advanced-logging-configuration.rst.txt | 157 +
.../logging-monitoring/callbacks.rst.txt | 97 +
.../logging-monitoring/check-health.rst.txt | 158 +
.../logging-monitoring/errors.rst.txt | 112 +
.../logging-monitoring/index.rst.txt | 40 +
.../logging-architecture.rst.txt | 47 +
.../logging-monitoring/logging-tasks.rst.txt | 165 +
.../logging-monitoring/metrics.rst.txt | 284 +
.../tracking-user-activity.rst.txt | 39 +
.../modules_management.rst.txt | 385 +
.../administration-and-deployment/pools.rst.txt | 90 +
.../priority-weight.rst.txt | 64 +
.../production-deployment.rst.txt | 296 +
.../scheduler.rst.txt | 390 +
.../authoring-and-scheduling/connections.rst.txt | 51 +
.../dagfile-processing.rst.txt | 47 +
.../authoring-and-scheduling/datasets.rst.txt | 238 +
.../authoring-and-scheduling/deferring.rst.txt | 232 +
.../dynamic-task-mapping.rst.txt | 576 +
.../authoring-and-scheduling/index.rst.txt | 44 +
.../authoring-and-scheduling/plugins.rst.txt | 343 +
.../authoring-and-scheduling/serializers.rst.txt | 129 +
.../authoring-and-scheduling/timetable.rst.txt | 299 +
.../authoring-and-scheduling/timezone.rst.txt | 193 +
.../2.8.1/_sources/best-practices.rst.txt | 1111 ++
.../_sources/cli-and-env-variables-ref.rst.txt | 111 +
.../2.8.1/_sources/configurations-ref.rst.txt | 52 +
.../2.8.1/_sources/core-concepts/dag-run.rst.txt | 297 +
.../2.8.1/_sources/core-concepts/dags.rst.txt | 906 +
.../_sources/core-concepts/executor/celery.rst.txt | 229 +
.../executor/celery_kubernetes.rst.txt | 56 +
.../_sources/core-concepts/executor/dask.rst.txt | 56 +
.../_sources/core-concepts/executor/debug.rst.txt | 104 +
.../_sources/core-concepts/executor/index.rst.txt | 204 +
.../core-concepts/executor/kubernetes.rst.txt | 290 +
.../_sources/core-concepts/executor/local.rst.txt | 57 +
.../executor/local_kubernetes.rst.txt | 37 +
.../core-concepts/executor/sequential.rst.txt | 26 +
.../2.8.1/_sources/core-concepts/index.rst.txt | 52 +
.../_sources/core-concepts/objectstorage.rst.txt | 324 +
.../2.8.1/_sources/core-concepts/operators.rst.txt | 285 +
.../2.8.1/_sources/core-concepts/overview.rst.txt | 238 +
.../2.8.1/_sources/core-concepts/params.rst.txt | 344 +
.../2.8.1/_sources/core-concepts/sensors.rst.txt | 32 +
.../2.8.1/_sources/core-concepts/taskflow.rst.txt | 208 +
.../2.8.1/_sources/core-concepts/tasks.rst.txt | 338 +
.../2.8.1/_sources/core-concepts/variables.rst.txt | 48 +
.../2.8.1/_sources/core-concepts/xcoms.rst.txt | 102 +
.../2.8.1/_sources/database-erd-ref.rst.txt | 38 +
.../2.8.1/_sources/deprecated-rest-api-ref.rst.txt | 127 +
.../2.8.1/_sources/extra-packages-ref.rst.txt | 470 +
.../apache-airflow/2.8.1/_sources/faq.rst.txt | 513 +
.../2.8.1/_sources/howto/add-dag-tags.rst.txt | 44 +
.../2.8.1/_sources/howto/add-owner-links.rst.txt | 50 +
.../2.8.1/_sources/howto/connection.rst.txt | 515 +
.../_sources/howto/create-custom-decorator.rst.txt | 124 +
.../2.8.1/_sources/howto/custom-operator.rst.txt | 349 +
.../_sources/howto/custom-view-plugin.rst.txt | 76 +
.../2.8.1/_sources/howto/customize-ui.rst.txt | 173 +
.../2.8.1/_sources/howto/define-extra-link.rst.txt | 172 +
.../_sources/howto/docker-compose/index.rst.txt | 417 +
.../_sources/howto/dynamic-dag-generation.rst.txt | 220 +
.../2.8.1/_sources/howto/email-config.rst.txt | 194 +
.../_sources/howto/export-more-env-vars.rst.txt | 52 +
.../2.8.1/_sources/howto/index.rst.txt | 55 +
.../2.8.1/_sources/howto/listener-plugin.rst.txt | 95 +
.../2.8.1/_sources/howto/notifications.rst.txt | 80 +
.../2.8.1/_sources/howto/operator/bash.rst.txt | 160 +
.../2.8.1/_sources/howto/operator/datetime.rst.txt | 74 +
.../howto/operator/external_task_sensor.rst.txt | 88 +
.../2.8.1/_sources/howto/operator/file.rst.txt | 33 +
.../2.8.1/_sources/howto/operator/index.rst.txt | 38 +
.../2.8.1/_sources/howto/operator/python.rst.txt | 483 +
.../2.8.1/_sources/howto/operator/time.rst.txt | 78 +
.../2.8.1/_sources/howto/operator/weekday.rst.txt | 44 +
.../2.8.1/_sources/howto/run-behind-proxy.rst.txt | 92 +
.../2.8.1/_sources/howto/run-with-systemd.rst.txt | 40 +
.../2.8.1/_sources/howto/set-config.rst.txt | 192 +
.../2.8.1/_sources/howto/set-up-database.rst.txt | 498 +
.../_sources/howto/setup-and-teardown.rst.txt | 233 +
.../2.8.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.8.1/_sources/howto/usage-cli.rst.txt | 407 +
.../2.8.1/_sources/howto/variable.rst.txt | 76 +
.../apache-airflow/2.8.1/_sources/index.rst.txt | 177 +
.../_sources/installation/dependencies.rst.txt | 108 +
.../2.8.1/_sources/installation/index.rst.txt | 388 +
.../installation/installing-from-pypi.rst.txt | 373 +
.../installation/installing-from-sources.rst.txt | 155 +
.../_sources/installation/prerequisites.rst.txt | 61 +
.../installation/setting-up-the-database.rst.txt | 39 +
.../installation/supported-versions.rst.txt | 69 +
.../2.8.1/_sources/installation/upgrading.rst.txt | 279 +
.../2.8.1/_sources/integration.rst.txt | 38 +
.../apache-airflow/2.8.1/_sources/license.rst.txt | 201 +
.../2.8.1/_sources/migrations-ref.rst.txt | 338 +
.../2.8.1/_sources/operators-and-hooks-ref.rst.txt | 128 +
.../2.8.1/_sources/privacy_notice.rst.txt | 23 +
.../apache-airflow/2.8.1/_sources/project.rst.txt | 117 +
.../_sources/public-airflow-interface.rst.txt | 461 +
.../2.8.1/_sources/release-process.rst.txt | 97 +
.../2.8.1/_sources/release_notes.rst.txt | 23 +
.../2.8.1/_sources/security/access-control.rst.txt | 275 +
.../2.8.1/_sources/security/api.rst.txt | 167 +
.../2.8.1/_sources/security/audit_logs.rst.txt | 67 +
.../2.8.1/_sources/security/flower.rst.txt | 62 +
.../2.8.1/_sources/security/index.rst.txt | 36 +
.../2.8.1/_sources/security/kerberos.rst.txt | 188 +
.../security/releasing_security_patches.rst.txt | 49 +
.../2.8.1/_sources/security/sbom.rst.txt | 31 +
.../2.8.1/_sources/security/secrets/fernet.rst.txt | 63 +
.../2.8.1/_sources/security/secrets/index.rst.txt | 37 +
.../security/secrets/mask-sensitive-values.rst.txt | 79 +
.../security/secrets/secrets-backend/index.rst.txt | 121 +
.../local-filesystem-secrets-backend.rst.txt | 145 +
.../2.8.1/_sources/security/security_model.rst.txt | 274 +
.../2.8.1/_sources/security/webserver.rst.txt | 321 +
.../2.8.1/_sources/security/workload.rst.txt | 52 +
.../2.8.1/_sources/stable-rest-api-ref.rst.txt | 23 +
.../apache-airflow/2.8.1/_sources/start.rst.txt | 137 +
.../2.8.1/_sources/templates-ref.rst.txt | 200 +
.../2.8.1/_sources/tutorial/fundamentals.rst.txt | 406 +
.../2.8.1/_sources/tutorial/index.rst.txt | 29 +
.../2.8.1/_sources/tutorial/objectstorage.rst.txt | 128 +
.../2.8.1/_sources/tutorial/pipeline.rst.txt | 332 +
.../2.8.1/_sources/tutorial/taskflow.rst.txt | 638 +
.../apache-airflow/2.8.1/_sources/ui.rst.txt | 187 +
docs-archive/apache-airflow/2.8.1/_specs/v1.yaml | 5366 ++++++
...-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css | 1 +
.../2.8.1/_sphinx_design_static/design-tabs.js | 27 +
.../2.8.1/_static/_gen/css/main-custom.min.css | 1 +
.../2.8.1/_static/_gen/css/main.min.css | 7 +
.../apache-airflow/2.8.1/_static/_gen/js/docs.js | 1 +
.../_sphinx_javascript_frameworks_compat.js | 134 +
.../apache-airflow/2.8.1/_static/basic.css | 899 +
.../apache-airflow/2.8.1/_static/check-solid.svg | 4 +
.../apache-airflow/2.8.1/_static/clipboard.min.js | 7 +
.../apache-airflow/2.8.1/_static/copy-button.svg | 5 +
.../apache-airflow/2.8.1/_static/copybutton.css | 94 +
.../apache-airflow/2.8.1/_static/copybutton.js | 248 +
.../2.8.1/_static/copybutton_funcs.js | 73 +
.../apache-airflow/2.8.1/_static/custom.css | 33 +
...-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css | 1 +
.../apache-airflow/2.8.1/_static/design-tabs.js | 27 +
.../apache-airflow/2.8.1/_static/doctools.js | 156 +
.../2.8.1/_static/documentation_options.js | 14 +
.../2.8.1/_static/exampleinclude.css | 86 +
docs-archive/apache-airflow/2.8.1/_static/file.png | Bin 0 -> 286 bytes
.../apache-airflow/2.8.1/_static/gh-jira-links.js | 36 +
.../apache-airflow/2.8.1/_static/graphviz.css | 19 +
.../apache-airflow/2.8.1/_static/jquery-3.6.0.js | 10881 ++++++++++++
.../apache-airflow/2.8.1/_static/jquery.js | 2 +
.../apache-airflow/2.8.1/_static/js/globaltoc.js | 24 +
.../apache-airflow/2.8.1/_static/language_data.js | 199 +
.../apache-airflow/2.8.1/_static/minus.png | Bin 0 -> 90 bytes
.../apache-airflow/2.8.1/_static/pin_32.png | Bin 0 -> 1201 bytes
docs-archive/apache-airflow/2.8.1/_static/plus.png | Bin 0 -> 90 bytes
.../apache-airflow/2.8.1/_static/pygments.css | 75 +
docs-archive/apache-airflow/2.8.1/_static/redoc.js | 103 +
.../apache-airflow/2.8.1/_static/searchtools.js | 566 +
.../2.8.1/_static/sphinx_highlight.js | 144 +
.../2.8.1/_static/underscore-1.13.1.js | 2042 +++
.../apache-airflow/2.8.1/_static/underscore.js | 6 +
.../cluster-policies.html} | 861 +-
.../dag-serialization.html} | 402 +-
.../administration-and-deployment}/index.html | 394 +-
.../administration-and-deployment/kubernetes.html} | 366 +-
.../administration-and-deployment/lineage.html} | 405 +-
.../administration-and-deployment/listeners.html} | 370 +-
.../advanced-logging-configuration.html} | 758 +-
.../logging-monitoring/callbacks.html} | 436 +-
.../logging-monitoring/check-health.html} | 717 +-
.../logging-monitoring/errors.html} | 688 +-
.../logging-monitoring}/index.html | 359 +-
.../logging-monitoring/logging-architecture.html} | 367 +-
.../logging-monitoring/logging-tasks.html} | 732 +-
.../logging-monitoring/metrics.html} | 1041 +-
.../tracking-user-activity.html} | 365 +-
.../modules_management.html} | 881 +-
.../administration-and-deployment/pools.html} | 382 +-
.../priority-weight.html} | 365 +-
.../production-deployment.html} | 679 +-
.../administration-and-deployment/scheduler.html} | 896 +-
.../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.8.1/airflow.sh | 39 +
.../authoring-and-scheduling/connections.html} | 347 +-
.../dagfile-processing.html} | 346 +-
.../2.8.1/authoring-and-scheduling/datasets.html} | 774 +-
.../2.8.1/authoring-and-scheduling/deferring.html} | 765 +-
.../dynamic-task-mapping.html | 1592 ++
.../2.8.1/authoring-and-scheduling}/index.html | 378 +-
.../2.8.1/authoring-and-scheduling/plugins.html} | 734 +-
.../authoring-and-scheduling/serializers.html} | 710 +-
.../2.8.1/authoring-and-scheduling/timetable.html} | 887 +-
.../2.8.1/authoring-and-scheduling/timezone.html} | 758 +-
.../apache-airflow/2.8.1/best-practices.html | 1942 +++
docs-archive/apache-airflow/2.8.1/changelog.html | 1 +
.../2.8.1/cli-and-env-variables-ref.html | 5993 +++++++
docs-archive/apache-airflow/2.8.1/cli-ref.html | 1 +
docs-archive/apache-airflow/2.8.1/concepts.html | 1 +
.../2.8.1/concepts/cluster-policies.html | 1 +
.../apache-airflow/2.8.1/concepts/connections.html | 1 +
.../2.8.1/concepts/dagfile-processing.html | 1 +
.../apache-airflow/2.8.1/concepts/dags.html | 1 +
.../apache-airflow/2.8.1/concepts/datasets.html | 1 +
.../apache-airflow/2.8.1/concepts/deferring.html | 1 +
.../2.8.1/concepts/dynamic-task-mapping.html | 1 +
.../apache-airflow/2.8.1/concepts/index.html | 1 +
.../apache-airflow/2.8.1/concepts/operators.html | 1 +
.../apache-airflow/2.8.1/concepts/overview.html | 1 +
.../apache-airflow/2.8.1/concepts/params.html | 1 +
.../apache-airflow/2.8.1/concepts/pools.html | 1 +
.../2.8.1/concepts/priority-weight.html | 1 +
.../apache-airflow/2.8.1/concepts/scheduler.html | 1 +
.../apache-airflow/2.8.1/concepts/sensors.html | 1 +
.../apache-airflow/2.8.1/concepts/taskflow.html | 1 +
.../apache-airflow/2.8.1/concepts/tasks.html | 1 +
.../apache-airflow/2.8.1/concepts/timetable.html | 1 +
.../apache-airflow/2.8.1/concepts/variables.html | 1 +
.../apache-airflow/2.8.1/concepts/xcoms.html | 1 +
.../apache-airflow/2.8.1/configurations-ref.html | 8254 +++++++++
.../2.8.1/core-concepts/dag-run.html} | 883 +-
.../apache-airflow/2.8.1/core-concepts/dags.html | 1905 +++
.../2.8.1/core-concepts/executor/celery.html} | 779 +-
.../core-concepts/executor/celery_kubernetes.html} | 386 +-
.../2.8.1/core-concepts/executor/dask.html} | 378 +-
.../2.8.1/core-concepts/executor/debug.html} | 429 +-
.../2.8.1/core-concepts/executor/index.html} | 775 +-
.../2.8.1/core-concepts/executor/kubernetes.html} | 1075 +-
.../2.8.1/core-concepts/executor/local.html} | 384 +-
.../core-concepts/executor/local_kubernetes.html} | 370 +-
.../2.8.1/core-concepts/executor/sequential.html} | 362 +-
.../2.8.1/core-concepts}/index.html | 415 +-
.../2.8.1/core-concepts/objectstorage.html} | 895 +-
.../2.8.1/core-concepts/operators.html} | 658 +-
.../2.8.1/core-concepts/overview.html} | 775 +-
.../2.8.1/core-concepts/params.html} | 918 +-
.../2.8.1/core-concepts/sensors.html} | 335 +-
.../2.8.1/core-concepts/taskflow.html} | 799 +-
.../2.8.1/core-concepts/tasks.html} | 958 +-
.../2.8.1/core-concepts/variables.html} | 350 +-
.../2.8.1/core-concepts/xcoms.html} | 384 +-
docs-archive/apache-airflow/2.8.1/dag-run.html | 1 +
.../apache-airflow/2.8.1/dag-serialization.html | 1 +
.../2.8.1/database-erd-ref.html} | 263 +-
.../2.8.1/deprecated-rest-api-ref.html} | 361 +-
.../apache-airflow/2.8.1/docker-compose.yaml | 283 +
docs-archive/apache-airflow/2.8.1/errors.html | 1 +
.../apache-airflow/2.8.1/executor/celery.html | 1 +
.../2.8.1/executor/celery_kubernetes.html | 1 +
.../apache-airflow/2.8.1/executor/dask.html | 1 +
.../apache-airflow/2.8.1/executor/debug.html | 1 +
.../apache-airflow/2.8.1/executor/index.html | 1 +
.../apache-airflow/2.8.1/executor/kubernetes.html | 1 +
.../apache-airflow/2.8.1/executor/local.html | 1 +
.../2.8.1/executor/local_kubernetes.html | 1 +
.../apache-airflow/2.8.1/executor/sequential.html | 1 +
.../2.8.1/extra-packages-ref.html} | 1290 +-
.../2.8.1/faq.html} | 987 +-
docs-archive/apache-airflow/2.8.1/genindex.html | 5089 ++++++
.../2.8.1/howto/add-dag-tags.html} | 368 +-
.../apache-airflow/2.8.1/howto/add-new-role.html | 1 +
.../2.8.1/howto/add-owner-links.html} | 372 +-
.../apache-airflow/2.8.1/howto/check-health.html | 1 +
.../2.8.1/howto/connection.html} | 1053 +-
.../2.8.1/howto/connection/index.html | 1 +
.../2.8.1/howto/create-custom-decorator.html} | 868 +-
.../2.8.1/howto/custom-operator.html} | 880 +-
.../2.8.1/howto/custom-view-plugin.html} | 454 +-
.../howto/customize-dag-ui-page-instance-name.html | 1 +
.../2.8.1/howto/customize-state-colors-ui.html | 1 +
.../2.8.1/howto/customize-ui.html} | 790 +-
...stomizing-dag-ui-header-and-airflow-page-titles | 1 +
.../customize-ui.html#customizing-state-colours | 1 +
.../2.8.1/howto/define-extra-link.html} | 751 +-
.../2.8.1/howto/define_extra_link.html | 1 +
.../2.8.1/howto/docker-compose/index.html} | 977 +-
.../2.8.1/howto/dynamic-dag-generation.html} | 796 +-
.../2.8.1/howto/email-config.html} | 771 +-
.../2.8.1/howto/export-more-env-vars.html} | 377 +-
.../2.8.1/howto/index.html} | 721 +-
.../2.8.1/howto/initialize-database.html | 1 +
.../2.8.1/howto/listener-plugin.html} | 739 +-
.../2.8.1/howto/notifications.html} | 410 +-
.../2.8.1/howto/operator/bash.html} | 799 +-
.../2.8.1/howto/operator/datetime.html} | 752 +-
.../2.8.1/howto/operator/external.html | 1 +
.../howto/operator/external_task_sensor.html} | 751 +-
.../2.8.1/howto/operator/file.html} | 406 +-
.../2.8.1/howto/operator/index.html} | 730 +-
.../2.8.1/howto/operator/python.html | 1716 ++
.../2.8.1/howto/operator/time.html} | 710 +-
.../2.8.1/howto/operator/weekday.html} | 717 +-
.../2.8.1/howto/run-behind-proxy.html} | 413 +-
.../2.8.1/howto/run-with-systemd.html} | 371 +-
.../2.8.1/howto/secure-connections.html | 1 +
.../2.8.1/howto/set-config.html} | 743 +-
.../2.8.1/howto/set-up-database.html} | 1027 +-
.../2.8.1/howto/setup-and-teardown.html} | 785 +-
.../2.8.1/howto/timetable.html} | 978 +-
.../2.8.1/howto/tracking-user-activity.html | 1 +
.../2.8.1/howto/upgrading-from-1-10/index.html | 2339 +++
.../howto/upgrading-from-1-10/upgrade-check.html} | 806 +-
.../2.8.1/howto/usage-cli.html} | 937 +-
.../howto/use-alternative-secrets-backend.html | 1 +
.../2.8.1/howto/use-test-config.html | 1 +
.../2.8.1/howto/variable.html} | 399 +-
.../apache-airflow/2.8.1/howto/write-logs.html | 1 +
.../2.8.1/http-routingtable.html} | 356 +-
.../2.8.1}/index.html | 329 +-
.../apache-airflow/2.8.1/installation.html | 1 +
.../2.8.1/installation/dependencies.html} | 413 +-
.../2.8.1/installation/index.html} | 861 +-
.../2.8.1/installation/installing-from-pypi.html} | 883 +-
.../installation/installing-from-sources.html} | 715 +-
.../2.8.1/installation/prerequisites.html} | 362 +-
.../installation/setting-up-the-database.html} | 346 +-
.../2.8.1/installation/supported-versions.html} | 426 +-
.../2.8.1/installation/upgrade-check.html | 1 +
.../2.8.1/installation/upgrading.html} | 795 +-
.../2.8.1/integration.html} | 263 +-
docs-archive/apache-airflow/2.8.1/kubernetes.html | 1 +
.../2.8.1/license.html} | 424 +-
docs-archive/apache-airflow/2.8.1/lineage.html | 1 +
docs-archive/apache-airflow/2.8.1/listeners.html | 1 +
.../2.8.1/logging-monitoring/callbacks.html | 1 +
.../2.8.1/logging-monitoring/check-health.html | 1 +
.../2.8.1/logging-monitoring/errors.html | 1 +
.../2.8.1/logging-monitoring/index.html | 1 +
.../logging-monitoring/logging-architecture.html | 1 +
.../2.8.1/logging-monitoring/logging-tasks.html | 1 +
.../2.8.1/logging-monitoring/metrics.html | 1 +
.../logging-monitoring/tracking-user-activity.html | 1 +
docs-archive/apache-airflow/2.8.1/macros-ref.html | 1 +
docs-archive/apache-airflow/2.8.1/metrics.html | 1 +
.../2.8.1/migrations-ref.html} | 1220 +-
.../apache-airflow/2.8.1/modules_management.html | 1 +
docs-archive/apache-airflow/2.8.1/objects.inv | Bin 0 -> 26053 bytes
.../2.8.1/operators-and-hooks-ref.html} | 378 +-
...-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css | 1 +
.../_sphinx_design_static/design-tabs.js | 27 +
.../_static/redoc.js | 8 +
docs-archive/apache-airflow/2.8.1/plugins.html | 1 +
.../2.8.1/privacy_notice.html} | 250 +-
.../2.8.1/production-deployment.html | 1 +
.../2.8.1/project.html} | 336 +-
.../2.8.1/public-airflow-interface.html} | 978 +-
.../2.8.1/py-modindex.html} | 1052 +-
.../apache-airflow/2.8.1/python-api-ref.html | 1 +
.../2.8.1/release-process.html} | 302 +-
.../apache-airflow/2.8.1/release_notes.html | 16577 +++++++++++++++++++
.../apache-airflow/2.8.1/rest-api-ref.html | 1 +
.../apache-airflow-sbom-2.8.1-python3.10.json} | 7474 ++++-----
.../apache-airflow-sbom-2.8.1-python3.11.json} | 7466 ++++-----
.../sbom/apache-airflow-sbom-2.8.1-python3.8.json} | 7530 ++++-----
.../sbom/apache-airflow-sbom-2.8.1-python3.9.json} | 7456 ++++-----
docs-archive/apache-airflow/2.8.1/sbom/index.html | 18 +
docs-archive/apache-airflow/2.8.1/scheduler.html | 1 +
.../2.8.1/search.html} | 294 +-
docs-archive/apache-airflow/2.8.1/searchindex.js | 1 +
docs-archive/apache-airflow/2.8.1/security.html | 1 +
.../2.8.1/security/access-control.html} | 1191 +-
.../2.8.1/security/api.html} | 743 +-
.../2.8.1/security/audit_logs.html} | 363 +-
.../2.8.1/security/flower.html} | 354 +-
.../2.8.1/security}/index.html | 340 +-
.../2.8.1/security/kerberos.html} | 463 +-
.../security/releasing_security_patches.html} | 356 +-
.../2.8.1/security/sbom.html} | 335 +-
.../2.8.1/security/secrets/fernet.html} | 378 +-
.../2.8.1/security/secrets}/index.html | 344 +-
.../security/secrets/mask-sensitive-values.html} | 382 +-
.../security/secrets/secrets-backend/index.html} | 714 +-
.../local-filesystem-secrets-backend.html} | 728 +-
.../security/secrets/secrets-backends/index.html | 1 +
.../local-filesystem-secrets-backend.html | 1 +
.../2.8.1/security/security-model.html | 1 +
.../2.8.1/security/security_model.html} | 882 +-
.../2.8.1/security/webserver.html} | 871 +-
.../2.8.1/security/workload.html} | 355 +-
.../apache-airflow/2.8.1/stable-rest-api-ref.html | 34 +
.../index.html => apache-airflow/2.8.1/start.html} | 337 +-
.../apache-airflow/2.8.1/start/docker.html | 1 +
docs-archive/apache-airflow/2.8.1/start/index.html | 1 +
docs-archive/apache-airflow/2.8.1/start/local.html | 1 +
.../2.8.1/templates-ref.html} | 835 +-
docs-archive/apache-airflow/2.8.1/timezone.html | 1 +
docs-archive/apache-airflow/2.8.1/tutorial.html | 1 +
.../2.8.1/tutorial/fundamentals.html} | 1186 +-
.../2.8.1/tutorial}/index.html | 314 +-
.../2.8.1/tutorial/objectstorage.html} | 650 +-
.../2.8.1/tutorial/pipeline.html} | 709 +-
.../apache-airflow/2.8.1/tutorial/taskflow.html | 1843 +++
.../2.8.1/tutorial_taskflow_api.html | 1 +
.../index.html => apache-airflow/2.8.1/ui.html} | 375 +-
.../apache-airflow/2.8.1/upgrade-check.html | 1 +
.../2.8.1/upgrading-from-1-10/index.html | 1 +
.../2.8.1/upgrading-from-1-10/upgrade-check.html | 1 +
.../apache-airflow/2.8.1/upgrading-to-2.html | 1 +
docs-archive/apache-airflow/2.8.1/usage-cli.html | 1 +
docs-archive/apache-airflow/stable.txt | 2 +-
docs-archive/docker-stack/.buildinfo | 2 +-
.../docker-stack/_sources/build-arg-ref.rst.txt | 18 +-
.../docker-stack/_sources/changelog.rst.txt | 14 +-
.../docker-stack/_sources/entrypoint.rst.txt | 14 +-
docs-archive/docker-stack/build-arg-ref.html | 30 +-
docs-archive/docker-stack/build.html | 32 +-
docs-archive/docker-stack/changelog.html | 16 +-
docs-archive/docker-stack/entrypoint.html | 14 +-
docs-archive/docker-stack/index.html | 10 +-
docs-archive/docker-stack/recipes.html | 6 +-
docs-archive/docker-stack/searchindex.js | 2 +-
882 files changed, 267968 insertions(+), 122062 deletions(-)
diff --git a/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.10.json b/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.10.json
index 932e414e0f..ebca461f42 100644
--- a/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.10.json
+++ b/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.10.json
@@ -1,19 +1,19 @@
{
"bomFormat": "CycloneDX",
"specVersion": "1.5",
- "serialNumber": "urn:uuid:341876ef-52e8-4318-9e85-436986ca2a27",
+ "serialNumber": "urn:uuid:55f7ac86-e761-43c5-9056-13eb85c17bd6",
"version": 1,
"metadata": {
- "timestamp": "2023-12-18T17:45:47.699Z",
+ "timestamp": "2023-12-20T10:04:13.971Z",
"tools": {
"components": [
{
"group": "@cyclonedx",
"name": "cdxgen",
- "version": "9.9.9",
- "purl": "pkg:npm/%40cyclonedx/cdxgen@9.9.9",
+ "version": "9.10.0",
+ "purl": "pkg:npm/%40cyclonedx/cdxgen@9.10.0",
"type": "application",
- "bom-ref": "pkg:npm/@cyclonedx/cdxgen@9.9.9",
+ "bom-ref": "pkg:npm/@cyclonedx/cdxgen@9.10.0",
"author": "OWASP Foundation",
"publisher": "OWASP Foundation"
}
@@ -52673,7 +52673,7 @@
"properties": [
{
"name": "cdx:pypi:latest_version",
- "value": "1.34.2"
+ "value": "1.34.4"
},
{
"name": "cdx:pypi:resolved_from",
@@ -54669,7 +54669,17 @@
}
],
"type": "library",
- "bom-ref": "pkg:pypi/lxml@4.9.3"
+ "bom-ref": "pkg:pypi/lxml@4.9.3",
+ "properties": [
+ {
+ "name": "cdx:pypi:latest_version",
+ "value": "4.9.4"
+ },
+ {
+ "name": "cdx:pypi:resolved_from",
+ "value": "lxml"
+ }
+ ]
},
{
"author": "Chris Sewell <ch...@hotmail.com>",
diff --git a/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.11.json b/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.11.json
index 424ed93837..3b43c09048 100644
--- a/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.11.json
+++ b/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.11.json
@@ -1,19 +1,19 @@
{
"bomFormat": "CycloneDX",
"specVersion": "1.5",
- "serialNumber": "urn:uuid:f295c141-63a2-4680-a61b-bdc5674568c7",
+ "serialNumber": "urn:uuid:9461d395-254a-4153-930c-c4a0ff915366",
"version": 1,
"metadata": {
- "timestamp": "2023-12-18T17:48:03.501Z",
+ "timestamp": "2023-12-20T10:06:20.363Z",
"tools": {
"components": [
{
"group": "@cyclonedx",
"name": "cdxgen",
- "version": "9.9.9",
- "purl": "pkg:npm/%40cyclonedx/cdxgen@9.9.9",
+ "version": "9.10.0",
+ "purl": "pkg:npm/%40cyclonedx/cdxgen@9.10.0",
"type": "application",
- "bom-ref": "pkg:npm/@cyclonedx/cdxgen@9.9.9",
+ "bom-ref": "pkg:npm/@cyclonedx/cdxgen@9.10.0",
"author": "OWASP Foundation",
"publisher": "OWASP Foundation"
}
@@ -52643,7 +52643,7 @@
"properties": [
{
"name": "cdx:pypi:latest_version",
- "value": "1.34.2"
+ "value": "1.34.4"
},
{
"name": "cdx:pypi:resolved_from",
@@ -54615,7 +54615,17 @@
}
],
"type": "library",
- "bom-ref": "pkg:pypi/lxml@4.9.3"
+ "bom-ref": "pkg:pypi/lxml@4.9.3",
+ "properties": [
+ {
+ "name": "cdx:pypi:latest_version",
+ "value": "4.9.4"
+ },
+ {
+ "name": "cdx:pypi:resolved_from",
+ "value": "lxml"
+ }
+ ]
},
{
"author": "Chris Sewell <ch...@hotmail.com>",
diff --git a/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.8.json b/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.8.json
index c496e276b9..41d602c9cf 100644
--- a/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.8.json
+++ b/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.8.json
@@ -1,19 +1,19 @@
{
"bomFormat": "CycloneDX",
"specVersion": "1.5",
- "serialNumber": "urn:uuid:6c88d437-ac66-4d2d-8eb9-ba30923e68d4",
+ "serialNumber": "urn:uuid:ac7dddaf-290f-4c4f-96bb-2a8505f71fa5",
"version": 1,
"metadata": {
- "timestamp": "2023-12-18T17:42:29.375Z",
+ "timestamp": "2023-12-20T09:51:56.072Z",
"tools": {
"components": [
{
"group": "@cyclonedx",
"name": "cdxgen",
- "version": "9.9.9",
- "purl": "pkg:npm/%40cyclonedx/cdxgen@9.9.9",
+ "version": "9.10.0",
+ "purl": "pkg:npm/%40cyclonedx/cdxgen@9.10.0",
"type": "application",
- "bom-ref": "pkg:npm/@cyclonedx/cdxgen@9.9.9",
+ "bom-ref": "pkg:npm/@cyclonedx/cdxgen@9.10.0",
"author": "OWASP Foundation",
"publisher": "OWASP Foundation"
}
@@ -52703,7 +52703,7 @@
"properties": [
{
"name": "cdx:pypi:latest_version",
- "value": "1.34.2"
+ "value": "1.34.4"
},
{
"name": "cdx:pypi:resolved_from",
@@ -54699,7 +54699,17 @@
}
],
"type": "library",
- "bom-ref": "pkg:pypi/lxml@4.9.3"
+ "bom-ref": "pkg:pypi/lxml@4.9.3",
+ "properties": [
+ {
+ "name": "cdx:pypi:latest_version",
+ "value": "4.9.4"
+ },
+ {
+ "name": "cdx:pypi:resolved_from",
+ "value": "lxml"
+ }
+ ]
},
{
"author": "Chris Sewell <ch...@hotmail.com>",
diff --git a/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.9.json b/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.9.json
index a0c8dde10e..13c4d15a48 100644
--- a/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.9.json
+++ b/docs-archive/apache-airflow/2.8.0/sbom/apache-airflow-sbom-2.8.0-python3.9.json
@@ -1,19 +1,19 @@
{
"bomFormat": "CycloneDX",
"specVersion": "1.5",
- "serialNumber": "urn:uuid:cd1423bd-f952-425b-b39b-cc3fd13bf979",
+ "serialNumber": "urn:uuid:811e8dd2-ac5a-4936-8c91-45d5fb4dbc53",
"version": 1,
"metadata": {
- "timestamp": "2023-12-18T17:44:29.626Z",
+ "timestamp": "2023-12-20T10:02:05.588Z",
"tools": {
"components": [
{
"group": "@cyclonedx",
"name": "cdxgen",
- "version": "9.9.9",
- "purl": "pkg:npm/%40cyclonedx/cdxgen@9.9.9",
+ "version": "9.10.0",
+ "purl": "pkg:npm/%40cyclonedx/cdxgen@9.10.0",
"type": "application",
- "bom-ref": "pkg:npm/@cyclonedx/cdxgen@9.9.9",
+ "bom-ref": "pkg:npm/@cyclonedx/cdxgen@9.10.0",
"author": "OWASP Foundation",
"publisher": "OWASP Foundation"
}
@@ -52673,7 +52673,7 @@
"properties": [
{
"name": "cdx:pypi:latest_version",
- "value": "1.34.2"
+ "value": "1.34.4"
},
{
"name": "cdx:pypi:resolved_from",
@@ -54669,7 +54669,17 @@
}
],
"type": "library",
- "bom-ref": "pkg:pypi/lxml@4.9.3"
+ "bom-ref": "pkg:pypi/lxml@4.9.3",
+ "properties": [
+ {
+ "name": "cdx:pypi:latest_version",
+ "value": "4.9.4"
+ },
+ {
+ "name": "cdx:pypi:resolved_from",
+ "value": "lxml"
+ }
+ ]
},
{
"author": "Chris Sewell <ch...@hotmail.com>",
diff --git a/docs-archive/docker-stack/.buildinfo b/docs-archive/apache-airflow/2.8.1/.buildinfo
similarity index 82%
copy from docs-archive/docker-stack/.buildinfo
copy to docs-archive/apache-airflow/2.8.1/.buildinfo
index 4782e6c3d8..628d2290a2 100644
--- a/docs-archive/docker-stack/.buildinfo
+++ b/docs-archive/apache-airflow/2.8.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: 03bf870406665f7654ab8d75c175de5b
+config: 933a7639013ad4984fc6bb77729a4e42
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs-archive/docker-stack/changelog.html b/docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/base/index.html
similarity index 51%
copy from docs-archive/docker-stack/changelog.html
copy to docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/base/index.html
index 64f3b47d51..3d60e370c6 100644
--- a/docs-archive/docker-stack/changelog.html
+++ b/docs-archive/apache-airflow/2.8.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 — 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 — Airflow Documentation</title>
+ <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+ <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+ <link rel="index" title="Index" href="../../../../genindex.html" />
+ <link rel="search" title="Search" href="../../../../search.html" />
+ <link rel="next" title="airflow.decorators.branch_external_python" href="../branch_external_python/index.html" />
+ <link rel="prev" title="airflow.decorators" href="../index.html" />
+
+ <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/base/index.html" />
<!-- Matomo -->
<script>
@@ -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.8.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,128 @@
<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-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-1">Airflow 2.5.1</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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#classes">Classes</a></li>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a></li>
+<li class="toctree-l8"><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.get_unique_task_id"><code class="docutils literal notranslate"><span class="pre">get_unique_task_id()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields_renderers"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields_renderers</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.shallow_copy_attrs"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.shallow_copy_attrs</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.execute"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.execute()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.get_python_source"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.get_python_source()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.FParams"><code class="docutils literal notranslate"><span class="pre">FParams</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.FReturn"><code class="docutils literal notranslate"><span class="pre">FReturn</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.OperatorSubclass"><code class="docutils literal notranslate"><span class="pre">OperatorSubclass</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.multiple_outputs"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.multiple_outputs</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.python_callable"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.python_callable</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.op_kwargs_expand_input"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.op_kwargs_expand_input</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__hash__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__hash__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__attrs_post_init__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__attrs_post_init__()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.Task"><code class="docutils literal notranslate"><span class="pre">Task</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.__wrapped__"><code class="docutils literal notranslate"><span class="pre">Task.__wrapped__</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.__call__"><code class="docutils literal notranslate"><span class="pre">Task.__call__</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.function"><code class="docutils literal notranslate"><span class="pre">Task.function</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.partial"><code class="docutils literal notranslate"><span class="pre">Task.partial()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.expand"><code class="docutils literal notranslate"><span class="pre">Task.expand()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.expand_kwargs"><code class="docutils literal notranslate"><span class="pre">Task.expand_kwargs()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.override"><code class="docutils literal notranslate"><span class="pre">Task.override()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator"><code class="docutils literal notranslate"><span class="pre">TaskDecorator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.__call__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.override"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.override()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.task_decorator_factory"><code class="docutils literal notranslate"><span class="pre">task_decorator_factory()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
</ul>
</li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="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>
</div>
@@ -419,8 +532,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.8.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 +576,128 @@
<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-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-1">Airflow 2.5.1</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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#classes">Classes</a></li>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a></li>
+<li class="toctree-l8"><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.get_unique_task_id"><code class="docutils literal notranslate"><span class="pre">get_unique_task_id()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields_renderers"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields_renderers</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.shallow_copy_attrs"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.shallow_copy_attrs</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.execute"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.execute()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.get_python_source"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.get_python_source()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.FParams"><code class="docutils literal notranslate"><span class="pre">FParams</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.FReturn"><code class="docutils literal notranslate"><span class="pre">FReturn</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.OperatorSubclass"><code class="docutils literal notranslate"><span class="pre">OperatorSubclass</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.multiple_outputs"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.multiple_outputs</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.python_callable"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.python_callable</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.op_kwargs_expand_input"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.op_kwargs_expand_input</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__hash__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__hash__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__attrs_post_init__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__attrs_post_init__()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.Task"><code class="docutils literal notranslate"><span class="pre">Task</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.__wrapped__"><code class="docutils literal notranslate"><span class="pre">Task.__wrapped__</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.__call__"><code class="docutils literal notranslate"><span class="pre">Task.__call__</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.function"><code class="docutils literal notranslate"><span class="pre">Task.function</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.partial"><code class="docutils literal notranslate"><span class="pre">Task.partial()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.expand"><code class="docutils literal notranslate"><span class="pre">Task.expand()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.expand_kwargs"><code class="docutils literal notranslate"><span class="pre">Task.expand_kwargs()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.override"><code class="docutils literal notranslate"><span class="pre">Task.override()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator"><code class="docutils literal notranslate"><span class="pre">TaskDecorator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.__call__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.override"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.override()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.task_decorator_factory"><code class="docutils literal notranslate"><span class="pre">task_decorator_factory()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
</ul>
</li>
-<li class="toctree-l1"><a class="reference internal" href="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="../../../../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>
</div>
@@ -561,9 +786,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,375 +803,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-8">
-<h2>Airflow 2.8<a class="headerlink" href="#airflow-2-8" title="Permalink to this heading">¶</a></h2>
-<ul>
-<li><p>2.8.0</p>
-<blockquote>
-<div><ul class="simple">
-<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>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.7. With Airflow reference images
-released for Airflow 2.8.0, the images are going to use Python 3.11 as this is the latest supported
-version for Airflow 2.8 line. Users can use Python 3.8 by using <code class="docutils literal notranslate"><span class="pre">apache/airflow:2.8.0-python3.8</span></code> and
-<code class="docutils literal notranslate"><span class="pre">apache/airflow:slim-2.8.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>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>
-</div></blockquote>
-</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>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-5-1">
-<h2>Airflow 2.5.1<a class="headerlink" href="#airflow-2-5-1" 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>
-</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.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 @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 @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 -> 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> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><em>bool</em></a>) – If set to True, the decorated function’s return value will be unrolled to
+multiple XCom values. Dict will unroll to XCom values with its keys as XCom keys. Defaults to False.</p></li>
+<li><p><strong>kwargs_to_upstream</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.12)"><em>dict</em></a><em>[</em><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><em>str</em></a><em>, </em><em>Any</em><em>] </em><em>| </em><em>None</em>) – For certain operators, we might need to upstream certain arguments
+that would otherwise be absorbed by the DecoratedOperator (for example python_callable for the
+PythonOperator). This gives a user the option to upstream kwargs as needed.</p></li>
</ul>
</dd>
</dl>
-</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 @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 @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">@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>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 >= 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-odd"><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>
-<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>
-</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.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>
@@ -1012,18 +1165,51 @@ key expiry fiasco</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-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-1">Airflow 2.5.1</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>
@@ -1048,7 +1234,7 @@ key expiry fiasco</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">
@@ -1182,20 +1368,21 @@ key expiry fiasco</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.8.1/_api/airflow/decorators/branch_external_python/index.html
similarity index 74%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/branch_external_python/index.html
index ed56216ba6..754efbb274 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.8.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 — 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 — Airflow Documentation</title>
+ <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+ <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+ <link rel="index" title="Index" href="../../../../genindex.html" />
+ <link rel="search" title="Search" href="../../../../search.html" />
+ <link rel="next" title="airflow.decorators.branch_python" href="../branch_python/index.html" />
+ <link rel="prev" title="airflow.decorators.base" href="../base/index.html" />
+
+ <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/branch_external_python/index.html" />
<!-- Matomo -->
<script>
@@ -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.8.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,92 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_external_python.branch_external_python_task"><code class="docutils literal notranslate"><span class="pre">branch_external_python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
</ul>
</li>
</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
</div>
@@ -411,8 +495,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.8.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 +539,91 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_external_python.branch_external_python_task"><code class="docutils literal notranslate"><span class="pre">branch_external_python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
</ul>
</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
</ul>
</div>
@@ -546,9 +712,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,399 +729,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.8.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">23.3.1</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">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-even"><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-odd"><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-even"><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-odd"><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.8.0</span></code>.
-Auto-detected if empty.</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>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google_auth</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>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: 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">UPGRADE_TO_NEWER_DEPENDENCIES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to a value different than “false”
-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">&&</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">&&</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 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>
-<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"><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">INSTALL_PROVIDERS_FROM_SOURCES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to <code class="docutils literal notranslate"><span class="pre">true</span></code> and image is built
-from sources, all provider packages are
-installed from sources rather than from
-packages. It has no effect when
-installing from PyPI or GitHub repo.</p></td>
-</tr>
-<tr class="row-odd"><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-even"><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-odd"><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">setup.py</span></code> or <code class="docutils literal notranslate"><span class="pre">setup.cfg</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">"0"</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.base" href="../base/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>
@@ -1019,11 +844,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>
@@ -1048,7 +876,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">
@@ -1182,20 +1010,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.8.1/_api/airflow/decorators/branch_python/index.html
similarity index 74%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/branch_python/index.html
index ed56216ba6..086eec993e 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.8.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 — 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 — 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.8.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,92 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_python.branch_task"><code class="docutils literal notranslate"><span class="pre">branch_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
</ul>
</li>
</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
</div>
@@ -411,8 +495,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.8.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 +539,91 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_python.branch_task"><code class="docutils literal notranslate"><span class="pre">branch_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
</ul>
</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
</ul>
</div>
@@ -546,9 +712,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,399 +729,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.8.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">23.3.1</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">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-even"><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-odd"><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-even"><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-odd"><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.8.0</span></code>.
-Auto-detected if empty.</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>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google_auth</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>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: 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">UPGRADE_TO_NEWER_DEPENDENCIES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to a value different than “false”
-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">&&</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">&&</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 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>
-<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"><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">INSTALL_PROVIDERS_FROM_SOURCES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to <code class="docutils literal notranslate"><span class="pre">true</span></code> and image is built
-from sources, all provider packages are
-installed from sources rather than from
-packages. It has no effect when
-installing from PyPI or GitHub repo.</p></td>
-</tr>
-<tr class="row-odd"><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-even"><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-odd"><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">setup.py</span></code> or <code class="docutils literal notranslate"><span class="pre">setup.cfg</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">"0"</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>
@@ -1019,11 +844,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>
@@ -1048,7 +876,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">
@@ -1182,20 +1010,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.8.1/_api/airflow/decorators/branch_virtualenv/index.html
similarity index 74%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/branch_virtualenv/index.html
index ed56216ba6..872b07eaec 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.8.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 — 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 — Airflow Documentation</title>
+ <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+ <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+ <link rel="index" title="Index" href="../../../../genindex.html" />
+ <link rel="search" title="Search" href="../../../../search.html" />
+ <link rel="next" title="airflow.decorators.external_python" href="../external_python/index.html" />
+ <link rel="prev" title="airflow.decorators.branch_python" href="../branch_python/index.html" />
+
+ <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/branch_virtualenv/index.html" />
<!-- Matomo -->
<script>
@@ -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.8.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,92 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_virtualenv.branch_virtualenv_task"><code class="docutils literal notranslate"><span class="pre">branch_virtualenv_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
</ul>
</li>
</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
</div>
@@ -411,8 +495,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.8.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 +539,91 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_virtualenv.branch_virtualenv_task"><code class="docutils literal notranslate"><span class="pre">branch_virtualenv_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
</ul>
</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
</ul>
</div>
@@ -546,9 +712,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,399 +729,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.8.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">23.3.1</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">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-even"><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-odd"><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-even"><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-odd"><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.8.0</span></code>.
-Auto-detected if empty.</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>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google_auth</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>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: 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">UPGRADE_TO_NEWER_DEPENDENCIES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to a value different than “false”
-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">&&</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">&&</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 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>
-<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"><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">INSTALL_PROVIDERS_FROM_SOURCES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to <code class="docutils literal notranslate"><span class="pre">true</span></code> and image is built
-from sources, all provider packages are
-installed from sources rather than from
-packages. It has no effect when
-installing from PyPI or GitHub repo.</p></td>
-</tr>
-<tr class="row-odd"><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-even"><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-odd"><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">setup.py</span></code> or <code class="docutils literal notranslate"><span class="pre">setup.cfg</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">"0"</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.external_python" href="../external_python/index.html" >
+ <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+ </a>
</div>
</div>
@@ -1019,11 +844,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>
@@ -1048,7 +876,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">
@@ -1182,20 +1010,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.8.1/_api/airflow/decorators/external_python/index.html
similarity index 77%
copy from docs-archive/docker-stack/index.html
copy to docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/external_python/index.html
index b150b03a8b..5decb76b49 100644
--- a/docs-archive/docker-stack/index.html
+++ b/docs-archive/apache-airflow/2.8.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 — 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 — Airflow Documentation</title>
+ <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+ <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+ <link rel="index" title="Index" href="../../../../genindex.html" />
+ <link rel="search" title="Search" href="../../../../search.html" />
+ <link rel="next" title="airflow.decorators.python" href="../python/index.html" />
+ <link rel="prev" title="airflow.decorators.branch_virtualenv" href="../branch_virtualenv/index.html" />
+
+ <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/external_python/index.html" />
<!-- Matomo -->
<script>
@@ -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.8.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,82 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="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>
</div>
@@ -405,8 +486,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.8.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 +530,82 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="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>
</div>
@@ -534,9 +694,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,121 +711,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.8.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.8.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.8.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.9.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.8.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.8.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.9.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/main/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.rst#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>
-<p>If you want to make sure that Airflow dependencies are upgraded to the latest released versions containing
-latest security fixes in the image you use, you should implement your own process to upgrade
-those yourself when you build custom image based on the Airflow reference one. Airflow usually does not
-upper-bound versions of its dependencies via requirements, so you should be able to upgrade them to the
-latest versions - usually without any problems. And you can follow the process described in
-<a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a> to do it (even in automated way).</p>
-<p>Obviously - since we have no control over what gets released in new versions of the dependencies, we
-cannot give any guarantees that tests and functionality of those dependencies will be compatible with
-Airflow after you upgrade them - testing if Airflow still works with those is in your hands,
-and in case of any problems, you should raise issue with the authors of the dependencies that are problematic.
-You can also - in such cases - look at the <a class="reference external" href="https://github.com/apache/airflow/issues">Airflow issues</a>
-<a class="reference external" href="https://github.com/apache/airflow/pulls">Airflow Pull Requests</a> and
-<a class="reference external" href="https://github.com/apache/airflow/discussions">Airflow Discussions</a>, searching for similar
-problems to see if there are any fixes or workarounds found in the <code class="docutils literal notranslate"><span class="pre">main</span></code> version of Airflow and apply them
-to your custom image.</p>
-<p>The easiest way to keep-up with the latest released dependencies is however, to upgrade to the latest released
-Airflow version via switching to newly released images as base for your images, when a new version of
-Airflow is released. Whenever we release a new version of Airflow, we upgrade all dependencies to the latest
-applicable versions and test them together, so if you want to keep up with those tests - staying up-to-date
-with latest version of Airflow is the easiest way to update those dependencies.</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.9.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.9.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.12.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.branch_virtualenv" href="../branch_virtualenv/index.html" >
+ <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
+ </a>
+ <a rel="next" title="airflow.decorators.python" href="../python/index.html" >
<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
</a>
</div>
@@ -731,16 +790,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="#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>
@@ -763,7 +813,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">
@@ -897,20 +947,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.8.1/_api/airflow/decorators/index.html
similarity index 62%
copy from docs-archive/docker-stack/changelog.html
copy to docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/index.html
index 64f3b47d51..ba2b432346 100644
--- a/docs-archive/docker-stack/changelog.html
+++ b/docs-archive/apache-airflow/2.8.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 — 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 — 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.8.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,105 @@
<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-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-1">Airflow 2.5.1</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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul>
+<li class="toctree-l5"><a class="reference internal" href="#submodules">Submodules</a><ul>
+<li class="toctree-l6"><a class="reference internal" href="base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="#package-contents">Package Contents</a><ul>
+<li class="toctree-l6"><a class="reference internal" href="#classes">Classes</a></li>
+<li class="toctree-l6"><a class="reference internal" href="#functions">Functions</a></li>
+<li class="toctree-l6"><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection</span></code></a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.virtualenv</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.external_python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_virtualenv</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_external_python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.short_circuit"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.short_circuit</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.sensor"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.sensor</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__call__</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__getattr__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__getattr__()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.task"><code class="docutils literal notranslate"><span class="pre">task</span></code></a></li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.setup"><code class="docutils literal notranslate"><span class="pre">setup</span></code></a></li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.teardown"><code class="docutils literal notranslate"><span class="pre">teardown</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
</ul>
</li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="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>
</div>
@@ -419,8 +509,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.8.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 +553,105 @@
<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-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-1">Airflow 2.5.1</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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul>
+<li class="toctree-l5"><a class="reference internal" href="#submodules">Submodules</a><ul>
+<li class="toctree-l6"><a class="reference internal" href="base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="#package-contents">Package Contents</a><ul>
+<li class="toctree-l6"><a class="reference internal" href="#classes">Classes</a></li>
+<li class="toctree-l6"><a class="reference internal" href="#functions">Functions</a></li>
+<li class="toctree-l6"><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection</span></code></a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.virtualenv</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.external_python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_virtualenv</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_external_python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.short_circuit"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.short_circuit</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.sensor"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.sensor</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__call__</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__getattr__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__getattr__()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.task"><code class="docutils literal notranslate"><span class="pre">task</span></code></a></li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.setup"><code class="docutils literal notranslate"><span class="pre">setup</span></code></a></li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.teardown"><code class="docutils literal notranslate"><span class="pre">teardown</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
</ul>
</li>
-<li class="toctree-l1"><a class="reference internal" href="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="../../../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>
</div>
@@ -561,9 +740,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="../../../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>
</ul>
</div>
@@ -574,375 +755,189 @@
<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-8">
-<h2>Airflow 2.8<a class="headerlink" href="#airflow-2-8" title="Permalink to this heading">¶</a></h2>
-<ul>
-<li><p>2.8.0</p>
-<blockquote>
-<div><ul class="simple">
-<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>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.7. With Airflow reference images
-released for Airflow 2.8.0, the images are going to use Python 3.11 as this is the latest supported
-version for Airflow 2.8 line. Users can use Python 3.8 by using <code class="docutils literal notranslate"><span class="pre">apache/airflow:2.8.0-python3.8</span></code> and
-<code class="docutils literal notranslate"><span class="pre">apache/airflow:slim-2.8.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>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>
-</div></blockquote>
-</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>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-5-1">
-<h2>Airflow 2.5.1<a class="headerlink" href="#airflow-2-5-1" 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>
-</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.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>
+ <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>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>
+<li class="toctree-l1"><a class="reference internal" href="base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
</ul>
</div>
-<div 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 -> 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 class="section" id="package-contents">
+<h2>Package Contents<a class="headerlink" href="#package-contents" title="Permalink to this heading">¶</a></h2>
+<div class="section" id="classes">
+<h3>Classes<a class="headerlink" href="#classes" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">TaskDecorator</span></code></p></td>
+<td><p>Type declaration for <code class="docutils literal notranslate"><span class="pre">task_decorator_factory</span></code> return type.</p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection" title="airflow.decorators.TaskDecoratorCollection"><code class="xref py py-obj docutils literal notranslate"><span class="pre">TaskDecoratorCollection</span></code></a></p></td>
+<td><p>Implementation to provide the <code class="docutils literal notranslate"><span class="pre">@task</span></code> syntax.</p></td>
+</tr>
+</tbody>
+</table>
</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="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: 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">branch_external_python_task</span></code>([python_callable, ...])</p></td>
+<td><p>Wrap a python function into a BranchExternalPythonOperator.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a python function into a BranchPythonOperator.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_virtualenv_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a python function into a BranchPythonVirtualenvOperator.</p></td>
</tr>
-</thead>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">external_python_task</span></code>([python, python_callable, ...])</p></td>
+<td><p>Wrap a callable into an Airflow operator to run via a Python virtual environment.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">python_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a function into an Airflow operator.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">virtualenv_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a callable into an Airflow operator to run via a Python virtual environment.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">sensor_task</span></code>([python_callable])</p></td>
+<td><p>Wrap a function into an Airflow operator.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">short_circuit_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a function into an ShortCircuitOperator.</p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="task_group/index.html#module-airflow.decorators.task_group" title="airflow.decorators.task_group"><code class="xref py py-obj docutils literal notranslate"><span class="pre">task_group</span></code></a></p></td>
+<td><p>Implements the <code class="docutils literal notranslate"><span class="pre">@task_group</span></code> function decorator.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">dag</span></code>([dag_id, description, schedule, ...])</p></td>
+<td><p>Python dag decorator which wraps a function into an Airflow DAG.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section" id="attributes">
+<h3>Attributes<a class="headerlink" href="#attributes" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
<tbody>
-<tr class="row-even"><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 >= 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.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-odd"><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-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-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><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">@task</span></code> syntax.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.python">
+<span class="sig-name descname"><span class="pre">python</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.python"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.python" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.virtualenv">
+<span class="sig-name descname"><span class="pre">virtualenv</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.virtualenv"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.virtualenv" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.external_python">
+<span class="sig-name descname"><span class="pre">external_python</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.external_python"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.external_python" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.branch">
+<span class="sig-name descname"><span class="pre">branch</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.branch"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.branch" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.branch_virtualenv">
+<span class="sig-name descname"><span class="pre">branch_virtualenv</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.branch_virtualenv"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.branch_virtualenv" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.branch_external_python">
+<span class="sig-name descname"><span class="pre">branch_external_python</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.branch_external_python"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.branch_external_python" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.short_circuit">
+<span class="sig-name descname"><span class="pre">short_circuit</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.short_circuit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.short_circuit" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.sensor">
+<span class="sig-name descname"><span class="pre">sensor</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.sensor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.sensor" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.__call__">
+<span class="sig-name descname"><span class="pre">__call__</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Any</span></em><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.__call__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.__call__" title="Permalink to this de [...]
+<dd></dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.__getattr__">
+<span class="sig-name descname"><span class="pre">__getattr__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.__getattr__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.__getattr__" ti [...]
+<dd><p>Dynamically get provider-registered task decorators, e.g. <code class="docutils literal notranslate"><span class="pre">@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>
@@ -1012,18 +1007,32 @@ key expiry fiasco</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-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-1">Airflow 2.5.1</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.__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>
@@ -1048,7 +1057,7 @@ key expiry fiasco</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">
@@ -1182,20 +1191,21 @@ key expiry fiasco</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.8.1/_api/airflow/decorators/python/index.html
similarity index 74%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/python/index.html
index ed56216ba6..1d772bf18f 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.8.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 — 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 — 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.8.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,92 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.python.python_task"><code class="docutils literal notranslate"><span class="pre">python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
</ul>
</li>
</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
</div>
@@ -411,8 +495,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.8.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 +539,91 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.python.python_task"><code class="docutils literal notranslate"><span class="pre">python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
</ul>
</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
</ul>
</div>
@@ -546,9 +712,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,399 +729,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.8.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">23.3.1</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">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-even"><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-odd"><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-even"><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-odd"><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.8.0</span></code>.
-Auto-detected if empty.</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>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google_auth</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>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: 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">UPGRADE_TO_NEWER_DEPENDENCIES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to a value different than “false”
-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">&&</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">&&</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 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>
-<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"><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">INSTALL_PROVIDERS_FROM_SOURCES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to <code class="docutils literal notranslate"><span class="pre">true</span></code> and image is built
-from sources, all provider packages are
-installed from sources rather than from
-packages. It has no effect when
-installing from PyPI or GitHub repo.</p></td>
-</tr>
-<tr class="row-odd"><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-even"><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-odd"><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">setup.py</span></code> or <code class="docutils literal notranslate"><span class="pre">setup.cfg</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">"0"</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>
@@ -1019,11 +841,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>
@@ -1048,7 +873,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">
@@ -1182,20 +1007,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.8.1/_api/airflow/decorators/python_virtualenv/index.html
similarity index 77%
copy from docs-archive/docker-stack/index.html
copy to docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/python_virtualenv/index.html
index b150b03a8b..b9f3409f4b 100644
--- a/docs-archive/docker-stack/index.html
+++ b/docs-archive/apache-airflow/2.8.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 — 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 — 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.8.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,82 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="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>
</div>
@@ -405,8 +486,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.8.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 +530,82 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="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>
</div>
@@ -534,9 +694,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,121 +711,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.8.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.8.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.8.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.9.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.8.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.8.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.9.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/main/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.rst#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>
-<p>If you want to make sure that Airflow dependencies are upgraded to the latest released versions containing
-latest security fixes in the image you use, you should implement your own process to upgrade
-those yourself when you build custom image based on the Airflow reference one. Airflow usually does not
-upper-bound versions of its dependencies via requirements, so you should be able to upgrade them to the
-latest versions - usually without any problems. And you can follow the process described in
-<a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a> to do it (even in automated way).</p>
-<p>Obviously - since we have no control over what gets released in new versions of the dependencies, we
-cannot give any guarantees that tests and functionality of those dependencies will be compatible with
-Airflow after you upgrade them - testing if Airflow still works with those is in your hands,
-and in case of any problems, you should raise issue with the authors of the dependencies that are problematic.
-You can also - in such cases - look at the <a class="reference external" href="https://github.com/apache/airflow/issues">Airflow issues</a>
-<a class="reference external" href="https://github.com/apache/airflow/pulls">Airflow Pull Requests</a> and
-<a class="reference external" href="https://github.com/apache/airflow/discussions">Airflow Discussions</a>, searching for similar
-problems to see if there are any fixes or workarounds found in the <code class="docutils literal notranslate"><span class="pre">main</span></code> version of Airflow and apply them
-to your custom image.</p>
-<p>The easiest way to keep-up with the latest released dependencies is however, to upgrade to the latest released
-Airflow version via switching to newly released images as base for your images, when a new version of
-Airflow is released. Whenever we release a new version of Airflow, we upgrade all dependencies to the latest
-applicable versions and test them together, so if you want to keep up with those tests - staying up-to-date
-with latest version of Airflow is the easiest way to update those dependencies.</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.9.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.9.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.12.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>
@@ -731,16 +790,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="#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>
@@ -763,7 +813,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">
@@ -897,20 +947,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.8.1/_api/airflow/decorators/sensor/index.html
similarity index 68%
copy from docs-archive/docker-stack/changelog.html
copy to docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/sensor/index.html
index 64f3b47d51..0b2d9c5f0e 100644
--- a/docs-archive/docker-stack/changelog.html
+++ b/docs-archive/apache-airflow/2.8.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 — 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 — 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.8.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,99 @@
<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-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-1">Airflow 2.5.1</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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><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>
+</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="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="../../../../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>
</div>
@@ -419,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.8.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 +547,99 @@
<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-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-1">Airflow 2.5.1</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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><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>
+</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="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="../../../../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>
</div>
@@ -561,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="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,375 +745,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-8">
-<h2>Airflow 2.8<a class="headerlink" href="#airflow-2-8" title="Permalink to this heading">¶</a></h2>
-<ul>
-<li><p>2.8.0</p>
-<blockquote>
-<div><ul class="simple">
-<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>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.7. With Airflow reference images
-released for Airflow 2.8.0, the images are going to use Python 3.11 as this is the latest supported
-version for Airflow 2.8 line. Users can use Python 3.8 by using <code class="docutils literal notranslate"><span class="pre">apache/airflow:2.8.0-python3.8</span></code> and
-<code class="docutils literal notranslate"><span class="pre">apache/airflow:slim-2.8.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>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>
-</div></blockquote>
-</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>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-5-1">
-<h2>Airflow 2.5.1<a class="headerlink" href="#airflow-2-5-1" 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>
-</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.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 -> 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>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 >= 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-odd"><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>
-<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>
+</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">
+<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.sensor.DecoratedSensorOperator.template_fields_renderers">
+<span class="sig-name descname"><span class="pre">template_fields_renderers</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/stdtypes.html#dict" title="(in Python v3.12)"><span class="pre">dict</span></a><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.1 [...]
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.sensor.DecoratedSensorOperator.custom_operator_name">
+<span class="sig-name descname"><span class="pre">custom_operator_name</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'@task.sensor'</span></em><a class="reference internal" href="../../../../_modules/airflow/decorators/sensor.html#DecoratedSensorOperator.custom_operator_name"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow [...]
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.sensor.DecoratedSensorOperator.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>
+
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="airflow.decorators.sensor.sensor_task">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.sensor.</span></span><span class="sig-name descname"><span class="pre">sensor_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="o"><span class="pre">**</span></span><span clas [...]
+<dd><p>Wrap a function into an Airflow operator.</p>
+<p>Accepts kwargs for operator kwarg. Can be reused in a single DAG.
+:param python_callable: Function to decorate</p>
+<dl class="field-list simple">
+</dl>
+</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.decorators.python_virtualenv" href="../python_virtualenv/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.setup_teardown" href="../setup_teardown/index.html" >
<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
</a>
</div>
@@ -1012,18 +907,22 @@ key expiry fiasco</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-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-1">Airflow 2.5.1</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.sensor</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><ul>
+<li><a class="reference internal" href="#airflow.decorators.sensor.DecoratedSensorOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedSensorOperator</span></code></a><ul>
+<li><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><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><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><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><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>
</ul>
</li>
</ul>
@@ -1048,7 +947,7 @@ key expiry fiasco</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/sensor/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">
@@ -1182,20 +1081,21 @@ key expiry fiasco</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/changelog.html b/docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/setup_teardown/index.html
similarity index 69%
copy from docs-archive/docker-stack/changelog.html
copy to docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/setup_teardown/index.html
index 64f3b47d51..c654c6ef94 100644
--- a/docs-archive/docker-stack/changelog.html
+++ b/docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/setup_teardown/index.html
@@ -9,21 +9,22 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Dockerfile Changelog — 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.setup_teardown — 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.short_circuit" href="../short_circuit/index.html" />
+ <link rel="prev" title="airflow.decorators.sensor" href="../sensor/index.html" />
+
+ <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/setup_teardown/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.8.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,100 @@
<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-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-1">Airflow 2.5.1</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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><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 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</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.setup_teardown.setup_task"><code class="docutils literal notranslate"><span class="pre">setup_task()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.setup_teardown.teardown_task"><code class="docutils literal notranslate"><span class="pre">teardown_task()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.setup_teardown.ContextWrapper"><code class="docutils literal notranslate"><span class="pre">ContextWrapper</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.setup_teardown.ContextWrapper.__enter__"><code class="docutils literal notranslate"><span class="pre">ContextWrapper.__enter__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.setup_teardown.ContextWrapper.__exit__"><code class="docutils literal notranslate"><span class="pre">ContextWrapper.__exit__()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.setup_teardown.context_wrapper"><code class="docutils literal notranslate"><span class="pre">context_wrapper</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</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="../../../../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>
</div>
@@ -419,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.8.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 +548,100 @@
<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-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-1">Airflow 2.5.1</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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><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 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</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.setup_teardown.setup_task"><code class="docutils literal notranslate"><span class="pre">setup_task()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.setup_teardown.teardown_task"><code class="docutils literal notranslate"><span class="pre">teardown_task()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.setup_teardown.ContextWrapper"><code class="docutils literal notranslate"><span class="pre">ContextWrapper</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.setup_teardown.ContextWrapper.__enter__"><code class="docutils literal notranslate"><span class="pre">ContextWrapper.__enter__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.setup_teardown.ContextWrapper.__exit__"><code class="docutils literal notranslate"><span class="pre">ContextWrapper.__exit__()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.setup_teardown.context_wrapper"><code class="docutils literal notranslate"><span class="pre">context_wrapper</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</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="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="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>
</div>
@@ -561,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="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>
+
+ <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
</ul>
</div>
@@ -574,375 +747,102 @@
<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-8">
-<h2>Airflow 2.8<a class="headerlink" href="#airflow-2-8" title="Permalink to this heading">¶</a></h2>
-<ul>
-<li><p>2.8.0</p>
-<blockquote>
-<div><ul class="simple">
-<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>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.7. With Airflow reference images
-released for Airflow 2.8.0, the images are going to use Python 3.11 as this is the latest supported
-version for Airflow 2.8 line. Users can use Python 3.8 by using <code class="docutils literal notranslate"><span class="pre">apache/airflow:2.8.0-python3.8</span></code> and
-<code class="docutils literal notranslate"><span class="pre">apache/airflow:slim-2.8.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>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>
-</div></blockquote>
-</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>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section" id="airflow-2-5-1">
-<h2>Airflow 2.5.1<a class="headerlink" href="#airflow-2-5-1" 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>
-</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.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 -> 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.setup_teardown">
+<span id="airflow-decorators-setup-teardown"></span><h1><a class="reference internal" href="#module-airflow.decorators.setup_teardown" title="airflow.decorators.setup_teardown"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a><a class="headerlink" href="#module-airflow.decorators.setup_teardown" 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>
+<tbody>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.setup_teardown.ContextWrapper" title="airflow.decorators.setup_teardown.ContextWrapper"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ContextWrapper</span></code></a></p></td>
+<td><p>A list subclass that has a context manager that pushes setup/teardown tasks to the context.</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>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 >= 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.setup_teardown.setup_task" title="airflow.decorators.setup_teardown.setup_task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">setup_task</span></code></a>(func)</p></td>
+<td><p></p></td>
</tr>
-<tr class="row-odd"><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-even"><td><p><a class="reference internal" href="#airflow.decorators.setup_teardown.teardown_task" title="airflow.decorators.setup_teardown.teardown_task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">teardown_task</span></code></a>([_func, on_failure_fail_dagrun])</p></td>
+<td><p></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>
+</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.setup_teardown.context_wrapper" title="airflow.decorators.setup_teardown.context_wrapper"><code class="xref py py-obj docutils literal notranslate"><span class="pre">context_wrapper</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.setup_teardown.setup_task">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.setup_teardown.</span></span><span class="sig-name descname"><span class="pre">setup_task</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/setup_teardown.html#setup_task"><span class="viewcode-link"><span class="pre">[source]</span> [...]
+<dd><dl class="field-list simple">
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="airflow.decorators.setup_teardown.teardown_task">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.setup_teardown.</span></span><span class="sig-name descname"><span class="pre">teardown_task</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">_func</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></em>, <em [...]
+<dd><dl class="field-list simple">
+</dl>
+</dd></dl>
+
+<dl class="py class">
+<dt class="sig sig-object py" id="airflow.decorators.setup_teardown.ContextWrapper">
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">airflow.decorators.setup_teardown.</span></span><span class="sig-name descname"><span class="pre">ContextWrapper</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">tasks</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/setup_te [...]
+<dd><p>Bases: <a class="reference external" href="https://jinja.palletsprojects.com/en/2.11.x/templates/#list" title="(in Jinja v2.11.x)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">list</span></code></a></p>
+<p>A list subclass that has a context manager that pushes setup/teardown tasks to the context.</p>
+<dl class="field-list simple">
+</dl>
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.setup_teardown.ContextWrapper.__enter__">
+<span class="sig-name descname"><span class="pre">__enter__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/setup_teardown.html#ContextWrapper.__enter__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.setup_teardown.ContextWrapper.__enter__" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.setup_teardown.ContextWrapper.__exit__">
+<span class="sig-name descname"><span class="pre">__exit__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">exc_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exc_val</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exc_tb</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/setup_teardown.html#ContextWra [...]
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py data">
+<dt class="sig sig-object py" id="airflow.decorators.setup_teardown.context_wrapper">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.setup_teardown.</span></span><span class="sig-name descname"><span class="pre">context_wrapper</span></span><a class="reference internal" href="../../../../_modules/airflow/decorators/setup_teardown.html#context_wrapper"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.setup_teardown.context_wrapper" title="Permalink to this definition">¶</a></dt>
+<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.decorators.sensor" href="../sensor/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.short_circuit" href="../short_circuit/index.html" >
<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
</a>
</div>
@@ -1012,18 +912,23 @@ key expiry fiasco</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-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-1">Airflow 2.5.1</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.setup_teardown</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.setup_teardown.setup_task"><code class="docutils literal notranslate"><span class="pre">setup_task()</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.setup_teardown.teardown_task"><code class="docutils literal notranslate"><span class="pre">teardown_task()</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.setup_teardown.ContextWrapper"><code class="docutils literal notranslate"><span class="pre">ContextWrapper</span></code></a><ul>
+<li><a class="reference internal" href="#airflow.decorators.setup_teardown.ContextWrapper.__enter__"><code class="docutils literal notranslate"><span class="pre">ContextWrapper.__enter__()</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.setup_teardown.ContextWrapper.__exit__"><code class="docutils literal notranslate"><span class="pre">ContextWrapper.__exit__()</span></code></a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#airflow.decorators.setup_teardown.context_wrapper"><code class="docutils literal notranslate"><span class="pre">context_wrapper</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
</ul>
</li>
</ul>
@@ -1048,7 +953,7 @@ key expiry fiasco</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/setup_teardown/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">
@@ -1182,20 +1087,21 @@ key expiry fiasco</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.8.1/_api/airflow/decorators/short_circuit/index.html
similarity index 77%
copy from docs-archive/docker-stack/index.html
copy to docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/short_circuit/index.html
index b150b03a8b..b569c8dccb 100644
--- a/docs-archive/docker-stack/index.html
+++ b/docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/short_circuit/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 — 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.short_circuit — 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.task_group" href="../task_group/index.html" />
+ <link rel="prev" title="airflow.decorators.setup_teardown" href="../setup_teardown/index.html" />
+
+ <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/short_circuit/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.8.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,82 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><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 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="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>
</div>
@@ -405,8 +486,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.8.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 +530,82 @@
<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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><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 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="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>
</div>
@@ -534,9 +694,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.short_circuit</span></code></a></li>
</ul>
</div>
@@ -547,121 +711,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.8.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.8.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.8.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.9.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.8.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.8.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.9.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/main/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.rst#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>
-<p>If you want to make sure that Airflow dependencies are upgraded to the latest released versions containing
-latest security fixes in the image you use, you should implement your own process to upgrade
-those yourself when you build custom image based on the Airflow reference one. Airflow usually does not
-upper-bound versions of its dependencies via requirements, so you should be able to upgrade them to the
-latest versions - usually without any problems. And you can follow the process described in
-<a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a> to do it (even in automated way).</p>
-<p>Obviously - since we have no control over what gets released in new versions of the dependencies, we
-cannot give any guarantees that tests and functionality of those dependencies will be compatible with
-Airflow after you upgrade them - testing if Airflow still works with those is in your hands,
-and in case of any problems, you should raise issue with the authors of the dependencies that are problematic.
-You can also - in such cases - look at the <a class="reference external" href="https://github.com/apache/airflow/issues">Airflow issues</a>
-<a class="reference external" href="https://github.com/apache/airflow/pulls">Airflow Pull Requests</a> and
-<a class="reference external" href="https://github.com/apache/airflow/discussions">Airflow Discussions</a>, searching for similar
-problems to see if there are any fixes or workarounds found in the <code class="docutils literal notranslate"><span class="pre">main</span></code> version of Airflow and apply them
-to your custom image.</p>
-<p>The easiest way to keep-up with the latest released dependencies is however, to upgrade to the latest released
-Airflow version via switching to newly released images as base for your images, when a new version of
-Airflow is released. Whenever we release a new version of Airflow, we upgrade all dependencies to the latest
-applicable versions and test them together, so if you want to keep up with those tests - staying up-to-date
-with latest version of Airflow is the easiest way to update those dependencies.</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.9.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.9.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.12.0-dev)"><span class="xref std std-doc">Helm Chart</span></a> as well.</p>
+ <div class="section" id="module-airflow.decorators.short_circuit">
+<span id="airflow-decorators-short-circuit"></span><h1><a class="reference internal" href="#module-airflow.decorators.short_circuit" title="airflow.decorators.short_circuit"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a><a class="headerlink" href="#module-airflow.decorators.short_circuit" 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.setup_teardown" href="../setup_teardown/index.html" >
+ <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
+ </a>
+ <a rel="next" title="airflow.decorators.task_group" href="../task_group/index.html" >
<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
</a>
</div>
@@ -731,16 +790,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="#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.short_circuit</span></code></a></li>
</ul>
</div>
@@ -763,7 +813,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/short_circuit/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">
@@ -897,20 +947,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.8.1/_api/airflow/decorators/task_group/index.html
similarity index 67%
copy from docs-archive/docker-stack/changelog.html
copy to docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/task_group/index.html
index 64f3b47d51..f33bc06232 100644
--- a/docs-archive/docker-stack/changelog.html
+++ b/docs-archive/apache-airflow/2.8.1/_api/airflow/decorators/task_group/index.html
@@ -9,21 +9,22 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Dockerfile Changelog — 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.task_group — 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="Best Practices" href="../../../../best-practices.html" />
+ <link rel="prev" title="airflow.decorators.short_circuit" href="../short_circuit/index.html" />
+
+ <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/task_group/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.8.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,95 @@
<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-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-1">Airflow 2.5.1</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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><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 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</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></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.task_group.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.task_group.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.task_group.task_group_sig"><code class="docutils literal notranslate"><span class="pre">task_group_sig</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.task_group.task_group"><code class="docutils literal notranslate"><span class="pre">task_group()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</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-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="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>
</div>
@@ -419,8 +499,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.8.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 +543,95 @@
<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-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-1">Airflow 2.5.1</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#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><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 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</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></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.task_group.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.task_group.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.task_group.task_group_sig"><code class="docutils literal notranslate"><span class="pre">task_group_sig</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.task_group.task_group"><code class="docutils literal notranslate"><span class="pre">task_group()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
</ul>
</li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
... 511399 lines suppressed ...