You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ut...@apache.org on 2024/11/05 12:03:49 UTC
(airflow-site) 01/01: Add documentation for Apache Airflow 2.10.3
This is an automated email from the ASF dual-hosted git repository.
utkarsharma pushed a commit to branch 2.10.3-docs
in repository https://gitbox.apache.org/repos/asf/airflow-site.git
commit f59a29993c0e2a31ed7c462f6bafd5083d2a80c3
Author: utkarsh sharma <ut...@gmail.com>
AuthorDate: Tue Nov 5 17:28:21 2024 +0530
Add documentation for Apache Airflow 2.10.3
---
.../2.10.0/core-concepts/auth-manager/index.html | 1 +
.../2.10.1/core-concepts/auth-manager/index.html | 1 +
.../2.10.3}/.buildinfo | 2 +-
.../_api/airflow/decorators/base/index.html} | 930 +-
.../_api/airflow/decorators/bash}/index.html | 476 +-
.../decorators/branch_external_python/index.html} | 732 +-
.../airflow/decorators/branch_python/index.html} | 732 +-
.../decorators/branch_virtualenv/index.html} | 732 +-
.../_api/airflow/decorators/condition/index.html} | 745 +-
.../airflow/decorators/external_python}/index.html | 476 +-
.../2.10.3/_api/airflow/decorators/index.html} | 898 +-
.../_api/airflow/decorators/python/index.html} | 729 +-
.../decorators/python_virtualenv}/index.html | 476 +-
.../_api/airflow/decorators/sensor/index.html} | 789 +-
.../airflow/decorators/setup_teardown/index.html} | 785 +-
.../airflow/decorators/short_circuit}/index.html | 476 +-
.../_api/airflow/decorators/task_group/index.html} | 765 +-
.../example_bash_decorator/index.html} | 782 +-
.../example_dags/example_bash_operator/index.html} | 626 +-
.../example_branch_datetime_operator/index.html} | 707 +-
.../index.html} | 776 +-
.../example_dags/example_branch_labels/index.html} | 776 +-
.../example_branch_operator/index.html} | 778 +-
.../example_branch_operator_decorator/index.html} | 779 +-
.../index.html} | 807 +-
.../example_dags/example_complex/index.html} | 776 +-
.../example_dags/example_dataset_alias/index.html} | 821 +-
.../index.html} | 819 +-
.../example_dags/example_datasets/index.html} | 658 +-
.../example_dags/example_display_name/index.html} | 793 +-
.../example_dynamic_task_mapping/index.html} | 785 +-
.../index.html} | 849 +-
.../example_external_task_marker_dag/index.html} | 805 +-
.../example_inlet_event_extra/index.html} | 795 +-
.../example_kubernetes_executor/index.html} | 792 +-
.../example_dags/example_latest_only/index.html} | 776 +-
.../example_latest_only_with_trigger/index.html} | 776 +-
.../example_local_kubernetes_executor/index.html} | 650 +-
.../example_nested_branch_dag/index.html} | 787 +-
.../example_outlet_event_extra/index.html} | 804 +-
.../example_params_trigger_ui/index.html} | 786 +-
.../example_params_ui_tutorial/index.html} | 787 +-
.../index.html} | 809 +-
.../example_python_decorator/index.html} | 804 +-
.../example_python_operator/index.html} | 805 +-
.../example_sensor_decorator/index.html} | 794 +-
.../example_dags/example_sensors/index.html} | 802 +-
.../example_setup_teardown/index.html} | 776 +-
.../example_setup_teardown_taskflow/index.html} | 783 +-
.../example_short_circuit_decorator/index.html} | 794 +-
.../example_short_circuit_operator/index.html} | 618 +-
.../example_dags/example_skip_dag/index.html} | 835 +-
.../example_subdag_operator/index.html} | 776 +-
.../example_dags/example_task_group/index.html} | 776 +-
.../example_task_group_decorator/index.html} | 861 +-
.../example_time_delta_sensor_async/index.html} | 619 +-
.../example_trigger_controller_dag/index.html} | 620 +-
.../example_trigger_target_dag/index.html} | 802 +-
.../example_workday_timetable/index.html} | 597 +-
.../airflow/example_dags/example_xcom/index.html} | 844 +-
.../example_dags/example_xcomargs/index.html} | 814 +-
.../2.10.3/_api/airflow/example_dags/index.html} | 674 +-
.../airflow/example_dags/libs/helper}/index.html | 507 +-
.../_api/airflow/example_dags/libs}/index.html | 467 +-
.../index.html} | 774 +-
.../plugins/event_listener/index.html} | 794 +-
.../_api/airflow/example_dags/plugins}/index.html | 476 +-
.../plugins/listener_plugin/index.html} | 748 +-
.../example_dags/plugins/workday/index.html} | 693 +-
.../_api/airflow/example_dags/subdags}/index.html | 467 +-
.../example_dags/subdags/subdag/index.html} | 729 +-
.../_api/airflow/example_dags/tutorial/index.html} | 620 +-
.../airflow/example_dags/tutorial_dag/index.html} | 784 +-
.../tutorial_objectstorage/index.html} | 816 +-
.../example_dags/tutorial_taskflow_api/index.html} | 788 +-
.../tutorial_taskflow_api_virtualenv/index.html} | 796 +-
.../tutorial_taskflow_templates/index.html} | 788 +-
.../2.10.3/_api/airflow/exceptions/index.html | 1870 ++
.../2.10.3/_api/airflow/hooks/base/index.html} | 911 +-
.../2.10.3/_api/airflow/hooks/dbapi}/index.html | 451 +-
.../_api/airflow/hooks/filesystem/index.html} | 801 +-
.../2.10.3/_api/airflow/hooks}/index.html | 452 +-
.../_api/airflow/hooks/package_index/index.html} | 783 +-
.../_api/airflow/hooks/subprocess/index.html} | 775 +-
.../_api/airflow/models/baseoperator/index.html | 2061 +++
.../airflow/models/baseoperatorlink/index.html} | 720 +-
.../_api/airflow/models/connection/index.html} | 1083 +-
.../2.10.3/_api/airflow/models/dag/index.html | 3436 ++++
.../2.10.3/_api/airflow/models/dagbag/index.html} | 972 +-
.../2.10.3/_api/airflow/models/dagrun/index.html | 1846 ++
.../2.10.3/_api/airflow/models/param/index.html} | 1112 +-
.../_api/airflow/models/taskinstance/index.html | 2558 +++
.../airflow/models/taskinstancekey/index.html} | 776 +-
.../_api/airflow/models/variable/index.html} | 911 +-
.../2.10.3/_api/airflow/models/xcom/index.html} | 919 +-
.../2.10.3/_api/airflow/operators/bash/index.html} | 758 +-
.../_api/airflow/operators/branch/index.html} | 669 +-
.../_api/airflow/operators/datetime}/index.html | 458 +-
.../_api/airflow/operators/email}/index.html | 455 +-
.../_api/airflow/operators/empty/index.html} | 641 +-
.../airflow/operators/generic_transfer}/index.html | 455 +-
.../2.10.3/_api/airflow/operators}/index.html | 397 +-
.../_api/airflow/operators/latest_only/index.html} | 640 +-
.../_api/airflow/operators/python/index.html | 1489 ++
.../_api/airflow/operators/smooth}/index.html | 428 +-
.../_api/airflow/operators/subdag/index.html} | 694 +-
.../airflow/operators/trigger_dagrun/index.html} | 740 +-
.../_api/airflow/operators/weekday}/index.html | 472 +-
.../_api/airflow/secrets/base_secrets/index.html} | 851 +-
.../2.10.3/_api/airflow/secrets/cache/index.html} | 799 +-
.../secrets/environment_variables/index.html} | 789 +-
.../2.10.3/_api/airflow/secrets}/index.html | 514 +-
.../airflow/secrets/local_filesystem/index.html} | 856 +-
.../_api/airflow/secrets/metastore/index.html} | 762 +-
.../2.10.3/_api/airflow/sensors/base/index.html} | 765 +-
.../2.10.3/_api/airflow/sensors/bash}/index.html | 441 +-
.../_api/airflow/sensors/date_time/index.html} | 704 +-
.../_api/airflow/sensors/external_task/index.html} | 864 +-
.../_api/airflow/sensors/filesystem}/index.html | 485 +-
.../2.10.3/_api/airflow/sensors}/index.html | 394 +-
.../2.10.3/_api/airflow/sensors/python}/index.html | 440 +-
.../_api/airflow/sensors/time_delta}/index.html | 465 +-
.../_api/airflow/sensors/time_sensor}/index.html | 480 +-
.../_api/airflow/sensors/weekday}/index.html | 459 +-
.../_api/airflow/timetables/_cron}/index.html | 432 +-
.../_api/airflow/timetables/base/index.html} | 1036 +-
.../_api/airflow/timetables/datasets/index.html} | 808 +-
.../_api/airflow/timetables/events/index.html} | 800 +-
.../2.10.3/_api/airflow/timetables}/index.html | 446 +-
.../_api/airflow/timetables/interval/index.html} | 865 +-
.../_api/airflow/timetables/simple/index.html} | 890 +-
.../_api/airflow/timetables/trigger/index.html} | 775 +-
.../2.10.3/_api/airflow/triggers/base/index.html} | 974 +-
.../airflow/triggers/external_task/index.html} | 862 +-
.../2.10.3/_api/airflow/triggers/file/index.html} | 725 +-
.../2.10.3/_api/airflow/triggers}/index.html | 443 +-
.../_api/airflow/triggers/temporal/index.html} | 758 +-
.../_api/airflow/triggers/testing/index.html} | 783 +-
.../2.10.3/_api/airflow/utils/state/index.html | 1458 ++
docs-archive/apache-airflow/2.10.3/_api/index.html | 1 +
.../index.html | 392 +-
.../index.html | 398 +-
.../2.10.3/_api/tests/system/core}/index.html | 386 +-
.../apache-airflow/2.10.3/_images/add-dag-tags.png | Bin 0 -> 54332 bytes
.../_images/add_container_python_interpreter.png | Bin 0 -> 339750 bytes
.../apache-airflow/2.10.3/_images/airflow_erd.svg | 2293 +++
.../apache-airflow/2.10.3/_images/apache.jpg | Bin 0 -> 43364 bytes
.../2.10.3/_images/arch-diag-logging.png | Bin 0 -> 25843 bytes
.../apache-airflow/2.10.3/_images/audit_log.png | Bin 0 -> 456601 bytes
.../apache-airflow/2.10.3/_images/basic-dag.png | Bin 0 -> 12837 bytes
.../apache-airflow/2.10.3/_images/branch_note.png | Bin 0 -> 31259 bytes
.../2.10.3/_images/branch_with_trigger.png | Bin 0 -> 28541 bytes
.../2.10.3/_images/branch_without_trigger.png | Bin 0 -> 28914 bytes
.../apache-airflow/2.10.3/_images/calendar.png | Bin 0 -> 34689 bytes
.../2.10.3/_images/cli_completion.gif | Bin 0 -> 775263 bytes
.../2.10.3/_images/cluster_activity.png | Bin 0 -> 116167 bytes
.../apache-airflow/2.10.3/_images/code.png | Bin 0 -> 504063 bytes
.../2.10.3/_images/connection_create.png | Bin 0 -> 52889 bytes
.../2.10.3/_images/connection_edit.png | Bin 0 -> 31186 bytes
.../apache-airflow/2.10.3/_images/dag_doc.png | Bin 0 -> 93757 bytes
.../2.10.3/_images/dag_file_processing_diagram.png | Bin 0 -> 263825 bytes
.../2.10.3/_images/dag_serialization.png | Bin 0 -> 99917 bytes
.../2.10.3/_images/dags-page-new.png | Bin 0 -> 74143 bytes
.../2.10.3/_images/dags-page-old.png | Bin 0 -> 72288 bytes
.../apache-airflow/2.10.3/_images/dags.png | Bin 0 -> 614240 bytes
.../2.10.3/_images/dataset-scheduled-dags.png | Bin 0 -> 77225 bytes
.../apache-airflow/2.10.3/_images/datasets.png | Bin 0 -> 406053 bytes
.../default_instance_name_configuration.png | Bin 0 -> 68441 bytes
.../2.10.3/_images/demo_graph_view.png | Bin 0 -> 382210 bytes
.../2.10.3/_images/demo_grid_view.png | Bin 0 -> 65574 bytes
.../diagram_auth_manager_airflow_architecture.png | Bin 0 -> 54220 bytes
.../_images/diagram_basic_airflow_architecture.png | Bin 0 -> 117106 bytes
.../diagram_dag_processor_airflow_architecture.png | Bin 0 -> 238002 bytes
.../diagram_distributed_airflow_architecture.png | Bin 0 -> 192331 bytes
.../2.10.3/_images/docker-compose-pycharm.png | Bin 0 -> 59560 bytes
.../apache-airflow/2.10.3/_images/duration.png | Bin 0 -> 358076 bytes
.../2.10.3/_images/edge_label_example.png | Bin 0 -> 37438 bytes
.../2.10.3/_images/email_connection.png | Bin 0 -> 59515 bytes
.../example_instance_name_configuration.png | Bin 0 -> 68231 bytes
.../2.10.3/_images/example_passing_conf.png | Bin 0 -> 53383 bytes
.../apache-airflow/2.10.3/_images/gantt.png | Bin 0 -> 313750 bytes
.../2.10.3/_images/graph-view-new.png | Bin 0 -> 34492 bytes
.../2.10.3/_images/graph-view-old.png | Bin 0 -> 34721 bytes
.../apache-airflow/2.10.3/_images/graph.png | Bin 0 -> 417210 bytes
...iz-5817c4b4cb6cd3ea7d604aa85ab3420b64a24446.svg | 200 +
.../apache-airflow/2.10.3/_images/grid.png | Bin 0 -> 334128 bytes
.../2.10.3/_images/grid_instance_details.png | Bin 0 -> 178129 bytes
.../2.10.3/_images/grid_mapped_task.png | Bin 0 -> 135753 bytes
.../2.10.3/_images/grid_run_details.png | Bin 0 -> 202106 bytes
.../2.10.3/_images/grid_task_details.png | Bin 0 -> 227349 bytes
.../2.10.3/_images/grid_task_group.png | Bin 0 -> 56287 bytes
.../2.10.3/_images/howto-owner-links.gif | Bin 0 -> 829619 bytes
.../2.10.3/_images/landing_times.png | Bin 0 -> 303523 bytes
.../2.10.3/_images/latest_only_with_trigger.png | Bin 0 -> 59580 bytes
.../2.10.3/_images/mapping-simple-graph.png | Bin 0 -> 7731 bytes
.../2.10.3/_images/mapping-simple-grid.png | Bin 0 -> 93751 bytes
.../2.10.3/_images/operator_extra_link.png | Bin 0 -> 75061 bytes
.../apache-airflow/2.10.3/_images/run_types.png | Bin 0 -> 5950 bytes
.../2.10.3/_images/setup-teardown-complex.png | Bin 0 -> 114476 bytes
.../2.10.3/_images/setup-teardown-group.png | Bin 0 -> 48789 bytes
.../2.10.3/_images/setup-teardown-nesting.png | Bin 0 -> 83934 bytes
.../2.10.3/_images/setup-teardown-parallel.png | Bin 0 -> 43571 bytes
.../2.10.3/_images/setup-teardown-scope.png | Bin 0 -> 62951 bytes
.../2.10.3/_images/setup-teardown-setup-group.png | Bin 0 -> 76759 bytes
.../2.10.3/_images/setup-teardown-simple.png | Bin 0 -> 29606 bytes
.../apache-airflow/2.10.3/_images/subdag_after.png | Bin 0 -> 30245 bytes
.../2.10.3/_images/subdag_before.png | Bin 0 -> 70382 bytes
.../apache-airflow/2.10.3/_images/subdag_zoom.png | Bin 0 -> 145017 bytes
.../apache-airflow/2.10.3/_images/task_doc.png | Bin 0 -> 145331 bytes
.../apache-airflow/2.10.3/_images/task_group.gif | Bin 0 -> 137189 bytes
.../2.10.3/_images/task_instance_history.png | Bin 0 -> 118727 bytes
.../2.10.3/_images/task_instance_history_log.png | Bin 0 -> 156398 bytes
.../2.10.3/_images/task_lifecycle_diagram.png | Bin 0 -> 32164 bytes
.../_images/template_field_renderer_path.png | Bin 0 -> 64442 bytes
.../2.10.3/_images/tree-view-new.png | Bin 0 -> 20188 bytes
.../2.10.3/_images/tree-view-old.png | Bin 0 -> 20146 bytes
.../2.10.3/_images/trigger-dag-tutorial-form.png | Bin 0 -> 247468 bytes
.../2.10.3/_images/tutorial-pipeline-1.png | Bin 0 -> 66411 bytes
.../2.10.3/_images/tutorial-pipeline-2.png | Bin 0 -> 137595 bytes
.../2.10.3/_images/ui-alert-message.png | Bin 0 -> 48753 bytes
.../2.10.3/_images/ui-timezone-chooser.png | Bin 0 -> 16644 bytes
.../2.10.3/_images/usage_cli_export.png | Bin 0 -> 397830 bytes
.../2.10.3/_images/usage_cli_imgcat.png | Bin 0 -> 475224 bytes
.../2.10.3/_images/variable_hidden.png | Bin 0 -> 55331 bytes
.../apache-airflow/2.10.3/_images/watcher.png | Bin 0 -> 20310 bytes
.../2.10.3/_modules/airflow/decorators.html} | 494 +-
.../2.10.3/_modules/airflow/decorators/base.html | 1537 ++
.../decorators/branch_external_python.html} | 466 +-
.../airflow/decorators/branch_python.html} | 466 +-
.../airflow/decorators/branch_virtualenv.html} | 466 +-
.../_modules/airflow/decorators/condition.html} | 521 +-
.../_modules/airflow/decorators/python.html} | 489 +-
.../_modules/airflow/decorators/sensor.html} | 484 +-
.../airflow/decorators/setup_teardown.html} | 493 +-
.../_modules/airflow/decorators/task_group.html} | 621 +-
.../example_dags/example_bash_decorator.html} | 519 +-
.../example_dags/example_bash_operator.html} | 484 +-
.../example_branch_datetime_operator.html} | 512 +-
.../example_branch_day_of_week_operator.html} | 468 +-
.../example_dags/example_branch_labels.html} | 453 +-
.../example_dags/example_branch_operator.html} | 578 +-
.../example_branch_operator_decorator.html} | 553 +-
.../example_branch_python_dop_operator_3.html} | 468 +-
.../airflow/example_dags/example_complex.html} | 624 +-
.../example_dags/example_dataset_alias.html} | 508 +-
.../example_dataset_alias_with_no_taskflow.html} | 515 +-
.../airflow/example_dags/example_datasets.html} | 599 +-
.../example_dags/example_display_name.html} | 455 +-
.../example_dynamic_task_mapping.html} | 446 +-
...c_task_mapping_with_no_taskflow_operators.html} | 471 +-
.../example_external_task_marker_dag.html} | 505 +-
.../example_dags/example_inlet_event_extra.html} | 468 +-
.../example_dags/example_kubernetes_executor.html} | 646 +-
.../airflow/example_dags/example_latest_only.html} | 445 +-
.../example_latest_only_with_trigger.html} | 456 +-
.../example_local_kubernetes_executor.html} | 479 +-
.../example_dags/example_nested_branch_dag.html} | 464 +-
.../example_dags/example_outlet_event_extra.html} | 487 +-
.../example_dags/example_params_trigger_ui.html} | 511 +-
.../example_dags/example_params_ui_tutorial.html} | 721 +-
.../example_passing_params_via_test_command.html} | 494 +-
.../example_dags/example_python_decorator.html} | 543 +-
.../example_dags/example_python_operator.html} | 777 +-
.../example_dags/example_sensor_decorator.html} | 474 +-
.../airflow/example_dags/example_sensors.html} | 537 +-
.../example_dags/example_setup_teardown.html} | 457 +-
.../example_setup_teardown_taskflow.html} | 514 +-
.../example_short_circuit_decorator.html} | 468 +-
.../example_short_circuit_operator.html} | 474 +-
.../airflow/example_dags/example_skip_dag.html} | 480 +-
.../example_dags/example_subdag_operator.html} | 477 +-
.../airflow/example_dags/example_task_group.html} | 473 +-
.../example_task_group_decorator.html} | 488 +-
.../example_time_delta_sensor_async.html} | 449 +-
.../example_trigger_controller_dag.html} | 449 +-
.../example_dags/example_trigger_target_dag.html} | 463 +-
.../airflow/example_dags/example_xcom.html} | 502 +-
.../airflow/example_dags/example_xcomargs.html} | 473 +-
.../airflow/example_dags/libs/helper.html} | 429 +-
.../decreasing_priority_weight_strategy.html} | 444 +-
.../example_dags/plugins/event_listener.html} | 575 +-
.../example_dags/plugins/listener_plugin.html} | 433 +-
.../airflow/example_dags/plugins/workday.html} | 511 +-
.../airflow/example_dags/subdags/subdag.html} | 463 +-
.../_modules/airflow/example_dags/tutorial.html} | 534 +-
.../airflow/example_dags/tutorial_dag.html} | 543 +-
.../example_dags/tutorial_objectstorage.html} | 542 +-
.../example_dags/tutorial_taskflow_api.html} | 513 +-
.../tutorial_taskflow_api_virtualenv.html} | 494 +-
.../example_dags/tutorial_taskflow_templates.html} | 514 +-
.../2.10.3/_modules/airflow/exceptions.html | 1367 ++
.../2.10.3/_modules/airflow/hooks/base.html} | 592 +-
.../2.10.3/_modules/airflow/hooks/filesystem.html} | 496 +-
.../_modules/airflow/hooks/package_index.html} | 502 +-
.../2.10.3/_modules/airflow/hooks/subprocess.html} | 526 +-
.../2.10.3/_modules/airflow/macros.html} | 531 +-
.../_modules/airflow/models/baseoperator.html | 2996 +++
.../_modules/airflow/models/baseoperatorlink.html} | 465 +-
.../2.10.3/_modules/airflow/models/connection.html | 1452 ++
.../2.10.3/_modules/airflow/models/dag.html | 5316 ++++++
.../2.10.3/_modules/airflow/models/dagbag.html | 1642 ++
.../2.10.3/_modules/airflow/models/dagrun.html | 2585 +++
.../2.10.3/_modules/airflow/models/param.html} | 768 +-
.../_modules/airflow/models/taskinstance.html | 5087 ++++++
.../_modules/airflow/models/taskinstancekey.html} | 468 +-
.../2.10.3/_modules/airflow/models/variable.html} | 994 +-
.../2.10.3/_modules/airflow/models/xcom.html | 1678 ++
.../2.10.3/_modules/airflow/operators/bash.html} | 723 +-
.../2.10.3/_modules/airflow/operators/branch.html} | 505 +-
.../_modules/airflow/operators/datetime.html} | 526 +-
.../2.10.3/_modules/airflow/operators/email.html} | 497 +-
.../2.10.3/_modules/airflow/operators/empty.html} | 446 +-
.../airflow/operators/generic_transfer.html} | 515 +-
.../_modules/airflow/operators/latest_only.html} | 484 +-
.../2.10.3/_modules/airflow/operators/python.html | 2015 ++
.../2.10.3/_modules/airflow/operators/smooth.html} | 445 +-
.../2.10.3/_modules/airflow/operators/subdag.html} | 711 +-
.../airflow/operators/trigger_dagrun.html} | 931 +-
.../_modules/airflow/operators/weekday.html} | 536 +-
.../2.10.3/_modules/airflow/policies.html} | 617 +-
.../2.10.3/_modules/airflow/secrets.html} | 444 +-
.../_modules/airflow/secrets/base_secrets.html} | 562 +-
.../2.10.3/_modules/airflow/secrets/cache.html} | 539 +-
.../airflow/secrets/environment_variables.html} | 470 +-
.../airflow/secrets/local_filesystem.html} | 800 +-
.../_modules/airflow/secrets/metastore.html} | 497 +-
.../2.10.3/_modules/airflow/sensors/base.html} | 862 +-
.../2.10.3/_modules/airflow/sensors/bash.html} | 521 +-
.../_modules/airflow/sensors/date_time.html} | 540 +-
.../_modules/airflow/sensors/external_task.html | 1394 ++
.../_modules/airflow/sensors/filesystem.html} | 545 +-
.../2.10.3/_modules/airflow/sensors/python.html} | 487 +-
.../_modules/airflow/sensors/time_delta.html} | 498 +-
.../_modules/airflow/sensors/time_sensor.html} | 518 +-
.../2.10.3/_modules/airflow/sensors/weekday.html} | 522 +-
.../2.10.3/_modules/airflow/timetables/_cron.html} | 555 +-
.../2.10.3/_modules/airflow/timetables/base.html} | 696 +-
.../_modules/airflow/timetables/datasets.html} | 504 +-
.../_modules/airflow/timetables/events.html} | 541 +-
.../_modules/airflow/timetables/interval.html} | 682 +-
.../_modules/airflow/timetables/simple.html} | 640 +-
.../_modules/airflow/timetables/trigger.html} | 522 +-
.../2.10.3/_modules/airflow/triggers/base.html} | 710 +-
.../_modules/airflow/triggers/external_task.html} | 943 +-
.../2.10.3/_modules/airflow/triggers/file.html} | 494 +-
.../_modules/airflow/triggers/temporal.html} | 512 +-
.../2.10.3/_modules/airflow/triggers/testing.html} | 460 +-
.../2.10.3/_modules/airflow/utils/state.html} | 852 +-
.../2.10.3/_modules}/index.html | 527 +-
.../example_external_task_child_deferrable.html} | 447 +-
.../example_external_task_parent_deferrable.html} | 477 +-
.../_api/airflow/decorators/base/index.rst.txt | 222 +
.../_api/airflow/decorators/bash/index.rst.txt | 6 +
.../branch_external_python/index.rst.txt | 34 +
.../airflow/decorators/branch_python/index.rst.txt | 34 +
.../decorators/branch_virtualenv/index.rst.txt | 34 +
.../airflow/decorators/condition/index.rst.txt | 38 +
.../decorators/external_python/index.rst.txt | 6 +
.../_sources/_api/airflow/decorators/index.rst.txt | 155 +
.../_api/airflow/decorators/python/index.rst.txt | 30 +
.../decorators/python_virtualenv/index.rst.txt | 6 +
.../_api/airflow/decorators/sensor/index.rst.txt | 75 +
.../decorators/setup_teardown/index.rst.txt | 60 +
.../airflow/decorators/short_circuit/index.rst.txt | 6 +
.../airflow/decorators/task_group/index.rst.txt | 63 +
.../example_bash_decorator/index.rst.txt | 22 +
.../example_bash_operator/index.rst.txt | 22 +
.../example_branch_datetime_operator/index.rst.txt | 63 +
.../index.rst.txt | 18 +
.../example_branch_labels/index.rst.txt | 18 +
.../example_branch_operator/index.rst.txt | 21 +
.../index.rst.txt | 22 +
.../index.rst.txt | 45 +
.../example_dags/example_complex/index.rst.txt | 18 +
.../example_dataset_alias/index.rst.txt | 54 +
.../index.rst.txt | 52 +
.../example_dags/example_datasets/index.rst.txt | 58 +
.../example_display_name/index.rst.txt | 34 +
.../example_dynamic_task_mapping/index.rst.txt | 27 +
.../index.rst.txt | 76 +
.../example_external_task_marker_dag/index.rst.txt | 44 +
.../example_inlet_event_extra/index.rst.txt | 41 +
.../example_kubernetes_executor/index.rst.txt | 26 +
.../example_dags/example_latest_only/index.rst.txt | 18 +
.../example_latest_only_with_trigger/index.rst.txt | 18 +
.../index.rst.txt | 34 +
.../example_nested_branch_dag/index.rst.txt | 29 +
.../example_outlet_event_extra/index.rst.txt | 45 +
.../example_params_trigger_ui/index.rst.txt | 29 +
.../example_params_ui_tutorial/index.rst.txt | 30 +
.../index.rst.txt | 51 +
.../example_python_decorator/index.rst.txt | 45 +
.../example_python_operator/index.rst.txt | 47 +
.../example_sensor_decorator/index.rst.txt | 39 +
.../example_dags/example_sensors/index.rst.txt | 38 +
.../example_setup_teardown/index.rst.txt | 18 +
.../example_setup_teardown_taskflow/index.rst.txt | 27 +
.../example_short_circuit_decorator/index.rst.txt | 39 +
.../example_short_circuit_operator/index.rst.txt | 18 +
.../example_dags/example_skip_dag/index.rst.txt | 63 +
.../example_subdag_operator/index.rst.txt | 19 +
.../example_dags/example_task_group/index.rst.txt | 18 +
.../example_task_group_decorator/index.rst.txt | 71 +
.../example_time_delta_sensor_async/index.rst.txt | 19 +
.../example_trigger_controller_dag/index.rst.txt | 20 +
.../example_trigger_target_dag/index.rst.txt | 45 +
.../example_workday_timetable/index.rst.txt | 6 +
.../example_dags/example_xcom/index.rst.txt | 68 +
.../example_dags/example_xcomargs/index.rst.txt | 52 +
.../_api/airflow/example_dags/index.rst.txt | 75 +
.../airflow/example_dags/libs/helper/index.rst.txt | 22 +
.../_api/airflow/example_dags/libs/index.rst.txt | 15 +
.../index.rst.txt | 50 +
.../plugins/event_listener/index.rst.txt | 63 +
.../airflow/example_dags/plugins/index.rst.txt | 18 +
.../plugins/listener_plugin/index.rst.txt | 36 +
.../example_dags/plugins/workday/index.rst.txt | 96 +
.../airflow/example_dags/subdags/index.rst.txt | 15 +
.../example_dags/subdags/subdag/index.rst.txt | 34 +
.../airflow/example_dags/tutorial/index.rst.txt | 20 +
.../example_dags/tutorial_dag/index.rst.txt | 28 +
.../tutorial_objectstorage/index.rst.txt | 51 +
.../tutorial_taskflow_api/index.rst.txt | 29 +
.../tutorial_taskflow_api_virtualenv/index.rst.txt | 38 +
.../tutorial_taskflow_templates/index.rst.txt | 29 +
.../_sources/_api/airflow/exceptions/index.rst.txt | 569 +
.../_sources/_api/airflow/hooks/base/index.rst.txt | 193 +
.../_api/airflow/hooks/dbapi/index.rst.txt | 11 +
.../_api/airflow/hooks/filesystem/index.rst.txt | 84 +
.../_sources/_api/airflow/hooks/index.rst.txt | 24 +
.../_api/airflow/hooks/package_index/index.rst.txt | 73 +
.../_api/airflow/hooks/subprocess/index.rst.txt | 80 +
.../_api/airflow/models/baseoperator/index.rst.txt | 947 +
.../airflow/models/baseoperatorlink/index.rst.txt | 55 +
.../_api/airflow/models/connection/index.rst.txt | 258 +
.../_sources/_api/airflow/models/dag/index.rst.txt | 1340 ++
.../_api/airflow/models/dagbag/index.rst.txt | 197 +
.../_api/airflow/models/dagrun/index.rst.txt | 483 +
.../_api/airflow/models/param/index.rst.txt | 249 +
.../_api/airflow/models/taskinstance/index.rst.txt | 875 +
.../airflow/models/taskinstancekey/index.rst.txt | 84 +
.../_api/airflow/models/variable/index.rst.txt | 169 +
.../_api/airflow/models/xcom/index.rst.txt | 175 +
.../_api/airflow/operators/bash/index.rst.txt | 180 +
.../_api/airflow/operators/branch/index.rst.txt | 77 +
.../_api/airflow/operators/datetime/index.rst.txt | 66 +
.../_api/airflow/operators/email/index.rst.txt | 69 +
.../_api/airflow/operators/empty/index.rst.txt | 49 +
.../operators/generic_transfer/index.rst.txt | 71 +
.../_sources/_api/airflow/operators/index.rst.txt | 35 +
.../airflow/operators/latest_only/index.rst.txt | 54 +
.../_api/airflow/operators/python/index.rst.txt | 481 +
.../_api/airflow/operators/smooth/index.rst.txt | 47 +
.../_api/airflow/operators/subdag/index.rst.txt | 98 +
.../airflow/operators/trigger_dagrun/index.rst.txt | 133 +
.../_api/airflow/operators/weekday/index.rst.txt | 98 +
.../airflow/secrets/base_secrets/index.rst.txt | 103 +
.../_api/airflow/secrets/cache/index.rst.txt | 75 +
.../secrets/environment_variables/index.rst.txt | 78 +
.../_sources/_api/airflow/secrets/index.rst.txt | 57 +
.../airflow/secrets/local_filesystem/index.rst.txt | 117 +
.../_api/airflow/secrets/metastore/index.rst.txt | 56 +
.../_api/airflow/sensors/base/index.rst.txt | 154 +
.../_api/airflow/sensors/bash/index.rst.txt | 59 +
.../_api/airflow/sensors/date_time/index.rst.txt | 103 +
.../airflow/sensors/external_task/index.rst.txt | 216 +
.../_api/airflow/sensors/filesystem/index.rst.txt | 88 +
.../_sources/_api/airflow/sensors/index.rst.txt | 32 +
.../_api/airflow/sensors/python/index.rst.txt | 57 +
.../_api/airflow/sensors/time_delta/index.rst.txt | 73 +
.../_api/airflow/sensors/time_sensor/index.rst.txt | 83 +
.../_api/airflow/sensors/weekday/index.rst.txt | 81 +
.../_api/airflow/timetables/_cron/index.rst.txt | 41 +
.../_api/airflow/timetables/base/index.rst.txt | 271 +
.../_api/airflow/timetables/datasets/index.rst.txt | 96 +
.../_api/airflow/timetables/events/index.rst.txt | 99 +
.../_sources/_api/airflow/timetables/index.rst.txt | 20 +
.../_api/airflow/timetables/interval/index.rst.txt | 146 +
.../_api/airflow/timetables/simple/index.rst.txt | 160 +
.../_api/airflow/timetables/trigger/index.rst.txt | 82 +
.../_api/airflow/triggers/base/index.rst.txt | 200 +
.../airflow/triggers/external_task/index.rst.txt | 126 +
.../_api/airflow/triggers/file/index.rst.txt | 44 +
.../_sources/_api/airflow/triggers/index.rst.txt | 19 +
.../_api/airflow/triggers/temporal/index.rst.txt | 73 +
.../_api/airflow/triggers/testing/index.rst.txt | 90 +
.../_api/airflow/utils/state/index.rst.txt | 300 +
.../index.rst.txt | 13 +
.../index.rst.txt | 17 +
.../_sources/_api/tests/system/core/index.rst.txt | 16 +
.../cluster-policies.rst.txt | 185 +
.../dag-serialization.rst.txt | 121 +
.../administration-and-deployment/index.rst.txt | 36 +
.../kubernetes.rst.txt | 67 +
.../administration-and-deployment/lineage.rst.txt | 156 +
.../listeners.rst.txt | 190 +
.../advanced-logging-configuration.rst.txt | 184 +
.../logging-monitoring/callbacks.rst.txt | 101 +
.../logging-monitoring/check-health.rst.txt | 163 +
.../logging-monitoring/errors.rst.txt | 112 +
.../logging-monitoring/index.rst.txt | 41 +
.../logging-architecture.rst.txt | 47 +
.../logging-monitoring/logging-tasks.rst.txt | 206 +
.../logging-monitoring/metrics.rst.txt | 294 +
.../logging-monitoring/traces.rst.txt | 61 +
.../tracking-user-activity.rst.txt | 40 +
.../modules_management.rst.txt | 405 +
.../administration-and-deployment/pools.rst.txt | 90 +
.../priority-weight.rst.txt | 98 +
.../production-deployment.rst.txt | 296 +
.../scheduler.rst.txt | 389 +
.../authoring-and-scheduling/connections.rst.txt | 51 +
.../_sources/authoring-and-scheduling/cron.rst.txt | 70 +
.../dagfile-processing.rst.txt | 47 +
.../authoring-and-scheduling/datasets.rst.txt | 532 +
.../authoring-and-scheduling/deferring.rst.txt | 436 +
.../dynamic-task-mapping.rst.txt | 671 +
.../authoring-and-scheduling/index.rst.txt | 45 +
.../authoring-and-scheduling/plugins.rst.txt | 340 +
.../authoring-and-scheduling/serializers.rst.txt | 129 +
.../authoring-and-scheduling/timetable.rst.txt | 337 +
.../authoring-and-scheduling/timezone.rst.txt | 193 +
.../2.10.3/_sources/best-practices.rst.txt | 1111 ++
.../_sources/cli-and-env-variables-ref.rst.txt | 113 +
.../2.10.3/_sources/configurations-ref.rst.txt | 52 +
.../_sources/core-concepts/auth-manager.rst.txt | 179 +
.../2.10.3/_sources/core-concepts/dag-run.rst.txt | 286 +
.../2.10.3/_sources/core-concepts/dags.rst.txt | 926 +
.../2.10.3/_sources/core-concepts/debug.rst.txt | 139 +
.../_sources/core-concepts/executor/index.rst.txt | 350 +
.../_sources/core-concepts/executor/local.rst.txt | 57 +
.../core-concepts/executor/sequential.rst.txt | 26 +
.../2.10.3/_sources/core-concepts/index.rst.txt | 60 +
.../_sources/core-concepts/objectstorage.rst.txt | 330 +
.../_sources/core-concepts/operators.rst.txt | 310 +
.../2.10.3/_sources/core-concepts/overview.rst.txt | 246 +
.../2.10.3/_sources/core-concepts/params.rst.txt | 405 +
.../2.10.3/_sources/core-concepts/sensors.rst.txt | 32 +
.../2.10.3/_sources/core-concepts/taskflow.rst.txt | 210 +
.../2.10.3/_sources/core-concepts/tasks.rst.txt | 343 +
.../_sources/core-concepts/variables.rst.txt | 48 +
.../2.10.3/_sources/core-concepts/xcoms.rst.txt | 133 +
.../2.10.3/_sources/database-erd-ref.rst.txt | 38 +
.../_sources/deprecated-rest-api-ref.rst.txt | 132 +
.../2.10.3/_sources/extra-packages-ref.rst.txt | 486 +
.../apache-airflow/2.10.3/_sources/faq.rst.txt | 547 +
.../2.10.3/_sources/howto/add-dag-tags.rst.txt | 44 +
.../2.10.3/_sources/howto/add-owner-links.rst.txt | 50 +
.../2.10.3/_sources/howto/connection.rst.txt | 515 +
.../_sources/howto/create-custom-decorator.rst.txt | 124 +
.../2.10.3/_sources/howto/custom-operator.rst.txt | 431 +
.../_sources/howto/custom-view-plugin.rst.txt | 76 +
.../2.10.3/_sources/howto/customize-ui.rst.txt | 171 +
.../_sources/howto/define-extra-link.rst.txt | 179 +
.../_sources/howto/docker-compose/index.rst.txt | 478 +
.../_sources/howto/dynamic-dag-generation.rst.txt | 220 +
.../2.10.3/_sources/howto/email-config.rst.txt | 194 +
.../_sources/howto/export-more-env-vars.rst.txt | 46 +
.../2.10.3/_sources/howto/index.rst.txt | 55 +
.../2.10.3/_sources/howto/listener-plugin.rst.txt | 95 +
.../2.10.3/_sources/howto/notifications.rst.txt | 80 +
.../2.10.3/_sources/howto/operator/bash.rst.txt | 420 +
.../_sources/howto/operator/datetime.rst.txt | 74 +
.../howto/operator/external_task_sensor.rst.txt | 88 +
.../2.10.3/_sources/howto/operator/file.rst.txt | 41 +
.../2.10.3/_sources/howto/operator/index.rst.txt | 38 +
.../2.10.3/_sources/howto/operator/python.rst.txt | 488 +
.../2.10.3/_sources/howto/operator/time.rst.txt | 78 +
.../2.10.3/_sources/howto/operator/weekday.rst.txt | 44 +
.../2.10.3/_sources/howto/run-behind-proxy.rst.txt | 84 +
.../2.10.3/_sources/howto/run-with-systemd.rst.txt | 40 +
.../2.10.3/_sources/howto/set-config.rst.txt | 222 +
.../2.10.3/_sources/howto/set-up-database.rst.txt | 469 +
.../_sources/howto/setup-and-teardown.rst.txt | 233 +
.../2.10.3/_sources/howto/timetable.rst.txt | 355 +
.../howto/upgrading-from-1-10/index.rst.txt | 1232 ++
.../upgrading-from-1-10/upgrade-check.rst.txt | 221 +
.../2.10.3/_sources/howto/usage-cli.rst.txt | 407 +
.../2.10.3/_sources/howto/variable.rst.txt | 76 +
.../apache-airflow/2.10.3/_sources/index.rst.txt | 185 +
.../_sources/installation/dependencies.rst.txt | 88 +
.../2.10.3/_sources/installation/index.rst.txt | 397 +
.../installation/installing-from-pypi.rst.txt | 378 +
.../installation/installing-from-sources.rst.txt | 161 +
.../_sources/installation/prerequisites.rst.txt | 59 +
.../installation/setting-up-the-database.rst.txt | 39 +
.../installation/supported-versions.rst.txt | 69 +
.../2.10.3/_sources/installation/upgrading.rst.txt | 290 +
.../2.10.3/_sources/integration.rst.txt | 38 +
.../apache-airflow/2.10.3/_sources/license.rst.txt | 201 +
.../2.10.3/_sources/migrations-ref.rst.txt | 380 +
.../_sources/operators-and-hooks-ref.rst.txt | 128 +
.../2.10.3/_sources/privacy_notice.rst.txt | 23 +
.../apache-airflow/2.10.3/_sources/project.rst.txt | 122 +
.../_sources/public-airflow-interface.rst.txt | 431 +
.../2.10.3/_sources/release-process.rst.txt | 97 +
.../2.10.3/_sources/release_notes.rst.txt | 23 +
.../2.10.3/_sources/security/api.rst.txt | 52 +
.../2.10.3/_sources/security/audit_logs.rst.txt | 67 +
.../2.10.3/_sources/security/flower.rst.txt | 62 +
.../2.10.3/_sources/security/index.rst.txt | 36 +
.../2.10.3/_sources/security/kerberos.rst.txt | 188 +
.../security/releasing_security_patches.rst.txt | 49 +
.../2.10.3/_sources/security/sbom.rst.txt | 31 +
.../_sources/security/secrets/fernet.rst.txt | 63 +
.../2.10.3/_sources/security/secrets/index.rst.txt | 37 +
.../security/secrets/mask-sensitive-values.rst.txt | 91 +
.../security/secrets/secrets-backend/index.rst.txt | 121 +
.../local-filesystem-secrets-backend.rst.txt | 145 +
.../_sources/security/security_model.rst.txt | 296 +
.../2.10.3/_sources/security/webserver.rst.txt | 111 +
.../2.10.3/_sources/security/workload.rst.txt | 52 +
.../2.10.3/_sources/stable-rest-api-ref.rst.txt | 23 +
.../apache-airflow/2.10.3/_sources/start.rst.txt | 137 +
.../2.10.3/_sources/templates-ref.rst.txt | 214 +
.../2.10.3/_sources/troubleshooting.rst.txt | 48 +
.../2.10.3/_sources/tutorial/fundamentals.rst.txt | 406 +
.../2.10.3/_sources/tutorial/index.rst.txt | 29 +
.../2.10.3/_sources/tutorial/objectstorage.rst.txt | 134 +
.../2.10.3/_sources/tutorial/pipeline.rst.txt | 336 +
.../2.10.3/_sources/tutorial/taskflow.rst.txt | 751 +
.../apache-airflow/2.10.3/_sources/ui.rst.txt | 237 +
docs-archive/apache-airflow/2.10.3/_specs/v1.yaml | 6073 +++++++
...-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css | 1 +
.../2.10.3/_sphinx_design_static/design-tabs.js | 27 +
.../2.10.3/_static/_gen/css/main-custom.min.css | 1 +
.../2.10.3/_static/_gen/css/main.min.css | 7 +
.../apache-airflow/2.10.3/_static/_gen/js/docs.js | 1 +
.../_sphinx_javascript_frameworks_compat.js | 134 +
.../apache-airflow/2.10.3/_static/basic.css | 899 +
.../apache-airflow/2.10.3/_static/check-solid.svg | 4 +
.../apache-airflow/2.10.3/_static/clipboard.min.js | 7 +
.../apache-airflow/2.10.3/_static/copy-button.svg | 5 +
.../apache-airflow/2.10.3/_static/copybutton.css | 94 +
.../apache-airflow/2.10.3/_static/copybutton.js | 248 +
.../2.10.3/_static/copybutton_funcs.js | 73 +
.../apache-airflow/2.10.3/_static/custom.css | 33 +
...-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css | 1 +
.../apache-airflow/2.10.3/_static/design-tabs.js | 27 +
.../apache-airflow/2.10.3/_static/doctools.js | 156 +
.../2.10.3/_static/documentation_options.js | 14 +
.../2.10.3/_static/exampleinclude.css | 86 +
.../apache-airflow/2.10.3/_static/file.png | Bin 0 -> 286 bytes
.../apache-airflow/2.10.3/_static/gh-jira-links.js | 36 +
.../apache-airflow/2.10.3/_static/graphviz.css | 19 +
.../apache-airflow/2.10.3/_static/jquery-3.6.0.js | 10881 +++++++++++
.../apache-airflow/2.10.3/_static/jquery.js | 2 +
.../apache-airflow/2.10.3/_static/js/globaltoc.js | 24 +
.../apache-airflow/2.10.3/_static/language_data.js | 199 +
.../apache-airflow/2.10.3/_static/minus.png | Bin 0 -> 90 bytes
.../apache-airflow/2.10.3/_static/pin_32.png | Bin 0 -> 1201 bytes
.../apache-airflow/2.10.3/_static/plus.png | Bin 0 -> 90 bytes
.../apache-airflow/2.10.3/_static/pygments.css | 75 +
.../apache-airflow/2.10.3/_static/redoc.js | 103 +
.../apache-airflow/2.10.3/_static/searchtools.js | 566 +
.../2.10.3/_static/sphinx_highlight.js | 144 +
.../2.10.3/_static/underscore-1.13.1.js | 2042 +++
.../apache-airflow/2.10.3/_static/underscore.js | 6 +
.../cluster-policies.html} | 877 +-
.../dag-serialization.html} | 489 +-
.../administration-and-deployment}/index.html | 486 +-
.../administration-and-deployment/kubernetes.html} | 453 +-
.../administration-and-deployment/lineage.html} | 749 +-
.../administration-and-deployment/listeners.html} | 725 +-
.../advanced-logging-configuration.html} | 577 +-
.../logging-monitoring/callbacks.html} | 712 +-
.../logging-monitoring/check-health.html} | 779 +-
.../logging-monitoring/errors.html} | 709 +-
.../logging-monitoring}/index.html | 447 +-
.../logging-monitoring/logging-architecture.html} | 454 +-
.../logging-monitoring/logging-tasks.html} | 591 +-
.../logging-monitoring/metrics.html} | 1092 +-
.../logging-monitoring/traces.html} | 469 +-
.../tracking-user-activity.html} | 453 +-
.../modules_management.html} | 905 +-
.../administration-and-deployment/pools.html} | 467 +-
.../priority-weight.html} | 494 +-
.../production-deployment.html} | 689 +-
.../administration-and-deployment/scheduler.html} | 958 +-
.../security/access-control.html | 1 +
.../security/access-control/index.html | 1 +
.../security/api.html | 1 +
.../security/audit_logs.html | 1 +
.../security/flower.html | 1 +
.../security/index.html | 1 +
.../security/kerberos.html | 1 +
.../security/secrets/fernet.html | 1 +
.../security/secrets/index.html | 1 +
.../security/secrets/mask-sensitive-values.html | 1 +
.../security/secrets/secrets-backends/index.html | 1 +
.../local-filesystem-secrets-backend.html | 1 +
.../security/webserver.html | 1 +
.../security/workload.html | 1 +
docs-archive/apache-airflow/2.10.3/airflow.sh | 39 +
.../authoring-and-scheduling/connections.html} | 434 +-
.../2.10.3/authoring-and-scheduling/cron.html} | 486 +-
.../dagfile-processing.html} | 429 +-
.../2.10.3/authoring-and-scheduling/datasets.html} | 1037 +-
.../authoring-and-scheduling/deferring.html} | 951 +-
.../dynamic-task-mapping.html | 1695 ++
.../2.10.3/authoring-and-scheduling}/index.html | 478 +-
.../2.10.3/authoring-and-scheduling/plugins.html} | 742 +-
.../authoring-and-scheduling/serializers.html} | 731 +-
.../authoring-and-scheduling/timetable.html} | 942 +-
.../2.10.3/authoring-and-scheduling/timezone.html} | 801 +-
.../apache-airflow/2.10.3/best-practices.html | 1952 ++
docs-archive/apache-airflow/2.10.3/changelog.html | 1 +
.../2.10.3/cli-and-env-variables-ref.html | 6150 +++++++
docs-archive/apache-airflow/2.10.3/cli-ref.html | 1 +
docs-archive/apache-airflow/2.10.3/concepts.html | 1 +
.../2.10.3/concepts/cluster-policies.html | 1 +
.../2.10.3/concepts/connections.html | 1 +
.../2.10.3/concepts/dagfile-processing.html | 1 +
.../apache-airflow/2.10.3/concepts/dags.html | 1 +
.../apache-airflow/2.10.3/concepts/datasets.html | 1 +
.../apache-airflow/2.10.3/concepts/deferring.html | 1 +
.../2.10.3/concepts/dynamic-task-mapping.html | 1 +
.../apache-airflow/2.10.3/concepts/index.html | 1 +
.../apache-airflow/2.10.3/concepts/operators.html | 1 +
.../apache-airflow/2.10.3/concepts/overview.html | 1 +
.../apache-airflow/2.10.3/concepts/params.html | 1 +
.../apache-airflow/2.10.3/concepts/pools.html | 1 +
.../2.10.3/concepts/priority-weight.html | 1 +
.../apache-airflow/2.10.3/concepts/scheduler.html | 1 +
.../apache-airflow/2.10.3/concepts/sensors.html | 1 +
.../apache-airflow/2.10.3/concepts/taskflow.html | 1 +
.../apache-airflow/2.10.3/concepts/tasks.html | 1 +
.../apache-airflow/2.10.3/concepts/timetable.html | 1 +
.../apache-airflow/2.10.3/concepts/variables.html | 1 +
.../apache-airflow/2.10.3/concepts/xcoms.html | 1 +
.../apache-airflow/2.10.3/configurations-ref.html | 8992 +++++++++
.../2.10.3/core-concepts/auth-manager.html} | 569 +-
.../2.10.3/core-concepts/auth-manager/index.html | 1 +
.../2.10.3/core-concepts/dag-run.html} | 904 +-
.../apache-airflow/2.10.3/core-concepts/dags.html | 1943 ++
.../2.10.3/core-concepts/debug.html} | 746 +-
.../2.10.3/core-concepts/executor/celery.html | 1 +
.../core-concepts/executor/celery_kubernetes.html | 1 +
.../2.10.3/core-concepts/executor/dask.html | 1 +
.../2.10.3/core-concepts/executor/debug.html | 1 +
.../2.10.3/core-concepts/executor/index.html} | 901 +-
.../2.10.3/core-concepts/executor/kubernetes.html | 1 +
.../2.10.3/core-concepts/executor/local.html} | 471 +-
.../core-concepts/executor/local_kubernetes.html | 1 +
.../2.10.3/core-concepts/executor/sequential.html} | 449 +-
.../2.10.3/core-concepts}/index.html | 514 +-
.../2.10.3/core-concepts/objectstorage.html} | 761 +-
.../2.10.3/core-concepts/operators.html} | 812 +-
.../2.10.3/core-concepts/overview.html} | 607 +-
.../2.10.3/core-concepts/params.html} | 1096 +-
.../2.10.3/core-concepts/sensors.html} | 424 +-
.../2.10.3/core-concepts/taskflow.html} | 658 +-
.../2.10.3/core-concepts/tasks.html} | 1001 +-
.../2.10.3/core-concepts/variables.html} | 439 +-
.../2.10.3/core-concepts/xcoms.html} | 720 +-
docs-archive/apache-airflow/2.10.3/dag-run.html | 1 +
.../apache-airflow/2.10.3/dag-serialization.html | 1 +
.../2.10.3/database-erd-ref.html} | 348 +-
.../2.10.3/deprecated-rest-api-ref.html} | 448 +-
.../apache-airflow/2.10.3/docker-compose.yaml | 288 +
docs-archive/apache-airflow/2.10.3/errors.html | 1 +
.../apache-airflow/2.10.3/executor/celery.html | 1 +
.../2.10.3/executor/celery_kubernetes.html | 1 +
.../apache-airflow/2.10.3/executor/dask.html | 1 +
.../apache-airflow/2.10.3/executor/debug.html | 1 +
.../apache-airflow/2.10.3/executor/index.html | 1 +
.../apache-airflow/2.10.3/executor/kubernetes.html | 1 +
.../apache-airflow/2.10.3/executor/local.html | 1 +
.../2.10.3/executor/local_kubernetes.html | 1 +
.../apache-airflow/2.10.3/executor/sequential.html | 1 +
.../2.10.3/extra-packages-ref.html} | 1331 +-
.../2.10.3/faq.html} | 1025 +-
docs-archive/apache-airflow/2.10.3/genindex.html | 5483 ++++++
.../2.10.3/howto/add-dag-tags.html} | 455 +-
.../apache-airflow/2.10.3/howto/add-new-role.html | 1 +
.../2.10.3/howto/add-owner-links.html} | 459 +-
.../apache-airflow/2.10.3/howto/check-health.html | 1 +
.../2.10.3/howto/connection.html} | 1065 +-
.../2.10.3/howto/connection/index.html | 1 +
.../2.10.3/howto/create-custom-decorator.html} | 881 +-
.../2.10.3/howto/custom-operator.html} | 952 +-
.../2.10.3/howto/custom-view-plugin.html} | 542 +-
.../howto/customize-dag-ui-page-instance-name.html | 1 +
.../2.10.3/howto/customize-state-colors-ui.html | 1 +
.../2.10.3/howto/customize-ui.html} | 835 +-
...stomizing-dag-ui-header-and-airflow-page-titles | 1 +
.../customize-ui.html#customizing-state-colours | 1 +
.../2.10.3/howto/define-extra-link.html} | 790 +-
.../2.10.3/howto/define_extra_link.html | 1 +
.../2.10.3/howto/docker-compose/index.html} | 1047 +-
.../2.10.3/howto/dynamic-dag-generation.html} | 839 +-
.../2.10.3/howto/email-config.html} | 591 +-
.../2.10.3/howto/export-more-env-vars.html} | 459 +-
.../2.10.3/howto}/index.html | 602 +-
.../2.10.3/howto/initialize-database.html | 1 +
.../2.10.3/howto/listener-plugin.html} | 764 +-
.../2.10.3/howto/notifications.html} | 497 +-
.../2.10.3/howto/operator/bash.html} | 942 +-
.../2.10.3/howto/operator/datetime.html} | 793 +-
.../2.10.3/howto/operator/external.html | 1 +
.../howto/operator/external_task_sensor.html} | 798 +-
.../2.10.3/howto/operator/file.html} | 498 +-
.../2.10.3/howto/operator/index.html} | 753 +-
.../2.10.3/howto/operator/python.html | 1736 ++
.../2.10.3/howto/operator/time.html} | 757 +-
.../2.10.3/howto/operator/weekday.html} | 738 +-
.../2.10.3/howto/run-behind-proxy.html} | 491 +-
.../2.10.3/howto/run-with-systemd.html} | 454 +-
.../2.10.3/howto/secure-connections.html | 1 +
.../2.10.3/howto/set-config.html} | 812 +-
.../2.10.3/howto/set-up-database.html} | 1016 +-
.../2.10.3/howto/setup-and-teardown.html} | 644 +-
.../2.10.3/howto/timetable.html} | 990 +-
.../2.10.3/howto/tracking-user-activity.html | 1 +
.../2.10.3/howto/upgrading-from-1-10/index.html | 2351 +++
.../howto/upgrading-from-1-10/upgrade-check.html} | 655 +-
.../2.10.3/howto/usage-cli.html} | 949 +-
.../howto/use-alternative-secrets-backend.html | 1 +
.../2.10.3/howto/use-test-config.html | 1 +
.../2.10.3/howto/variable.html} | 486 +-
.../apache-airflow/2.10.3/howto/write-logs.html | 1 +
.../2.10.3/http-routingtable.html} | 441 +-
.../2.10.3}/index.html | 416 +-
.../apache-airflow/2.10.3/installation.html | 1 +
.../2.10.3/installation/dependencies.html} | 482 +-
.../2.10.3/installation/index.html} | 793 +-
.../2.10.3/installation/installing-from-pypi.html} | 898 +-
.../installation/installing-from-sources.html} | 740 +-
.../2.10.3/installation/prerequisites.html} | 445 +-
.../installation/setting-up-the-database.html} | 431 +-
.../2.10.3/installation/supported-versions.html} | 507 +-
.../2.10.3/installation/upgrade-check.html | 1 +
.../2.10.3/installation/upgrading.html} | 816 +-
.../2.10.3/integration.html} | 348 +-
docs-archive/apache-airflow/2.10.3/kubernetes.html | 1 +
.../2.10.3/license.html} | 509 +-
docs-archive/apache-airflow/2.10.3/lineage.html | 1 +
docs-archive/apache-airflow/2.10.3/listeners.html | 1 +
.../2.10.3/logging-monitoring/callbacks.html | 1 +
.../2.10.3/logging-monitoring/check-health.html | 1 +
.../2.10.3/logging-monitoring/errors.html | 1 +
.../2.10.3/logging-monitoring/index.html | 1 +
.../logging-monitoring/logging-architecture.html | 1 +
.../2.10.3/logging-monitoring/logging-tasks.html | 1 +
.../2.10.3/logging-monitoring/metrics.html | 1 +
.../2.10.3/logging-monitoring/traces.html | 1 +
.../logging-monitoring/tracking-user-activity.html | 1 +
docs-archive/apache-airflow/2.10.3/macros-ref.html | 1 +
docs-archive/apache-airflow/2.10.3/metrics.html | 1 +
.../2.10.3/migrations-ref.html} | 1334 +-
.../apache-airflow/2.10.3/modules_management.html | 1 +
docs-archive/apache-airflow/2.10.3/objects.inv | Bin 0 -> 28398 bytes
.../2.10.3/operators-and-hooks-ref.html} | 463 +-
...-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css | 1 +
.../_sphinx_design_static/design-tabs.js | 27 +
.../_static/redoc.js | 8 +
docs-archive/apache-airflow/2.10.3/plugins.html | 1 +
.../2.10.3/privacy_notice.html} | 335 +-
.../2.10.3/production-deployment.html | 1 +
.../2.10.3/project.html} | 426 +-
.../2.10.3/public-airflow-interface.html} | 991 +-
.../2.10.3/py-modindex.html} | 1318 +-
.../apache-airflow/2.10.3/python-api-ref.html | 1 +
.../2.10.3/release-process.html} | 387 +-
.../apache-airflow/2.10.3/release_notes.html | 18138 +++++++++++++++++++
.../apache-airflow/2.10.3/rest-api-ref.html | 1 +
.../sbom/apache-airflow-sbom-2.10.3-npm-only.json | 1 +
...apache-airflow-sbom-2.10.3-python3.10-full.json | 1 +
...ow-sbom-2.10.3-python3.10-python-only-full.json | 1 +
...airflow-sbom-2.10.3-python3.10-python-only.json | 1 +
.../apache-airflow-sbom-2.10.3-python3.10.json | 1 +
...apache-airflow-sbom-2.10.3-python3.11-full.json | 1 +
...ow-sbom-2.10.3-python3.11-python-only-full.json | 1 +
...airflow-sbom-2.10.3-python3.11-python-only.json | 1 +
.../apache-airflow-sbom-2.10.3-python3.11.json | 1 +
...apache-airflow-sbom-2.10.3-python3.12-full.json | 1 +
...ow-sbom-2.10.3-python3.12-python-only-full.json | 1 +
...airflow-sbom-2.10.3-python3.12-python-only.json | 1 +
.../apache-airflow-sbom-2.10.3-python3.12.json | 1 +
.../apache-airflow-sbom-2.10.3-python3.8-full.json | 1 +
...low-sbom-2.10.3-python3.8-python-only-full.json | 1 +
...-airflow-sbom-2.10.3-python3.8-python-only.json | 1 +
.../sbom/apache-airflow-sbom-2.10.3-python3.8.json | 1 +
.../apache-airflow-sbom-2.10.3-python3.9-full.json | 1 +
...low-sbom-2.10.3-python3.9-python-only-full.json | 1 +
...-airflow-sbom-2.10.3-python3.9-python-only.json | 1 +
.../sbom/apache-airflow-sbom-2.10.3-python3.9.json | 1 +
docs-archive/apache-airflow/2.10.3/sbom/index.html | 52 +
docs-archive/apache-airflow/2.10.3/scheduler.html | 1 +
.../2.10.3/search.html} | 379 +-
docs-archive/apache-airflow/2.10.3/searchindex.js | 1 +
docs-archive/apache-airflow/2.10.3/security.html | 1 +
.../2.10.3/security/access-control.html | 1 +
.../2.10.3/security/api.html} | 441 +-
.../2.10.3/security/audit_logs.html} | 446 +-
.../2.10.3/security/flower.html} | 437 +-
.../2.10.3/security}/index.html | 422 +-
.../2.10.3/security/kerberos.html} | 544 +-
.../security/releasing_security_patches.html} | 439 +-
.../2.10.3/security/sbom.html} | 418 +-
.../2.10.3/security/secrets/fernet.html} | 457 +-
.../2.10.3/security/secrets}/index.html | 427 +-
.../security/secrets/mask-sensitive-values.html} | 476 +-
.../security/secrets/secrets-backend/index.html} | 731 +-
.../local-filesystem-secrets-backend.html} | 546 +-
.../security/secrets/secrets-backends/index.html | 1 +
.../local-filesystem-secrets-backend.html | 1 +
.../2.10.3/security/security-model.html | 1 +
.../2.10.3/security/security_model.html} | 771 +-
.../2.10.3/security/webserver.html} | 488 +-
.../2.10.3/security/workload.html} | 438 +-
.../apache-airflow/2.10.3/stable-rest-api-ref.html | 34 +
.../2.10.3/start.html} | 420 +-
.../apache-airflow/2.10.3/start/docker.html | 1 +
.../apache-airflow/2.10.3/start/index.html | 1 +
.../apache-airflow/2.10.3/start/local.html | 1 +
.../2.10.3/templates-ref.html} | 933 +-
docs-archive/apache-airflow/2.10.3/timezone.html | 1 +
docs-archive/apache-airflow/2.10.3/traces.html | 1 +
.../2.10.3/troubleshooting.html} | 358 +-
docs-archive/apache-airflow/2.10.3/tutorial.html | 1 +
.../2.10.3/tutorial/fundamentals.html} | 1200 +-
.../2.10.3/tutorial}/index.html | 399 +-
.../2.10.3/tutorial/objectstorage.html} | 670 +-
.../2.10.3/tutorial/pipeline.html} | 722 +-
.../apache-airflow/2.10.3/tutorial/taskflow.html | 2023 +++
.../2.10.3/tutorial_taskflow_api.html | 1 +
.../index.html => apache-airflow/2.10.3/ui.html} | 492 +-
.../apache-airflow/2.10.3/upgrade-check.html | 1 +
.../2.10.3/upgrading-from-1-10/index.html | 1 +
.../2.10.3/upgrading-from-1-10/upgrade-check.html | 1 +
.../apache-airflow/2.10.3/upgrading-to-2.html | 1 +
docs-archive/apache-airflow/2.10.3/usage-cli.html | 1 +
.../2.9.0/core-concepts/auth-manager/index.html | 1 +
.../2.9.1/core-concepts/auth-manager/index.html | 1 +
.../2.9.2/core-concepts/auth-manager/index.html | 1 +
.../2.9.3/core-concepts/auth-manager/index.html | 1 +
docs-archive/apache-airflow/stable.txt | 2 +-
docs-archive/docker-stack/.buildinfo | 2 +-
.../docker-stack/_sources/entrypoint.rst.txt | 14 +-
docs-archive/docker-stack/build-arg-ref.html | 4 +-
docs-archive/docker-stack/build.html | 42 +-
docs-archive/docker-stack/entrypoint.html | 16 +-
docs-archive/docker-stack/index.html | 22 +-
docs-archive/docker-stack/recipes.html | 6 +-
docs-archive/docker-stack/searchindex.js | 2 +-
946 files changed, 274459 insertions(+), 121661 deletions(-)
diff --git a/docs-archive/apache-airflow/2.10.0/core-concepts/auth-manager/index.html b/docs-archive/apache-airflow/2.10.0/core-concepts/auth-manager/index.html
new file mode 100644
index 0000000000..ea304c1dca
--- /dev/null
+++ b/docs-archive/apache-airflow/2.10.0/core-concepts/auth-manager/index.html
@@ -0,0 +1 @@
+<html><head><meta http-equiv="refresh" content="0; url=../auth-manager.html"/></head></html>
\ No newline at end of file
diff --git a/docs-archive/apache-airflow/2.10.1/core-concepts/auth-manager/index.html b/docs-archive/apache-airflow/2.10.1/core-concepts/auth-manager/index.html
new file mode 100644
index 0000000000..ea304c1dca
--- /dev/null
+++ b/docs-archive/apache-airflow/2.10.1/core-concepts/auth-manager/index.html
@@ -0,0 +1 @@
+<html><head><meta http-equiv="refresh" content="0; url=../auth-manager.html"/></head></html>
\ No newline at end of file
diff --git a/docs-archive/docker-stack/.buildinfo b/docs-archive/apache-airflow/2.10.3/.buildinfo
similarity index 82%
copy from docs-archive/docker-stack/.buildinfo
copy to docs-archive/apache-airflow/2.10.3/.buildinfo
index d790c176e3..4c4837789e 100644
--- a/docs-archive/docker-stack/.buildinfo
+++ b/docs-archive/apache-airflow/2.10.3/.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: 3493aa53b1f522136ce60555174d3441
+config: bbc5988ad1047bb937b79f00a96f4f5d
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs-archive/docker-stack/recipes.html b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/base/index.html
similarity index 50%
copy from docs-archive/docker-stack/recipes.html
copy to docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/base/index.html
index bb97350ec0..f7364a1a85 100644
--- a/docs-archive/docker-stack/recipes.html
+++ b/docs-archive/apache-airflow/2.10.3/_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>Recipes — 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="Image build arguments reference" href="build-arg-ref.html" />
- <link rel="prev" title="Dockerfile Changelog" href="changelog.html" />
-
- <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/recipes.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.bash" href="../bash/index.html" />
+ <link rel="prev" title="airflow.decorators" href="../index.html" />
+
+ <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/base/index.html" />
<!-- Matomo -->
<script>
@@ -285,8 +286,21 @@
<div class="content-drawer">
<div class="td-sidebar">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</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,21 +330,136 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Recipes</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#google-cloud-sdk-installation">Google Cloud SDK installation</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#apache-hadoop-stack-installation">Apache Hadoop Stack installation</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#apache-beam-go-stack-installation">Apache Beam Go Stack installation</a></li>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#classes">Classes</a></li>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a></li>
+<li class="toctree-l8"><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.get_unique_task_id"><code class="docutils literal notranslate"><span class="pre">get_unique_task_id()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields_renderers"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields_renderers</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.shallow_copy_attrs"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.shallow_copy_attrs</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.execute"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.execute()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.get_python_source"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.get_python_source()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.FParams"><code class="docutils literal notranslate"><span class="pre">FParams</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.FReturn"><code class="docutils literal notranslate"><span class="pre">FReturn</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.OperatorSubclass"><code class="docutils literal notranslate"><span class="pre">OperatorSubclass</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.multiple_outputs"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.multiple_outputs</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.python_callable"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.python_callable</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.op_kwargs_expand_input"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.op_kwargs_expand_input</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__hash__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__hash__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__attrs_post_init__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__attrs_post_init__()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.Task"><code class="docutils literal notranslate"><span class="pre">Task</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.__wrapped__"><code class="docutils literal notranslate"><span class="pre">Task.__wrapped__</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.__call__"><code class="docutils literal notranslate"><span class="pre">Task.__call__</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.function"><code class="docutils literal notranslate"><span class="pre">Task.function</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.partial"><code class="docutils literal notranslate"><span class="pre">Task.partial()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.expand"><code class="docutils literal notranslate"><span class="pre">Task.expand()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.expand_kwargs"><code class="docutils literal notranslate"><span class="pre">Task.expand_kwargs()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.override"><code class="docutils literal notranslate"><span class="pre">Task.override()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator"><code class="docutils literal notranslate"><span class="pre">TaskDecorator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.__call__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.override"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.override()</span></code></a></li>
</ul>
</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.task_decorator_factory"><code class="docutils literal notranslate"><span class="pre">task_decorator_factory()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="build-arg-ref.html">Image build arguments reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -411,8 +540,21 @@
<div class="td-sidebar desktop-only d-print-none">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</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,21 +584,136 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Recipes</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#google-cloud-sdk-installation">Google Cloud SDK installation</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#apache-hadoop-stack-installation">Apache Hadoop Stack installation</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#apache-beam-go-stack-installation">Apache Beam Go Stack installation</a></li>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#classes">Classes</a></li>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a></li>
+<li class="toctree-l8"><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.get_unique_task_id"><code class="docutils literal notranslate"><span class="pre">get_unique_task_id()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.template_fields_renderers"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.template_fields_renderers</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.shallow_copy_attrs"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.shallow_copy_attrs</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.execute"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.execute()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedOperator.get_python_source"><code class="docutils literal notranslate"><span class="pre">DecoratedOperator.get_python_source()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.FParams"><code class="docutils literal notranslate"><span class="pre">FParams</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.FReturn"><code class="docutils literal notranslate"><span class="pre">FReturn</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.OperatorSubclass"><code class="docutils literal notranslate"><span class="pre">OperatorSubclass</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.multiple_outputs"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.multiple_outputs</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.python_callable"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.python_callable</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.op_kwargs_expand_input"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.op_kwargs_expand_input</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__hash__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__hash__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.DecoratedMappedOperator.__attrs_post_init__"><code class="docutils literal notranslate"><span class="pre">DecoratedMappedOperator.__attrs_post_init__()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.Task"><code class="docutils literal notranslate"><span class="pre">Task</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.__wrapped__"><code class="docutils literal notranslate"><span class="pre">Task.__wrapped__</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.__call__"><code class="docutils literal notranslate"><span class="pre">Task.__call__</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.function"><code class="docutils literal notranslate"><span class="pre">Task.function</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.partial"><code class="docutils literal notranslate"><span class="pre">Task.partial()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.expand"><code class="docutils literal notranslate"><span class="pre">Task.expand()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.expand_kwargs"><code class="docutils literal notranslate"><span class="pre">Task.expand_kwargs()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.Task.override"><code class="docutils literal notranslate"><span class="pre">Task.override()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator"><code class="docutils literal notranslate"><span class="pre">TaskDecorator</span></code></a><ul>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.__call__()</span></code></a></li>
+<li class="toctree-l10"><a class="reference internal" href="#airflow.decorators.base.TaskDecorator.override"><code class="docutils literal notranslate"><span class="pre">TaskDecorator.override()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.base.task_decorator_factory"><code class="docutils literal notranslate"><span class="pre">task_decorator_factory()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
</ul>
</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="build-arg-ref.html">Image build arguments reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -545,9 +802,13 @@
<ul class="breadcrumb">
- <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+ <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+
+ <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
- <li class="breadcrumb-item"><a href="recipes.html"> Recipes</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>
@@ -558,250 +819,299 @@
<div class="bodywrapper">
<div class="body" role="main">
- <blockquote>
-<div></div></blockquote>
-<div class="section" id="recipes">
-<h1>Recipes<a class="headerlink" href="#recipes" title="Permalink to this heading">¶</a></h1>
-<p>Users sometimes share interesting ways of using the Docker images. We encourage users to contribute these
-recipes to the documentation in case they prove useful to other members of the community by
-submitting a pull request. The sections below capture this knowledge.</p>
-<div class="section" id="google-cloud-sdk-installation">
-<h2>Google Cloud SDK installation<a class="headerlink" href="#google-cloud-sdk-installation" title="Permalink to this heading">¶</a></h2>
-<p>Some operators, such as <a class="reference external" href="/docs/apache-airflow-providers-google/stable/_api/airflow/providers/google/cloud/operators/kubernetes_engine/index.html#airflow.providers.google.cloud.operators.kubernetes_engine.GKEStartPodOperator" title="(in apache-airflow-providers-google v10.21.1)"><code class="xref py py-class docutils literal notranslate"><span class="pre">GKEStartPodOperator</span></code></a>,
-<a class="reference external" href="/docs/apache-airflow-providers-google/stable/_api/airflow/providers/google/cloud/operators/dataflow/index.html#airflow.providers.google.cloud.operators.dataflow.DataflowStartSqlJobOperator" title="(in apache-airflow-providers-google v10.21.1)"><code class="xref py py-class docutils literal notranslate"><span class="pre">DataflowStartSqlJobOperator</span></code></a>, require
-the installation of <a class="reference external" href="https://cloud.google.com/sdk">Google Cloud SDK</a> (includes <code class="docutils literal notranslate"><span class="pre">gcloud</span></code>).
-You can also run these commands with BashOperator.</p>
-<p>Create a new Dockerfile like the one shown below.</p>
-<div class="example-block-wrapper compound">
-<p class="example-header compound-first"><span class="example-title">docs/docker-stack/docker-images-recipes/gcloud.Dockerfile</span></p>
-<div class="compound-last highlight-dockerfile notranslate"><div class="highlight"><pre><span></span><span class="c"># Licensed to the Apache Software Foundation (ASF) under one or more</span>
-<span class="c"># contributor license agreements. See the NOTICE file distributed with</span>
-<span class="c"># this work for additional information regarding copyright ownership.</span>
-<span class="c"># The ASF licenses this file to You under the Apache License, Version 2.0</span>
-<span class="c"># (the "License"); you may not use this file except in compliance with</span>
-<span class="c"># the License. You may obtain a copy of the License at</span>
-<span class="c">#</span>
-<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
-<span class="c">#</span>
-<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
-<span class="c"># distributed under the License is distributed on an "AS IS" BASIS,</span>
-<span class="c"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
-<span class="c"># See the License for the specific language governing permissions and</span>
-<span class="c"># limitations under the License.</span>
-<span class="k">ARG</span><span class="w"> </span>BASE_AIRFLOW_IMAGE
-<span class="k">FROM</span><span class="w"> </span><span class="s">${BASE_AIRFLOW_IMAGE}</span>
-
-<span class="k">SHELL</span><span class="w"> </span><span class="p">[</span><span class="s2">"/bin/bash"</span><span class="p">,</span><span class="w"> </span><span class="s2">"-o"</span><span class="p">,</span><span class="w"> </span><span class="s2">"pipefail"</span><span class="p">,</span><span class="w"> </span><span class="s2">"-e"</span><span class="p">,</span><span class="w"> </span><span class="s2">"-u"</span><span class="p">,</sp [...]
-
-<span class="k">USER</span><span class="w"> </span><span class="s">0</span>
-
-<span class="k">ARG</span><span class="w"> </span><span class="nv">CLOUD_SDK_VERSION</span><span class="o">=</span><span class="m">322</span>.0.0
-<span class="k">ENV</span><span class="w"> </span><span class="nv">GCLOUD_HOME</span><span class="o">=</span>/opt/google-cloud-sdk
-
-<span class="k">ENV</span><span class="w"> </span><span class="nv">PATH</span><span class="o">=</span><span class="s2">"</span><span class="si">${</span><span class="nv">GCLOUD_HOME</span><span class="si">}</span><span class="s2">/bin/:</span><span class="si">${</span><span class="nv">PATH</span><span class="si">}</span><span class="s2">"</span>
-
-<span class="k">RUN</span><span class="w"> </span><span class="nv">DOWNLOAD_URL</span><span class="o">=</span><span class="s2">"https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-</span><span class="si">${</span><span class="nv">CLOUD_SDK_VERSION</span><span class="si">}</span><span class="s2">-linux-x86_64.tar.gz"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="nv">TMP_DIR</span><span class="o">=</span><span class="s2">"</span><span class="k">$(</span>mktemp<span class="w"> </span>-d<span class="k">)</span><span class="s2">"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>curl<span class="w"> </span>-fL<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">DOWNLOAD_URL</span><span class="si">}</span><span class="s2">"</span><span class="w"> </span>--output<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">TMP_DIR</span><span class="si">}</span><span class="s2">/google-cloud-sdk.tar [...]
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>mkdir<span class="w"> </span>-p<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">GCLOUD_HOME</span><span class="si">}</span><span class="s2">"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>tar<span class="w"> </span>xzf<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">TMP_DIR</span><span class="si">}</span><span class="s2">/google-cloud-sdk.tar.gz"</span><span class="w"> </span>-C<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">GCLOUD_HOME</span><span class="si">}</span><span class="s2">" [...]
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">GCLOUD_HOME</span><span class="si">}</span><span class="s2">/install.sh"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--bash-completion<span class="o">=</span><span class="nb">false</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--path-update<span class="o">=</span><span class="nb">false</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--usage-reporting<span class="o">=</span><span class="nb">false</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--additional-components<span class="w"> </span>alpha<span class="w"> </span>beta<span class="w"> </span>kubectl<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--quiet<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>rm<span class="w"> </span>-rf<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">TMP_DIR</span><span class="si">}</span><span class="s2">"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>rm<span class="w"> </span>-rf<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">GCLOUD_HOME</span><span class="si">}</span><span class="s2">/.install/.backup/"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>gcloud<span class="w"> </span>--version
-
-<span class="k">USER</span><span class="w"> </span><span class="s">${AIRFLOW_UID}</span>
-</pre></div>
-</div>
+ <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>
-<p>Then build a new image.</p>
-<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>build<span class="w"> </span>.<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--pull<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--build-arg<span class="w"> </span><span class="nv">BASE_AIRFLOW_IMAGE</span><span class="o">=</span><span class="s2">"apache/airflow:2.0.2"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--tag<span class="w"> </span>my-airflow-image:0.0.1
-</pre></div>
+<div class="section" id="functions">
+<h3>Functions<a class="headerlink" href="#functions" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.base.get_unique_task_id" title="airflow.decorators.base.get_unique_task_id"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_unique_task_id</span></code></a>(task_id[, dag, task_group])</p></td>
+<td><p>Generate unique task id given a DAG (or if run in a DAG context).</p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#airflow.decorators.base.task_decorator_factory" title="airflow.decorators.base.task_decorator_factory"><code class="xref py py-obj docutils literal notranslate"><span class="pre">task_decorator_factory</span></code></a>([python_callable, multiple_outputs])</p></td>
+<td><p>Generate a wrapper that wraps a function into an Airflow operator.</p></td>
+</tr>
+</tbody>
+</table>
</div>
-</div>
-<div class="section" id="apache-hadoop-stack-installation">
-<h2>Apache Hadoop Stack installation<a class="headerlink" href="#apache-hadoop-stack-installation" title="Permalink to this heading">¶</a></h2>
-<p>Airflow is often used to run tasks on Hadoop cluster. It required Java Runtime Environment (JRE) to run.
-Below are the steps to take tools that are frequently used in Hadoop-world:</p>
-<ul class="simple">
-<li><p>Java Runtime Environment (JRE)</p></li>
-<li><p>Apache Hadoop</p></li>
-<li><p>Apache Hive</p></li>
-<li><p><a class="reference external" href="https://cloud.google.com/dataproc/docs/concepts/connectors/cloud-storage">Cloud Storage connector for Apache Hadoop</a></p></li>
+<div class="section" id="attributes">
+<h3>Attributes<a class="headerlink" href="#attributes" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
+<colgroup>
+<col style="width: 10%" />
+<col style="width: 90%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.base.FParams" title="airflow.decorators.base.FParams"><code class="xref py py-obj docutils literal notranslate"><span class="pre">FParams</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#airflow.decorators.base.FReturn" title="airflow.decorators.base.FReturn"><code class="xref py py-obj docutils literal notranslate"><span class="pre">FReturn</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.base.OperatorSubclass" title="airflow.decorators.base.OperatorSubclass"><code class="xref py py-obj docutils literal notranslate"><span class="pre">OperatorSubclass</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+</tbody>
+</table>
+<dl class="py function">
+<dt class="sig sig-object py" id="airflow.decorators.base.get_unique_task_id">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">get_unique_task_id</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">task_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dag</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em c [...]
+<dd><p>Generate unique task id given a DAG (or if run in a DAG context).</p>
+<p>IDs are generated by appending a unique number to the end of
+the original task id.</p>
+<dl class="simple">
+<dt>Example:</dt><dd><p>task_id
+task_id__1
+task_id__2
+…
+task_id__20</p>
+</dd>
+</dl>
+<dl class="field-list simple">
+</dl>
+</dd></dl>
+
+<dl class="py class">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedOperator">
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">DecoratedOperator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">python_callable</span></span></em>, <em class="sig-param"><span class [...]
+<dd><p>Bases: <a class="reference internal" href="../../models/baseoperator/index.html#airflow.models.baseoperator.BaseOperator" title="airflow.models.baseoperator.BaseOperator"><code class="xref py py-obj docutils literal notranslate"><span class="pre">airflow.models.baseoperator.BaseOperator</span></code></a></p>
+<p>Wraps a Python callable and captures args/kwargs when called for execution.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>python_callable</strong> (<em>Callable</em>) – A reference to an object that is callable</p></li>
+<li><p><strong>op_kwargs</strong> (<em>Mapping</em><em>[</em><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a><em>, </em><em>Any</em><em>] </em><em>| </em><em>None</em>) – a dictionary of keyword arguments that will get unpacked
+in your function (templated)</p></li>
+<li><p><strong>op_args</strong> (<em>Collection</em><em>[</em><em>Any</em><em>] </em><em>| </em><em>None</em>) – a list of positional arguments that will get unpacked when
+calling your callable (templated)</p></li>
+<li><p><strong>multiple_outputs</strong> – If set to True, the decorated function’s return value will be unrolled to
+multiple XCom values. Dict will unroll to XCom values with its keys as XCom keys. Defaults to False.</p></li>
+<li><p><strong>kwargs_to_upstream</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.13)"><em>dict</em></a><em>[</em><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><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>
-<p>Create a new Dockerfile like the one shown below.</p>
-<div class="example-block-wrapper compound">
-<p class="example-header compound-first"><span class="example-title">docs/docker-stack/docker-images-recipes/hadoop.Dockerfile</span></p>
-<div class="compound-last highlight-dockerfile notranslate"><div class="highlight"><pre><span></span><span class="c"># Licensed to the Apache Software Foundation (ASF) under one or more</span>
-<span class="c"># contributor license agreements. See the NOTICE file distributed with</span>
-<span class="c"># this work for additional information regarding copyright ownership.</span>
-<span class="c"># The ASF licenses this file to You under the Apache License, Version 2.0</span>
-<span class="c"># (the "License"); you may not use this file except in compliance with</span>
-<span class="c"># the License. You may obtain a copy of the License at</span>
-<span class="c">#</span>
-<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
-<span class="c">#</span>
-<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
-<span class="c"># distributed under the License is distributed on an "AS IS" BASIS,</span>
-<span class="c"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
-<span class="c"># See the License for the specific language governing permissions and</span>
-<span class="c"># limitations under the License.</span>
-<span class="k">ARG</span><span class="w"> </span>BASE_AIRFLOW_IMAGE
-<span class="k">FROM</span><span class="w"> </span><span class="s">${BASE_AIRFLOW_IMAGE}</span>
-
-<span class="k">SHELL</span><span class="w"> </span><span class="p">[</span><span class="s2">"/bin/bash"</span><span class="p">,</span><span class="w"> </span><span class="s2">"-o"</span><span class="p">,</span><span class="w"> </span><span class="s2">"pipefail"</span><span class="p">,</span><span class="w"> </span><span class="s2">"-e"</span><span class="p">,</span><span class="w"> </span><span class="s2">"-u"</span><span class="p">,</sp [...]
-
-<span class="k">USER</span><span class="w"> </span><span class="s">0</span>
-
-<span class="c"># Install Java</span>
-<span class="k">RUN</span><span class="w"> </span>mkdir<span class="w"> </span>-pv<span class="w"> </span>/usr/share/man/man1<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>mkdir<span class="w"> </span>-pv<span class="w"> </span>/usr/share/man/man7<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>curl<span class="w"> </span>-fsSL<span class="w"> </span>https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public<span class="w"> </span><span class="p">|</span><span class="w"> </span>apt-key<span class="w"> </span>add<span class="w"> </span>-<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ </span><span class="k">$(</span>lsb_release<span class="w"> </span>-cs<span class="k">)</span><span class="s2"> main"</span><span class="w"> </span>><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>/etc/apt/sources.list.d/adoptopenjdk.list<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>apt-get<span class="w"> </span>update<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>--no-install-recommends<span class="w"> </span>-y<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>adoptopenjdk-8-hotspot-jre<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>apt-get<span class="w"> </span>autoremove<span class="w"> </span>-yqq<span class="w"> </span>--purge<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>apt-get<span class="w"> </span>clean<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>rm<span class="w"> </span>-rf<span class="w"> </span>/var/lib/apt/lists/*
-<span class="k">ENV</span><span class="w"> </span><span class="nv">JAVA_HOME</span><span class="o">=</span>/usr/lib/jvm/adoptopenjdk-8-hotspot-jre-amd64
-
-<span class="k">RUN</span><span class="w"> </span>mkdir<span class="w"> </span>-p<span class="w"> </span>/opt/spark/jars
-
-<span class="c"># Install Apache Hadoop</span>
-<span class="k">ARG</span><span class="w"> </span><span class="nv">HADOOP_VERSION</span><span class="o">=</span><span class="m">2</span>.10.1
-<span class="k">ENV</span><span class="w"> </span><span class="nv">HADOOP_HOME</span><span class="o">=</span>/opt/hadoop
-<span class="k">ENV</span><span class="w"> </span><span class="nv">HADOOP_CONF_DIR</span><span class="o">=</span>/etc/hadoop
-<span class="k">ENV</span><span class="w"> </span><span class="nv">MULTIHOMED_NETWORK</span><span class="o">=</span><span class="m">1</span>
-<span class="k">ENV</span><span class="w"> </span><span class="nv">USER</span><span class="o">=</span>root
-
-<span class="k">RUN</span><span class="w"> </span><span class="nv">HADOOP_URL</span><span class="o">=</span><span class="s2">"https://archive.apache.org/dist/hadoop/common/hadoop-</span><span class="nv">$HADOOP_VERSION</span><span class="s2">/hadoop-</span><span class="nv">$HADOOP_VERSION</span><span class="s2">.tar.gz"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>curl<span class="w"> </span><span class="s1">'https://dist.apache.org/repos/dist/release/hadoop/common/KEYS'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>gpg<span class="w"> </span>--import<span class="w"> </span>-<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>curl<span class="w"> </span>-fSL<span class="w"> </span><span class="s2">"</span><span class="nv">$HADOOP_URL</span><span class="s2">"</span><span class="w"> </span>-o<span class="w"> </span>/tmp/hadoop.tar.gz<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>curl<span class="w"> </span>-fSL<span class="w"> </span><span class="s2">"</span><span class="nv">$HADOOP_URL</span><span class="s2">.asc"</span><span class="w"> </span>-o<span class="w"> </span>/tmp/hadoop.tar.gz.asc<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>gpg<span class="w"> </span>--verify<span class="w"> </span>/tmp/hadoop.tar.gz.asc<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>mkdir<span class="w"> </span>-p<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">HADOOP_HOME</span><span class="si">}</span><span class="s2">"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>tar<span class="w"> </span>-xvf<span class="w"> </span>/tmp/hadoop.tar.gz<span class="w"> </span>-C<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">HADOOP_HOME</span><span class="si">}</span><span class="s2">"</span><span class="w"> </span>--strip-components<span class="o">=</span><span class="m">1</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>rm<span class="w"> </span>/tmp/hadoop.tar.gz<span class="w"> </span>/tmp/hadoop.tar.gz.asc<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>ln<span class="w"> </span>-s<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">HADOOP_HOME</span><span class="si">}</span><span class="s2">/etc/hadoop"</span><span class="w"> </span>/etc/hadoop<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>mkdir<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">HADOOP_HOME</span><span class="si">}</span><span class="s2">/logs"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>mkdir<span class="w"> </span>/hadoop-data
-
-<span class="k">ENV</span><span class="w"> </span><span class="nv">PATH</span><span class="o">=</span><span class="s2">"</span><span class="nv">$HADOOP_HOME</span><span class="s2">/bin/:</span><span class="nv">$PATH</span><span class="s2">"</span>
-
-<span class="c"># Install Apache Hive</span>
-<span class="k">ARG</span><span class="w"> </span><span class="nv">HIVE_VERSION</span><span class="o">=</span><span class="m">2</span>.3.7
-<span class="k">ENV</span><span class="w"> </span><span class="nv">HIVE_HOME</span><span class="o">=</span>/opt/hive
-<span class="k">ENV</span><span class="w"> </span><span class="nv">HIVE_CONF_DIR</span><span class="o">=</span>/etc/hive
-
-<span class="k">RUN</span><span class="w"> </span><span class="nv">HIVE_URL</span><span class="o">=</span><span class="s2">"https://archive.apache.org/dist/hive/hive-</span><span class="si">${</span><span class="nv">HIVE_VERSION</span><span class="si">}</span><span class="s2">/apache-hive-</span><span class="si">${</span><span class="nv">HIVE_VERSION</span><span class="si">}</span><span class="s2">-bin.tar.gz"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>curl<span class="w"> </span>-fSL<span class="w"> </span><span class="s1">'https://downloads.apache.org/hive/KEYS'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>gpg<span class="w"> </span>--import<span class="w"> </span>-<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>curl<span class="w"> </span>-fSL<span class="w"> </span><span class="s2">"</span><span class="nv">$HIVE_URL</span><span class="s2">"</span><span class="w"> </span>-o<span class="w"> </span>/tmp/hive.tar.gz<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>curl<span class="w"> </span>-fSL<span class="w"> </span><span class="s2">"</span><span class="nv">$HIVE_URL</span><span class="s2">.asc"</span><span class="w"> </span>-o<span class="w"> </span>/tmp/hive.tar.gz.asc<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>gpg<span class="w"> </span>--verify<span class="w"> </span>/tmp/hive.tar.gz.asc<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>mkdir<span class="w"> </span>-p<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">HIVE_HOME</span><span class="si">}</span><span class="s2">"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>tar<span class="w"> </span>-xf<span class="w"> </span>/tmp/hive.tar.gz<span class="w"> </span>-C<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">HIVE_HOME</span><span class="si">}</span><span class="s2">"</span><span class="w"> </span>--strip-components<span class="o">=</span><span class="m">1</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>rm<span class="w"> </span>/tmp/hive.tar.gz<span class="w"> </span>/tmp/hive.tar.gz.asc<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>ln<span class="w"> </span>-s<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">HIVE_HOME</span><span class="si">}</span><span class="s2">/etc/hive"</span><span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">HIVE_CONF_DIR</span><span class="si">}</span><span class="s2">"</span><span class="w"> </span><span c [...]
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>mkdir<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">HIVE_HOME</span><span class="si">}</span><span class="s2">/logs"</span>
-
-<span class="k">ENV</span><span class="w"> </span><span class="nv">PATH</span><span class="o">=</span><span class="s2">"</span><span class="nv">$HIVE_HOME</span><span class="s2">/bin/:</span><span class="nv">$PATH</span><span class="s2">"</span>
-
-<span class="c"># Install GCS connector for Apache Hadoop</span>
-<span class="c"># See: https://cloud.google.com/dataproc/docs/concepts/connectors/cloud-storage</span>
-<span class="k">ARG</span><span class="w"> </span><span class="nv">GCS_VARIANT</span><span class="o">=</span><span class="s2">"hadoop2"</span>
-<span class="k">ARG</span><span class="w"> </span><span class="nv">GCS_VERSION</span><span class="o">=</span><span class="s2">"2.1.5"</span>
-
-<span class="k">RUN</span><span class="w"> </span><span class="nv">GCS_JAR_PATH</span><span class="o">=</span><span class="s2">"/opt/spark/jars/gcs-connector-</span><span class="si">${</span><span class="nv">GCS_VARIANT</span><span class="si">}</span><span class="s2">-</span><span class="si">${</span><span class="nv">GCS_VERSION</span><span class="si">}</span><span class="s2">.jar"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="nv">GCS_JAR_URL</span><span class="o">=</span><span class="s2">"https://storage.googleapis.com/hadoop-lib/gcs/gcs-connector-</span><span class="si">${</span><span class="nv">GCS_VARIANT</span><span class="si">}</span><span class="s2">-</span><span class="si">${</span><span class="nv">GCS_VERSION</span><span class="si">}</span><span class="s2">.jar"</span><span class="w"> </span><spa [...]
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>curl<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">GCS_JAR_URL</span><span class="si">}</span><span class="s2">"</span><span class="w"> </span>-o<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">GCS_JAR_PATH</span><span class="si">}</span><span class="s2">"</span>
-
-<span class="k">ENV</span><span class="w"> </span><span class="nv">HADOOP_CLASSPATH</span><span class="o">=</span><span class="s2">"/opt/spark/jars/gcs-connector-</span><span class="si">${</span><span class="nv">GCS_VARIANT</span><span class="si">}</span><span class="s2">-</span><span class="si">${</span><span class="nv">GCS_VERSION</span><span class="si">}</span><span class="s2">.jar:</span><span class="nv">$HADOOP_CLASSPATH</span><span class="s2">"</span>
-
-<span class="k">USER</span><span class="w"> </span><span class="s">${AIRFLOW_UID}</span>
-</pre></div>
-</div>
-</div>
-<p>Then build a new image.</p>
-<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>build<span class="w"> </span>.<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--pull<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--build-arg<span class="w"> </span><span class="nv">BASE_AIRFLOW_IMAGE</span><span class="o">=</span><span class="s2">"apache/airflow:2.0.2"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--tag<span class="w"> </span>my-airflow-image:0.0.1
-</pre></div>
-</div>
-</div>
-<div class="section" id="apache-beam-go-stack-installation">
-<h2>Apache Beam Go Stack installation<a class="headerlink" href="#apache-beam-go-stack-installation" title="Permalink to this heading">¶</a></h2>
-<p>To be able to run Beam Go Pipeline with the <a class="reference external" href="/docs/apache-airflow-providers-apache-beam/stable/_api/airflow/providers/apache/beam/operators/beam/index.html#airflow.providers.apache.beam.operators.beam.BeamRunGoPipelineOperator" title="(in apache-airflow-providers-apache-beam v5.7.2)"><code class="xref py py-class docutils literal notranslate"><span class="pre">BeamRunGoPipelineOperator</span></code></a>,
-you will need Go in your container. Install airflow with <code class="docutils literal notranslate"><span class="pre">apache-airflow-providers-google>=6.5.0</span></code> and <code class="docutils literal notranslate"><span class="pre">apache-airflow-providers-apache-beam>=3.2.0</span></code></p>
-<p>Create a new Dockerfile like the one shown below.</p>
-<div class="example-block-wrapper compound">
-<p class="example-header compound-first"><span class="example-title">docs/docker-stack/docker-images-recipes/go-beam.Dockerfile</span></p>
-<div class="compound-last highlight-dockerfile notranslate"><div class="highlight"><pre><span></span><span class="c"># Licensed to the Apache Software Foundation (ASF) under one or more</span>
-<span class="c"># contributor license agreements. See the NOTICE file distributed with</span>
-<span class="c"># this work for additional information regarding copyright ownership.</span>
-<span class="c"># The ASF licenses this file to You under the Apache License, Version 2.0</span>
-<span class="c"># (the "License"); you may not use this file except in compliance with</span>
-<span class="c"># the License. You may obtain a copy of the License at</span>
-<span class="c">#</span>
-<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
-<span class="c">#</span>
-<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
-<span class="c"># distributed under the License is distributed on an "AS IS" BASIS,</span>
-<span class="c"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
-<span class="c"># See the License for the specific language governing permissions and</span>
-<span class="c"># limitations under the License.</span>
-<span class="k">ARG</span><span class="w"> </span>BASE_AIRFLOW_IMAGE
-<span class="k">FROM</span><span class="w"> </span><span class="s">${BASE_AIRFLOW_IMAGE}</span>
-
-<span class="k">SHELL</span><span class="w"> </span><span class="p">[</span><span class="s2">"/bin/bash"</span><span class="p">,</span><span class="w"> </span><span class="s2">"-o"</span><span class="p">,</span><span class="w"> </span><span class="s2">"pipefail"</span><span class="p">,</span><span class="w"> </span><span class="s2">"-e"</span><span class="p">,</span><span class="w"> </span><span class="s2">"-u"</span><span class="p">,</sp [...]
-
-<span class="k">USER</span><span class="w"> </span><span class="s">0</span>
-
-<span class="k">ARG</span><span class="w"> </span><span class="nv">GO_VERSION</span><span class="o">=</span><span class="m">1</span>.16.4
-<span class="k">ENV</span><span class="w"> </span><span class="nv">GO_INSTALL_DIR</span><span class="o">=</span>/usr/local/go
-
-<span class="c"># Install Go</span>
-<span class="k">RUN</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">[[</span><span class="w"> </span><span class="s2">"</span><span class="k">$(</span>uname<span class="w"> </span>-a<span class="k">)</span><span class="s2">"</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>*<span class="s2">"x86_64"</span>*<span class="w"> </span><span class="o">]]</span><span class="w"> </span><span class="p" [...]
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="nv">DOWNLOAD_URL</span><span class="o">=</span><span class="s2">"https://dl.google.com/go/go</span><span class="si">${</span><span class="nv">GO_VERSION</span><span class="si">}</span><span class="s2">.linux-</span><span class="si">${</span><span class="nv">ARCH</span><span class="si">}</span><span class="s2">.tar.gz"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="nv">TMP_DIR</span><span class="o">=</span><span class="s2">"</span><span class="k">$(</span>mktemp<span class="w"> </span>-d<span class="k">)</span><span class="s2">"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>curl<span class="w"> </span>-fL<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">DOWNLOAD_URL</span><span class="si">}</span><span class="s2">"</span><span class="w"> </span>--output<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">TMP_DIR</span><span class="si">}</span><span class="s2">/go.linux-</span><spa [...]
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>mkdir<span class="w"> </span>-p<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">GO_INSTALL_DIR</span><span class="si">}</span><span class="s2">"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>tar<span class="w"> </span>xzf<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">TMP_DIR</span><span class="si">}</span><span class="s2">/go.linux-</span><span class="si">${</span><span class="nv">ARCH</span><span class="si">}</span><span class="s2">.tar.gz"</span><span class="w"> </span>-C<span class="w"> </span><span class="s2">"</span><span class= [...]
-<span class="w"> </span><span class="o">&&</span><span class="w"> </span>rm<span class="w"> </span>-rf<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">TMP_DIR</span><span class="si">}</span><span class="s2">"</span>
-
-<span class="k">ENV</span><span class="w"> </span><span class="nv">GOROOT</span><span class="o">=</span>/usr/local/go
-<span class="k">ENV</span><span class="w"> </span><span class="nv">PATH</span><span class="o">=</span><span class="s2">"</span><span class="nv">$GOROOT</span><span class="s2">/bin:</span><span class="nv">$PATH</span><span class="s2">"</span>
-
-<span class="k">USER</span><span class="w"> </span><span class="s">${AIRFLOW_UID}</span>
-</pre></div>
-</div>
-</div>
-<p>Then build a new image.</p>
-<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>build<span class="w"> </span>.<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--pull<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--build-arg<span class="w"> </span><span class="nv">BASE_AIRFLOW_IMAGE</span><span class="o">=</span><span class="s2">"apache/airflow:2.2.5"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--tag<span class="w"> </span>my-airflow-image:0.0.1
-</pre></div>
+</dd>
+</dl>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedOperator.template_fields">
+<span class="sig-name descname"><span class="pre">template_fields</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Sequence</span><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><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.13)"><span class="pre">str</span></a><span class="p"><span class="pre">]</span></span></em><em class="property"><span class= [...]
+<dd></dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedOperator.execute">
+<span class="sig-name descname"><span class="pre">execute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">context</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#DecoratedOperator.execute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.DecoratedOperator.execute" title="Per [...]
+<dd><p>Derive when creating an operator.</p>
+<p>Context is the same dictionary used as when rendering jinja templates.</p>
+<p>Refer to get_template_context for more context.</p>
+<dl class="field-list simple">
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedOperator.get_python_source">
+<span class="sig-name descname"><span class="pre">get_python_source</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#DecoratedOperator.get_python_source"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.DecoratedOperator.get_python_source" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</dd></dl>
+
+<dl class="py data">
+<dt class="sig sig-object py" id="airflow.decorators.base.FParams">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">FParams</span></span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#FParams"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.FParams" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py data">
+<dt class="sig sig-object py" id="airflow.decorators.base.FReturn">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">FReturn</span></span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#FReturn"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.FReturn" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py data">
+<dt class="sig sig-object py" id="airflow.decorators.base.OperatorSubclass">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">OperatorSubclass</span></span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#OperatorSubclass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.OperatorSubclass" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py class">
+<dt class="sig sig-object py" id="airflow.decorators.base.DecoratedMappedOperator">
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">DecoratedMappedOperator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><s [...]
+<dd><p>Bases: <code class="xref py py-obj docutils literal notranslate"><span class="pre">airflow.models.mappedoperator.MappedOperator</span></code></p>
+<p>MappedOperator implementation for @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.13)"><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>
+</dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task.__call__">
+<span class="sig-name descname"><span class="pre">__call__</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">FParams</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">airflow.models.xcom_arg.XComArg</span><span class="p"><span class="pre">]</span></span></em><a class="reference internal" [...]
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task.function">
+<span class="sig-name descname"><span class="pre">function</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">FParams</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">FReturn</span><span class="p"><span class="pre">]</span></span></em><a class="reference internal" href="../../../../_modu [...]
+<dd></dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task.partial">
+<span class="sig-name descname"><span class="pre">partial</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#Task.partial"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.T [...]
+<dd><dl class="field-list simple">
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task.expand">
+<span class="sig-name descname"><span class="pre">expand</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#Task.expand"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.Tas [...]
+<dd><dl class="field-list simple">
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task.expand_kwargs">
+<span class="sig-name descname"><span class="pre">expand_kwargs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">kwargs</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strict</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</s [...]
+<dd><dl class="field-list simple">
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.Task.override">
+<span class="sig-name descname"><span class="pre">override</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#Task.override"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base [...]
+<dd><dl class="field-list simple">
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt class="sig sig-object py" id="airflow.decorators.base.TaskDecorator">
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">airflow.decorators.base.</span></span><span class="sig-name descname"><span class="pre">TaskDecorator</span></span><a class="reference internal" href="../../../../_modules/airflow/decorators/base.html#TaskDecorator"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.base.TaskDecorator [...]
+<dd><p>Bases: <code class="xref py py-obj docutils literal notranslate"><span class="pre">airflow.typing_compat.Protocol</span></code></p>
+<p>Type declaration for <code class="docutils literal notranslate"><span class="pre">task_decorator_factory</span></code> return type.</p>
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.base.TaskDecorator.__call__">
+<span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">python_callable</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">FParams</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">FReturn</ [...]
+<dt class="sig sig-object py">
+<span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">multiple_outputs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)"><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.13)"><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.13)"><em>type</em></a><em>[</em><a class="reference internal" href="../../models/baseoperator/index.html#airflow.models.baseoperator.BaseOperator" title="airflow.models.baseoperator.BaseOperator"><em>airflow.models.baseoperator.BaseOperator</em></a><em>]</em>) – The operator that executes the logic needed
+to run the python function in the correct environment.</p></li>
+</ul>
+</dd>
+</dl>
+<p>Other kwargs are directly forwarded to the underlying operator class when
+it’s instantiated.</p>
+</dd></dl>
+
</div>
</div>
</div>
<div class="pager" role="navigation" aria-label="related navigation">
- <a rel="prev" title="Dockerfile Changelog" href="changelog.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="Image build arguments reference" href="build-arg-ref.html" >
+ <a rel="next" title="airflow.decorators.bash" href="../bash/index.html" >
<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
</a>
</div>
@@ -871,10 +1181,51 @@ you will need Go in your container. Install airflow with <code class="docutils l
<nav class="wy-nav-side-toc">
<div class="wy-menu-vertical">
<ul>
-<li><a class="reference internal" href="#">Recipes</a><ul>
-<li><a class="reference internal" href="#google-cloud-sdk-installation">Google Cloud SDK installation</a></li>
-<li><a class="reference internal" href="#apache-hadoop-stack-installation">Apache Hadoop Stack installation</a></li>
-<li><a class="reference internal" href="#apache-beam-go-stack-installation">Apache Beam Go Stack installation</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>
@@ -899,7 +1250,7 @@ you will need Go in your container. Install airflow with <code class="docutils l
<div class="base-layout--button">
- <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/recipes.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">
@@ -1033,20 +1384,21 @@ you will need Go in your container. Install airflow with <code class="docutils l
</span>
</div>
</footer>
- <script type="text/javascript" src="_static/_gen/js/docs.js"></script>
- <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+ <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+ <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
- <script src="_static/jquery.js"></script>
- <script src="_static/underscore.js"></script>
- <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
- <script src="_static/doctools.js"></script>
- <script src="_static/sphinx_highlight.js"></script>
- <script src="_static/clipboard.min.js"></script>
- <script src="_static/copybutton.js"></script>
- <script src="_static/js/globaltoc.js"></script>
- <script src="_static/design-tabs.js"></script>
+ <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+ <script src="../../../../_static/jquery.js"></script>
+ <script src="../../../../_static/underscore.js"></script>
+ <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+ <script src="../../../../_static/doctools.js"></script>
+ <script src="../../../../_static/sphinx_highlight.js"></script>
+ <script src="../../../../_static/clipboard.min.js"></script>
+ <script src="../../../../_static/copybutton.js"></script>
+ <script src="../../../../_static/js/globaltoc.js"></script>
+ <script src="../../../../_static/design-tabs.js"></script>
+ <script src="../../../../_static/gh-jira-links.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs-archive/docker-stack/index.html b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/bash/index.html
similarity index 76%
copy from docs-archive/docker-stack/index.html
copy to docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/bash/index.html
index 32537382b0..7477eb0b6a 100644
--- a/docs-archive/docker-stack/index.html
+++ b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/bash/index.html
@@ -9,20 +9,22 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Docker Image for Apache Airflow — docker-stack Documentation</title>
- <link rel="stylesheet" href="_static/_gen/css/main.min.css" type="text/css" />
- <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
- <link rel="stylesheet" type="text/css" href="_static/_gen/css/main.min.css" />
- <link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
- <link rel="stylesheet" type="text/css" href="_static/_gen/css/main-custom.min.css" />
- <link rel="stylesheet" type="text/css" href="_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
- <link rel="stylesheet" type="text/css" href="_static/custom.css" />
- <link rel="shortcut icon" href="_static/pin_32.png"/>
- <link rel="index" title="Index" href="genindex.html" />
- <link rel="search" title="Search" href="search.html" />
- <link rel="next" title="Building the image" href="build.html" />
-
- <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/index.html" />
+ <title>airflow.decorators.bash — Airflow Documentation</title>
+ <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+ <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+ <link rel="index" title="Index" href="../../../../genindex.html" />
+ <link rel="search" title="Search" href="../../../../search.html" />
+ <link rel="next" title="airflow.decorators.branch_external_python" href="../branch_external_python/index.html" />
+ <link rel="prev" title="airflow.decorators.base" href="../base/index.html" />
+
+ <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/bash/index.html" />
<!-- Matomo -->
<script>
@@ -284,8 +286,21 @@
<div class="content-drawer">
<div class="td-sidebar">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -315,16 +330,90 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="build-arg-ref.html">Image build arguments reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -405,8 +494,21 @@
<div class="td-sidebar desktop-only d-print-none">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -436,16 +538,90 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="build-arg-ref.html">Image build arguments reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -534,9 +710,13 @@
<ul class="breadcrumb">
- <li class="breadcrumb-item"><a href="#" class="icon icon-home"> Home</a></li>
+ <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+
+ <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
+
+ <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
- <li class="breadcrumb-item"><a href="index.html"> Docker Image for Apache Airflow</a></li>
+ <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
</ul>
</div>
@@ -547,195 +727,16 @@
<div class="bodywrapper">
<div class="body" role="main">
- <blockquote>
-<div></div></blockquote>
-<a class="reference internal image-reference" href="_images/docker-logo.png"><img alt="_images/docker-logo.png" src="_images/docker-logo.png" style="width: 100px;" /></a>
-<div class="section" id="docker-image-for-apache-airflow">
-<h1>Docker Image for Apache Airflow<a class="headerlink" href="#docker-image-for-apache-airflow" title="Permalink to this heading">¶</a></h1>
-<div class="toctree-wrapper compound">
-</div>
-<div class="toctree-wrapper compound">
-</div>
-<p>For the ease of deployment in production, the community releases a production-ready reference container
-image.</p>
-<p>The Apache Airflow community, releases Docker Images which are <code class="docutils literal notranslate"><span class="pre">reference</span> <span class="pre">images</span></code> for Apache Airflow.
-Every time a new version of Airflow is released, the images are prepared in the
-<a class="reference external" href="https://hub.docker.com/r/apache/airflow">apache/airflow DockerHub</a>
-for all the supported Python versions.</p>
-<p>You can find the following images there (Assuming Airflow version <code class="code docutils literal notranslate"><span class="pre">2.10.1</span></code>):</p>
-<ul class="simple">
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:latest</span></code> - the latest released Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:latest-pythonX.Y</span></code> - the latest released Airflow image with specific Python version</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:2.10.1</span></code> - the versioned Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:2.10.1-pythonX.Y</span></code> - the versioned Airflow image with specific Python version</p></li>
-</ul>
-<p>Those are “reference” regular images. They contain the most common set of extras, dependencies and providers that are
-often used by the users and they are good to “try-things-out” when you want to just take Airflow for a spin,</p>
-<p>You can also use “slim” images that contain only core airflow and are about half the size of the “regular” images
-but you need to add all the <a class="reference external" href="/docs/apache-airflow/stable/extra-packages-ref.html" title="(in apache-airflow v2.10.0.dev0)"><span>Reference for package extras</span></a> and providers that you need separately
-via <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a>.</p>
-<ul class="simple">
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-latest</span></code> - the latest released Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-latest-pythonX.Y</span></code> - the latest released Airflow image with specific Python version</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-2.10.1</span></code> - the versioned Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-2.10.1-pythonX.Y</span></code> - the versioned Airflow image with specific Python version</p></li>
-</ul>
-<p>The Apache Airflow image provided as convenience package is optimized for size, and
-it provides just a bare minimal set of the extras and dependencies installed and in most cases
-you want to either extend or customize the image. You can see all possible extras in <a class="reference external" href="/docs/apache-airflow/stable/extra-packages-ref.html" title="(in apache-airflow v2.10.0.dev0)"><span>Reference for package extras</span></a>.
-The set of extras used in Airflow Production image are available in the
-<a class="reference external" href="https://github.com/apache/airflow/blob/2.10.1/Dockerfile">Dockerfile</a>.</p>
-<p>However, Airflow has more than 60 community-managed providers (installable via extras) and some of the
-default extras/providers installed are not used by everyone, sometimes others extras/providers
-are needed, sometimes (very often actually) you need to add your own custom dependencies,
-packages or even custom providers. You can learn how to do it in <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a>.</p>
-<p>The production images are build in DockerHub from released version and release candidates. There
-are also images published from branches but they are used mainly for development and testing purpose.
-See <a class="reference external" href="https://github.com/apache/airflow/blob/main/contributing-docs/working-with-git#airflow-git-branches">Airflow Git Branching</a>
-for details.</p>
-</div>
-<div class="section" id="fixing-images-at-release-time">
-<h1>Fixing images at release time<a class="headerlink" href="#fixing-images-at-release-time" title="Permalink to this heading">¶</a></h1>
-<p>The released “versioned” reference images are mostly <code class="docutils literal notranslate"><span class="pre">fixed</span></code> when we release Airflow version and we only
-update them in exceptional circumstances. For example when we find out that there are dependency errors
-that might prevent important Airflow or embedded provider’s functionalities working. In normal circumstances,
-the images are not going to change after release, even if new version of Airflow dependencies are released -
-not even when those versions contain critical security fixes. The process of Airflow releases is designed
-around upgrading dependencies automatically where applicable but only when we release a new version of Airflow,
-not for already released versions.</p>
-</div>
-<div class="section" id="what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image">
-<h1>What should I do if my security scan shows critical and high vulnerabilities in the image?<a class="headerlink" href="#what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image" title="Permalink to this heading">¶</a></h1>
-<p>We often hear questions that our users use various security scanners on the image and find out that
-there are some critical and high vulnerabilities in the image - not coming from Airflow but for some other
-components. In general, this is normal and expected that such vulnerabilities are found in the image after
-it’s been released and fixed - precisely because we are NOT updating the images after they are released as
-explained above. Also sometimes even the latest releases contain vulnerabilities that are not yet fixed
-in the base image we use or in the dependencies we use and cannot upgrade, because some of our providers
-have limits and did not manage to upgrade yet and we have no control over that. So it is possible
-that even the most recent release of our image there are some High and Critical vulnerabilities that
-are not yet fixed.</p>
-<p><strong>What can you do in such case?</strong></p>
-<p>First of all - you should know what you should NOT do.</p>
-<p>Do NOT send private email to the Airflow Security Team with scan results and asking what to do.
-The Security team at Airflow takes care exclusively about undisclosed vulnerabilities in Airflow itself, not
-in the dependencies or in the base image. The security email should only be used to report privately any
-security issues that can be exploited via Airflow. This is nicely explained in our
-<a class="reference external" href="https://github.com/apache/airflow/security/policy">Security Policy</a> where you can find more details
-including the need to provide reproducible scenarios and submitting ONE issue per email. NEVER submit multiple
-vulnerabilities in one email - those are rejected immediately, as they make the process of handling the issue
-way harder for everyone, including the reporters.</p>
-<p>Also DO NOT open a GitHub Issue with the scan results and asking what to do. The GitHub Issues are for
-reporting bugs and feature requests to Airflow itself, not for asking for help with the security scans on
-3rd party components.</p>
-<p>So what are your options?</p>
-<p>You have four options:</p>
-<ol class="arabic simple">
-<li><p>Build your own custom image following the examples we share there - using the latest base image and
-possibly manually bumping dependencies you want to bump. There are quite a few examples
-in <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a> which you can follow. You can use “slim” image as a base
-for your images and rather than basing your image on the “reference” image that has a number of extras
-and providers installed, you can only install what you actually need and upgrade some dependencies that
-otherwise would not be possible to upgrade - because some of the provider libraries have limits and
-did not manage to upgrade yet and we have no control over that. This is the most flexible way to
-build your image and you can build your process to combine it with quickly upgrading to latest Airflow
-versions (see point 2. below).</p></li>
-<li><p>Wait for a new version of Airflow and upgrade to it. Airflow images are updated to latest “non-conflicting”
-dependencies and use latest “base” image at release time, so what you have in the reference images
-at the moment we publish the image / release the version is what is “latest and greatest”
-available at the moment with the base platform we use (Debian Bookworm is the reference image we use).
-This is one of good strategies you can take - build a process to upgrade your Airflow version regularly
-- quickly after it has been released by the community, this will help you to keep up with the latest
-security fixes in the dependencies.</p></li>
-<li><p>If the base platform we use (currently Debian Bookworm) does not contain the latest versions you want
-and you want to use other base images, you can take a look at what system dependencies are installed
-and scripts in the latest <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> of airflow and take inspiration from it and build your own image
-or copy it and modify it to your needs. See the
-<a class="reference external" href="https://github.com/apache/airflow/blob/2.10.1/Dockerfile">Dockerfile</a> for the latest version.</p></li>
-<li><p>Research if the vulnerability affects you or not. Even if there is a dependency with high or critical
-vulnerability, it does not mean that it can be exploited in Airflow (or specifically in the way you are
-using Airflow). If you do have a reproducible scenario how a vulnerability can be exploited in Airflow, you should -
-of course - privately report it to the security team. But if you do not have reproducible
-scenario, please do some research and try to understand the impact of the vulnerability on Airflow. That
-research might result in a public GitHub Discussion where you can discuss the impact of the
-vulnerability if you research will indicate Airflow might not be impacted or private security email if
-you find a reproducible scenario on how to exploit it.</p></li>
-</ol>
-<p><strong>How do I discuss publicly about public CVEs in the image?</strong></p>
-<p>The security scans report public vulnerabilities in 3rd-party components of Airflow. Since those are
-already public vulnerabilities, this is something you can talk about but others also are talking about.
-So you can do research on your own first. Try to find discussions about the issues, how others were handling
-it and possibly even try to explore, whether the vulnerability can be exploited in Airflow or not.
-This is a very valuable contribution to the community you can do in order to help others to
-understand the impact of the vulnerability on Airflow. We highly appreciate our commercial users do it,
-because Airflow is maintained by volunteers, so if you or your company can spend some time and skills of
-security researchers to help the community to understand the impact of the vulnerability on Airflow, it
-could be a fantastic contribution to the community and way to give back to the project that your company uses
-for free.</p>
-<p>You are free to discuss it publicly, open a <a class="reference external" href="https://github.com/apache/airflow/discussions">GitHub Discussion</a>
-mentioning your findings and research you’ve done so far. Ideally (as a way to contribute to Airflow) you
-should explain the findings of your own security team in your company to help to research and understand
-the impact of the vulnerability on Airflow (and your way of using it).
-Again - strong suggestion is to open ONE discussion per vulnerability. You should NOT post scan results in
-bulk - this is not helpful for a discussion, and you will not get meaningful answers if you will attempt to
-discuss all the issues in one discussion thread.</p>
-<p>Yes - we know it’s the easy way to copy & paste your result and ask others what to do, but doing it is
-going to likely result in silence because such actions in the community as seen as pretty selfish way of
-getting your problems solved by tapping into time of other volunteers, without spending your time on making it
-easier for them to help. If you really want to get help from the community, focus your discussion on
-particular CVE, provide your findings - including analyzing your report in detail and finding which
-binaries and base images exactly are causing the scanner to report the vulnerability. Remember that only
-you have access to your scanner and you should bring as much helpful information so that others can
-comment on it. Show that you have done your homework and that you bring valuable information to the community.</p>
-<p>Opening a GitHub Discussion for this kind of issues is also a great way to communicate with the
-maintainers and security team in an open and transparent way - without reverting to the private security
-mailing list (which serves different purpose as explained above). If after such a discussion there will be
-a way to remove such a vulnerability from the scanned image - great, you can even contribute a PR to the
-Dockerfile to remove the vulnerability from the image. Maybe such a discussion will lead to a PR to allow
-Airflow to upgrade to newer dependency that fixes the vulnerability or remove it altogether, or maybe
-there is already a way to mitigate it or maybe there is already a PR that someone works on to fix it.
-All this can (and should) be discussed publicly and transparently in a GitHub Discussion, not via private
-security email, nor GitHub Issues which are exclusively about Airflow Issues not 3rd-party components
-public security issues.</p>
-</div>
-<div class="section" id="support">
-<h1>Support<a class="headerlink" href="#support" title="Permalink to this heading">¶</a></h1>
-<p>The reference Docker Image supports the following platforms and database:</p>
-<div class="section" id="intel-platform-x86-64">
-<h2>Intel platform (x86_64)<a class="headerlink" href="#intel-platform-x86-64" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>Postgres Client</p></li>
-<li><p>MySQL Client</p></li>
-<li><p>MSSQL Client</p></li>
-</ul>
-</div>
-<div class="section" id="arm-platform-aarch64">
-<h2>ARM platform (aarch64)<a class="headerlink" href="#arm-platform-aarch64" title="Permalink to this heading">¶</a></h2>
-<p>ARM support is experimental, might change any time.</p>
-<ul class="simple">
-<li><p>Postgres Client</p></li>
-<li><p>MySQL Client (MySQL 8)</p></li>
-<li><p>MSSQL Client</p></li>
-</ul>
-<p>Note that MySQL on arm has experimental support through MariaDB client library.</p>
-</div>
-</div>
-<div class="section" id="usage">
-<h1>Usage<a class="headerlink" href="#usage" title="Permalink to this heading">¶</a></h1>
-<p>The <span class="target" id="index-0"></span><a class="reference external" href="/docs/apache-airflow/stable/cli-and-env-variables-ref.html#envvar-AIRFLOW_HOME" title="(in apache-airflow v2.10.0.dev0)"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">AIRFLOW_HOME</span></code></a> is set by default to <code class="docutils literal notranslate"><span class="pre">/opt/airflow/</span></code> - this means that DAGs
-are by default in the <code class="docutils literal notranslate"><span class="pre">/opt/airflow/dags</span></code> folder and logs are in the <code class="docutils literal notranslate"><span class="pre">/opt/airflow/logs</span></code></p>
-<p>The working directory is <code class="docutils literal notranslate"><span class="pre">/opt/airflow</span></code> by default.</p>
-<p>If no <span class="target" id="index-1"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">AIRFLOW__DATABASE__SQL_ALCHEMY_CONN</span></code> variable is set then SQLite database is created in
-<code class="docutils literal notranslate"><span class="pre">${AIRFLOW_HOME}/airflow.db</span></code>.</p>
-<p>For example commands that start Airflow see: <a class="reference internal" href="entrypoint.html#entrypoint-commands"><span class="std std-ref">Executing commands</span></a>.</p>
-<p>Airflow requires many components to function as it is a distributed application. You may therefore also be interested
-in launching Airflow in the Docker Compose environment, see: <a class="reference external" href="/docs/apache-airflow/stable/howto/docker-compose/index.html" title="(in apache-airflow v2.10.0.dev0)"><span>Running Airflow in Docker</span></a>.</p>
-<p>You can use this image in <a class="reference external" href="/docs/helm-chart/stable/index.html" title="(in helm-chart v1.16.0-dev)"><span class="xref std std-doc">Helm Chart</span></a> as well.</p>
+ <div class="section" id="module-airflow.decorators.bash">
+<span id="airflow-decorators-bash"></span><h1><a class="reference internal" href="#module-airflow.decorators.bash" title="airflow.decorators.bash"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a><a class="headerlink" href="#module-airflow.decorators.bash" title="Permalink to this heading">¶</a></h1>
</div>
- <div class="pager" role="navigation" aria-label="related navigation"><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Previous</button>
- <a rel="next" title="Building the image" href="build.html" >
+ <div class="pager" role="navigation" aria-label="related navigation">
+ <a rel="prev" title="airflow.decorators.base" href="../base/index.html" >
+ <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
+ </a>
+ <a rel="next" title="airflow.decorators.branch_external_python" href="../branch_external_python/index.html" >
<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
</a>
</div>
@@ -805,17 +806,7 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
<nav class="wy-nav-side-toc">
<div class="wy-menu-vertical">
<ul>
-<li><a class="reference internal" href="#">Docker Image for Apache Airflow</a><ul>
-</ul>
-</li>
-<li><a class="reference internal" href="#fixing-images-at-release-time">Fixing images at release time</a></li>
-<li><a class="reference internal" href="#what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image">What should I do if my security scan shows critical and high vulnerabilities in the image?</a></li>
-<li><a class="reference internal" href="#support">Support</a><ul>
-<li><a class="reference internal" href="#intel-platform-x86-64">Intel platform (x86_64)</a></li>
-<li><a class="reference internal" href="#arm-platform-aarch64">ARM platform (aarch64)</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#usage">Usage</a></li>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
</ul>
</div>
@@ -838,7 +829,7 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
<div class="base-layout--button">
- <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/index.rst" rel="nofollow">
+ <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/bash/index.rst" rel="nofollow">
<button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
<svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
@@ -972,20 +963,21 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
</span>
</div>
</footer>
- <script type="text/javascript" src="_static/_gen/js/docs.js"></script>
- <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+ <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+ <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
- <script src="_static/jquery.js"></script>
- <script src="_static/underscore.js"></script>
- <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
- <script src="_static/doctools.js"></script>
- <script src="_static/sphinx_highlight.js"></script>
- <script src="_static/clipboard.min.js"></script>
- <script src="_static/copybutton.js"></script>
- <script src="_static/js/globaltoc.js"></script>
- <script src="_static/design-tabs.js"></script>
+ <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+ <script src="../../../../_static/jquery.js"></script>
+ <script src="../../../../_static/underscore.js"></script>
+ <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+ <script src="../../../../_static/doctools.js"></script>
+ <script src="../../../../_static/sphinx_highlight.js"></script>
+ <script src="../../../../_static/clipboard.min.js"></script>
+ <script src="../../../../_static/copybutton.js"></script>
+ <script src="../../../../_static/js/globaltoc.js"></script>
+ <script src="../../../../_static/design-tabs.js"></script>
+ <script src="../../../../_static/gh-jira-links.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs-archive/docker-stack/build-arg-ref.html b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/branch_external_python/index.html
similarity index 73%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/branch_external_python/index.html
index d1057327fa..1d54b18cf2 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.10.3/_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.bash" href="../bash/index.html" />
+
+ <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/branch_external_python/index.html" />
<!-- Matomo -->
<script>
@@ -284,8 +286,21 @@
<div class="content-drawer">
<div class="td-sidebar">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -315,23 +330,100 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
<ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_external_python.branch_external_python_task"><code class="docutils literal notranslate"><span class="pre">branch_external_python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
</ul>
</li>
</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
+</ul>
</div>
@@ -411,8 +503,21 @@
<div class="td-sidebar desktop-only d-print-none">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -442,22 +547,99 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
<ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_external_python.branch_external_python_task"><code class="docutils literal notranslate"><span class="pre">branch_external_python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
</ul>
</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -546,9 +728,13 @@
<ul class="breadcrumb">
- <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+ <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+
+ <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
- <li class="breadcrumb-item"><a href="build-arg-ref.html"> Image build arguments reference</a></li>
+ <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
+
+ <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
</ul>
</div>
@@ -559,408 +745,54 @@
<div class="bodywrapper">
<div class="body" role="main">
- <blockquote>
-<div></div></blockquote>
-<div class="section" id="image-build-arguments-reference">
-<h1>Image build arguments reference<a class="headerlink" href="#image-build-arguments-reference" title="Permalink to this heading">¶</a></h1>
-<p>The following build arguments (<code class="docutils literal notranslate"><span class="pre">--build-arg</span></code> in docker build command) can be used for production images.
-Those arguments are used when you want to customize the image. You can see some examples of it in
-<a class="reference internal" href="build.html#image-build-pypi"><span class="std std-ref">Building from PyPI packages</span></a>.</p>
-<div class="section" id="basic-arguments">
-<h2>Basic arguments<a class="headerlink" href="#basic-arguments" title="Permalink to this heading">¶</a></h2>
-<p>Those are the most common arguments that you use when you want to build a custom image.</p>
-<table class="docutils align-default">
+ <div class="section" id="module-airflow.decorators.branch_external_python">
+<span id="airflow-decorators-branch-external-python"></span><h1><a class="reference internal" href="#module-airflow.decorators.branch_external_python" title="airflow.decorators.branch_external_python"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a><a class="headerlink" href="#module-airflow.decorators.branch_external_python" title="Permalink to this heading">¶</a></h1>
+<div class="section" id="module-contents">
+<h2>Module Contents<a class="headerlink" href="#module-contents" title="Permalink to this heading">¶</a></h2>
+<div class="section" id="functions">
+<h3>Functions<a class="headerlink" href="#functions" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 35%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PYTHON_BASE_IMAGE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">python:3.8-slim-bookworm</span></code></p></td>
-<td><p>Base python image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION</span></code></p></td>
-<td><p><code class="code docutils literal notranslate"><span class="pre">2.10.1</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"><LATEST_AVAILABLE_IN_PYPI></span></code></p></td>
-<td><p>PIP version used.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UV_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre"><LATEST_AVAILABLE_IN_PYPI></span></code></p></td>
-<td><p>UV version used.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USE_UV</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Whether to use UV to build the image.
-This is an experimental feature.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">UV_HTTP_TIMEOUT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">300</span></code></p></td>
-<td><p>Timeout in seconds for UV pull requests.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code></p></td>
-<td></td>
-<td><p>additional <code class="docutils literal notranslate"><span class="pre">pip</span></code> flags passed to the
-installation commands (except when
-reinstalling <code class="docutils literal notranslate"><span class="pre">pip</span></code> itself)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_PROGRESS_BAR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">on</span></code></p></td>
-<td><p>Progress bar for PIP installation</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UID</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">50000</span></code></p></td>
-<td><p>Airflow user UID.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">constraints</span></code></p></td>
-<td><p>Type of constraints to build the image.
-This can be <code class="docutils literal notranslate"><span class="pre">constraints</span></code> for regular
-images or <code class="docutils literal notranslate"><span class="pre">constraints-no-providers</span></code> for
-slim images.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_REFERENCE</span></code></p></td>
-<td></td>
-<td><p>Reference (branch or tag) from GitHub
-where constraints file is taken from
-It can be <code class="docutils literal notranslate"><span class="pre">constraints-main</span></code> or
-<code class="docutils literal notranslate"><span class="pre">constraints-2-0</span></code> for
-2.0.* installation. In case of building
-specific version you want to point it
-to specific tag, for example
-<code class="code docutils literal notranslate"><span class="pre">constraints-2.10.1</span></code>.
-Auto-detected if empty.</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.branch_external_python.branch_external_python_task" title="airflow.decorators.branch_external_python.branch_external_python_task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_external_python_task</span></code></a>([python_callable, ...])</p></td>
+<td><p>Wrap a python function into a BranchExternalPythonOperator.</p></td>
</tr>
</tbody>
</table>
-<div class="admonition note">
-<p class="admonition-title">Note</p>
-<p>Before Airflow 2.2, the image also had <code class="docutils literal notranslate"><span class="pre">AIRFLOW_GID</span></code> parameter, but it did not provide any additional
-functionality - only added confusion - so it has been removed.</p>
-</div>
-<p>List of default extras in the production Dockerfile:</p>
-<ul class="simple">
-<li><p>aiobotocore</p></li>
-<li><p>amazon</p></li>
-<li><p>async</p></li>
-<li><p>celery</p></li>
-<li><p>cncf-kubernetes</p></li>
-<li><p>common-io</p></li>
-<li><p>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>fab</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google-auth</p></li>
-<li><p>graphviz</p></li>
-<li><p>grpc</p></li>
-<li><p>hashicorp</p></li>
-<li><p>http</p></li>
-<li><p>ldap</p></li>
-<li><p>microsoft-azure</p></li>
-<li><p>mysql</p></li>
-<li><p>odbc</p></li>
-<li><p>openlineage</p></li>
-<li><p>pandas</p></li>
-<li><p>postgres</p></li>
-<li><p>redis</p></li>
-<li><p>sendgrid</p></li>
-<li><p>sftp</p></li>
-<li><p>slack</p></li>
-<li><p>snowflake</p></li>
-<li><p>ssh</p></li>
-<li><p>statsd</p></li>
-<li><p>uv</p></li>
-<li><p>virtualenv</p></li>
-</ul>
-</div>
-<div class="section" id="image-optimization-options">
-<h2>Image optimization options<a class="headerlink" href="#image-optimization-options" title="Permalink to this heading">¶</a></h2>
-<p>The main advantage of Customization method of building Airflow image, is that it allows to build highly optimized image because
-the final image (RUNTIME) might not contain all the dependencies that are needed to build and install all other dependencies
-(DEV). Those arguments allow to control what is installed in the DEV image and what is installed in RUNTIME one, thus
-allowing to produce much more optimized images. See <a class="reference internal" href="build.html#image-build-optimized"><span class="std std-ref">Building optimized images</span></a>.
-for examples of using those arguments.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">UPGRADE_INVALIDATION_STRING</span></code></p></td>
-<td></td>
-<td><p>If set to a random, non-empty value
-the dependencies are upgraded to newer
-versions. In CI it is set to build id
-to make sure subsequent builds are not
-reusing cached images with same value.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PYTHON_DEPS</span></code></p></td>
-<td></td>
-<td><p>Optional python packages to extend
-the image with some extra dependencies.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Dev apt command executed before dev deps
-are installed in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Dev apt command executed
-before dev dep are installed
-in the Build image. Should start with
-<code class="docutils literal notranslate"><span class="pre">&&</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>
-</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.13)"><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">AIRFLOW_CONSTRAINTS_LOCATION</span></code></p></td>
-<td></td>
-<td><p>If not empty, it will override the
-source of the constraints with the
-specified URL or file. Note that the
-file has to be in Docker context so
-it’s best to place such file in
-one of the folders included in
-<code class="docutils literal notranslate"><span class="pre">.dockerignore</span></code> file.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DOCKER_CONTEXT_FILES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>If set to a folder (for example to
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> folder), then
-this folder will be copied to the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> inside the
-context of docker and you will be able
-to install from binary files present
-there. By default we set it to
-Dockerfile as we know the file is there,
-otherwise the COPY instruction fails.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to true, Airflow, providers and
-all dependencies are installed from
-from locally built/downloaded
-.whl and .tar.gz files placed in the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code>.</p></td>
-</tr>
-</tbody>
-</table>
+</dd></dl>
+
</div>
-<div class="section" id="pre-caching-pip-dependencies">
-<h2>Pre-caching PIP dependencies<a class="headerlink" href="#pre-caching-pip-dependencies" title="Permalink to this heading">¶</a></h2>
-<p>When image is build from PIP, by default pre-caching of PIP dependencies is used. This is in order to speed-up incremental
-builds during development. When pre-cached PIP dependencies are used and <code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code> changes, the
-PIP dependencies are already pre-installed, thus resulting in much faster image rebuild. This is purely an optimization
-of time needed to build the images and should be disabled if you want to install Airflow from
-Docker context files.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 33%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_BRANCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">main</span></code></p></td>
-<td><p>the branch from which PIP dependencies
-are pre-installed initially.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_REPO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code></p></td>
-<td><p>the repository from which PIP
-dependencies are pre-installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PRE_CACHED_PIP_PACKAGES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Allows to pre-cache airflow PIP packages
-from the GitHub of Apache Airflow
-This allows to optimize iterations for
-Image builds and speeds up CI builds.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_CACHE_EPOCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">"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.bash" href="../bash/index.html" >
<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
- </a><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Next</button>
+ </a>
+ <a rel="next" title="airflow.decorators.branch_python" href="../branch_python/index.html" >
+ <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+ </a>
</div>
</div>
@@ -1028,11 +860,14 @@ new argument.</p></td>
<nav class="wy-nav-side-toc">
<div class="wy-menu-vertical">
<ul>
-<li><a class="reference internal" href="#">Image build arguments reference</a><ul>
-<li><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a><ul>
+<li><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li><a class="reference internal" href="#functions">Functions</a><ul>
+<li><a class="reference internal" href="#airflow.decorators.branch_external_python.branch_external_python_task"><code class="docutils literal notranslate"><span class="pre">branch_external_python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
</ul>
</li>
</ul>
@@ -1057,7 +892,7 @@ new argument.</p></td>
<div class="base-layout--button">
- <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/build-arg-ref.rst" rel="nofollow">
+ <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/branch_external_python/index.rst" rel="nofollow">
<button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
<svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
@@ -1191,20 +1026,21 @@ new argument.</p></td>
</span>
</div>
</footer>
- <script type="text/javascript" src="_static/_gen/js/docs.js"></script>
- <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+ <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+ <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
- <script src="_static/jquery.js"></script>
- <script src="_static/underscore.js"></script>
- <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
- <script src="_static/doctools.js"></script>
- <script src="_static/sphinx_highlight.js"></script>
- <script src="_static/clipboard.min.js"></script>
- <script src="_static/copybutton.js"></script>
- <script src="_static/js/globaltoc.js"></script>
- <script src="_static/design-tabs.js"></script>
+ <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+ <script src="../../../../_static/jquery.js"></script>
+ <script src="../../../../_static/underscore.js"></script>
+ <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+ <script src="../../../../_static/doctools.js"></script>
+ <script src="../../../../_static/sphinx_highlight.js"></script>
+ <script src="../../../../_static/clipboard.min.js"></script>
+ <script src="../../../../_static/copybutton.js"></script>
+ <script src="../../../../_static/js/globaltoc.js"></script>
+ <script src="../../../../_static/design-tabs.js"></script>
+ <script src="../../../../_static/gh-jira-links.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs-archive/docker-stack/build-arg-ref.html b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/branch_python/index.html
similarity index 73%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/branch_python/index.html
index d1057327fa..d0898f7b1a 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.10.3/_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.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -315,23 +330,100 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
<ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_python.branch_task"><code class="docutils literal notranslate"><span class="pre">branch_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
</ul>
</li>
</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
+</ul>
</div>
@@ -411,8 +503,21 @@
<div class="td-sidebar desktop-only d-print-none">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -442,22 +547,99 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
<ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_python.branch_task"><code class="docutils literal notranslate"><span class="pre">branch_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
</ul>
</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -546,9 +728,13 @@
<ul class="breadcrumb">
- <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+ <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+
+ <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
- <li class="breadcrumb-item"><a href="build-arg-ref.html"> Image build arguments reference</a></li>
+ <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
+
+ <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
</ul>
</div>
@@ -559,408 +745,54 @@
<div class="bodywrapper">
<div class="body" role="main">
- <blockquote>
-<div></div></blockquote>
-<div class="section" id="image-build-arguments-reference">
-<h1>Image build arguments reference<a class="headerlink" href="#image-build-arguments-reference" title="Permalink to this heading">¶</a></h1>
-<p>The following build arguments (<code class="docutils literal notranslate"><span class="pre">--build-arg</span></code> in docker build command) can be used for production images.
-Those arguments are used when you want to customize the image. You can see some examples of it in
-<a class="reference internal" href="build.html#image-build-pypi"><span class="std std-ref">Building from PyPI packages</span></a>.</p>
-<div class="section" id="basic-arguments">
-<h2>Basic arguments<a class="headerlink" href="#basic-arguments" title="Permalink to this heading">¶</a></h2>
-<p>Those are the most common arguments that you use when you want to build a custom image.</p>
-<table class="docutils align-default">
+ <div class="section" id="module-airflow.decorators.branch_python">
+<span id="airflow-decorators-branch-python"></span><h1><a class="reference internal" href="#module-airflow.decorators.branch_python" title="airflow.decorators.branch_python"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a><a class="headerlink" href="#module-airflow.decorators.branch_python" title="Permalink to this heading">¶</a></h1>
+<div class="section" id="module-contents">
+<h2>Module Contents<a class="headerlink" href="#module-contents" title="Permalink to this heading">¶</a></h2>
+<div class="section" id="functions">
+<h3>Functions<a class="headerlink" href="#functions" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 35%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PYTHON_BASE_IMAGE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">python:3.8-slim-bookworm</span></code></p></td>
-<td><p>Base python image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION</span></code></p></td>
-<td><p><code class="code docutils literal notranslate"><span class="pre">2.10.1</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"><LATEST_AVAILABLE_IN_PYPI></span></code></p></td>
-<td><p>PIP version used.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UV_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre"><LATEST_AVAILABLE_IN_PYPI></span></code></p></td>
-<td><p>UV version used.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USE_UV</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Whether to use UV to build the image.
-This is an experimental feature.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">UV_HTTP_TIMEOUT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">300</span></code></p></td>
-<td><p>Timeout in seconds for UV pull requests.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code></p></td>
-<td></td>
-<td><p>additional <code class="docutils literal notranslate"><span class="pre">pip</span></code> flags passed to the
-installation commands (except when
-reinstalling <code class="docutils literal notranslate"><span class="pre">pip</span></code> itself)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_PROGRESS_BAR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">on</span></code></p></td>
-<td><p>Progress bar for PIP installation</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UID</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">50000</span></code></p></td>
-<td><p>Airflow user UID.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">constraints</span></code></p></td>
-<td><p>Type of constraints to build the image.
-This can be <code class="docutils literal notranslate"><span class="pre">constraints</span></code> for regular
-images or <code class="docutils literal notranslate"><span class="pre">constraints-no-providers</span></code> for
-slim images.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_REFERENCE</span></code></p></td>
-<td></td>
-<td><p>Reference (branch or tag) from GitHub
-where constraints file is taken from
-It can be <code class="docutils literal notranslate"><span class="pre">constraints-main</span></code> or
-<code class="docutils literal notranslate"><span class="pre">constraints-2-0</span></code> for
-2.0.* installation. In case of building
-specific version you want to point it
-to specific tag, for example
-<code class="code docutils literal notranslate"><span class="pre">constraints-2.10.1</span></code>.
-Auto-detected if empty.</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.branch_python.branch_task" title="airflow.decorators.branch_python.branch_task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_task</span></code></a>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a python function into a BranchPythonOperator.</p></td>
</tr>
</tbody>
</table>
-<div class="admonition note">
-<p class="admonition-title">Note</p>
-<p>Before Airflow 2.2, the image also had <code class="docutils literal notranslate"><span class="pre">AIRFLOW_GID</span></code> parameter, but it did not provide any additional
-functionality - only added confusion - so it has been removed.</p>
-</div>
-<p>List of default extras in the production Dockerfile:</p>
-<ul class="simple">
-<li><p>aiobotocore</p></li>
-<li><p>amazon</p></li>
-<li><p>async</p></li>
-<li><p>celery</p></li>
-<li><p>cncf-kubernetes</p></li>
-<li><p>common-io</p></li>
-<li><p>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>fab</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google-auth</p></li>
-<li><p>graphviz</p></li>
-<li><p>grpc</p></li>
-<li><p>hashicorp</p></li>
-<li><p>http</p></li>
-<li><p>ldap</p></li>
-<li><p>microsoft-azure</p></li>
-<li><p>mysql</p></li>
-<li><p>odbc</p></li>
-<li><p>openlineage</p></li>
-<li><p>pandas</p></li>
-<li><p>postgres</p></li>
-<li><p>redis</p></li>
-<li><p>sendgrid</p></li>
-<li><p>sftp</p></li>
-<li><p>slack</p></li>
-<li><p>snowflake</p></li>
-<li><p>ssh</p></li>
-<li><p>statsd</p></li>
-<li><p>uv</p></li>
-<li><p>virtualenv</p></li>
-</ul>
-</div>
-<div class="section" id="image-optimization-options">
-<h2>Image optimization options<a class="headerlink" href="#image-optimization-options" title="Permalink to this heading">¶</a></h2>
-<p>The main advantage of Customization method of building Airflow image, is that it allows to build highly optimized image because
-the final image (RUNTIME) might not contain all the dependencies that are needed to build and install all other dependencies
-(DEV). Those arguments allow to control what is installed in the DEV image and what is installed in RUNTIME one, thus
-allowing to produce much more optimized images. See <a class="reference internal" href="build.html#image-build-optimized"><span class="std std-ref">Building optimized images</span></a>.
-for examples of using those arguments.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">UPGRADE_INVALIDATION_STRING</span></code></p></td>
-<td></td>
-<td><p>If set to a random, non-empty value
-the dependencies are upgraded to newer
-versions. In CI it is set to build id
-to make sure subsequent builds are not
-reusing cached images with same value.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PYTHON_DEPS</span></code></p></td>
-<td></td>
-<td><p>Optional python packages to extend
-the image with some extra dependencies.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Dev apt command executed before dev deps
-are installed in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Dev apt command executed
-before dev dep are installed
-in the Build image. Should start with
-<code class="docutils literal notranslate"><span class="pre">&&</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>
-</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.13)"><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">AIRFLOW_CONSTRAINTS_LOCATION</span></code></p></td>
-<td></td>
-<td><p>If not empty, it will override the
-source of the constraints with the
-specified URL or file. Note that the
-file has to be in Docker context so
-it’s best to place such file in
-one of the folders included in
-<code class="docutils literal notranslate"><span class="pre">.dockerignore</span></code> file.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DOCKER_CONTEXT_FILES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>If set to a folder (for example to
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> folder), then
-this folder will be copied to the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> inside the
-context of docker and you will be able
-to install from binary files present
-there. By default we set it to
-Dockerfile as we know the file is there,
-otherwise the COPY instruction fails.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to true, Airflow, providers and
-all dependencies are installed from
-from locally built/downloaded
-.whl and .tar.gz files placed in the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code>.</p></td>
-</tr>
-</tbody>
-</table>
+</dd></dl>
+
</div>
-<div class="section" id="pre-caching-pip-dependencies">
-<h2>Pre-caching PIP dependencies<a class="headerlink" href="#pre-caching-pip-dependencies" title="Permalink to this heading">¶</a></h2>
-<p>When image is build from PIP, by default pre-caching of PIP dependencies is used. This is in order to speed-up incremental
-builds during development. When pre-cached PIP dependencies are used and <code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code> changes, the
-PIP dependencies are already pre-installed, thus resulting in much faster image rebuild. This is purely an optimization
-of time needed to build the images and should be disabled if you want to install Airflow from
-Docker context files.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 33%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_BRANCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">main</span></code></p></td>
-<td><p>the branch from which PIP dependencies
-are pre-installed initially.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_REPO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code></p></td>
-<td><p>the repository from which PIP
-dependencies are pre-installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PRE_CACHED_PIP_PACKAGES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Allows to pre-cache airflow PIP packages
-from the GitHub of Apache Airflow
-This allows to optimize iterations for
-Image builds and speeds up CI builds.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_CACHE_EPOCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">"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>
@@ -1028,11 +860,14 @@ new argument.</p></td>
<nav class="wy-nav-side-toc">
<div class="wy-menu-vertical">
<ul>
-<li><a class="reference internal" href="#">Image build arguments reference</a><ul>
-<li><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a><ul>
+<li><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li><a class="reference internal" href="#functions">Functions</a><ul>
+<li><a class="reference internal" href="#airflow.decorators.branch_python.branch_task"><code class="docutils literal notranslate"><span class="pre">branch_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
</ul>
</li>
</ul>
@@ -1057,7 +892,7 @@ new argument.</p></td>
<div class="base-layout--button">
- <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/build-arg-ref.rst" rel="nofollow">
+ <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/branch_python/index.rst" rel="nofollow">
<button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
<svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
@@ -1191,20 +1026,21 @@ new argument.</p></td>
</span>
</div>
</footer>
- <script type="text/javascript" src="_static/_gen/js/docs.js"></script>
- <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+ <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+ <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
- <script src="_static/jquery.js"></script>
- <script src="_static/underscore.js"></script>
- <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
- <script src="_static/doctools.js"></script>
- <script src="_static/sphinx_highlight.js"></script>
- <script src="_static/clipboard.min.js"></script>
- <script src="_static/copybutton.js"></script>
- <script src="_static/js/globaltoc.js"></script>
- <script src="_static/design-tabs.js"></script>
+ <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+ <script src="../../../../_static/jquery.js"></script>
+ <script src="../../../../_static/underscore.js"></script>
+ <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+ <script src="../../../../_static/doctools.js"></script>
+ <script src="../../../../_static/sphinx_highlight.js"></script>
+ <script src="../../../../_static/clipboard.min.js"></script>
+ <script src="../../../../_static/copybutton.js"></script>
+ <script src="../../../../_static/js/globaltoc.js"></script>
+ <script src="../../../../_static/design-tabs.js"></script>
+ <script src="../../../../_static/gh-jira-links.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs-archive/docker-stack/build-arg-ref.html b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/branch_virtualenv/index.html
similarity index 73%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/branch_virtualenv/index.html
index d1057327fa..b77e5f0997 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.10.3/_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.condition" href="../condition/index.html" />
+ <link rel="prev" title="airflow.decorators.branch_python" href="../branch_python/index.html" />
+
+ <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/branch_virtualenv/index.html" />
<!-- Matomo -->
<script>
@@ -284,8 +286,21 @@
<div class="content-drawer">
<div class="td-sidebar">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -315,23 +330,100 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
<ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_virtualenv.branch_virtualenv_task"><code class="docutils literal notranslate"><span class="pre">branch_virtualenv_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
</ul>
</li>
</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
+</ul>
</div>
@@ -411,8 +503,21 @@
<div class="td-sidebar desktop-only d-print-none">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -442,22 +547,99 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
<ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.branch_virtualenv.branch_virtualenv_task"><code class="docutils literal notranslate"><span class="pre">branch_virtualenv_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
</ul>
</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -546,9 +728,13 @@
<ul class="breadcrumb">
- <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+ <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+
+ <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
- <li class="breadcrumb-item"><a href="build-arg-ref.html"> Image build arguments reference</a></li>
+ <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
+
+ <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
</ul>
</div>
@@ -559,408 +745,54 @@
<div class="bodywrapper">
<div class="body" role="main">
- <blockquote>
-<div></div></blockquote>
-<div class="section" id="image-build-arguments-reference">
-<h1>Image build arguments reference<a class="headerlink" href="#image-build-arguments-reference" title="Permalink to this heading">¶</a></h1>
-<p>The following build arguments (<code class="docutils literal notranslate"><span class="pre">--build-arg</span></code> in docker build command) can be used for production images.
-Those arguments are used when you want to customize the image. You can see some examples of it in
-<a class="reference internal" href="build.html#image-build-pypi"><span class="std std-ref">Building from PyPI packages</span></a>.</p>
-<div class="section" id="basic-arguments">
-<h2>Basic arguments<a class="headerlink" href="#basic-arguments" title="Permalink to this heading">¶</a></h2>
-<p>Those are the most common arguments that you use when you want to build a custom image.</p>
-<table class="docutils align-default">
+ <div class="section" id="module-airflow.decorators.branch_virtualenv">
+<span id="airflow-decorators-branch-virtualenv"></span><h1><a class="reference internal" href="#module-airflow.decorators.branch_virtualenv" title="airflow.decorators.branch_virtualenv"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a><a class="headerlink" href="#module-airflow.decorators.branch_virtualenv" title="Permalink to this heading">¶</a></h1>
+<div class="section" id="module-contents">
+<h2>Module Contents<a class="headerlink" href="#module-contents" title="Permalink to this heading">¶</a></h2>
+<div class="section" id="functions">
+<h3>Functions<a class="headerlink" href="#functions" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 35%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PYTHON_BASE_IMAGE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">python:3.8-slim-bookworm</span></code></p></td>
-<td><p>Base python image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION</span></code></p></td>
-<td><p><code class="code docutils literal notranslate"><span class="pre">2.10.1</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"><LATEST_AVAILABLE_IN_PYPI></span></code></p></td>
-<td><p>PIP version used.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UV_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre"><LATEST_AVAILABLE_IN_PYPI></span></code></p></td>
-<td><p>UV version used.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USE_UV</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Whether to use UV to build the image.
-This is an experimental feature.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">UV_HTTP_TIMEOUT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">300</span></code></p></td>
-<td><p>Timeout in seconds for UV pull requests.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code></p></td>
-<td></td>
-<td><p>additional <code class="docutils literal notranslate"><span class="pre">pip</span></code> flags passed to the
-installation commands (except when
-reinstalling <code class="docutils literal notranslate"><span class="pre">pip</span></code> itself)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_PROGRESS_BAR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">on</span></code></p></td>
-<td><p>Progress bar for PIP installation</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UID</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">50000</span></code></p></td>
-<td><p>Airflow user UID.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">constraints</span></code></p></td>
-<td><p>Type of constraints to build the image.
-This can be <code class="docutils literal notranslate"><span class="pre">constraints</span></code> for regular
-images or <code class="docutils literal notranslate"><span class="pre">constraints-no-providers</span></code> for
-slim images.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_REFERENCE</span></code></p></td>
-<td></td>
-<td><p>Reference (branch or tag) from GitHub
-where constraints file is taken from
-It can be <code class="docutils literal notranslate"><span class="pre">constraints-main</span></code> or
-<code class="docutils literal notranslate"><span class="pre">constraints-2-0</span></code> for
-2.0.* installation. In case of building
-specific version you want to point it
-to specific tag, for example
-<code class="code docutils literal notranslate"><span class="pre">constraints-2.10.1</span></code>.
-Auto-detected if empty.</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.branch_virtualenv.branch_virtualenv_task" title="airflow.decorators.branch_virtualenv.branch_virtualenv_task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_virtualenv_task</span></code></a>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a python function into a BranchPythonVirtualenvOperator.</p></td>
</tr>
</tbody>
</table>
-<div class="admonition note">
-<p class="admonition-title">Note</p>
-<p>Before Airflow 2.2, the image also had <code class="docutils literal notranslate"><span class="pre">AIRFLOW_GID</span></code> parameter, but it did not provide any additional
-functionality - only added confusion - so it has been removed.</p>
-</div>
-<p>List of default extras in the production Dockerfile:</p>
-<ul class="simple">
-<li><p>aiobotocore</p></li>
-<li><p>amazon</p></li>
-<li><p>async</p></li>
-<li><p>celery</p></li>
-<li><p>cncf-kubernetes</p></li>
-<li><p>common-io</p></li>
-<li><p>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>fab</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google-auth</p></li>
-<li><p>graphviz</p></li>
-<li><p>grpc</p></li>
-<li><p>hashicorp</p></li>
-<li><p>http</p></li>
-<li><p>ldap</p></li>
-<li><p>microsoft-azure</p></li>
-<li><p>mysql</p></li>
-<li><p>odbc</p></li>
-<li><p>openlineage</p></li>
-<li><p>pandas</p></li>
-<li><p>postgres</p></li>
-<li><p>redis</p></li>
-<li><p>sendgrid</p></li>
-<li><p>sftp</p></li>
-<li><p>slack</p></li>
-<li><p>snowflake</p></li>
-<li><p>ssh</p></li>
-<li><p>statsd</p></li>
-<li><p>uv</p></li>
-<li><p>virtualenv</p></li>
-</ul>
-</div>
-<div class="section" id="image-optimization-options">
-<h2>Image optimization options<a class="headerlink" href="#image-optimization-options" title="Permalink to this heading">¶</a></h2>
-<p>The main advantage of Customization method of building Airflow image, is that it allows to build highly optimized image because
-the final image (RUNTIME) might not contain all the dependencies that are needed to build and install all other dependencies
-(DEV). Those arguments allow to control what is installed in the DEV image and what is installed in RUNTIME one, thus
-allowing to produce much more optimized images. See <a class="reference internal" href="build.html#image-build-optimized"><span class="std std-ref">Building optimized images</span></a>.
-for examples of using those arguments.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">UPGRADE_INVALIDATION_STRING</span></code></p></td>
-<td></td>
-<td><p>If set to a random, non-empty value
-the dependencies are upgraded to newer
-versions. In CI it is set to build id
-to make sure subsequent builds are not
-reusing cached images with same value.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PYTHON_DEPS</span></code></p></td>
-<td></td>
-<td><p>Optional python packages to extend
-the image with some extra dependencies.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Dev apt command executed before dev deps
-are installed in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Dev apt command executed
-before dev dep are installed
-in the Build image. Should start with
-<code class="docutils literal notranslate"><span class="pre">&&</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>
-</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.13)"><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">AIRFLOW_CONSTRAINTS_LOCATION</span></code></p></td>
-<td></td>
-<td><p>If not empty, it will override the
-source of the constraints with the
-specified URL or file. Note that the
-file has to be in Docker context so
-it’s best to place such file in
-one of the folders included in
-<code class="docutils literal notranslate"><span class="pre">.dockerignore</span></code> file.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DOCKER_CONTEXT_FILES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>If set to a folder (for example to
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> folder), then
-this folder will be copied to the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> inside the
-context of docker and you will be able
-to install from binary files present
-there. By default we set it to
-Dockerfile as we know the file is there,
-otherwise the COPY instruction fails.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to true, Airflow, providers and
-all dependencies are installed from
-from locally built/downloaded
-.whl and .tar.gz files placed in the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code>.</p></td>
-</tr>
-</tbody>
-</table>
+</dd></dl>
+
</div>
-<div class="section" id="pre-caching-pip-dependencies">
-<h2>Pre-caching PIP dependencies<a class="headerlink" href="#pre-caching-pip-dependencies" title="Permalink to this heading">¶</a></h2>
-<p>When image is build from PIP, by default pre-caching of PIP dependencies is used. This is in order to speed-up incremental
-builds during development. When pre-cached PIP dependencies are used and <code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code> changes, the
-PIP dependencies are already pre-installed, thus resulting in much faster image rebuild. This is purely an optimization
-of time needed to build the images and should be disabled if you want to install Airflow from
-Docker context files.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 33%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_BRANCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">main</span></code></p></td>
-<td><p>the branch from which PIP dependencies
-are pre-installed initially.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_REPO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code></p></td>
-<td><p>the repository from which PIP
-dependencies are pre-installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PRE_CACHED_PIP_PACKAGES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Allows to pre-cache airflow PIP packages
-from the GitHub of Apache Airflow
-This allows to optimize iterations for
-Image builds and speeds up CI builds.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_CACHE_EPOCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">"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.condition" href="../condition/index.html" >
+ <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+ </a>
</div>
</div>
@@ -1028,11 +860,14 @@ new argument.</p></td>
<nav class="wy-nav-side-toc">
<div class="wy-menu-vertical">
<ul>
-<li><a class="reference internal" href="#">Image build arguments reference</a><ul>
-<li><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a><ul>
+<li><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li><a class="reference internal" href="#functions">Functions</a><ul>
+<li><a class="reference internal" href="#airflow.decorators.branch_virtualenv.branch_virtualenv_task"><code class="docutils literal notranslate"><span class="pre">branch_virtualenv_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
</ul>
</li>
</ul>
@@ -1057,7 +892,7 @@ new argument.</p></td>
<div class="base-layout--button">
- <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/build-arg-ref.rst" rel="nofollow">
+ <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/branch_virtualenv/index.rst" rel="nofollow">
<button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
<svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
@@ -1191,20 +1026,21 @@ new argument.</p></td>
</span>
</div>
</footer>
- <script type="text/javascript" src="_static/_gen/js/docs.js"></script>
- <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+ <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+ <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
- <script src="_static/jquery.js"></script>
- <script src="_static/underscore.js"></script>
- <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
- <script src="_static/doctools.js"></script>
- <script src="_static/sphinx_highlight.js"></script>
- <script src="_static/clipboard.min.js"></script>
- <script src="_static/copybutton.js"></script>
- <script src="_static/js/globaltoc.js"></script>
- <script src="_static/design-tabs.js"></script>
+ <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+ <script src="../../../../_static/jquery.js"></script>
+ <script src="../../../../_static/underscore.js"></script>
+ <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+ <script src="../../../../_static/doctools.js"></script>
+ <script src="../../../../_static/sphinx_highlight.js"></script>
+ <script src="../../../../_static/clipboard.min.js"></script>
+ <script src="../../../../_static/copybutton.js"></script>
+ <script src="../../../../_static/js/globaltoc.js"></script>
+ <script src="../../../../_static/design-tabs.js"></script>
+ <script src="../../../../_static/gh-jira-links.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs-archive/docker-stack/build-arg-ref.html b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/condition/index.html
similarity index 72%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/condition/index.html
index d1057327fa..942267864a 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/condition/index.html
@@ -9,20 +9,22 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Image build arguments reference — docker-stack Documentation</title>
- <link rel="stylesheet" href="_static/_gen/css/main.min.css" type="text/css" />
- <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
- <link rel="stylesheet" type="text/css" href="_static/_gen/css/main.min.css" />
- <link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
- <link rel="stylesheet" type="text/css" href="_static/_gen/css/main-custom.min.css" />
- <link rel="stylesheet" type="text/css" href="_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
- <link rel="stylesheet" type="text/css" href="_static/custom.css" />
- <link rel="shortcut icon" href="_static/pin_32.png"/>
- <link rel="index" title="Index" href="genindex.html" />
- <link rel="search" title="Search" href="search.html" />
- <link rel="prev" title="Recipes" href="recipes.html" />
-
- <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/build-arg-ref.html" />
+ <title>airflow.decorators.condition — Airflow Documentation</title>
+ <link rel="stylesheet" href="../../../../_static/_gen/css/main.min.css" type="text/css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/_gen/css/main-custom.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/graphviz.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" />
+ <link rel="shortcut icon" href="../../../../_static/pin_32.png"/>
+ <link rel="index" title="Index" href="../../../../genindex.html" />
+ <link rel="search" title="Search" href="../../../../search.html" />
+ <link rel="next" title="airflow.decorators.external_python" href="../external_python/index.html" />
+ <link rel="prev" title="airflow.decorators.branch_virtualenv" href="../branch_virtualenv/index.html" />
+
+ <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/condition/index.html" />
<!-- Matomo -->
<script>
@@ -284,8 +286,21 @@
<div class="content-drawer">
<div class="td-sidebar">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -315,23 +330,101 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
<ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.condition.run_if"><code class="docutils literal notranslate"><span class="pre">run_if()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.condition.skip_if"><code class="docutils literal notranslate"><span class="pre">skip_if()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
</ul>
</li>
</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
+</ul>
</div>
@@ -411,8 +504,21 @@
<div class="td-sidebar desktop-only d-print-none">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -442,22 +548,100 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
<ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.condition.run_if"><code class="docutils literal notranslate"><span class="pre">run_if()</span></code></a></li>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.condition.skip_if"><code class="docutils literal notranslate"><span class="pre">skip_if()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
</ul>
</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -546,9 +730,13 @@
<ul class="breadcrumb">
- <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+ <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+
+ <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
- <li class="breadcrumb-item"><a href="build-arg-ref.html"> Image build arguments reference</a></li>
+ <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
+
+ <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
</ul>
</div>
@@ -559,408 +747,68 @@
<div class="bodywrapper">
<div class="body" role="main">
- <blockquote>
-<div></div></blockquote>
-<div class="section" id="image-build-arguments-reference">
-<h1>Image build arguments reference<a class="headerlink" href="#image-build-arguments-reference" title="Permalink to this heading">¶</a></h1>
-<p>The following build arguments (<code class="docutils literal notranslate"><span class="pre">--build-arg</span></code> in docker build command) can be used for production images.
-Those arguments are used when you want to customize the image. You can see some examples of it in
-<a class="reference internal" href="build.html#image-build-pypi"><span class="std std-ref">Building from PyPI packages</span></a>.</p>
-<div class="section" id="basic-arguments">
-<h2>Basic arguments<a class="headerlink" href="#basic-arguments" title="Permalink to this heading">¶</a></h2>
-<p>Those are the most common arguments that you use when you want to build a custom image.</p>
-<table class="docutils align-default">
+ <div class="section" id="module-airflow.decorators.condition">
+<span id="airflow-decorators-condition"></span><h1><a class="reference internal" href="#module-airflow.decorators.condition" title="airflow.decorators.condition"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a><a class="headerlink" href="#module-airflow.decorators.condition" title="Permalink to this heading">¶</a></h1>
+<div class="section" id="module-contents">
+<h2>Module Contents<a class="headerlink" href="#module-contents" title="Permalink to this heading">¶</a></h2>
+<div class="section" id="functions">
+<h3>Functions<a class="headerlink" href="#functions" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 35%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PYTHON_BASE_IMAGE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">python:3.8-slim-bookworm</span></code></p></td>
-<td><p>Base python image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION</span></code></p></td>
-<td><p><code class="code docutils literal notranslate"><span class="pre">2.10.1</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"><LATEST_AVAILABLE_IN_PYPI></span></code></p></td>
-<td><p>PIP version used.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UV_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre"><LATEST_AVAILABLE_IN_PYPI></span></code></p></td>
-<td><p>UV version used.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USE_UV</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Whether to use UV to build the image.
-This is an experimental feature.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">UV_HTTP_TIMEOUT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">300</span></code></p></td>
-<td><p>Timeout in seconds for UV pull requests.</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.condition.run_if" title="airflow.decorators.condition.run_if"><code class="xref py py-obj docutils literal notranslate"><span class="pre">run_if</span></code></a>(condition[, skip_message])</p></td>
+<td><p>Decorate a task to run only if a condition is met.</p></td>
</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code></p></td>
-<td></td>
-<td><p>additional <code class="docutils literal notranslate"><span class="pre">pip</span></code> flags passed to the
-installation commands (except when
-reinstalling <code class="docutils literal notranslate"><span class="pre">pip</span></code> itself)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_PROGRESS_BAR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">on</span></code></p></td>
-<td><p>Progress bar for PIP installation</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UID</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">50000</span></code></p></td>
-<td><p>Airflow user UID.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">constraints</span></code></p></td>
-<td><p>Type of constraints to build the image.
-This can be <code class="docutils literal notranslate"><span class="pre">constraints</span></code> for regular
-images or <code class="docutils literal notranslate"><span class="pre">constraints-no-providers</span></code> for
-slim images.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_REFERENCE</span></code></p></td>
-<td></td>
-<td><p>Reference (branch or tag) from GitHub
-where constraints file is taken from
-It can be <code class="docutils literal notranslate"><span class="pre">constraints-main</span></code> or
-<code class="docutils literal notranslate"><span class="pre">constraints-2-0</span></code> for
-2.0.* installation. In case of building
-specific version you want to point it
-to specific tag, for example
-<code class="code docutils literal notranslate"><span class="pre">constraints-2.10.1</span></code>.
-Auto-detected if empty.</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="#airflow.decorators.condition.skip_if" title="airflow.decorators.condition.skip_if"><code class="xref py py-obj docutils literal notranslate"><span class="pre">skip_if</span></code></a>(condition[, skip_message])</p></td>
+<td><p>Decorate a task to skip if a condition is met.</p></td>
</tr>
</tbody>
</table>
-<div class="admonition note">
-<p class="admonition-title">Note</p>
-<p>Before Airflow 2.2, the image also had <code class="docutils literal notranslate"><span class="pre">AIRFLOW_GID</span></code> parameter, but it did not provide any additional
-functionality - only added confusion - so it has been removed.</p>
-</div>
-<p>List of default extras in the production Dockerfile:</p>
-<ul class="simple">
-<li><p>aiobotocore</p></li>
-<li><p>amazon</p></li>
-<li><p>async</p></li>
-<li><p>celery</p></li>
-<li><p>cncf-kubernetes</p></li>
-<li><p>common-io</p></li>
-<li><p>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>fab</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google-auth</p></li>
-<li><p>graphviz</p></li>
-<li><p>grpc</p></li>
-<li><p>hashicorp</p></li>
-<li><p>http</p></li>
-<li><p>ldap</p></li>
-<li><p>microsoft-azure</p></li>
-<li><p>mysql</p></li>
-<li><p>odbc</p></li>
-<li><p>openlineage</p></li>
-<li><p>pandas</p></li>
-<li><p>postgres</p></li>
-<li><p>redis</p></li>
-<li><p>sendgrid</p></li>
-<li><p>sftp</p></li>
-<li><p>slack</p></li>
-<li><p>snowflake</p></li>
-<li><p>ssh</p></li>
-<li><p>statsd</p></li>
-<li><p>uv</p></li>
-<li><p>virtualenv</p></li>
+<dl class="py function">
+<dt class="sig sig-object py" id="airflow.decorators.condition.run_if">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.condition.</span></span><span class="sig-name descname"><span class="pre">run_if</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">condition</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">skip_message</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><sp [...]
+<dd><p>Decorate a task to run only if a condition is met.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>condition</strong> (<em>AnyConditionFunc</em>) – A function that takes a context and returns a boolean.</p></li>
+<li><p><strong>skip_message</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a><em> | </em><em>None</em>) – The message to log if the task is skipped.
+If None, a default message is used.</p></li>
</ul>
-</div>
-<div class="section" id="image-optimization-options">
-<h2>Image optimization options<a class="headerlink" href="#image-optimization-options" title="Permalink to this heading">¶</a></h2>
-<p>The main advantage of Customization method of building Airflow image, is that it allows to build highly optimized image because
-the final image (RUNTIME) might not contain all the dependencies that are needed to build and install all other dependencies
-(DEV). Those arguments allow to control what is installed in the DEV image and what is installed in RUNTIME one, thus
-allowing to produce much more optimized images. See <a class="reference internal" href="build.html#image-build-optimized"><span class="std std-ref">Building optimized images</span></a>.
-for examples of using those arguments.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">UPGRADE_INVALIDATION_STRING</span></code></p></td>
-<td></td>
-<td><p>If set to a random, non-empty value
-the dependencies are upgraded to newer
-versions. In CI it is set to build id
-to make sure subsequent builds are not
-reusing cached images with same value.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PYTHON_DEPS</span></code></p></td>
-<td></td>
-<td><p>Optional python packages to extend
-the image with some extra dependencies.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Dev apt command executed before dev deps
-are installed in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Dev apt command executed
-before dev dep are installed
-in the Build image. Should start with
-<code class="docutils literal notranslate"><span class="pre">&&</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>
-</tbody>
-</table>
-</div>
-<div class="section" id="installing-airflow-using-different-methods">
-<h2>Installing Airflow using different methods<a class="headerlink" href="#installing-airflow-using-different-methods" title="Permalink to this heading">¶</a></h2>
-<p>Those parameters are useful only if you want to install Airflow using different installation methods than the default
-(installing from PyPI packages).</p>
-<p>This is usually only useful if you have your own fork of Airflow and want to build the images locally from
-those sources - either locally or directly from GitHub sources. This way you do not need to release your
-Airflow and Providers via PyPI - they can be installed directly from sources or from GitHub repository.
-Another option of installation is to build Airflow from previously prepared binary Python packages which might
-be useful if you need to build Airflow in environments that require high levels of security.</p>
-<dl class="simple">
-<dt>You can see some examples of those in:</dt><dd><ul class="simple">
-<li><p><a class="reference internal" href="build.html#image-build-github"><span class="std std-ref">Building from GitHub</span></a>,</p></li>
-<li><p><a class="reference internal" href="build.html#image-build-custom"><span class="std std-ref">Using custom installation sources</span></a>,</p></li>
-<li><p><a class="reference internal" href="build.html#image-build-secure-environments"><span class="std std-ref">Build images in security restricted environments</span></a></p></li>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="airflow.decorators.condition.skip_if">
+<span class="sig-prename descclassname"><span class="pre">airflow.decorators.condition.</span></span><span class="sig-name descname"><span class="pre">skip_if</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">condition</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">skip_message</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><s [...]
+<dd><p>Decorate a task to skip if a condition is met.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>condition</strong> (<em>AnyConditionFunc</em>) – A function that takes a context and returns a boolean.</p></li>
+<li><p><strong>skip_message</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a><em> | </em><em>None</em>) – The message to log if the task is skipped.
+If None, a default message is used.</p></li>
</ul>
</dd>
</dl>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_INSTALLATION_METHOD</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache-airflow</span></code></p></td>
-<td><p>Installation method of Apache Airflow.
-<code class="docutils literal notranslate"><span class="pre">apache-airflow</span></code> for installation from
-PyPI. It can be GitHub repository URL
-including branch or tag to install from
-that repository or “.” to install from
-local sources. Installing from sources
-requires appropriate values of the
-<code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_FROM</span></code> and
-<code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_TO</span></code> variables (see
-below)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_FROM</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>Sources of Airflow. Set it to “.” when
-you install Airflow from local sources</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_SOURCES_TO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">/Dockerfile</span></code></p></td>
-<td><p>Target for Airflow sources. Set to
-“/opt/airflow” when you install Airflow
-from local sources.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION_SPECIFICATION</span></code></p></td>
-<td></td>
-<td><p>Optional - might be used for using limit
-for Airflow version installation - for
-example <code class="docutils literal notranslate"><span class="pre"><2.0.2</span></code> for automated builds.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_LOCATION</span></code></p></td>
-<td></td>
-<td><p>If not empty, it will override the
-source of the constraints with the
-specified URL or file. Note that the
-file has to be in Docker context so
-it’s best to place such file in
-one of the folders included in
-<code class="docutils literal notranslate"><span class="pre">.dockerignore</span></code> file.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DOCKER_CONTEXT_FILES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>If set to a folder (for example to
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> folder), then
-this folder will be copied to the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> inside the
-context of docker and you will be able
-to install from binary files present
-there. By default we set it to
-Dockerfile as we know the file is there,
-otherwise the COPY instruction fails.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to true, Airflow, providers and
-all dependencies are installed from
-from locally built/downloaded
-.whl and .tar.gz files placed in the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code>.</p></td>
-</tr>
-</tbody>
-</table>
+</dd></dl>
+
</div>
-<div class="section" id="pre-caching-pip-dependencies">
-<h2>Pre-caching PIP dependencies<a class="headerlink" href="#pre-caching-pip-dependencies" title="Permalink to this heading">¶</a></h2>
-<p>When image is build from PIP, by default pre-caching of PIP dependencies is used. This is in order to speed-up incremental
-builds during development. When pre-cached PIP dependencies are used and <code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code> changes, the
-PIP dependencies are already pre-installed, thus resulting in much faster image rebuild. This is purely an optimization
-of time needed to build the images and should be disabled if you want to install Airflow from
-Docker context files.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 33%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_BRANCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">main</span></code></p></td>
-<td><p>the branch from which PIP dependencies
-are pre-installed initially.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_REPO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code></p></td>
-<td><p>the repository from which PIP
-dependencies are pre-installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PRE_CACHED_PIP_PACKAGES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Allows to pre-cache airflow PIP packages
-from the GitHub of Apache Airflow
-This allows to optimize iterations for
-Image builds and speeds up CI builds.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_CACHE_EPOCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">"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_virtualenv" href="../branch_virtualenv/index.html" >
<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
- </a><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Next</button>
+ </a>
+ <a rel="next" title="airflow.decorators.external_python" href="../external_python/index.html" >
+ <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+ </a>
</div>
</div>
@@ -1028,11 +876,15 @@ new argument.</p></td>
<nav class="wy-nav-side-toc">
<div class="wy-menu-vertical">
<ul>
-<li><a class="reference internal" href="#">Image build arguments reference</a><ul>
-<li><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a><ul>
+<li><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li><a class="reference internal" href="#functions">Functions</a><ul>
+<li><a class="reference internal" href="#airflow.decorators.condition.run_if"><code class="docutils literal notranslate"><span class="pre">run_if()</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.condition.skip_if"><code class="docutils literal notranslate"><span class="pre">skip_if()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
</ul>
</li>
</ul>
@@ -1057,7 +909,7 @@ new argument.</p></td>
<div class="base-layout--button">
- <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/build-arg-ref.rst" rel="nofollow">
+ <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/condition/index.rst" rel="nofollow">
<button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
<svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
@@ -1191,20 +1043,21 @@ new argument.</p></td>
</span>
</div>
</footer>
- <script type="text/javascript" src="_static/_gen/js/docs.js"></script>
- <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+ <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+ <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
- <script src="_static/jquery.js"></script>
- <script src="_static/underscore.js"></script>
- <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
- <script src="_static/doctools.js"></script>
- <script src="_static/sphinx_highlight.js"></script>
- <script src="_static/clipboard.min.js"></script>
- <script src="_static/copybutton.js"></script>
- <script src="_static/js/globaltoc.js"></script>
- <script src="_static/design-tabs.js"></script>
+ <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+ <script src="../../../../_static/jquery.js"></script>
+ <script src="../../../../_static/underscore.js"></script>
+ <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+ <script src="../../../../_static/doctools.js"></script>
+ <script src="../../../../_static/sphinx_highlight.js"></script>
+ <script src="../../../../_static/clipboard.min.js"></script>
+ <script src="../../../../_static/copybutton.js"></script>
+ <script src="../../../../_static/js/globaltoc.js"></script>
+ <script src="../../../../_static/design-tabs.js"></script>
+ <script src="../../../../_static/gh-jira-links.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs-archive/docker-stack/index.html b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/external_python/index.html
similarity index 76%
copy from docs-archive/docker-stack/index.html
copy to docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/external_python/index.html
index 32537382b0..6de48fcf2d 100644
--- a/docs-archive/docker-stack/index.html
+++ b/docs-archive/apache-airflow/2.10.3/_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.condition" href="../condition/index.html" />
+
+ <link rel="canonical" href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/decorators/external_python/index.html" />
<!-- Matomo -->
<script>
@@ -284,8 +286,21 @@
<div class="content-drawer">
<div class="td-sidebar">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -315,16 +330,90 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="build-arg-ref.html">Image build arguments reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -405,8 +494,21 @@
<div class="td-sidebar desktop-only d-print-none">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -436,16 +538,90 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="build-arg-ref.html">Image build arguments reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -534,9 +710,13 @@
<ul class="breadcrumb">
- <li class="breadcrumb-item"><a href="#" class="icon icon-home"> Home</a></li>
+ <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+
+ <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
+
+ <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
- <li class="breadcrumb-item"><a href="index.html"> Docker Image for Apache Airflow</a></li>
+ <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
</ul>
</div>
@@ -547,195 +727,16 @@
<div class="bodywrapper">
<div class="body" role="main">
- <blockquote>
-<div></div></blockquote>
-<a class="reference internal image-reference" href="_images/docker-logo.png"><img alt="_images/docker-logo.png" src="_images/docker-logo.png" style="width: 100px;" /></a>
-<div class="section" id="docker-image-for-apache-airflow">
-<h1>Docker Image for Apache Airflow<a class="headerlink" href="#docker-image-for-apache-airflow" title="Permalink to this heading">¶</a></h1>
-<div class="toctree-wrapper compound">
-</div>
-<div class="toctree-wrapper compound">
-</div>
-<p>For the ease of deployment in production, the community releases a production-ready reference container
-image.</p>
-<p>The Apache Airflow community, releases Docker Images which are <code class="docutils literal notranslate"><span class="pre">reference</span> <span class="pre">images</span></code> for Apache Airflow.
-Every time a new version of Airflow is released, the images are prepared in the
-<a class="reference external" href="https://hub.docker.com/r/apache/airflow">apache/airflow DockerHub</a>
-for all the supported Python versions.</p>
-<p>You can find the following images there (Assuming Airflow version <code class="code docutils literal notranslate"><span class="pre">2.10.1</span></code>):</p>
-<ul class="simple">
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:latest</span></code> - the latest released Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:latest-pythonX.Y</span></code> - the latest released Airflow image with specific Python version</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:2.10.1</span></code> - the versioned Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:2.10.1-pythonX.Y</span></code> - the versioned Airflow image with specific Python version</p></li>
-</ul>
-<p>Those are “reference” regular images. They contain the most common set of extras, dependencies and providers that are
-often used by the users and they are good to “try-things-out” when you want to just take Airflow for a spin,</p>
-<p>You can also use “slim” images that contain only core airflow and are about half the size of the “regular” images
-but you need to add all the <a class="reference external" href="/docs/apache-airflow/stable/extra-packages-ref.html" title="(in apache-airflow v2.10.0.dev0)"><span>Reference for package extras</span></a> and providers that you need separately
-via <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a>.</p>
-<ul class="simple">
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-latest</span></code> - the latest released Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-latest-pythonX.Y</span></code> - the latest released Airflow image with specific Python version</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-2.10.1</span></code> - the versioned Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-2.10.1-pythonX.Y</span></code> - the versioned Airflow image with specific Python version</p></li>
-</ul>
-<p>The Apache Airflow image provided as convenience package is optimized for size, and
-it provides just a bare minimal set of the extras and dependencies installed and in most cases
-you want to either extend or customize the image. You can see all possible extras in <a class="reference external" href="/docs/apache-airflow/stable/extra-packages-ref.html" title="(in apache-airflow v2.10.0.dev0)"><span>Reference for package extras</span></a>.
-The set of extras used in Airflow Production image are available in the
-<a class="reference external" href="https://github.com/apache/airflow/blob/2.10.1/Dockerfile">Dockerfile</a>.</p>
-<p>However, Airflow has more than 60 community-managed providers (installable via extras) and some of the
-default extras/providers installed are not used by everyone, sometimes others extras/providers
-are needed, sometimes (very often actually) you need to add your own custom dependencies,
-packages or even custom providers. You can learn how to do it in <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a>.</p>
-<p>The production images are build in DockerHub from released version and release candidates. There
-are also images published from branches but they are used mainly for development and testing purpose.
-See <a class="reference external" href="https://github.com/apache/airflow/blob/main/contributing-docs/working-with-git#airflow-git-branches">Airflow Git Branching</a>
-for details.</p>
-</div>
-<div class="section" id="fixing-images-at-release-time">
-<h1>Fixing images at release time<a class="headerlink" href="#fixing-images-at-release-time" title="Permalink to this heading">¶</a></h1>
-<p>The released “versioned” reference images are mostly <code class="docutils literal notranslate"><span class="pre">fixed</span></code> when we release Airflow version and we only
-update them in exceptional circumstances. For example when we find out that there are dependency errors
-that might prevent important Airflow or embedded provider’s functionalities working. In normal circumstances,
-the images are not going to change after release, even if new version of Airflow dependencies are released -
-not even when those versions contain critical security fixes. The process of Airflow releases is designed
-around upgrading dependencies automatically where applicable but only when we release a new version of Airflow,
-not for already released versions.</p>
-</div>
-<div class="section" id="what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image">
-<h1>What should I do if my security scan shows critical and high vulnerabilities in the image?<a class="headerlink" href="#what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image" title="Permalink to this heading">¶</a></h1>
-<p>We often hear questions that our users use various security scanners on the image and find out that
-there are some critical and high vulnerabilities in the image - not coming from Airflow but for some other
-components. In general, this is normal and expected that such vulnerabilities are found in the image after
-it’s been released and fixed - precisely because we are NOT updating the images after they are released as
-explained above. Also sometimes even the latest releases contain vulnerabilities that are not yet fixed
-in the base image we use or in the dependencies we use and cannot upgrade, because some of our providers
-have limits and did not manage to upgrade yet and we have no control over that. So it is possible
-that even the most recent release of our image there are some High and Critical vulnerabilities that
-are not yet fixed.</p>
-<p><strong>What can you do in such case?</strong></p>
-<p>First of all - you should know what you should NOT do.</p>
-<p>Do NOT send private email to the Airflow Security Team with scan results and asking what to do.
-The Security team at Airflow takes care exclusively about undisclosed vulnerabilities in Airflow itself, not
-in the dependencies or in the base image. The security email should only be used to report privately any
-security issues that can be exploited via Airflow. This is nicely explained in our
-<a class="reference external" href="https://github.com/apache/airflow/security/policy">Security Policy</a> where you can find more details
-including the need to provide reproducible scenarios and submitting ONE issue per email. NEVER submit multiple
-vulnerabilities in one email - those are rejected immediately, as they make the process of handling the issue
-way harder for everyone, including the reporters.</p>
-<p>Also DO NOT open a GitHub Issue with the scan results and asking what to do. The GitHub Issues are for
-reporting bugs and feature requests to Airflow itself, not for asking for help with the security scans on
-3rd party components.</p>
-<p>So what are your options?</p>
-<p>You have four options:</p>
-<ol class="arabic simple">
-<li><p>Build your own custom image following the examples we share there - using the latest base image and
-possibly manually bumping dependencies you want to bump. There are quite a few examples
-in <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a> which you can follow. You can use “slim” image as a base
-for your images and rather than basing your image on the “reference” image that has a number of extras
-and providers installed, you can only install what you actually need and upgrade some dependencies that
-otherwise would not be possible to upgrade - because some of the provider libraries have limits and
-did not manage to upgrade yet and we have no control over that. This is the most flexible way to
-build your image and you can build your process to combine it with quickly upgrading to latest Airflow
-versions (see point 2. below).</p></li>
-<li><p>Wait for a new version of Airflow and upgrade to it. Airflow images are updated to latest “non-conflicting”
-dependencies and use latest “base” image at release time, so what you have in the reference images
-at the moment we publish the image / release the version is what is “latest and greatest”
-available at the moment with the base platform we use (Debian Bookworm is the reference image we use).
-This is one of good strategies you can take - build a process to upgrade your Airflow version regularly
-- quickly after it has been released by the community, this will help you to keep up with the latest
-security fixes in the dependencies.</p></li>
-<li><p>If the base platform we use (currently Debian Bookworm) does not contain the latest versions you want
-and you want to use other base images, you can take a look at what system dependencies are installed
-and scripts in the latest <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> of airflow and take inspiration from it and build your own image
-or copy it and modify it to your needs. See the
-<a class="reference external" href="https://github.com/apache/airflow/blob/2.10.1/Dockerfile">Dockerfile</a> for the latest version.</p></li>
-<li><p>Research if the vulnerability affects you or not. Even if there is a dependency with high or critical
-vulnerability, it does not mean that it can be exploited in Airflow (or specifically in the way you are
-using Airflow). If you do have a reproducible scenario how a vulnerability can be exploited in Airflow, you should -
-of course - privately report it to the security team. But if you do not have reproducible
-scenario, please do some research and try to understand the impact of the vulnerability on Airflow. That
-research might result in a public GitHub Discussion where you can discuss the impact of the
-vulnerability if you research will indicate Airflow might not be impacted or private security email if
-you find a reproducible scenario on how to exploit it.</p></li>
-</ol>
-<p><strong>How do I discuss publicly about public CVEs in the image?</strong></p>
-<p>The security scans report public vulnerabilities in 3rd-party components of Airflow. Since those are
-already public vulnerabilities, this is something you can talk about but others also are talking about.
-So you can do research on your own first. Try to find discussions about the issues, how others were handling
-it and possibly even try to explore, whether the vulnerability can be exploited in Airflow or not.
-This is a very valuable contribution to the community you can do in order to help others to
-understand the impact of the vulnerability on Airflow. We highly appreciate our commercial users do it,
-because Airflow is maintained by volunteers, so if you or your company can spend some time and skills of
-security researchers to help the community to understand the impact of the vulnerability on Airflow, it
-could be a fantastic contribution to the community and way to give back to the project that your company uses
-for free.</p>
-<p>You are free to discuss it publicly, open a <a class="reference external" href="https://github.com/apache/airflow/discussions">GitHub Discussion</a>
-mentioning your findings and research you’ve done so far. Ideally (as a way to contribute to Airflow) you
-should explain the findings of your own security team in your company to help to research and understand
-the impact of the vulnerability on Airflow (and your way of using it).
-Again - strong suggestion is to open ONE discussion per vulnerability. You should NOT post scan results in
-bulk - this is not helpful for a discussion, and you will not get meaningful answers if you will attempt to
-discuss all the issues in one discussion thread.</p>
-<p>Yes - we know it’s the easy way to copy & paste your result and ask others what to do, but doing it is
-going to likely result in silence because such actions in the community as seen as pretty selfish way of
-getting your problems solved by tapping into time of other volunteers, without spending your time on making it
-easier for them to help. If you really want to get help from the community, focus your discussion on
-particular CVE, provide your findings - including analyzing your report in detail and finding which
-binaries and base images exactly are causing the scanner to report the vulnerability. Remember that only
-you have access to your scanner and you should bring as much helpful information so that others can
-comment on it. Show that you have done your homework and that you bring valuable information to the community.</p>
-<p>Opening a GitHub Discussion for this kind of issues is also a great way to communicate with the
-maintainers and security team in an open and transparent way - without reverting to the private security
-mailing list (which serves different purpose as explained above). If after such a discussion there will be
-a way to remove such a vulnerability from the scanned image - great, you can even contribute a PR to the
-Dockerfile to remove the vulnerability from the image. Maybe such a discussion will lead to a PR to allow
-Airflow to upgrade to newer dependency that fixes the vulnerability or remove it altogether, or maybe
-there is already a way to mitigate it or maybe there is already a PR that someone works on to fix it.
-All this can (and should) be discussed publicly and transparently in a GitHub Discussion, not via private
-security email, nor GitHub Issues which are exclusively about Airflow Issues not 3rd-party components
-public security issues.</p>
-</div>
-<div class="section" id="support">
-<h1>Support<a class="headerlink" href="#support" title="Permalink to this heading">¶</a></h1>
-<p>The reference Docker Image supports the following platforms and database:</p>
-<div class="section" id="intel-platform-x86-64">
-<h2>Intel platform (x86_64)<a class="headerlink" href="#intel-platform-x86-64" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>Postgres Client</p></li>
-<li><p>MySQL Client</p></li>
-<li><p>MSSQL Client</p></li>
-</ul>
-</div>
-<div class="section" id="arm-platform-aarch64">
-<h2>ARM platform (aarch64)<a class="headerlink" href="#arm-platform-aarch64" title="Permalink to this heading">¶</a></h2>
-<p>ARM support is experimental, might change any time.</p>
-<ul class="simple">
-<li><p>Postgres Client</p></li>
-<li><p>MySQL Client (MySQL 8)</p></li>
-<li><p>MSSQL Client</p></li>
-</ul>
-<p>Note that MySQL on arm has experimental support through MariaDB client library.</p>
-</div>
-</div>
-<div class="section" id="usage">
-<h1>Usage<a class="headerlink" href="#usage" title="Permalink to this heading">¶</a></h1>
-<p>The <span class="target" id="index-0"></span><a class="reference external" href="/docs/apache-airflow/stable/cli-and-env-variables-ref.html#envvar-AIRFLOW_HOME" title="(in apache-airflow v2.10.0.dev0)"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">AIRFLOW_HOME</span></code></a> is set by default to <code class="docutils literal notranslate"><span class="pre">/opt/airflow/</span></code> - this means that DAGs
-are by default in the <code class="docutils literal notranslate"><span class="pre">/opt/airflow/dags</span></code> folder and logs are in the <code class="docutils literal notranslate"><span class="pre">/opt/airflow/logs</span></code></p>
-<p>The working directory is <code class="docutils literal notranslate"><span class="pre">/opt/airflow</span></code> by default.</p>
-<p>If no <span class="target" id="index-1"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">AIRFLOW__DATABASE__SQL_ALCHEMY_CONN</span></code> variable is set then SQLite database is created in
-<code class="docutils literal notranslate"><span class="pre">${AIRFLOW_HOME}/airflow.db</span></code>.</p>
-<p>For example commands that start Airflow see: <a class="reference internal" href="entrypoint.html#entrypoint-commands"><span class="std std-ref">Executing commands</span></a>.</p>
-<p>Airflow requires many components to function as it is a distributed application. You may therefore also be interested
-in launching Airflow in the Docker Compose environment, see: <a class="reference external" href="/docs/apache-airflow/stable/howto/docker-compose/index.html" title="(in apache-airflow v2.10.0.dev0)"><span>Running Airflow in Docker</span></a>.</p>
-<p>You can use this image in <a class="reference external" href="/docs/helm-chart/stable/index.html" title="(in helm-chart v1.16.0-dev)"><span class="xref std std-doc">Helm Chart</span></a> as well.</p>
+ <div class="section" id="module-airflow.decorators.external_python">
+<span id="airflow-decorators-external-python"></span><h1><a class="reference internal" href="#module-airflow.decorators.external_python" title="airflow.decorators.external_python"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a><a class="headerlink" href="#module-airflow.decorators.external_python" title="Permalink to this heading">¶</a></h1>
</div>
- <div class="pager" role="navigation" aria-label="related navigation"><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Previous</button>
- <a rel="next" title="Building the image" href="build.html" >
+ <div class="pager" role="navigation" aria-label="related navigation">
+ <a rel="prev" title="airflow.decorators.condition" href="../condition/index.html" >
+ <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
+ </a>
+ <a rel="next" title="airflow.decorators.python" href="../python/index.html" >
<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
</a>
</div>
@@ -805,17 +806,7 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
<nav class="wy-nav-side-toc">
<div class="wy-menu-vertical">
<ul>
-<li><a class="reference internal" href="#">Docker Image for Apache Airflow</a><ul>
-</ul>
-</li>
-<li><a class="reference internal" href="#fixing-images-at-release-time">Fixing images at release time</a></li>
-<li><a class="reference internal" href="#what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image">What should I do if my security scan shows critical and high vulnerabilities in the image?</a></li>
-<li><a class="reference internal" href="#support">Support</a><ul>
-<li><a class="reference internal" href="#intel-platform-x86-64">Intel platform (x86_64)</a></li>
-<li><a class="reference internal" href="#arm-platform-aarch64">ARM platform (aarch64)</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#usage">Usage</a></li>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
</ul>
</div>
@@ -838,7 +829,7 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
<div class="base-layout--button">
- <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/index.rst" rel="nofollow">
+ <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/external_python/index.rst" rel="nofollow">
<button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
<svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
@@ -972,20 +963,21 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
</span>
</div>
</footer>
- <script type="text/javascript" src="_static/_gen/js/docs.js"></script>
- <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+ <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+ <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
- <script src="_static/jquery.js"></script>
- <script src="_static/underscore.js"></script>
- <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
- <script src="_static/doctools.js"></script>
- <script src="_static/sphinx_highlight.js"></script>
- <script src="_static/clipboard.min.js"></script>
- <script src="_static/copybutton.js"></script>
- <script src="_static/js/globaltoc.js"></script>
- <script src="_static/design-tabs.js"></script>
+ <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+ <script src="../../../../_static/jquery.js"></script>
+ <script src="../../../../_static/underscore.js"></script>
+ <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+ <script src="../../../../_static/doctools.js"></script>
+ <script src="../../../../_static/sphinx_highlight.js"></script>
+ <script src="../../../../_static/clipboard.min.js"></script>
+ <script src="../../../../_static/copybutton.js"></script>
+ <script src="../../../../_static/js/globaltoc.js"></script>
+ <script src="../../../../_static/design-tabs.js"></script>
+ <script src="../../../../_static/gh-jira-links.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs-archive/docker-stack/entrypoint.html b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/index.html
similarity index 59%
copy from docs-archive/docker-stack/entrypoint.html
copy to docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/index.html
index 29ab56db99..26ede7538b 100644
--- a/docs-archive/docker-stack/entrypoint.html
+++ b/docs-archive/apache-airflow/2.10.3/_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>Entrypoint — 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="Dockerfile Changelog" href="changelog.html" />
- <link rel="prev" title="Building the image" href="build.html" />
-
- <link rel="canonical" href="https://airflow.apache.org/docs/docker-stack/stable/entrypoint.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.10.3</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,31 +330,116 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Entrypoint</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#allowing-arbitrary-user-to-run-the-container">Allowing arbitrary user to run the container</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#waits-for-airflow-db-connection">Waits for Airflow DB connection</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#waits-for-celery-broker-connection">Waits for Celery broker connection</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#executing-commands">Executing commands</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#execute-custom-code-before-the-airflow-entrypoint">Execute custom code before the Airflow entrypoint</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#adding-custom-image-behaviour">Adding custom image behaviour</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#signal-propagation">Signal propagation</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#additional-quick-test-options">Additional quick test options</a><ul>
-<li class="toctree-l3"><a class="reference internal" href="#upgrading-airflow-db">Upgrading Airflow DB</a></li>
-<li class="toctree-l3"><a class="reference internal" href="#creating-admin-user">Creating admin user</a></li>
-<li class="toctree-l3"><a class="reference internal" href="#installing-additional-requirements">Installing additional requirements</a></li>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul>
+<li class="toctree-l5"><a class="reference internal" href="#submodules">Submodules</a><ul>
+<li class="toctree-l6"><a class="reference internal" href="base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="#package-contents">Package Contents</a><ul>
+<li class="toctree-l6"><a class="reference internal" href="#classes">Classes</a></li>
+<li class="toctree-l6"><a class="reference internal" href="#functions">Functions</a></li>
+<li class="toctree-l6"><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection</span></code></a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.virtualenv</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.external_python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_virtualenv</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_external_python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.short_circuit"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.short_circuit</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.sensor"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.sensor</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.bash"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.bash</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.run_if"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.run_if</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.skip_if"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.skip_if</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__call__</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__getattr__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__getattr__()</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.task"><code class="docutils literal notranslate"><span class="pre">task</span></code></a></li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.setup"><code class="docutils literal notranslate"><span class="pre">setup</span></code></a></li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.teardown"><code class="docutils literal notranslate"><span class="pre">teardown</span></code></a></li>
+</ul>
+</li>
</ul>
</li>
</ul>
</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>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="build-arg-ref.html">Image build arguments reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -421,8 +520,21 @@
<div class="td-sidebar desktop-only d-print-none">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</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" />
@@ -452,31 +564,116 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Entrypoint</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#allowing-arbitrary-user-to-run-the-container">Allowing arbitrary user to run the container</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#waits-for-airflow-db-connection">Waits for Airflow DB connection</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#waits-for-celery-broker-connection">Waits for Celery broker connection</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#executing-commands">Executing commands</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#execute-custom-code-before-the-airflow-entrypoint">Execute custom code before the Airflow entrypoint</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#adding-custom-image-behaviour">Adding custom image behaviour</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#signal-propagation">Signal propagation</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#additional-quick-test-options">Additional quick test options</a><ul>
-<li class="toctree-l3"><a class="reference internal" href="#upgrading-airflow-db">Upgrading Airflow DB</a></li>
-<li class="toctree-l3"><a class="reference internal" href="#creating-admin-user">Creating admin user</a></li>
-<li class="toctree-l3"><a class="reference internal" href="#installing-additional-requirements">Installing additional requirements</a></li>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul>
+<li class="toctree-l5"><a class="reference internal" href="#submodules">Submodules</a><ul>
+<li class="toctree-l6"><a class="reference internal" href="base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="#package-contents">Package Contents</a><ul>
+<li class="toctree-l6"><a class="reference internal" href="#classes">Classes</a></li>
+<li class="toctree-l6"><a class="reference internal" href="#functions">Functions</a></li>
+<li class="toctree-l6"><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection</span></code></a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.virtualenv</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.external_python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_virtualenv</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_external_python</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.short_circuit"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.short_circuit</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.sensor"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.sensor</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.bash"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.bash</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.run_if"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.run_if</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.skip_if"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.skip_if</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__call__</span></code></a></li>
+<li class="toctree-l8"><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__getattr__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__getattr__()</span></code></a></li>
</ul>
</li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.task"><code class="docutils literal notranslate"><span class="pre">task</span></code></a></li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.setup"><code class="docutils literal notranslate"><span class="pre">setup</span></code></a></li>
+<li class="toctree-l7"><a class="reference internal" href="#airflow.decorators.teardown"><code class="docutils literal notranslate"><span class="pre">teardown</span></code></a></li>
</ul>
</li>
-<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>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="build-arg-ref.html">Image build arguments reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -565,9 +762,11 @@
<ul class="breadcrumb">
- <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+ <li class="breadcrumb-item"><a href="../../../index.html" class="icon icon-home"> Home</a></li>
+
+ <li class="breadcrumb-item"><a href="../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
- <li class="breadcrumb-item"><a href="entrypoint.html"> Entrypoint</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>
@@ -578,390 +777,209 @@
<div class="bodywrapper">
<div class="body" role="main">
- <blockquote>
-<div></div></blockquote>
-<div class="section" id="entrypoint">
-<h1>Entrypoint<a class="headerlink" href="#entrypoint" title="Permalink to this heading">¶</a></h1>
-<p>If you are using the default entrypoint of the production image,
-there are a few actions that are automatically performed when the container starts.
-In some cases, you can pass environment variables to the image to trigger some of that behaviour.</p>
-<p>The variables that control the “execution” behaviour start with <code class="docutils literal notranslate"><span class="pre">_AIRFLOW</span></code> to distinguish them
-from the variables used to build the image starting with <code class="docutils literal notranslate"><span class="pre">AIRFLOW</span></code>.</p>
-<div class="section" id="allowing-arbitrary-user-to-run-the-container">
-<span id="arbitrary-docker-user"></span><h2>Allowing arbitrary user to run the container<a class="headerlink" href="#allowing-arbitrary-user-to-run-the-container" title="Permalink to this heading">¶</a></h2>
-<p>Airflow image is Open-Shift compatible, which means that you can start it with random user ID and the
-group id <code class="docutils literal notranslate"><span class="pre">0</span></code> (<code class="docutils literal notranslate"><span class="pre">root</span></code>). If you want to run the image with user different than Airflow, you MUST set
-GID of the user to <code class="docutils literal notranslate"><span class="pre">0</span></code>. In case you try to use different group, the entrypoint exits with error.</p>
-<p>OpenShift randomly assigns UID when it starts the container, but you can utilise this flexible UID
-also in case of running the image manually. This might be useful for example in case you want to
-mount <code class="docutils literal notranslate"><span class="pre">dag</span></code> and <code class="docutils literal notranslate"><span class="pre">logs</span></code> folders from host system on Linux, in which case the UID should be set
-the same ID as your host user.</p>
-<p>This can be achieved in various ways - you can change USER when you extend or customize the image or
-you can dynamically pass the user to <code class="docutils literal notranslate"><span class="pre">docker</span> <span class="pre">run</span></code> command, by adding <code class="docutils literal notranslate"><span class="pre">--user</span></code> flag in one of
-those formats (See <a class="reference external" href="https://docs.docker.com/engine/reference/run/#user">Docker Run reference</a> for details):</p>
-<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>[ user | user:group | uid | uid:gid | user:gid | uid:group ]
-</pre></div>
-</div>
-<p>In case of Docker Compose environment it can be changed via <code class="docutils literal notranslate"><span class="pre">user:</span></code> entry in the <code class="docutils literal notranslate"><span class="pre">docker-compose.yaml</span></code>.
-See <a class="reference external" href="https://docs.docker.com/compose/compose-file/compose-file-v3/#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir">Docker compose reference</a>
-for details. In our Quickstart Guide using Docker-Compose, the UID can be passed via the
-<code class="docutils literal notranslate"><span class="pre">AIRFLOW_UID</span></code> variable as described in
-<a class="reference external" href="/docs/apache-airflow/stable/howto/docker-compose/index.html#initializing-docker-compose-environment" title="(in apache-airflow v2.10.0.dev0)"><span class="xref std std-ref">Initializing docker compose environment</span></a>.</p>
-<p>The user can be any UID. In case UID is different than the default
-<code class="docutils literal notranslate"><span class="pre">airflow</span></code> (UID=50000), the user will be automatically created when entering the container.</p>
-<p>In order to accommodate a number of external libraries and projects, Airflow will automatically create
-such an arbitrary user in (<cite>/etc/passwd</cite>) and make its home directory point to <code class="docutils literal notranslate"><span class="pre">/home/airflow</span></code>.
-Many of 3rd-party libraries and packages require home directory of the user to be present, because they
-need to write some cache information there, so such a dynamic creation of a user is necessary.</p>
-<p>Such arbitrary user has to be able to write to certain directories that needs write access, and since
-it is not advised to allow write access to “other” for security reasons, the OpenShift
-guidelines introduced the concept of making all such folders have the <code class="docutils literal notranslate"><span class="pre">0</span></code> (<code class="docutils literal notranslate"><span class="pre">root</span></code>) group id (GID).
-All the directories that need write access in the Airflow production image have GID set to 0 (and
-they are writable for the group). We are following that concept and all the directories that need
-write access follow that.</p>
-<p>The GID=0 is set as default for the <code class="docutils literal notranslate"><span class="pre">airflow</span></code> user, so any directories it creates have GID set to 0
-by default. The entrypoint sets <code class="docutils literal notranslate"><span class="pre">umask</span></code> to be <code class="docutils literal notranslate"><span class="pre">0002</span></code> - this means that any directories created by
-the user have also “group write” access for group <code class="docutils literal notranslate"><span class="pre">0</span></code> - they will be writable by other users with
-<code class="docutils literal notranslate"><span class="pre">root</span></code> group. Also whenever any “arbitrary” user creates a folder (for example in a mounted volume), that
-folder will have a “group write” access and <code class="docutils literal notranslate"><span class="pre">GID=0</span></code>, so that execution with another, arbitrary user
-will still continue to work, even if such directory is mounted by another arbitrary user later.</p>
-<p>The <code class="docutils literal notranslate"><span class="pre">umask</span></code> setting, however, only works for runtime of the container - it is not used during building of
-the image. If you would like to extend the image and add your own packages, you should remember to add
-<code class="docutils literal notranslate"><span class="pre">umask</span> <span class="pre">0002</span></code> in front of your docker command - this way the directories created by any installation
-that need group access will also be writable for the group. This can be done for example this way:</p>
-<blockquote>
-<div><div class="highlight-docker notranslate"><div class="highlight"><pre><span></span><span class="k">RUN</span><span class="w"> </span><span class="nb">umask</span><span class="w"> </span><span class="m">0002</span><span class="p">;</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>do_something<span class="p">;</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>do_otherthing<span class="p">;</span>
-</pre></div>
-</div>
-</div></blockquote>
-<p>You can read more about it in the “Support arbitrary user ids” chapter in the
-<a class="reference external" href="https://docs.openshift.com/container-platform/4.7/openshift_images/create-images.html#images-create-guide-openshift_create-images">Openshift best practices</a>.</p>
-</div>
-<div class="section" id="waits-for-airflow-db-connection">
-<h2>Waits for Airflow DB connection<a class="headerlink" href="#waits-for-airflow-db-connection" title="Permalink to this heading">¶</a></h2>
-<p>The entrypoint is waiting for a connection to the database independent of the database engine. This allows us to increase
-the stability of the environment.</p>
-<p>Waiting for connection involves executing <code class="docutils literal notranslate"><span class="pre">airflow</span> <span class="pre">db</span> <span class="pre">check</span></code> command, which means that a <code class="docutils literal notranslate"><span class="pre">select</span> <span class="pre">1</span> <span class="pre">as</span> <span class="pre">is_alive;</span></code> statement
-is executed. Then it loops until the command will be successful.
-It tries <span class="target" id="index-0"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CONNECTION_CHECK_MAX_COUNT</span></code> times and sleeps <span class="target" id="index-1"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CONNECTION_CHECK_SLEEP_TIME</span></code> between checks
-To disable check, set <code class="docutils literal notranslate"><span class="pre">CONNECTION_CHECK_MAX_COUNT=0</span></code>.</p>
-</div>
-<div class="section" id="waits-for-celery-broker-connection">
-<h2>Waits for Celery broker connection<a class="headerlink" href="#waits-for-celery-broker-connection" title="Permalink to this heading">¶</a></h2>
-<p>In case CeleryExecutor is used, and one of the <code class="docutils literal notranslate"><span class="pre">scheduler</span></code>, <code class="docutils literal notranslate"><span class="pre">celery</span></code>
-commands are used the entrypoint will wait until the Celery broker DB connection is available.</p>
-<p>The script detects backend type depending on the URL schema and assigns default port numbers if not specified
-in the URL. Then it loops until connection to the host/port specified can be established
-It tries <span class="target" id="index-2"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CONNECTION_CHECK_MAX_COUNT</span></code> times and sleeps <span class="target" id="index-3"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">CONNECTION_CHECK_SLEEP_TIME</span></code> between checks.
-To disable check, set <code class="docutils literal notranslate"><span class="pre">CONNECTION_CHECK_MAX_COUNT=0</span></code>.</p>
-<p>Supported schemes:</p>
-<ul class="simple">
-<li><p><code class="docutils literal notranslate"><span class="pre">amqp(s)://</span></code> (rabbitmq) - default port 5672</p></li>
-<li><p><code class="docutils literal notranslate"><span class="pre">redis://</span></code> - default port 6379</p></li>
-<li><p><code class="docutils literal notranslate"><span class="pre">postgres://</span></code> - default port 5432</p></li>
-<li><p><code class="docutils literal notranslate"><span class="pre">mysql://</span></code> - default port 3306</p></li>
-</ul>
-<p>Waiting for connection involves checking if a matching port is open. The host information is derived from the Airflow configuration.</p>
-</div>
-<div class="section" id="executing-commands">
-<span id="entrypoint-commands"></span><h2>Executing commands<a class="headerlink" href="#executing-commands" title="Permalink to this heading">¶</a></h2>
-<p>If first argument equals to “bash” - you are dropped to a bash shell or you can executes bash command
-if you specify extra arguments. For example:</p>
-<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>run<span class="w"> </span>-it<span class="w"> </span>apache/airflow:2.10.1-python3.8<span class="w"> </span>bash<span class="w"> </span>-c<span class="w"> </span><span class="s2">"ls -la"</span>
-total<span class="w"> </span><span class="m">16</span>
-drwxr-xr-x<span class="w"> </span><span class="m">4</span><span class="w"> </span>airflow<span class="w"> </span>root<span class="w"> </span><span class="m">4096</span><span class="w"> </span>Jun<span class="w"> </span><span class="m">5</span><span class="w"> </span><span class="m">18</span>:12<span class="w"> </span>.
-drwxr-xr-x<span class="w"> </span><span class="m">1</span><span class="w"> </span>root<span class="w"> </span>root<span class="w"> </span><span class="m">4096</span><span class="w"> </span>Jun<span class="w"> </span><span class="m">5</span><span class="w"> </span><span class="m">18</span>:12<span class="w"> </span>..
-drwxr-xr-x<span class="w"> </span><span class="m">2</span><span class="w"> </span>airflow<span class="w"> </span>root<span class="w"> </span><span class="m">4096</span><span class="w"> </span>Jun<span class="w"> </span><span class="m">5</span><span class="w"> </span><span class="m">18</span>:12<span class="w"> </span>dags
-drwxr-xr-x<span class="w"> </span><span class="m">2</span><span class="w"> </span>airflow<span class="w"> </span>root<span class="w"> </span><span class="m">4096</span><span class="w"> </span>Jun<span class="w"> </span><span class="m">5</span><span class="w"> </span><span class="m">18</span>:12<span class="w"> </span>logs
-</pre></div>
-</div>
-<p>If first argument is equal to <code class="docutils literal notranslate"><span class="pre">python</span></code> - you are dropped in python shell or python commands are executed if
-you pass extra parameters. For example:</p>
-<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>><span class="w"> </span>docker<span class="w"> </span>run<span class="w"> </span>-it<span class="w"> </span>apache/airflow:2.10.1-python3.8<span class="w"> </span>python<span class="w"> </span>-c<span class="w"> </span><span class="s2">"print('test')"</span>
-<span class="nb">test</span>
-</pre></div>
-</div>
-<p>If first argument equals to “airflow” - the rest of the arguments is treated as an airflow command
-to execute. Example:</p>
-<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>run<span class="w"> </span>-it<span class="w"> </span>apache/airflow:2.10.1-python3.8<span class="w"> </span>airflow<span class="w"> </span>webserver
-</pre></div>
-</div>
-<p>If there are any other arguments - they are simply passed to the “airflow” command</p>
-<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>><span class="w"> </span>docker<span class="w"> </span>run<span class="w"> </span>-it<span class="w"> </span>apache/airflow:2.10.1-python3.8<span class="w"> </span><span class="nb">help</span>
-<span class="w"> </span>usage:<span class="w"> </span>airflow<span class="w"> </span><span class="o">[</span>-h<span class="o">]</span><span class="w"> </span>GROUP_OR_COMMAND<span class="w"> </span>...
-
-<span class="w"> </span>positional<span class="w"> </span>arguments:
-<span class="w"> </span>GROUP_OR_COMMAND
-
-<span class="w"> </span>Groups:
-<span class="w"> </span>celery<span class="w"> </span>Celery<span class="w"> </span>components
-<span class="w"> </span>config<span class="w"> </span>View<span class="w"> </span>configuration
-<span class="w"> </span>connections<span class="w"> </span>Manage<span class="w"> </span>connections
-<span class="w"> </span>dags<span class="w"> </span>Manage<span class="w"> </span>DAGs
-<span class="w"> </span>db<span class="w"> </span>Database<span class="w"> </span>operations
-<span class="w"> </span><span class="nb">jobs</span><span class="w"> </span>Manage<span class="w"> </span><span class="nb">jobs</span>
-<span class="w"> </span>kubernetes<span class="w"> </span>Tools<span class="w"> </span>to<span class="w"> </span><span class="nb">help</span><span class="w"> </span>run<span class="w"> </span>the<span class="w"> </span>KubernetesExecutor
-<span class="w"> </span>pools<span class="w"> </span>Manage<span class="w"> </span>pools
-<span class="w"> </span>providers<span class="w"> </span>Display<span class="w"> </span>providers
-<span class="w"> </span>roles<span class="w"> </span>Manage<span class="w"> </span>roles
-<span class="w"> </span>tasks<span class="w"> </span>Manage<span class="w"> </span>tasks
-<span class="w"> </span>users<span class="w"> </span>Manage<span class="w"> </span>users
-<span class="w"> </span>variables<span class="w"> </span>Manage<span class="w"> </span>variables
-
-<span class="w"> </span>Commands:
-<span class="w"> </span>cheat-sheet<span class="w"> </span>Display<span class="w"> </span>cheat<span class="w"> </span>sheet
-<span class="w"> </span>info<span class="w"> </span>Show<span class="w"> </span>information<span class="w"> </span>about<span class="w"> </span>current<span class="w"> </span>Airflow<span class="w"> </span>and<span class="w"> </span>environment
-<span class="w"> </span>kerberos<span class="w"> </span>Start<span class="w"> </span>a<span class="w"> </span>Kerberos<span class="w"> </span>ticket<span class="w"> </span>renewer
-<span class="w"> </span>plugins<span class="w"> </span>Dump<span class="w"> </span>information<span class="w"> </span>about<span class="w"> </span>loaded<span class="w"> </span>plugins
-<span class="w"> </span>rotate-fernet-key
-<span class="w"> </span>Rotate<span class="w"> </span>encrypted<span class="w"> </span>connection<span class="w"> </span>credentials<span class="w"> </span>and<span class="w"> </span>variables
-<span class="w"> </span>scheduler<span class="w"> </span>Start<span class="w"> </span>a<span class="w"> </span>scheduler<span class="w"> </span>instance
-<span class="w"> </span>sync-perm<span class="w"> </span>Update<span class="w"> </span>permissions<span class="w"> </span><span class="k">for</span><span class="w"> </span>existing<span class="w"> </span>roles<span class="w"> </span>and<span class="w"> </span>optionally<span class="w"> </span>DAGs
-<span class="w"> </span>version<span class="w"> </span>Show<span class="w"> </span>the<span class="w"> </span>version
-<span class="w"> </span>webserver<span class="w"> </span>Start<span class="w"> </span>a<span class="w"> </span>Airflow<span class="w"> </span>webserver<span class="w"> </span>instance
-
-<span class="w"> </span>optional<span class="w"> </span>arguments:
-<span class="w"> </span>-h,<span class="w"> </span>--help<span class="w"> </span>show<span class="w"> </span>this<span class="w"> </span><span class="nb">help</span><span class="w"> </span>message<span class="w"> </span>and<span class="w"> </span><span class="nb">exit</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="execute-custom-code-before-the-airflow-entrypoint">
-<h2>Execute custom code before the Airflow entrypoint<a class="headerlink" href="#execute-custom-code-before-the-airflow-entrypoint" title="Permalink to this heading">¶</a></h2>
-<p>If you want to execute some custom code before Airflow’s entrypoint you can by using
-a custom script and calling Airflow’s entrypoint as the
-last <code class="docutils literal notranslate"><span class="pre">exec</span></code> instruction in your custom one. However, you have to remember to use <code class="docutils literal notranslate"><span class="pre">dumb-init</span></code> in the same
-way as it is used with Airflow’s entrypoint, otherwise you might have problems with proper signal
-propagation (See the next chapter).</p>
-<div class="highlight-Dockerfile notranslate"><div class="highlight"><pre><span></span><span class="k">FROM</span><span class="w"> </span><span class="s">airflow:2.9.0.dev0</span>
-<span class="k">COPY</span><span class="w"> </span>my_entrypoint.sh<span class="w"> </span>/
-<span class="k">ENTRYPOINT</span><span class="w"> </span><span class="p">[</span><span class="s2">"/usr/bin/dumb-init"</span><span class="p">,</span><span class="w"> </span><span class="s2">"--"</span><span class="p">,</span><span class="w"> </span><span class="s2">"/my_entrypoint.sh"</span><span class="p">]</span>
-</pre></div>
-</div>
-<p>Your entrypoint might for example modify or add variables on the fly. For example the below
-entrypoint sets max count of DB checks from the first parameter passed as parameter of the image
-execution (A bit useless example but should give the reader an example of how you could use it).</p>
-<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="ch">#!/bin/bash</span>
-<span class="nb">export</span><span class="w"> </span><span class="nv">CONNECTION_CHECK_MAX_COUNT</span><span class="o">=</span><span class="si">${</span><span class="nv">1</span><span class="si">}</span>
-<span class="nb">shift</span>
-<span class="nb">exec</span><span class="w"> </span>/entrypoint<span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="p">@</span><span class="si">}</span><span class="s2">"</span>
-</pre></div>
-</div>
-<p>Make sure Airflow’s entrypoint is run with <code class="docutils literal notranslate"><span class="pre">exec</span> <span class="pre">/entrypoint</span> <span class="pre">"${@}"</span></code> as the last command in your
-custom entrypoint. This way signals will be properly propagated and arguments will be passed
-to the entrypoint as usual (you can use <code class="docutils literal notranslate"><span class="pre">shift</span></code> as above if you need to pass some extra
-arguments. Note that passing secret values this way or storing secrets inside the image is a bad
-idea from security point of view - as both image and parameters to run the image with are accessible
-to anyone who has access to logs of your Kubernetes or image registry.</p>
-<p>Also be aware that code executed before Airflow’s entrypoint should not create any files or
-directories inside the container and everything might not work the same way when it is executed.
-Before Airflow entrypoint is executed, the following functionalities are not available:</p>
-<ul class="simple">
-<li><p>umask is not set properly to allow <code class="docutils literal notranslate"><span class="pre">group</span></code> write access</p></li>
-<li><p>user is not yet created in <code class="docutils literal notranslate"><span class="pre">/etc/passwd</span></code> if an arbitrary user is used to run the image</p></li>
-<li><p>the database and brokers might not be available yet</p></li>
+ <div class="section" id="module-airflow.decorators">
+<span id="airflow-decorators"></span><h1><a class="reference internal" href="#module-airflow.decorators" title="airflow.decorators"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><a class="headerlink" href="#module-airflow.decorators" title="Permalink to this heading">¶</a></h1>
+<div class="section" id="submodules">
+<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this heading">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l1"><a class="reference internal" href="task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
</ul>
</div>
-<div class="section" id="adding-custom-image-behaviour">
-<h2>Adding custom image behaviour<a class="headerlink" href="#adding-custom-image-behaviour" title="Permalink to this heading">¶</a></h2>
-<p>The Airflow image executes a lot of steps in the entrypoint, and sets the right environment, but
-you might want to run additional code after the entrypoint creates the user, sets the umask, sets
-variables and checks that database is running.</p>
-<p>Rather than running regular commands - <code class="docutils literal notranslate"><span class="pre">scheduler</span></code>, <code class="docutils literal notranslate"><span class="pre">webserver</span></code> you can run <em>custom</em> script that
-you can embed into the image. You can even execute the usual components of airflow -
-<code class="docutils literal notranslate"><span class="pre">scheduler</span></code>, <code class="docutils literal notranslate"><span class="pre">webserver</span></code> in your custom script when you finish your custom setup.
-Similarly to custom entrypoint, it can be added to the image by extending it.</p>
-<div class="highlight-Dockerfile notranslate"><div class="highlight"><pre><span></span><span class="k">FROM</span><span class="w"> </span><span class="s">airflow:2.9.0.dev0</span>
-<span class="k">COPY</span><span class="w"> </span>my_after_entrypoint_script.sh<span class="w"> </span>/
-</pre></div>
</div>
-<p>Build your image and then you can run this script by running the command:</p>
-<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>build<span class="w"> </span>.<span class="w"> </span>--pull<span class="w"> </span>--tag<span class="w"> </span>my-image:0.0.1
-docker<span class="w"> </span>run<span class="w"> </span>-it<span class="w"> </span>my-image:0.0.1<span class="w"> </span>bash<span class="w"> </span>-c<span class="w"> </span><span class="s2">"/my_after_entrypoint_script.sh"</span>
-</pre></div>
-</div>
-</div>
-<div class="section" id="signal-propagation">
-<h2>Signal propagation<a class="headerlink" href="#signal-propagation" title="Permalink to this heading">¶</a></h2>
-<p>Airflow uses <code class="docutils literal notranslate"><span class="pre">dumb-init</span></code> to run as “init” in the entrypoint. This is in order to propagate
-signals and reap child processes properly. This means that the process that you run does not have
-to install signal handlers to work properly and be killed when the container is gracefully terminated.
-The behaviour of signal propagation is configured by <code class="docutils literal notranslate"><span class="pre">DUMB_INIT_SETSID</span></code> variable which is set to
-<code class="docutils literal notranslate"><span class="pre">1</span></code> by default - meaning that the signals will be propagated to the whole process group, but you can
-set it to <code class="docutils literal notranslate"><span class="pre">0</span></code> to enable <code class="docutils literal notranslate"><span class="pre">single-child</span></code> behaviour of <code class="docutils literal notranslate"><span class="pre">dumb-init</span></code> which only propagates the
-signals to only single child process.</p>
-<p>The table below summarizes <code class="docutils literal notranslate"><span class="pre">DUMB_INIT_SETSID</span></code> possible values and their use cases.</p>
-<table class="docutils align-default">
+<div class="section" id="package-contents">
+<h2>Package Contents<a class="headerlink" href="#package-contents" title="Permalink to this heading">¶</a></h2>
+<div class="section" id="classes">
+<h3>Classes<a class="headerlink" href="#classes" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
<colgroup>
-<col style="width: 19%" />
-<col style="width: 81%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
</colgroup>
<tbody>
-<tr class="row-odd"><td><p>Variable value</p></td>
-<td><p>Use case</p></td>
+<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>1 (default)</p></td>
-<td><p>Propagates signals to all processes in the process group of the main
-process running in the container.</p>
-<p>If you run your processes via <code class="docutils literal notranslate"><span class="pre">["bash",</span> <span class="pre">"-c"]</span></code> command and bash
-spawn new processes without <code class="docutils literal notranslate"><span class="pre">exec</span></code>, this will help to terminate
-your container gracefully as all processes will receive the signal.</p>
-</td>
-</tr>
-<tr class="row-odd"><td><p>0</p></td>
-<td><p>Propagates signals to the main process only.</p>
-<p>This is useful if your main process handles signals gracefully.
-A good example is warm shutdown of Celery workers. The <code class="docutils literal notranslate"><span class="pre">dumb-init</span></code>
-in this case will only propagate the signals to the main process,
-but not to the processes that are spawned in the same process
-group as the main one. For example in case of Celery, the main
-process will put the worker in “offline” mode, and will wait
-until all running tasks complete, and only then it will
-terminate all processes.</p>
-<p>For Airflow’s Celery worker, you should set the variable to 0
-and either use <code class="docutils literal notranslate"><span class="pre">["celery",</span> <span class="pre">"worker"]</span></code> command.
-If you are running it through <code class="docutils literal notranslate"><span class="pre">["bash",</span> <span class="pre">"-c"]</span></code> command,
-you need to start the worker via <code class="docutils literal notranslate"><span class="pre">exec</span> <span class="pre">airflow</span> <span class="pre">celery</span> <span class="pre">worker</span></code>
-as the last command executed.</p>
-</td>
+<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="additional-quick-test-options">
-<h2>Additional quick test options<a class="headerlink" href="#additional-quick-test-options" title="Permalink to this heading">¶</a></h2>
-<p>The options below are mostly used for quick testing the image - for example with
-quick-start docker-compose or when you want to perform a local test with new packages
-added. They are not supposed to be run in the production environment as they add additional
-overhead for execution of additional commands. Those options in production should be realized
-either as maintenance operations on the database or should be embedded in the custom image used
-(when you want to add new packages).</p>
-<div class="section" id="upgrading-airflow-db">
-<h3>Upgrading Airflow DB<a class="headerlink" href="#upgrading-airflow-db" title="Permalink to this heading">¶</a></h3>
-<p>If you set <span class="target" id="index-4"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">_AIRFLOW_DB_MIGRATE</span></code> variable to a non-empty value, the entrypoint will run
-the <code class="docutils literal notranslate"><span class="pre">airflow</span> <span class="pre">db</span> <span class="pre">migrate</span></code> command right after verifying the connection. You can also use this
-when you are running airflow with internal SQLite database (default) to upgrade the db and create
-admin users at entrypoint, so that you can start the webserver immediately. Note - using SQLite is
-intended only for testing purpose, never use SQLite in production as it has severe limitations when it
-comes to concurrency.</p>
-</div>
-<div class="section" id="creating-admin-user">
-<h3>Creating admin user<a class="headerlink" href="#creating-admin-user" title="Permalink to this heading">¶</a></h3>
-<p>The entrypoint can also create webserver user automatically when you enter it. you need to set
-<span class="target" id="index-5"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">_AIRFLOW_WWW_USER_CREATE</span></code> to a non-empty value in order to do that. This is not intended for
-production, it is only useful if you would like to run a quick test with the production image.
-You need to pass at least password to create such user via <code class="docutils literal notranslate"><span class="pre">_AIRFLOW_WWW_USER_PASSWORD</span></code> or
-<span class="target" id="index-6"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">_AIRFLOW_WWW_USER_PASSWORD_CMD</span></code> similarly like for other <code class="docutils literal notranslate"><span class="pre">*_CMD</span></code> variables, the content of
-the <code class="docutils literal notranslate"><span class="pre">*_CMD</span></code> will be evaluated as shell command and its output will be set as password.</p>
-<p>User creation will fail if none of the <code class="docutils literal notranslate"><span class="pre">PASSWORD</span></code> variables are set - there is no default for
-password for security reasons.</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: 10%" />
-<col style="width: 24%" />
-<col style="width: 65%" />
+<col style="width: 90%" />
</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Parameter</p></th>
-<th class="head"><p>Default</p></th>
-<th class="head"><p>Environment variable</p></th>
-</tr>
-</thead>
<tbody>
-<tr class="row-even"><td><p>username</p></td>
-<td><p>admin</p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">_AIRFLOW_WWW_USER_USERNAME</span></code></p></td>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">bash_task</span></code>([python_callable])</p></td>
+<td><p>Wrap a function into a BashOperator.</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_external_python_task</span></code>([python_callable, ...])</p></td>
+<td><p>Wrap a python function into a BranchExternalPythonOperator.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a python function into a BranchPythonOperator.</p></td>
</tr>
-<tr class="row-odd"><td><p>password</p></td>
-<td></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">_AIRFLOW_WWW_USER_PASSWORD_CMD</span></code> or <code class="docutils literal notranslate"><span class="pre">_AIRFLOW_WWW_USER_PASSWORD</span></code></p></td>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">branch_virtualenv_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a python function into a BranchPythonVirtualenvOperator.</p></td>
</tr>
-<tr class="row-even"><td><p>firstname</p></td>
-<td><p>Airflow</p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">_AIRFLOW_WWW_USER_FIRSTNAME</span></code></p></td>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">external_python_task</span></code>([python, python_callable, ...])</p></td>
+<td><p>Wrap a callable into an Airflow operator to run via a Python virtual environment.</p></td>
</tr>
-<tr class="row-odd"><td><p>lastname</p></td>
-<td><p>Admin</p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">_AIRFLOW_WWW_USER_LASTNAME</span></code></p></td>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">python_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a function into an Airflow operator.</p></td>
</tr>
-<tr class="row-even"><td><p>email</p></td>
-<td><p><a class="reference external" href="mailto:airflowadmin%40example.com">airflowadmin<span>@</span>example<span>.</span>com</a></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">_AIRFLOW_WWW_USER_EMAIL</span></code></p></td>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">virtualenv_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a callable into an Airflow operator to run via a Python virtual environment.</p></td>
</tr>
-<tr class="row-odd"><td><p>role</p></td>
-<td><p>Admin</p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">_AIRFLOW_WWW_USER_ROLE</span></code></p></td>
+<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">sensor_task</span></code>([python_callable])</p></td>
+<td><p>Wrap a function into an Airflow operator.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">short_circuit_task</span></code>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a function into an ShortCircuitOperator.</p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="task_group/index.html#module-airflow.decorators.task_group" title="airflow.decorators.task_group"><code class="xref py py-obj docutils literal notranslate"><span class="pre">task_group</span></code></a></p></td>
+<td><p>Implements the <code class="docutils literal notranslate"><span class="pre">@task_group</span></code> function decorator.</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">dag</span></code>([dag_id, description, schedule, ...])</p></td>
+<td><p>Python dag decorator which wraps a function into an Airflow DAG.</p></td>
</tr>
</tbody>
</table>
-<p>In case the password is specified, the user will be attempted to be created, but the entrypoint will
-not fail if the attempt fails (this accounts for the case that the user is already created).</p>
-<p>You can, for example start the webserver in the production image with initializing the internal SQLite
-database and creating an <code class="docutils literal notranslate"><span class="pre">admin/admin</span></code> Admin user with the following command:</p>
-<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>run<span class="w"> </span>-it<span class="w"> </span>-p<span class="w"> </span><span class="m">8080</span>:8080<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--env<span class="w"> </span><span class="s2">"_AIRFLOW_DB_MIGRATE=true"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--env<span class="w"> </span><span class="s2">"_AIRFLOW_WWW_USER_CREATE=true"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--env<span class="w"> </span><span class="s2">"_AIRFLOW_WWW_USER_PASSWORD=admin"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>apache/airflow:2.10.1-python3.8<span class="w"> </span>webserver
-</pre></div>
-</div>
-<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>run<span class="w"> </span>-it<span class="w"> </span>-p<span class="w"> </span><span class="m">8080</span>:8080<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--env<span class="w"> </span><span class="s2">"_AIRFLOW_DB_MIGRATE=true"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--env<span class="w"> </span><span class="s2">"_AIRFLOW_WWW_USER_CREATE=true"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--env<span class="w"> </span><span class="s2">"_AIRFLOW_WWW_USER_PASSWORD_CMD=echo admin"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>apache/airflow:2.10.1-python3.8<span class="w"> </span>webserver
-</pre></div>
-</div>
-<p>The commands above perform initialization of the SQLite database, create admin user with admin password
-and Admin role. They also forward local port <code class="docutils literal notranslate"><span class="pre">8080</span></code> to the webserver port and finally start the webserver.</p>
-</div>
-<div class="section" id="installing-additional-requirements">
-<h3>Installing additional requirements<a class="headerlink" href="#installing-additional-requirements" title="Permalink to this heading">¶</a></h3>
-<div class="admonition warning">
-<p class="admonition-title">Warning</p>
-<p>Installing requirements this way is a very convenient method of running Airflow, very useful for
-testing and debugging. However, do not be tricked by its convenience. You should never, ever use it in
-production environment. We have deliberately chose to make it a development/test dependency and we print
-a warning, whenever it is used. There is an inherent security-related issue with using this method in
-production. Installing the requirements this way can happen at literally any time - when your containers
-get restarted, when your machines in K8S cluster get restarted. In a K8S Cluster those events can happen
-literally any time. This opens you up to a serious vulnerability where your production environment
-might be brought down by a single dependency being removed from PyPI - or even dependency of your
-dependency. This means that you put your production service availability in hands of 3rd-party developers.
-At any time, any moment including weekends and holidays those 3rd party developers might bring your
-production Airflow instance down, without you even knowing it. This is a serious vulnerability that
-is similar to the infamous
-<a class="reference external" href="https://qz.com/646467/how-one-programmer-broke-the-internet-by-deleting-a-tiny-piece-of-code/">leftpad</a>
-problem. You can fully protect against this case by building your own, immutable custom image, where the
-dependencies are baked in. You have been warned.</p>
</div>
-<p>Installing additional requirements can be done by specifying <code class="docutils literal notranslate"><span class="pre">_PIP_ADDITIONAL_REQUIREMENTS</span></code> variable.
-The variable should contain a list of requirements that should be installed additionally when entering
-the containers. Note that this option slows down starting of Airflow as every time any container starts
-it must install new packages and it opens up huge potential security vulnerability when used in production
-(see below). Therefore this option should only be used for testing. When testing is finished,
-you should create your custom image with dependencies baked in.</p>
-<p>Example:</p>
-<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>run<span class="w"> </span>-it<span class="w"> </span>-p<span class="w"> </span><span class="m">8080</span>:8080<span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--env<span class="w"> </span><span class="s2">"_PIP_ADDITIONAL_REQUIREMENTS=lxml==4.6.3 charset-normalizer==1.4.1"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--env<span class="w"> </span><span class="s2">"_AIRFLOW_DB_MIGRATE=true"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--env<span class="w"> </span><span class="s2">"_AIRFLOW_WWW_USER_CREATE=true"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>--env<span class="w"> </span><span class="s2">"_AIRFLOW_WWW_USER_PASSWORD_CMD=echo admin"</span><span class="w"> </span><span class="se">\</span>
-<span class="w"> </span>apache/airflow:2.10.1-python3.8<span class="w"> </span>webserver
-</pre></div>
-</div>
-<p>This method is only available starting from Docker image of Airflow 2.1.1 and above.</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.task" title="airflow.decorators.task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">task</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="#airflow.decorators.setup" title="airflow.decorators.setup"><code class="xref py py-obj docutils literal notranslate"><span class="pre">setup</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.teardown" title="airflow.decorators.teardown"><code class="xref py py-obj docutils literal notranslate"><span class="pre">teardown</span></code></a></p></td>
+<td><p></p></td>
+</tr>
+</tbody>
+</table>
+<dl class="py class">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection">
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">airflow.decorators.</span></span><span class="sig-name descname"><span class="pre">TaskDecoratorCollection</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecorat [...]
+<dd><p>Implementation to provide the <code class="docutils literal notranslate"><span class="pre">@task</span></code> syntax.</p>
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.python">
+<span class="sig-name descname"><span class="pre">python</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.python"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.python" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.virtualenv">
+<span class="sig-name descname"><span class="pre">virtualenv</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.virtualenv"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.virtualenv" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.external_python">
+<span class="sig-name descname"><span class="pre">external_python</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.external_python"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.external_python" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.branch">
+<span class="sig-name descname"><span class="pre">branch</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.branch"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.branch" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.branch_virtualenv">
+<span class="sig-name descname"><span class="pre">branch_virtualenv</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.branch_virtualenv"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.branch_virtualenv" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.branch_external_python">
+<span class="sig-name descname"><span class="pre">branch_external_python</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.branch_external_python"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.branch_external_python" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.short_circuit">
+<span class="sig-name descname"><span class="pre">short_circuit</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.short_circuit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.short_circuit" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.sensor">
+<span class="sig-name descname"><span class="pre">sensor</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.sensor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.sensor" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.bash">
+<span class="sig-name descname"><span class="pre">bash</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.bash"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.bash" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.run_if">
+<span class="sig-name descname"><span class="pre">run_if</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.run_if"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.run_if" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.skip_if">
+<span class="sig-name descname"><span class="pre">skip_if</span></span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.skip_if"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.skip_if" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<dl class="py attribute">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.__call__">
+<span class="sig-name descname"><span class="pre">__call__</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Any</span></em><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.__call__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.__call__" title="Permalink to this de [...]
+<dd></dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="airflow.decorators.TaskDecoratorCollection.__getattr__">
+<span class="sig-name descname"><span class="pre">__getattr__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/airflow/decorators.html#TaskDecoratorCollection.__getattr__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#airflow.decorators.TaskDecoratorCollection.__getattr__" ti [...]
+<dd><p>Dynamically get provider-registered task decorators, e.g. <code class="docutils literal notranslate"><span class="pre">@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="Building the image" href="build.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="Dockerfile Changelog" href="changelog.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>
@@ -1031,18 +1049,33 @@ you should create your custom image with dependencies baked in.</p>
<nav class="wy-nav-side-toc">
<div class="wy-menu-vertical">
<ul>
-<li><a class="reference internal" href="#">Entrypoint</a><ul>
-<li><a class="reference internal" href="#allowing-arbitrary-user-to-run-the-container">Allowing arbitrary user to run the container</a></li>
-<li><a class="reference internal" href="#waits-for-airflow-db-connection">Waits for Airflow DB connection</a></li>
-<li><a class="reference internal" href="#waits-for-celery-broker-connection">Waits for Celery broker connection</a></li>
-<li><a class="reference internal" href="#executing-commands">Executing commands</a></li>
-<li><a class="reference internal" href="#execute-custom-code-before-the-airflow-entrypoint">Execute custom code before the Airflow entrypoint</a></li>
-<li><a class="reference internal" href="#adding-custom-image-behaviour">Adding custom image behaviour</a></li>
-<li><a class="reference internal" href="#signal-propagation">Signal propagation</a></li>
-<li><a class="reference internal" href="#additional-quick-test-options">Additional quick test options</a><ul>
-<li><a class="reference internal" href="#upgrading-airflow-db">Upgrading Airflow DB</a></li>
-<li><a class="reference internal" href="#creating-admin-user">Creating admin user</a></li>
-<li><a class="reference internal" href="#installing-additional-requirements">Installing additional requirements</a></li>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul>
+<li><a class="reference internal" href="#submodules">Submodules</a></li>
+<li><a class="reference internal" href="#package-contents">Package Contents</a><ul>
+<li><a class="reference internal" href="#classes">Classes</a></li>
+<li><a class="reference internal" href="#functions">Functions</a></li>
+<li><a class="reference internal" href="#attributes">Attributes</a><ul>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection</span></code></a><ul>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.python</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.virtualenv</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.external_python</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_virtualenv"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_virtualenv</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.branch_external_python"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.branch_external_python</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.short_circuit"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.short_circuit</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.sensor"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.sensor</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.bash"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.bash</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.run_if"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.run_if</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.skip_if"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.skip_if</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__call__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__call__</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.TaskDecoratorCollection.__getattr__"><code class="docutils literal notranslate"><span class="pre">TaskDecoratorCollection.__getattr__()</span></code></a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#airflow.decorators.task"><code class="docutils literal notranslate"><span class="pre">task</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.setup"><code class="docutils literal notranslate"><span class="pre">setup</span></code></a></li>
+<li><a class="reference internal" href="#airflow.decorators.teardown"><code class="docutils literal notranslate"><span class="pre">teardown</span></code></a></li>
+</ul>
+</li>
</ul>
</li>
</ul>
@@ -1069,7 +1102,7 @@ you should create your custom image with dependencies baked in.</p>
<div class="base-layout--button">
- <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/entrypoint.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">
@@ -1203,20 +1236,21 @@ you should create your custom image with dependencies baked in.</p>
</span>
</div>
</footer>
- <script type="text/javascript" src="_static/_gen/js/docs.js"></script>
- <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+ <script type="text/javascript" src="../../../_static/_gen/js/docs.js"></script>
+ <script type="text/javascript" id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
- <script src="_static/jquery.js"></script>
- <script src="_static/underscore.js"></script>
- <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
- <script src="_static/doctools.js"></script>
- <script src="_static/sphinx_highlight.js"></script>
- <script src="_static/clipboard.min.js"></script>
- <script src="_static/copybutton.js"></script>
- <script src="_static/js/globaltoc.js"></script>
- <script src="_static/design-tabs.js"></script>
+ <script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script>
+ <script src="../../../_static/jquery.js"></script>
+ <script src="../../../_static/underscore.js"></script>
+ <script src="../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+ <script src="../../../_static/doctools.js"></script>
+ <script src="../../../_static/sphinx_highlight.js"></script>
+ <script src="../../../_static/clipboard.min.js"></script>
+ <script src="../../../_static/copybutton.js"></script>
+ <script src="../../../_static/js/globaltoc.js"></script>
+ <script src="../../../_static/design-tabs.js"></script>
+ <script src="../../../_static/gh-jira-links.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs-archive/docker-stack/build-arg-ref.html b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/python/index.html
similarity index 73%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/python/index.html
index d1057327fa..cdc29098c7 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.10.3/_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.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -315,23 +330,100 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
<ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.python.python_task"><code class="docutils literal notranslate"><span class="pre">python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
</ul>
</li>
</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
+</ul>
</div>
@@ -411,8 +503,21 @@
<div class="td-sidebar desktop-only d-print-none">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -442,22 +547,99 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
<ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a><ul>
+<li class="toctree-l7"><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li class="toctree-l8"><a class="reference internal" href="#functions">Functions</a><ul>
+<li class="toctree-l9"><a class="reference internal" href="#airflow.decorators.python.python_task"><code class="docutils literal notranslate"><span class="pre">python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l6"><a class="reference internal" href="../python_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
</ul>
</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -546,9 +728,13 @@
<ul class="breadcrumb">
- <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+ <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+
+ <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
- <li class="breadcrumb-item"><a href="build-arg-ref.html"> Image build arguments reference</a></li>
+ <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
+
+ <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
</ul>
</div>
@@ -559,408 +745,51 @@
<div class="bodywrapper">
<div class="body" role="main">
- <blockquote>
-<div></div></blockquote>
-<div class="section" id="image-build-arguments-reference">
-<h1>Image build arguments reference<a class="headerlink" href="#image-build-arguments-reference" title="Permalink to this heading">¶</a></h1>
-<p>The following build arguments (<code class="docutils literal notranslate"><span class="pre">--build-arg</span></code> in docker build command) can be used for production images.
-Those arguments are used when you want to customize the image. You can see some examples of it in
-<a class="reference internal" href="build.html#image-build-pypi"><span class="std std-ref">Building from PyPI packages</span></a>.</p>
-<div class="section" id="basic-arguments">
-<h2>Basic arguments<a class="headerlink" href="#basic-arguments" title="Permalink to this heading">¶</a></h2>
-<p>Those are the most common arguments that you use when you want to build a custom image.</p>
-<table class="docutils align-default">
+ <div class="section" id="module-airflow.decorators.python">
+<span id="airflow-decorators-python"></span><h1><a class="reference internal" href="#module-airflow.decorators.python" title="airflow.decorators.python"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a><a class="headerlink" href="#module-airflow.decorators.python" title="Permalink to this heading">¶</a></h1>
+<div class="section" id="module-contents">
+<h2>Module Contents<a class="headerlink" href="#module-contents" title="Permalink to this heading">¶</a></h2>
+<div class="section" id="functions">
+<h3>Functions<a class="headerlink" href="#functions" title="Permalink to this heading">¶</a></h3>
+<table class="autosummary longtable docutils align-default">
<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 35%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PYTHON_BASE_IMAGE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">python:3.8-slim-bookworm</span></code></p></td>
-<td><p>Base python image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION</span></code></p></td>
-<td><p><code class="code docutils literal notranslate"><span class="pre">2.10.1</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"><LATEST_AVAILABLE_IN_PYPI></span></code></p></td>
-<td><p>PIP version used.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UV_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre"><LATEST_AVAILABLE_IN_PYPI></span></code></p></td>
-<td><p>UV version used.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USE_UV</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Whether to use UV to build the image.
-This is an experimental feature.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">UV_HTTP_TIMEOUT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">300</span></code></p></td>
-<td><p>Timeout in seconds for UV pull requests.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code></p></td>
-<td></td>
-<td><p>additional <code class="docutils literal notranslate"><span class="pre">pip</span></code> flags passed to the
-installation commands (except when
-reinstalling <code class="docutils literal notranslate"><span class="pre">pip</span></code> itself)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_PROGRESS_BAR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">on</span></code></p></td>
-<td><p>Progress bar for PIP installation</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UID</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">50000</span></code></p></td>
-<td><p>Airflow user UID.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">constraints</span></code></p></td>
-<td><p>Type of constraints to build the image.
-This can be <code class="docutils literal notranslate"><span class="pre">constraints</span></code> for regular
-images or <code class="docutils literal notranslate"><span class="pre">constraints-no-providers</span></code> for
-slim images.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_REFERENCE</span></code></p></td>
-<td></td>
-<td><p>Reference (branch or tag) from GitHub
-where constraints file is taken from
-It can be <code class="docutils literal notranslate"><span class="pre">constraints-main</span></code> or
-<code class="docutils literal notranslate"><span class="pre">constraints-2-0</span></code> for
-2.0.* installation. In case of building
-specific version you want to point it
-to specific tag, for example
-<code class="code docutils literal notranslate"><span class="pre">constraints-2.10.1</span></code>.
-Auto-detected if empty.</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="#airflow.decorators.python.python_task" title="airflow.decorators.python.python_task"><code class="xref py py-obj docutils literal notranslate"><span class="pre">python_task</span></code></a>([python_callable, multiple_outputs])</p></td>
+<td><p>Wrap a function into an Airflow operator.</p></td>
</tr>
</tbody>
</table>
-<div class="admonition note">
-<p class="admonition-title">Note</p>
-<p>Before Airflow 2.2, the image also had <code class="docutils literal notranslate"><span class="pre">AIRFLOW_GID</span></code> parameter, but it did not provide any additional
-functionality - only added confusion - so it has been removed.</p>
-</div>
-<p>List of default extras in the production Dockerfile:</p>
-<ul class="simple">
-<li><p>aiobotocore</p></li>
-<li><p>amazon</p></li>
-<li><p>async</p></li>
-<li><p>celery</p></li>
-<li><p>cncf-kubernetes</p></li>
-<li><p>common-io</p></li>
-<li><p>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>fab</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google-auth</p></li>
-<li><p>graphviz</p></li>
-<li><p>grpc</p></li>
-<li><p>hashicorp</p></li>
-<li><p>http</p></li>
-<li><p>ldap</p></li>
-<li><p>microsoft-azure</p></li>
-<li><p>mysql</p></li>
-<li><p>odbc</p></li>
-<li><p>openlineage</p></li>
-<li><p>pandas</p></li>
-<li><p>postgres</p></li>
-<li><p>redis</p></li>
-<li><p>sendgrid</p></li>
-<li><p>sftp</p></li>
-<li><p>slack</p></li>
-<li><p>snowflake</p></li>
-<li><p>ssh</p></li>
-<li><p>statsd</p></li>
-<li><p>uv</p></li>
-<li><p>virtualenv</p></li>
-</ul>
-</div>
-<div class="section" id="image-optimization-options">
-<h2>Image optimization options<a class="headerlink" href="#image-optimization-options" title="Permalink to this heading">¶</a></h2>
-<p>The main advantage of Customization method of building Airflow image, is that it allows to build highly optimized image because
-the final image (RUNTIME) might not contain all the dependencies that are needed to build and install all other dependencies
-(DEV). Those arguments allow to control what is installed in the DEV image and what is installed in RUNTIME one, thus
-allowing to produce much more optimized images. See <a class="reference internal" href="build.html#image-build-optimized"><span class="std std-ref">Building optimized images</span></a>.
-for examples of using those arguments.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 30%" />
-<col style="width: 35%" />
-<col style="width: 35%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">UPGRADE_INVALIDATION_STRING</span></code></p></td>
-<td></td>
-<td><p>If set to a random, non-empty value
-the dependencies are upgraded to newer
-versions. In CI it is set to build id
-to make sure subsequent builds are not
-reusing cached images with same value.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PYTHON_DEPS</span></code></p></td>
-<td></td>
-<td><p>Optional python packages to extend
-the image with some extra dependencies.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Dev apt command executed before dev deps
-are installed in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Dev apt command executed
-before dev dep are installed
-in the Build image. Should start with
-<code class="docutils literal notranslate"><span class="pre">&&</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>
-</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.13)"><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">AIRFLOW_CONSTRAINTS_LOCATION</span></code></p></td>
-<td></td>
-<td><p>If not empty, it will override the
-source of the constraints with the
-specified URL or file. Note that the
-file has to be in Docker context so
-it’s best to place such file in
-one of the folders included in
-<code class="docutils literal notranslate"><span class="pre">.dockerignore</span></code> file.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DOCKER_CONTEXT_FILES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>If set to a folder (for example to
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> folder), then
-this folder will be copied to the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> inside the
-context of docker and you will be able
-to install from binary files present
-there. By default we set it to
-Dockerfile as we know the file is there,
-otherwise the COPY instruction fails.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to true, Airflow, providers and
-all dependencies are installed from
-from locally built/downloaded
-.whl and .tar.gz files placed in the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code>.</p></td>
-</tr>
-</tbody>
-</table>
+</dd></dl>
+
</div>
-<div class="section" id="pre-caching-pip-dependencies">
-<h2>Pre-caching PIP dependencies<a class="headerlink" href="#pre-caching-pip-dependencies" title="Permalink to this heading">¶</a></h2>
-<p>When image is build from PIP, by default pre-caching of PIP dependencies is used. This is in order to speed-up incremental
-builds during development. When pre-cached PIP dependencies are used and <code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code> changes, the
-PIP dependencies are already pre-installed, thus resulting in much faster image rebuild. This is purely an optimization
-of time needed to build the images and should be disabled if you want to install Airflow from
-Docker context files.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 33%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_BRANCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">main</span></code></p></td>
-<td><p>the branch from which PIP dependencies
-are pre-installed initially.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_REPO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code></p></td>
-<td><p>the repository from which PIP
-dependencies are pre-installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PRE_CACHED_PIP_PACKAGES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Allows to pre-cache airflow PIP packages
-from the GitHub of Apache Airflow
-This allows to optimize iterations for
-Image builds and speeds up CI builds.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_CACHE_EPOCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">"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>
@@ -1028,11 +857,14 @@ new argument.</p></td>
<nav class="wy-nav-side-toc">
<div class="wy-menu-vertical">
<ul>
-<li><a class="reference internal" href="#">Image build arguments reference</a><ul>
-<li><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a><ul>
+<li><a class="reference internal" href="#module-contents">Module Contents</a><ul>
+<li><a class="reference internal" href="#functions">Functions</a><ul>
+<li><a class="reference internal" href="#airflow.decorators.python.python_task"><code class="docutils literal notranslate"><span class="pre">python_task()</span></code></a></li>
+</ul>
+</li>
+</ul>
+</li>
</ul>
</li>
</ul>
@@ -1057,7 +889,7 @@ new argument.</p></td>
<div class="base-layout--button">
- <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/build-arg-ref.rst" rel="nofollow">
+ <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/python/index.rst" rel="nofollow">
<button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
<svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
@@ -1191,20 +1023,21 @@ new argument.</p></td>
</span>
</div>
</footer>
- <script type="text/javascript" src="_static/_gen/js/docs.js"></script>
- <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+ <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+ <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
- <script src="_static/jquery.js"></script>
- <script src="_static/underscore.js"></script>
- <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
- <script src="_static/doctools.js"></script>
- <script src="_static/sphinx_highlight.js"></script>
- <script src="_static/clipboard.min.js"></script>
- <script src="_static/copybutton.js"></script>
- <script src="_static/js/globaltoc.js"></script>
- <script src="_static/design-tabs.js"></script>
+ <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+ <script src="../../../../_static/jquery.js"></script>
+ <script src="../../../../_static/underscore.js"></script>
+ <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+ <script src="../../../../_static/doctools.js"></script>
+ <script src="../../../../_static/sphinx_highlight.js"></script>
+ <script src="../../../../_static/clipboard.min.js"></script>
+ <script src="../../../../_static/copybutton.js"></script>
+ <script src="../../../../_static/js/globaltoc.js"></script>
+ <script src="../../../../_static/design-tabs.js"></script>
+ <script src="../../../../_static/gh-jira-links.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs-archive/docker-stack/index.html b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/python_virtualenv/index.html
similarity index 76%
copy from docs-archive/docker-stack/index.html
copy to docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/python_virtualenv/index.html
index 32537382b0..f783275d00 100644
--- a/docs-archive/docker-stack/index.html
+++ b/docs-archive/apache-airflow/2.10.3/_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.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -315,16 +330,90 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="build-arg-ref.html">Image build arguments reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -405,8 +494,21 @@
<div class="td-sidebar desktop-only d-print-none">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</span>
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
+
+ </div>
+ <script type="application/x-template" id="version-item-template">
+ <a class="dropdown-item"></a>
+ </script>
+</div>
+
<div class="searchb-box">
- <form class="search-form" action="search.html" method="get">
+ <form class="search-form" action="../../../../search.html" method="get">
<input class="search-form__input" type="text" name="q" placeholder="Search docs" size="16">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
@@ -436,16 +538,90 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python</span></code></a></li>
+<li class="toctree-l6 current"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../sensor/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.sensor</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../setup_teardown/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.setup_teardown</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../short_circuit/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.short_circuit</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../task_group/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.task_group</span></code></a></li>
+</ul>
+</li>
+<li class="toctree-l5"><a class="reference internal" href="../index.html#package-contents">Package Contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#email-notifications">Email notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#notifications">Notifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#cluster-policies">Cluster Policies</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#lineage">Lineage</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#what-is-not-part-of-the-public-interface-of-apache-airflow">What is not part of the Public Interface of Apache Airflow?</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
-<li class="toctree-l1"><a class="reference internal" href="build-arg-ref.html">Image build arguments reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -534,9 +710,13 @@
<ul class="breadcrumb">
- <li class="breadcrumb-item"><a href="#" class="icon icon-home"> Home</a></li>
+ <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+
+ <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
+
+ <li class="breadcrumb-item"><a href="../index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a></li>
- <li class="breadcrumb-item"><a href="index.html"> Docker Image for Apache Airflow</a></li>
+ <li class="breadcrumb-item"><a href="index.html"> <code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
</ul>
</div>
@@ -547,195 +727,16 @@
<div class="bodywrapper">
<div class="body" role="main">
- <blockquote>
-<div></div></blockquote>
-<a class="reference internal image-reference" href="_images/docker-logo.png"><img alt="_images/docker-logo.png" src="_images/docker-logo.png" style="width: 100px;" /></a>
-<div class="section" id="docker-image-for-apache-airflow">
-<h1>Docker Image for Apache Airflow<a class="headerlink" href="#docker-image-for-apache-airflow" title="Permalink to this heading">¶</a></h1>
-<div class="toctree-wrapper compound">
-</div>
-<div class="toctree-wrapper compound">
-</div>
-<p>For the ease of deployment in production, the community releases a production-ready reference container
-image.</p>
-<p>The Apache Airflow community, releases Docker Images which are <code class="docutils literal notranslate"><span class="pre">reference</span> <span class="pre">images</span></code> for Apache Airflow.
-Every time a new version of Airflow is released, the images are prepared in the
-<a class="reference external" href="https://hub.docker.com/r/apache/airflow">apache/airflow DockerHub</a>
-for all the supported Python versions.</p>
-<p>You can find the following images there (Assuming Airflow version <code class="code docutils literal notranslate"><span class="pre">2.10.1</span></code>):</p>
-<ul class="simple">
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:latest</span></code> - the latest released Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:latest-pythonX.Y</span></code> - the latest released Airflow image with specific Python version</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:2.10.1</span></code> - the versioned Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:2.10.1-pythonX.Y</span></code> - the versioned Airflow image with specific Python version</p></li>
-</ul>
-<p>Those are “reference” regular images. They contain the most common set of extras, dependencies and providers that are
-often used by the users and they are good to “try-things-out” when you want to just take Airflow for a spin,</p>
-<p>You can also use “slim” images that contain only core airflow and are about half the size of the “regular” images
-but you need to add all the <a class="reference external" href="/docs/apache-airflow/stable/extra-packages-ref.html" title="(in apache-airflow v2.10.0.dev0)"><span>Reference for package extras</span></a> and providers that you need separately
-via <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a>.</p>
-<ul class="simple">
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-latest</span></code> - the latest released Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-latest-pythonX.Y</span></code> - the latest released Airflow image with specific Python version</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-2.10.1</span></code> - the versioned Airflow image with default Python version (3.8 currently)</p></li>
-<li><p><code class="code docutils literal notranslate"><span class="pre">apache/airflow:slim-2.10.1-pythonX.Y</span></code> - the versioned Airflow image with specific Python version</p></li>
-</ul>
-<p>The Apache Airflow image provided as convenience package is optimized for size, and
-it provides just a bare minimal set of the extras and dependencies installed and in most cases
-you want to either extend or customize the image. You can see all possible extras in <a class="reference external" href="/docs/apache-airflow/stable/extra-packages-ref.html" title="(in apache-airflow v2.10.0.dev0)"><span>Reference for package extras</span></a>.
-The set of extras used in Airflow Production image are available in the
-<a class="reference external" href="https://github.com/apache/airflow/blob/2.10.1/Dockerfile">Dockerfile</a>.</p>
-<p>However, Airflow has more than 60 community-managed providers (installable via extras) and some of the
-default extras/providers installed are not used by everyone, sometimes others extras/providers
-are needed, sometimes (very often actually) you need to add your own custom dependencies,
-packages or even custom providers. You can learn how to do it in <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a>.</p>
-<p>The production images are build in DockerHub from released version and release candidates. There
-are also images published from branches but they are used mainly for development and testing purpose.
-See <a class="reference external" href="https://github.com/apache/airflow/blob/main/contributing-docs/working-with-git#airflow-git-branches">Airflow Git Branching</a>
-for details.</p>
-</div>
-<div class="section" id="fixing-images-at-release-time">
-<h1>Fixing images at release time<a class="headerlink" href="#fixing-images-at-release-time" title="Permalink to this heading">¶</a></h1>
-<p>The released “versioned” reference images are mostly <code class="docutils literal notranslate"><span class="pre">fixed</span></code> when we release Airflow version and we only
-update them in exceptional circumstances. For example when we find out that there are dependency errors
-that might prevent important Airflow or embedded provider’s functionalities working. In normal circumstances,
-the images are not going to change after release, even if new version of Airflow dependencies are released -
-not even when those versions contain critical security fixes. The process of Airflow releases is designed
-around upgrading dependencies automatically where applicable but only when we release a new version of Airflow,
-not for already released versions.</p>
-</div>
-<div class="section" id="what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image">
-<h1>What should I do if my security scan shows critical and high vulnerabilities in the image?<a class="headerlink" href="#what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image" title="Permalink to this heading">¶</a></h1>
-<p>We often hear questions that our users use various security scanners on the image and find out that
-there are some critical and high vulnerabilities in the image - not coming from Airflow but for some other
-components. In general, this is normal and expected that such vulnerabilities are found in the image after
-it’s been released and fixed - precisely because we are NOT updating the images after they are released as
-explained above. Also sometimes even the latest releases contain vulnerabilities that are not yet fixed
-in the base image we use or in the dependencies we use and cannot upgrade, because some of our providers
-have limits and did not manage to upgrade yet and we have no control over that. So it is possible
-that even the most recent release of our image there are some High and Critical vulnerabilities that
-are not yet fixed.</p>
-<p><strong>What can you do in such case?</strong></p>
-<p>First of all - you should know what you should NOT do.</p>
-<p>Do NOT send private email to the Airflow Security Team with scan results and asking what to do.
-The Security team at Airflow takes care exclusively about undisclosed vulnerabilities in Airflow itself, not
-in the dependencies or in the base image. The security email should only be used to report privately any
-security issues that can be exploited via Airflow. This is nicely explained in our
-<a class="reference external" href="https://github.com/apache/airflow/security/policy">Security Policy</a> where you can find more details
-including the need to provide reproducible scenarios and submitting ONE issue per email. NEVER submit multiple
-vulnerabilities in one email - those are rejected immediately, as they make the process of handling the issue
-way harder for everyone, including the reporters.</p>
-<p>Also DO NOT open a GitHub Issue with the scan results and asking what to do. The GitHub Issues are for
-reporting bugs and feature requests to Airflow itself, not for asking for help with the security scans on
-3rd party components.</p>
-<p>So what are your options?</p>
-<p>You have four options:</p>
-<ol class="arabic simple">
-<li><p>Build your own custom image following the examples we share there - using the latest base image and
-possibly manually bumping dependencies you want to bump. There are quite a few examples
-in <a class="reference internal" href="build.html#build-build-image"><span class="std std-ref">Building the image</span></a> which you can follow. You can use “slim” image as a base
-for your images and rather than basing your image on the “reference” image that has a number of extras
-and providers installed, you can only install what you actually need and upgrade some dependencies that
-otherwise would not be possible to upgrade - because some of the provider libraries have limits and
-did not manage to upgrade yet and we have no control over that. This is the most flexible way to
-build your image and you can build your process to combine it with quickly upgrading to latest Airflow
-versions (see point 2. below).</p></li>
-<li><p>Wait for a new version of Airflow and upgrade to it. Airflow images are updated to latest “non-conflicting”
-dependencies and use latest “base” image at release time, so what you have in the reference images
-at the moment we publish the image / release the version is what is “latest and greatest”
-available at the moment with the base platform we use (Debian Bookworm is the reference image we use).
-This is one of good strategies you can take - build a process to upgrade your Airflow version regularly
-- quickly after it has been released by the community, this will help you to keep up with the latest
-security fixes in the dependencies.</p></li>
-<li><p>If the base platform we use (currently Debian Bookworm) does not contain the latest versions you want
-and you want to use other base images, you can take a look at what system dependencies are installed
-and scripts in the latest <code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code> of airflow and take inspiration from it and build your own image
-or copy it and modify it to your needs. See the
-<a class="reference external" href="https://github.com/apache/airflow/blob/2.10.1/Dockerfile">Dockerfile</a> for the latest version.</p></li>
-<li><p>Research if the vulnerability affects you or not. Even if there is a dependency with high or critical
-vulnerability, it does not mean that it can be exploited in Airflow (or specifically in the way you are
-using Airflow). If you do have a reproducible scenario how a vulnerability can be exploited in Airflow, you should -
-of course - privately report it to the security team. But if you do not have reproducible
-scenario, please do some research and try to understand the impact of the vulnerability on Airflow. That
-research might result in a public GitHub Discussion where you can discuss the impact of the
-vulnerability if you research will indicate Airflow might not be impacted or private security email if
-you find a reproducible scenario on how to exploit it.</p></li>
-</ol>
-<p><strong>How do I discuss publicly about public CVEs in the image?</strong></p>
-<p>The security scans report public vulnerabilities in 3rd-party components of Airflow. Since those are
-already public vulnerabilities, this is something you can talk about but others also are talking about.
-So you can do research on your own first. Try to find discussions about the issues, how others were handling
-it and possibly even try to explore, whether the vulnerability can be exploited in Airflow or not.
-This is a very valuable contribution to the community you can do in order to help others to
-understand the impact of the vulnerability on Airflow. We highly appreciate our commercial users do it,
-because Airflow is maintained by volunteers, so if you or your company can spend some time and skills of
-security researchers to help the community to understand the impact of the vulnerability on Airflow, it
-could be a fantastic contribution to the community and way to give back to the project that your company uses
-for free.</p>
-<p>You are free to discuss it publicly, open a <a class="reference external" href="https://github.com/apache/airflow/discussions">GitHub Discussion</a>
-mentioning your findings and research you’ve done so far. Ideally (as a way to contribute to Airflow) you
-should explain the findings of your own security team in your company to help to research and understand
-the impact of the vulnerability on Airflow (and your way of using it).
-Again - strong suggestion is to open ONE discussion per vulnerability. You should NOT post scan results in
-bulk - this is not helpful for a discussion, and you will not get meaningful answers if you will attempt to
-discuss all the issues in one discussion thread.</p>
-<p>Yes - we know it’s the easy way to copy & paste your result and ask others what to do, but doing it is
-going to likely result in silence because such actions in the community as seen as pretty selfish way of
-getting your problems solved by tapping into time of other volunteers, without spending your time on making it
-easier for them to help. If you really want to get help from the community, focus your discussion on
-particular CVE, provide your findings - including analyzing your report in detail and finding which
-binaries and base images exactly are causing the scanner to report the vulnerability. Remember that only
-you have access to your scanner and you should bring as much helpful information so that others can
-comment on it. Show that you have done your homework and that you bring valuable information to the community.</p>
-<p>Opening a GitHub Discussion for this kind of issues is also a great way to communicate with the
-maintainers and security team in an open and transparent way - without reverting to the private security
-mailing list (which serves different purpose as explained above). If after such a discussion there will be
-a way to remove such a vulnerability from the scanned image - great, you can even contribute a PR to the
-Dockerfile to remove the vulnerability from the image. Maybe such a discussion will lead to a PR to allow
-Airflow to upgrade to newer dependency that fixes the vulnerability or remove it altogether, or maybe
-there is already a way to mitigate it or maybe there is already a PR that someone works on to fix it.
-All this can (and should) be discussed publicly and transparently in a GitHub Discussion, not via private
-security email, nor GitHub Issues which are exclusively about Airflow Issues not 3rd-party components
-public security issues.</p>
-</div>
-<div class="section" id="support">
-<h1>Support<a class="headerlink" href="#support" title="Permalink to this heading">¶</a></h1>
-<p>The reference Docker Image supports the following platforms and database:</p>
-<div class="section" id="intel-platform-x86-64">
-<h2>Intel platform (x86_64)<a class="headerlink" href="#intel-platform-x86-64" title="Permalink to this heading">¶</a></h2>
-<ul class="simple">
-<li><p>Postgres Client</p></li>
-<li><p>MySQL Client</p></li>
-<li><p>MSSQL Client</p></li>
-</ul>
-</div>
-<div class="section" id="arm-platform-aarch64">
-<h2>ARM platform (aarch64)<a class="headerlink" href="#arm-platform-aarch64" title="Permalink to this heading">¶</a></h2>
-<p>ARM support is experimental, might change any time.</p>
-<ul class="simple">
-<li><p>Postgres Client</p></li>
-<li><p>MySQL Client (MySQL 8)</p></li>
-<li><p>MSSQL Client</p></li>
-</ul>
-<p>Note that MySQL on arm has experimental support through MariaDB client library.</p>
-</div>
-</div>
-<div class="section" id="usage">
-<h1>Usage<a class="headerlink" href="#usage" title="Permalink to this heading">¶</a></h1>
-<p>The <span class="target" id="index-0"></span><a class="reference external" href="/docs/apache-airflow/stable/cli-and-env-variables-ref.html#envvar-AIRFLOW_HOME" title="(in apache-airflow v2.10.0.dev0)"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">AIRFLOW_HOME</span></code></a> is set by default to <code class="docutils literal notranslate"><span class="pre">/opt/airflow/</span></code> - this means that DAGs
-are by default in the <code class="docutils literal notranslate"><span class="pre">/opt/airflow/dags</span></code> folder and logs are in the <code class="docutils literal notranslate"><span class="pre">/opt/airflow/logs</span></code></p>
-<p>The working directory is <code class="docutils literal notranslate"><span class="pre">/opt/airflow</span></code> by default.</p>
-<p>If no <span class="target" id="index-1"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">AIRFLOW__DATABASE__SQL_ALCHEMY_CONN</span></code> variable is set then SQLite database is created in
-<code class="docutils literal notranslate"><span class="pre">${AIRFLOW_HOME}/airflow.db</span></code>.</p>
-<p>For example commands that start Airflow see: <a class="reference internal" href="entrypoint.html#entrypoint-commands"><span class="std std-ref">Executing commands</span></a>.</p>
-<p>Airflow requires many components to function as it is a distributed application. You may therefore also be interested
-in launching Airflow in the Docker Compose environment, see: <a class="reference external" href="/docs/apache-airflow/stable/howto/docker-compose/index.html" title="(in apache-airflow v2.10.0.dev0)"><span>Running Airflow in Docker</span></a>.</p>
-<p>You can use this image in <a class="reference external" href="/docs/helm-chart/stable/index.html" title="(in helm-chart v1.16.0-dev)"><span class="xref std std-doc">Helm Chart</span></a> as well.</p>
+ <div class="section" id="module-airflow.decorators.python_virtualenv">
+<span id="airflow-decorators-python-virtualenv"></span><h1><a class="reference internal" href="#module-airflow.decorators.python_virtualenv" title="airflow.decorators.python_virtualenv"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a><a class="headerlink" href="#module-airflow.decorators.python_virtualenv" title="Permalink to this heading">¶</a></h1>
</div>
- <div class="pager" role="navigation" aria-label="related navigation"><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Previous</button>
- <a rel="next" title="Building the image" href="build.html" >
+ <div class="pager" role="navigation" aria-label="related navigation">
+ <a rel="prev" title="airflow.decorators.python" href="../python/index.html" >
+ <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
+ </a>
+ <a rel="next" title="airflow.decorators.sensor" href="../sensor/index.html" >
<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
</a>
</div>
@@ -805,17 +806,7 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
<nav class="wy-nav-side-toc">
<div class="wy-menu-vertical">
<ul>
-<li><a class="reference internal" href="#">Docker Image for Apache Airflow</a><ul>
-</ul>
-</li>
-<li><a class="reference internal" href="#fixing-images-at-release-time">Fixing images at release time</a></li>
-<li><a class="reference internal" href="#what-should-i-do-if-my-security-scan-shows-critical-and-high-vulnerabilities-in-the-image">What should I do if my security scan shows critical and high vulnerabilities in the image?</a></li>
-<li><a class="reference internal" href="#support">Support</a><ul>
-<li><a class="reference internal" href="#intel-platform-x86-64">Intel platform (x86_64)</a></li>
-<li><a class="reference internal" href="#arm-platform-aarch64">ARM platform (aarch64)</a></li>
-</ul>
-</li>
-<li><a class="reference internal" href="#usage">Usage</a></li>
+<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.python_virtualenv</span></code></a></li>
</ul>
</div>
@@ -838,7 +829,7 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
<div class="base-layout--button">
- <a href="https://github.com/apache/airflow/edit/main/docs/docker-stack/index.rst" rel="nofollow">
+ <a href="https://github.com/apache/airflow/edit/main/docs/apache-airflow/_api/airflow/decorators/python_virtualenv/index.rst" rel="nofollow">
<button class="btn-hollow btn-brown btn-with-icon with-box-shadow button-fixed">
<svg xmlns="http://www.w3.org/2000/svg" width="30.76" height="30">
@@ -972,20 +963,21 @@ in launching Airflow in the Docker Compose environment, see: <a class="reference
</span>
</div>
</footer>
- <script type="text/javascript" src="_static/_gen/js/docs.js"></script>
- <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+ <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+ <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
- <script src="_static/jquery.js"></script>
- <script src="_static/underscore.js"></script>
- <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
- <script src="_static/doctools.js"></script>
- <script src="_static/sphinx_highlight.js"></script>
- <script src="_static/clipboard.min.js"></script>
- <script src="_static/copybutton.js"></script>
- <script src="_static/js/globaltoc.js"></script>
- <script src="_static/design-tabs.js"></script>
+ <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+ <script src="../../../../_static/jquery.js"></script>
+ <script src="../../../../_static/underscore.js"></script>
+ <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+ <script src="../../../../_static/doctools.js"></script>
+ <script src="../../../../_static/sphinx_highlight.js"></script>
+ <script src="../../../../_static/clipboard.min.js"></script>
+ <script src="../../../../_static/copybutton.js"></script>
+ <script src="../../../../_static/js/globaltoc.js"></script>
+ <script src="../../../../_static/design-tabs.js"></script>
+ <script src="../../../../_static/gh-jira-links.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs-archive/docker-stack/build-arg-ref.html b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/sensor/index.html
similarity index 67%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/sensor/index.html
index d1057327fa..4f7a86a024 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/sensor/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.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>
@@ -284,8 +286,21 @@
<div class="content-drawer">
<div class="td-sidebar">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</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,22 +330,107 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
<ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><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="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -411,8 +511,21 @@
<div class="td-sidebar desktop-only d-print-none">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</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 +555,107 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
<ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><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="../../../../best-practices.html">Best Practices</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../troubleshooting.html">Troubleshooting</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release-process.html">Release Policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../release_notes.html">Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">References</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../operators-and-hooks-ref.html">Operators and hooks</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../cli-and-env-variables-ref.html">CLI</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../templates-ref.html">Templates</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../stable-rest-api-ref.html">Stable REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../deprecated-rest-api-ref.html">Deprecated REST API</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../configurations-ref.html">Configurations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../extra-packages-ref.html">Extra packages</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">Internal DB details</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../migrations-ref.html">Database Migrations</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../database-erd-ref.html">Database ERD Schema</a></li>
+</ul>
+<p class="caption" role="heading"><span class="caption-text">System tests</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../tests/system/core/index.html">System Tests</a></li>
</ul>
</div>
@@ -546,9 +744,13 @@
<ul class="breadcrumb">
- <li class="breadcrumb-item"><a href="index.html" class="icon icon-home"> Home</a></li>
+ <li class="breadcrumb-item"><a href="../../../../index.html" class="icon icon-home"> Home</a></li>
+
+ <li class="breadcrumb-item"><a href="../../../../public-airflow-interface.html"> Public Interface of Airflow</a></li>
- <li class="breadcrumb-item"><a href="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.sensor</span></code></a></li>
</ul>
</div>
@@ -559,408 +761,101 @@
<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.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: 33%" />
-<col style="width: 33%" />
-<col style="width: 35%" />
+<col style="width: 10%" />
+<col style="width: 90%" />
</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PYTHON_BASE_IMAGE</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">python:3.8-slim-bookworm</span></code></p></td>
-<td><p>Base python image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_VERSION</span></code></p></td>
-<td><p><code class="code docutils literal notranslate"><span class="pre">2.10.1</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"><LATEST_AVAILABLE_IN_PYPI></span></code></p></td>
-<td><p>PIP version used.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UV_VERSION</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre"><LATEST_AVAILABLE_IN_PYPI></span></code></p></td>
-<td><p>UV version used.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_USE_UV</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Whether to use UV to build the image.
-This is an experimental feature.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">UV_HTTP_TIMEOUT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">300</span></code></p></td>
-<td><p>Timeout in seconds for UV pull requests.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PIP_INSTALL_FLAGS</span></code></p></td>
-<td></td>
-<td><p>additional <code class="docutils literal notranslate"><span class="pre">pip</span></code> flags passed to the
-installation commands (except when
-reinstalling <code class="docutils literal notranslate"><span class="pre">pip</span></code> itself)</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_PROGRESS_BAR</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">on</span></code></p></td>
-<td><p>Progress bar for PIP installation</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_UID</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">50000</span></code></p></td>
-<td><p>Airflow user UID.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">constraints</span></code></p></td>
-<td><p>Type of constraints to build the image.
-This can be <code class="docutils literal notranslate"><span class="pre">constraints</span></code> for regular
-images or <code class="docutils literal notranslate"><span class="pre">constraints-no-providers</span></code> for
-slim images.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_CONSTRAINTS_REFERENCE</span></code></p></td>
-<td></td>
-<td><p>Reference (branch or tag) from GitHub
-where constraints file is taken from
-It can be <code class="docutils literal notranslate"><span class="pre">constraints-main</span></code> or
-<code class="docutils literal notranslate"><span class="pre">constraints-2-0</span></code> for
-2.0.* installation. In case of building
-specific version you want to point it
-to specific tag, for example
-<code class="code docutils literal notranslate"><span class="pre">constraints-2.10.1</span></code>.
-Auto-detected if empty.</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>
</tbody>
</table>
-<div class="admonition note">
-<p class="admonition-title">Note</p>
-<p>Before Airflow 2.2, the image also had <code class="docutils literal notranslate"><span class="pre">AIRFLOW_GID</span></code> parameter, but it did not provide any additional
-functionality - only added confusion - so it has been removed.</p>
-</div>
-<p>List of default extras in the production Dockerfile:</p>
-<ul class="simple">
-<li><p>aiobotocore</p></li>
-<li><p>amazon</p></li>
-<li><p>async</p></li>
-<li><p>celery</p></li>
-<li><p>cncf-kubernetes</p></li>
-<li><p>common-io</p></li>
-<li><p>docker</p></li>
-<li><p>elasticsearch</p></li>
-<li><p>fab</p></li>
-<li><p>ftp</p></li>
-<li><p>google</p></li>
-<li><p>google-auth</p></li>
-<li><p>graphviz</p></li>
-<li><p>grpc</p></li>
-<li><p>hashicorp</p></li>
-<li><p>http</p></li>
-<li><p>ldap</p></li>
-<li><p>microsoft-azure</p></li>
-<li><p>mysql</p></li>
-<li><p>odbc</p></li>
-<li><p>openlineage</p></li>
-<li><p>pandas</p></li>
-<li><p>postgres</p></li>
-<li><p>redis</p></li>
-<li><p>sendgrid</p></li>
-<li><p>sftp</p></li>
-<li><p>slack</p></li>
-<li><p>snowflake</p></li>
-<li><p>ssh</p></li>
-<li><p>statsd</p></li>
-<li><p>uv</p></li>
-<li><p>virtualenv</p></li>
-</ul>
</div>
-<div class="section" id="image-optimization-options">
-<h2>Image optimization options<a class="headerlink" href="#image-optimization-options" title="Permalink to this heading">¶</a></h2>
-<p>The main advantage of Customization method of building Airflow image, is that it allows to build highly optimized image because
-the final image (RUNTIME) might not contain all the dependencies that are needed to build and install all other dependencies
-(DEV). Those arguments allow to control what is installed in the DEV image and what is installed in RUNTIME one, thus
-allowing to produce much more optimized images. See <a class="reference internal" href="build.html#image-build-optimized"><span class="std std-ref">Building optimized images</span></a>.
-for examples of using those arguments.</p>
-<table class="docutils align-default">
+<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: 30%" />
-<col style="width: 35%" />
-<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">UPGRADE_INVALIDATION_STRING</span></code></p></td>
-<td></td>
-<td><p>If set to a random, non-empty value
-the dependencies are upgraded to newer
-versions. In CI it is set to build id
-to make sure subsequent builds are not
-reusing cached images with same value.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_PYTHON_DEPS</span></code></p></td>
-<td></td>
-<td><p>Optional python packages to extend
-the image with some extra dependencies.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Dev apt command executed before dev deps
-are installed in the Build image.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">ADDITIONAL_DEV_APT_COMMAND</span></code></p></td>
-<td></td>
-<td><p>Additional Dev apt command executed
-before dev dep are installed
-in the Build image. Should start with
-<code class="docutils literal notranslate"><span class="pre">&&</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.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>
-</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 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.13)"><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>
-<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">AIRFLOW_CONSTRAINTS_LOCATION</span></code></p></td>
-<td></td>
-<td><p>If not empty, it will override the
-source of the constraints with the
-specified URL or file. Note that the
-file has to be in Docker context so
-it’s best to place such file in
-one of the folders included in
-<code class="docutils literal notranslate"><span class="pre">.dockerignore</span></code> file.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">DOCKER_CONTEXT_FILES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">Dockerfile</span></code></p></td>
-<td><p>If set to a folder (for example to
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> folder), then
-this folder will be copied to the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code> inside the
-context of docker and you will be able
-to install from binary files present
-there. By default we set it to
-Dockerfile as we know the file is there,
-otherwise the COPY instruction fails.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">INSTALL_PACKAGES_FROM_CONTEXT</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>If set to true, Airflow, providers and
-all dependencies are installed from
-from locally built/downloaded
-.whl and .tar.gz files placed in the
-<code class="docutils literal notranslate"><span class="pre">docker-context-files</span></code>.</p></td>
-</tr>
-</tbody>
-</table>
+<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.13)"><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.13)"><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.13)"><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 class="section" id="pre-caching-pip-dependencies">
-<h2>Pre-caching PIP dependencies<a class="headerlink" href="#pre-caching-pip-dependencies" title="Permalink to this heading">¶</a></h2>
-<p>When image is build from PIP, by default pre-caching of PIP dependencies is used. This is in order to speed-up incremental
-builds during development. When pre-cached PIP dependencies are used and <code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code> changes, the
-PIP dependencies are already pre-installed, thus resulting in much faster image rebuild. This is purely an optimization
-of time needed to build the images and should be disabled if you want to install Airflow from
-Docker context files.</p>
-<table class="docutils align-default">
-<colgroup>
-<col style="width: 33%" />
-<col style="width: 33%" />
-<col style="width: 33%" />
-</colgroup>
-<thead>
-<tr class="row-odd"><th class="head"><p>Build argument</p></th>
-<th class="head"><p>Default value</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_BRANCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">main</span></code></p></td>
-<td><p>the branch from which PIP dependencies
-are pre-installed initially.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_REPO</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">apache/airflow</span></code></p></td>
-<td><p>the repository from which PIP
-dependencies are pre-installed.</p></td>
-</tr>
-<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">AIRFLOW_PRE_CACHED_PIP_PACKAGES</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">false</span></code></p></td>
-<td><p>Allows to pre-cache airflow PIP packages
-from the GitHub of Apache Airflow
-This allows to optimize iterations for
-Image builds and speeds up CI builds.</p></td>
-</tr>
-<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PIP_CACHE_EPOCH</span></code></p></td>
-<td><p><code class="docutils literal notranslate"><span class="pre">"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.python_virtualenv" href="../python_virtualenv/index.html" >
<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="p">Previous</button>
- </a><button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" disabled>Next</button>
+ </a>
+ <a rel="next" title="airflow.decorators.setup_teardown" href="../setup_teardown/index.html" >
+ <button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" accesskey="n">Next</button>
+ </a>
</div>
</div>
@@ -1028,11 +923,22 @@ 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.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>
@@ -1057,7 +963,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/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">
@@ -1191,20 +1097,21 @@ new argument.</p></td>
</span>
</div>
</footer>
- <script type="text/javascript" src="_static/_gen/js/docs.js"></script>
- <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+ <script type="text/javascript" src="../../../../_static/_gen/js/docs.js"></script>
+ <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
- <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
- <script src="_static/jquery.js"></script>
- <script src="_static/underscore.js"></script>
- <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
- <script src="_static/doctools.js"></script>
- <script src="_static/sphinx_highlight.js"></script>
- <script src="_static/clipboard.min.js"></script>
- <script src="_static/copybutton.js"></script>
- <script src="_static/js/globaltoc.js"></script>
- <script src="_static/design-tabs.js"></script>
+ <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script>
+ <script src="../../../../_static/jquery.js"></script>
+ <script src="../../../../_static/underscore.js"></script>
+ <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
+ <script src="../../../../_static/doctools.js"></script>
+ <script src="../../../../_static/sphinx_highlight.js"></script>
+ <script src="../../../../_static/clipboard.min.js"></script>
+ <script src="../../../../_static/copybutton.js"></script>
+ <script src="../../../../_static/js/globaltoc.js"></script>
+ <script src="../../../../_static/design-tabs.js"></script>
+ <script src="../../../../_static/gh-jira-links.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs-archive/docker-stack/build-arg-ref.html b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/setup_teardown/index.html
similarity index 68%
copy from docs-archive/docker-stack/build-arg-ref.html
copy to docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/setup_teardown/index.html
index d1057327fa..d47e9e3e03 100644
--- a/docs-archive/docker-stack/build-arg-ref.html
+++ b/docs-archive/apache-airflow/2.10.3/_api/airflow/decorators/setup_teardown/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.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>
@@ -284,8 +286,21 @@
<div class="content-drawer">
<div class="td-sidebar">
+<div id="docs-version-selector" class="docs-version-selector sidebar__version-selector">
+ <a class="dropdown-toggle" href="#" id="versionDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
+ aria-expanded="false">
+ <span class="bodytext__medium--greyish-brown">Version: </span><span class="version">2.10.3</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,22 +330,108 @@
<div class="toctree" role="navigation" aria-label="main navigation">
- <ul>
-<li class="toctree-l1"><a class="reference internal" href="index.html">Home</a></li>
-<li class="toctree-l1"><a class="reference internal" href="build.html">Building the image</a></li>
-<li class="toctree-l1"><a class="reference internal" href="entrypoint.html">Entrypoint</a></li>
-<li class="toctree-l1"><a class="reference internal" href="changelog.html">Dockerfile Changelog</a></li>
-<li class="toctree-l1"><a class="reference internal" href="recipes.html">Recipes</a></li>
-</ul>
-<p class="caption" role="heading"><span class="caption-text">References</span></p>
+ <p class="caption" role="heading"><span class="caption-text">Content</span></p>
<ul class="current">
-<li class="toctree-l1 current"><a class="current reference internal" href="#">Image build arguments reference</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="#basic-arguments">Basic arguments</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#image-optimization-options">Image optimization options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#installing-airflow-using-different-methods">Installing Airflow using different methods</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#pre-caching-pip-dependencies">Pre-caching PIP dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Overview</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../installation/index.html">Installation of Airflow®</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../security/index.html">Security</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/index.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../core-concepts/index.html">Core Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../authoring-and-scheduling/index.html">Authoring and Scheduling</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../administration-and-deployment/index.html">Administration and Deployment</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../public-airflow-interface.html">Public Interface of Airflow</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-airflow-public-interfaces">Using Airflow Public Interfaces</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-the-public-interface-for-dag-authors">Using the Public Interface for DAG Authors</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-extend-airflow-capabilities">Using Public Interface to extend Airflow capabilities</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../../public-airflow-interface.html#using-public-interface-to-integrate-with-external-services-and-applications">Using Public Interface to integrate with external services and applications</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#executors">Executors</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#secrets-backends">Secrets Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#auth-managers">Auth managers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#authentication-backends">Authentication Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#connections">Connections</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#id1">Extra Links</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../public-airflow-interface.html#logging-and-monitoring">Logging and Monitoring</a></li>
+<li class="toctree-l3 current"><a class="reference internal" href="../../../../public-airflow-interface.html#decorators">Decorators</a><ul class="current">
+<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators</span></code></a><ul class="current">
+<li class="toctree-l5 current"><a class="reference internal" href="../index.html#submodules">Submodules</a><ul class="current">
+<li class="toctree-l6"><a class="reference internal" href="../base/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.base</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../bash/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.bash</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_external_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_python</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../branch_virtualenv/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.branch_virtualenv</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../condition/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.condition</span></code></a></li>
+<li class="toctree-l6"><a class="reference internal" href="../external_python/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.decorators.external_python</span></code></a></li>
+<li class="toctree-l6"><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>
... 429166 lines suppressed ...