You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by pi...@apache.org on 2024/08/29 15:52:09 UTC
(airflow) branch main updated: Pydantic v2 and FastAPI as core dependency (#41857)
This is an automated email from the ASF dual-hosted git repository.
pierrejeambrun pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 38e69c7499 Pydantic v2 and FastAPI as core dependency (#41857)
38e69c7499 is described below
commit 38e69c7499fd6186e2d33ebcc832ca2d895806a2
Author: Pierre Jeambrun <pi...@gmail.com>
AuthorDate: Thu Aug 29 17:52:02 2024 +0200
Pydantic v2 and FastAPI as core dependency (#41857)
* update requirements
* Pydantic dependancy is not optional anymore
* add newsfragment
* fix ci
* Fix remnants of deleted tests
---
.github/workflows/run-unit-tests.yml | 6 --
.github/workflows/special-tests.yml | 44 --------
Dockerfile.ci | 41 --------
INSTALL | 4 +-
airflow/operators/python.py | 5 +-
airflow/serialization/pydantic/dag.py | 10 +-
airflow/serialization/pydantic/dag_run.py | 6 +-
airflow/serialization/pydantic/dataset.py | 2 +-
airflow/serialization/pydantic/job.py | 3 +-
airflow/serialization/pydantic/taskinstance.py | 18 ++--
airflow/serialization/pydantic/tasklog.py | 2 +-
airflow/serialization/pydantic/trigger.py | 3 +-
airflow/serialization/serialized_objects.py | 7 +-
airflow/utils/pydantic.py | 61 -----------
.../12_airflow_dependencies_and_extras.rst | 4 +-
dev/breeze/doc/images/output_shell.svg | 48 ++++-----
dev/breeze/doc/images/output_shell.txt | 2 +-
dev/breeze/doc/images/output_testing_db-tests.svg | 116 ++++++++++-----------
dev/breeze/doc/images/output_testing_db-tests.txt | 2 +-
.../doc/images/output_testing_non-db-tests.svg | 116 ++++++++++-----------
.../doc/images/output_testing_non-db-tests.txt | 2 +-
dev/breeze/doc/images/output_testing_tests.svg | 116 ++++++++++-----------
dev/breeze/doc/images/output_testing_tests.txt | 2 +-
.../src/airflow_breeze/commands/common_options.py | 9 --
.../airflow_breeze/commands/developer_commands.py | 4 -
.../commands/developer_commands_config.py | 1 -
.../airflow_breeze/commands/testing_commands.py | 11 --
.../commands/testing_commands_config.py | 3 -
dev/breeze/src/airflow_breeze/global_constants.py | 1 -
.../src/airflow_breeze/params/shell_params.py | 3 -
hatch_build.py | 5 +-
newsfragments/41857.significant.rst | 3 +
pyproject.toml | 4 +-
scripts/ci/docker-compose/devcontainer.env | 1 -
scripts/docker/entrypoint_ci.sh | 42 --------
tests/always/test_example_dags.py | 6 --
tests/operators/test_python.py | 20 +---
tests/serialization/test_serde.py | 2 +-
tests/serialization/test_serialized_objects.py | 2 +-
39 files changed, 237 insertions(+), 500 deletions(-)
diff --git a/.github/workflows/run-unit-tests.yml b/.github/workflows/run-unit-tests.yml
index 7828e50ed7..88ac30c209 100644
--- a/.github/workflows/run-unit-tests.yml
+++ b/.github/workflows/run-unit-tests.yml
@@ -89,11 +89,6 @@ on: # yamllint disable-line rule:truthy
required: false
default: "false"
type: string
- pydantic:
- description: "The version of pydantic to use"
- required: false
- default: "v2"
- type: string
downgrade-pendulum:
description: "Whether to downgrade pendulum or not (true/false)"
required: false
@@ -148,7 +143,6 @@ jobs:
JOB_ID: "${{ inputs.test-scope }}-${{ inputs.test-name }}-${{inputs.backend}}-${{ matrix.backend-version }}-${{ matrix.python-version }}"
MOUNT_SOURCES: "skip"
PARALLEL_TEST_TYPES: "${{ inputs.parallel-test-types-list-as-string }}"
- PYDANTIC: "${{ inputs.pydantic }}"
PYTHON_MAJOR_MINOR_VERSION: "${{ matrix.python-version }}"
UPGRADE_BOTO: "${{ inputs.upgrade-boto }}"
AIRFLOW_MONITOR_DELAY_TIME_IN_SECONDS: "${{inputs.monitor-delay-time-in-seconds}}"
diff --git a/.github/workflows/special-tests.yml b/.github/workflows/special-tests.yml
index 000b5aa3d9..c6b4275de4 100644
--- a/.github/workflows/special-tests.yml
+++ b/.github/workflows/special-tests.yml
@@ -105,50 +105,6 @@ jobs:
run-coverage: ${{ inputs.run-coverage }}
debug-resources: ${{ inputs.debug-resources }}
- tests-pydantic-v1:
- name: "Pydantic v1 test"
- uses: ./.github/workflows/run-unit-tests.yml
- permissions:
- contents: read
- packages: read
- secrets: inherit
- with:
- runs-on-as-json-default: ${{ inputs.runs-on-as-json-default }}
- pydantic: "v1"
- test-name: "Pydantic-V1-Postgres"
- test-scope: "All"
- backend: "postgres"
- image-tag: ${{ inputs.image-tag }}
- python-versions: "['${{ inputs.default-python-version }}']"
- backend-versions: "['${{ inputs.default-postgres-version }}']"
- excludes: "[]"
- parallel-test-types-list-as-string: ${{ inputs.parallel-test-types-list-as-string }}
- include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
- run-coverage: ${{ inputs.run-coverage }}
- debug-resources: ${{ inputs.debug-resources }}
-
- tests-pydantic-none:
- name: "Pydantic removed test"
- uses: ./.github/workflows/run-unit-tests.yml
- permissions:
- contents: read
- packages: read
- secrets: inherit
- with:
- runs-on-as-json-default: ${{ inputs.runs-on-as-json-default }}
- pydantic: "none"
- test-name: "Pydantic-Removed-Postgres"
- test-scope: "All"
- backend: "postgres"
- image-tag: ${{ inputs.image-tag }}
- python-versions: "['${{ inputs.default-python-version }}']"
- backend-versions: "['${{ inputs.default-postgres-version }}']"
- excludes: "[]"
- parallel-test-types-list-as-string: ${{ inputs.parallel-test-types-list-as-string }}
- include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
- run-coverage: ${{ inputs.run-coverage }}
- debug-resources: ${{ inputs.debug-resources }}
-
tests-pendulum-2:
name: "Pendulum2 test"
uses: ./.github/workflows/run-unit-tests.yml
diff --git a/Dockerfile.ci b/Dockerfile.ci
index 25151df8e9..67b6bf861e 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.ci
@@ -1032,46 +1032,6 @@ function check_boto_upgrade() {
pip check
}
-function check_pydantic() {
- if [[ ${PYDANTIC=} == "none" ]]; then
- echo
- echo "${COLOR_YELLOW}Reinstalling airflow from local sources to account for pyproject.toml changes${COLOR_RESET}"
- echo
- # shellcheck disable=SC2086
- ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} -e .
- echo
- echo "${COLOR_YELLOW}Remove pydantic and 3rd party libraries that depend on it${COLOR_RESET}"
- echo
- # shellcheck disable=SC2086
- ${PACKAGING_TOOL_CMD} uninstall ${EXTRA_UNINSTALL_FLAGS} pydantic aws-sam-translator openai \
- pyiceberg qdrant-client cfn-lint weaviate-client google-cloud-aiplatform
- pip check
- elif [[ ${PYDANTIC=} == "v1" ]]; then
- echo
- echo "${COLOR_YELLOW}Reinstalling airflow from local sources to account for pyproject.toml changes${COLOR_RESET}"
- echo
- # shellcheck disable=SC2086
- ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} -e .
- echo
- echo "${COLOR_YELLOW}Uninstalling dependencies which are not compatible with Pydantic 1${COLOR_RESET}"
- echo
- # shellcheck disable=SC2086
- ${PACKAGING_TOOL_CMD} uninstall ${EXTRA_UNINSTALL_FLAGS} pyiceberg weaviate-client
- echo
- echo "${COLOR_YELLOW}Downgrading Pydantic to < 2${COLOR_RESET}"
- echo
- # Pydantic 1.10.17/1.10.15 conflicts with aws-sam-translator so we need to exclude it
- # shellcheck disable=SC2086
- ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} --upgrade "pydantic<2.0.0,!=1.10.17,!=1.10.15"
- pip check
- else
- echo
- echo "${COLOR_BLUE}Leaving default pydantic v2${COLOR_RESET}"
- echo
- fi
-}
-
-
function check_downgrade_sqlalchemy() {
if [[ ${DOWNGRADE_SQLALCHEMY=} != "true" ]]; then
return
@@ -1181,7 +1141,6 @@ function check_force_lowest_dependencies() {
determine_airflow_to_use
environment_initialization
check_boto_upgrade
-check_pydantic
check_downgrade_sqlalchemy
check_downgrade_pendulum
check_force_lowest_dependencies
diff --git a/INSTALL b/INSTALL
index a875fd3728..72ebca79e7 100644
--- a/INSTALL
+++ b/INSTALL
@@ -257,8 +257,8 @@ Those extras are available as regular core airflow extras - they install optiona
# START CORE EXTRAS HERE
aiobotocore, apache-atlas, apache-webhdfs, async, cgroups, cloudpickle, github-enterprise, google-
-auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, pydantic, rabbitmq, s3fs, saml,
-sentry, statsd, uv, virtualenv
+auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, rabbitmq, s3fs, saml, sentry,
+statsd, uv, virtualenv
# END CORE EXTRAS HERE
diff --git a/airflow/operators/python.py b/airflow/operators/python.py
index 47e0cf3193..25c0b8ca68 100644
--- a/airflow/operators/python.py
+++ b/airflow/operators/python.py
@@ -56,7 +56,6 @@ from airflow.utils.context import context_copy_partial, context_get_outlet_event
from airflow.utils.file import get_unique_dag_module_name
from airflow.utils.operator_helpers import ExecutionCallableRunner, KeywordParameters
from airflow.utils.process_utils import execute_in_subprocess
-from airflow.utils.pydantic import is_pydantic_2_installed
from airflow.utils.python_virtualenv import prepare_virtualenv, write_python_script
from airflow.utils.session import create_session
@@ -549,8 +548,8 @@ class _BasePythonVirtualenvOperator(PythonOperator, metaclass=ABCMeta):
self._write_args(input_path)
self._write_string_args(string_args_path)
- if self.use_airflow_context and (not is_pydantic_2_installed() or not _ENABLE_AIP_44):
- error_msg = "`get_current_context()` needs to be used with Pydantic 2 and AIP-44 enabled."
+ if self.use_airflow_context and not _ENABLE_AIP_44:
+ error_msg = "`get_current_context()` needs to be used with AIP-44 enabled."
raise AirflowException(error_msg)
jinja_context = {
diff --git a/airflow/serialization/pydantic/dag.py b/airflow/serialization/pydantic/dag.py
index b916a0e580..f7cb90797d 100644
--- a/airflow/serialization/pydantic/dag.py
+++ b/airflow/serialization/pydantic/dag.py
@@ -20,17 +20,17 @@ import pathlib
from datetime import datetime
from typing import Any, List, Optional
-from typing_extensions import Annotated
-
-from airflow import DAG, settings
-from airflow.configuration import conf as airflow_conf
-from airflow.utils.pydantic import (
+from pydantic import (
BaseModel as BaseModelPydantic,
ConfigDict,
PlainSerializer,
PlainValidator,
ValidationInfo,
)
+from typing_extensions import Annotated
+
+from airflow import DAG, settings
+from airflow.configuration import conf as airflow_conf
def serialize_operator(x: DAG) -> dict:
diff --git a/airflow/serialization/pydantic/dag_run.py b/airflow/serialization/pydantic/dag_run.py
index 63b20ff487..31b7171a3a 100644
--- a/airflow/serialization/pydantic/dag_run.py
+++ b/airflow/serialization/pydantic/dag_run.py
@@ -19,10 +19,11 @@ from __future__ import annotations
from datetime import datetime
from typing import TYPE_CHECKING, Iterable, List, Optional
+from pydantic import BaseModel as BaseModelPydantic, ConfigDict
+
from airflow.models.dagrun import DagRun
from airflow.serialization.pydantic.dag import PydanticDag
from airflow.serialization.pydantic.dataset import DatasetEventPydantic
-from airflow.utils.pydantic import BaseModel as BaseModelPydantic, ConfigDict, is_pydantic_2_installed
if TYPE_CHECKING:
from sqlalchemy.orm import Session
@@ -111,5 +112,4 @@ class DagRunPydantic(BaseModelPydantic):
return DagRun._get_log_template(log_template_id=self.log_template_id)
-if is_pydantic_2_installed():
- DagRunPydantic.model_rebuild()
+DagRunPydantic.model_rebuild()
diff --git a/airflow/serialization/pydantic/dataset.py b/airflow/serialization/pydantic/dataset.py
index 44822c546d..0c233a3fd6 100644
--- a/airflow/serialization/pydantic/dataset.py
+++ b/airflow/serialization/pydantic/dataset.py
@@ -17,7 +17,7 @@
from datetime import datetime
from typing import List, Optional
-from airflow.utils.pydantic import BaseModel as BaseModelPydantic, ConfigDict
+from pydantic import BaseModel as BaseModelPydantic, ConfigDict
class DagScheduleDatasetReferencePydantic(BaseModelPydantic):
diff --git a/airflow/serialization/pydantic/job.py b/airflow/serialization/pydantic/job.py
index bea8e9a3af..ab2dafa178 100644
--- a/airflow/serialization/pydantic/job.py
+++ b/airflow/serialization/pydantic/job.py
@@ -18,9 +18,10 @@ import datetime
from functools import cached_property
from typing import TYPE_CHECKING, Optional
+from pydantic import BaseModel as BaseModelPydantic, ConfigDict
+
from airflow.executors.executor_loader import ExecutorLoader
from airflow.jobs.base_job_runner import BaseJobRunner
-from airflow.utils.pydantic import BaseModel as BaseModelPydantic, ConfigDict
def check_runner_initialized(job_runner: Optional[BaseJobRunner], job_type: str) -> BaseJobRunner:
diff --git a/airflow/serialization/pydantic/taskinstance.py b/airflow/serialization/pydantic/taskinstance.py
index e89d21cd98..0dcb7880eb 100644
--- a/airflow/serialization/pydantic/taskinstance.py
+++ b/airflow/serialization/pydantic/taskinstance.py
@@ -19,6 +19,12 @@ from __future__ import annotations
from datetime import datetime
from typing import TYPE_CHECKING, Any, Iterable, Optional
+from pydantic import (
+ BaseModel as BaseModelPydantic,
+ ConfigDict,
+ PlainSerializer,
+ PlainValidator,
+)
from typing_extensions import Annotated
from airflow.exceptions import AirflowRescheduleException, TaskDeferred
@@ -36,22 +42,15 @@ from airflow.serialization.pydantic.dag import DagModelPydantic
from airflow.serialization.pydantic.dag_run import DagRunPydantic
from airflow.utils.log.logging_mixin import LoggingMixin
from airflow.utils.net import get_hostname
-from airflow.utils.pydantic import (
- BaseModel as BaseModelPydantic,
- ConfigDict,
- PlainSerializer,
- PlainValidator,
- is_pydantic_2_installed,
-)
from airflow.utils.xcom import XCOM_RETURN_KEY
if TYPE_CHECKING:
import pendulum
+ from pydantic import ValidationInfo
from sqlalchemy.orm import Session
from airflow.models.dagrun import DagRun
from airflow.utils.context import Context
- from airflow.utils.pydantic import ValidationInfo
from airflow.utils.state import DagRunState
@@ -552,5 +551,4 @@ class TaskInstancePydantic(BaseModelPydantic, LoggingMixin):
)
-if is_pydantic_2_installed():
- TaskInstancePydantic.model_rebuild()
+TaskInstancePydantic.model_rebuild()
diff --git a/airflow/serialization/pydantic/tasklog.py b/airflow/serialization/pydantic/tasklog.py
index 3fbbf872b8..a23204400c 100644
--- a/airflow/serialization/pydantic/tasklog.py
+++ b/airflow/serialization/pydantic/tasklog.py
@@ -16,7 +16,7 @@
# under the License.
from datetime import datetime
-from airflow.utils.pydantic import BaseModel as BaseModelPydantic, ConfigDict
+from pydantic import BaseModel as BaseModelPydantic, ConfigDict
class LogTemplatePydantic(BaseModelPydantic):
diff --git a/airflow/serialization/pydantic/trigger.py b/airflow/serialization/pydantic/trigger.py
index bf2ce2340c..19a8f6b70c 100644
--- a/airflow/serialization/pydantic/trigger.py
+++ b/airflow/serialization/pydantic/trigger.py
@@ -18,8 +18,9 @@
import datetime
from typing import Any, Dict, Optional
+from pydantic import BaseModel as BaseModelPydantic, ConfigDict
+
from airflow.utils import timezone
-from airflow.utils.pydantic import BaseModel as BaseModelPydantic, ConfigDict
class TriggerPydantic(BaseModelPydantic):
diff --git a/airflow/serialization/serialized_objects.py b/airflow/serialization/serialized_objects.py
index 71bc64c61a..2bbeb8aae9 100644
--- a/airflow/serialization/serialized_objects.py
+++ b/airflow/serialization/serialized_objects.py
@@ -96,6 +96,8 @@ from airflow.utils.types import NOTSET, ArgNotSet, AttributeRemoved
if TYPE_CHECKING:
from inspect import Parameter
+ from pydantic import BaseModel
+
from airflow.models.baseoperatorlink import BaseOperatorLink
from airflow.models.expandinput import ExpandInput
from airflow.models.operator import Operator
@@ -103,7 +105,6 @@ if TYPE_CHECKING:
from airflow.serialization.json_schema import Validator
from airflow.ti_deps.deps.base_ti_dep import BaseTIDep
from airflow.timetables.base import Timetable
- from airflow.utils.pydantic import BaseModel
HAS_KUBERNETES: bool
try:
@@ -364,8 +365,8 @@ def encode_start_trigger_args(var: StartTriggerArgs) -> dict[str, Any]:
:meta private:
"""
- serialize_kwargs = (
- lambda key: BaseSerialization.serialize(getattr(var, key)) if getattr(var, key) is not None else None
+ serialize_kwargs = lambda key: (
+ BaseSerialization.serialize(getattr(var, key)) if getattr(var, key) is not None else None
)
return {
"__type": "START_TRIGGER_ARGS",
diff --git a/airflow/utils/pydantic.py b/airflow/utils/pydantic.py
deleted file mode 100644
index 85fde06195..0000000000
--- a/airflow/utils/pydantic.py
+++ /dev/null
@@ -1,61 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This is an util module that makes Pydantic use optional. While we are using Pydantic in the airflow core
-# codebase, we don't want to make it a hard dependency for all the users of the core codebase, because
-# it is only used in the serialization and deserialization of the models for Internal API and for nothing
-# else, and since Pydantic is a very popular library, we don't want to force the users of the core codebase
-# to install specific Pydantic version - especially that a lot of libraries out there still depend on
-# Pydantic 1 and our internal API uses Pydantic 2+
-
-from __future__ import annotations
-
-from importlib import metadata
-
-from packaging import version
-
-
-def is_pydantic_2_installed() -> bool:
- try:
- return version.parse(metadata.version("pydantic")).major == 2
- except ImportError:
- return False
-
-
-if is_pydantic_2_installed():
- from pydantic import BaseModel, ConfigDict, PlainSerializer, PlainValidator, ValidationInfo
-else:
-
- class BaseModel: # type: ignore[no-redef] # noqa: D101
- def __init__(self, *args, **kwargs):
- pass
-
- class ConfigDict: # type: ignore[no-redef] # noqa: D101
- def __init__(self, *args, **kwargs):
- pass
-
- class PlainSerializer: # type: ignore[no-redef] # noqa: D101
- def __init__(self, *args, **kwargs):
- pass
-
- class PlainValidator: # type: ignore[no-redef] # noqa: D101
- def __init__(self, *args, **kwargs):
- pass
-
- class ValidationInfo: # type: ignore[no-redef] # noqa: D101
- def __init__(self, *args, **kwargs):
- pass
diff --git a/contributing-docs/12_airflow_dependencies_and_extras.rst b/contributing-docs/12_airflow_dependencies_and_extras.rst
index 2bd2c1f953..baccdbf6e0 100644
--- a/contributing-docs/12_airflow_dependencies_and_extras.rst
+++ b/contributing-docs/12_airflow_dependencies_and_extras.rst
@@ -165,8 +165,8 @@ Those extras are available as regular core airflow extras - they install optiona
.. START CORE EXTRAS HERE
aiobotocore, apache-atlas, apache-webhdfs, async, cgroups, cloudpickle, github-enterprise, google-
-auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, pydantic, rabbitmq, s3fs, saml,
-sentry, statsd, uv, virtualenv
+auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, rabbitmq, s3fs, saml, sentry,
+statsd, uv, virtualenv
.. END CORE EXTRAS HERE
diff --git a/dev/breeze/doc/images/output_shell.svg b/dev/breeze/doc/images/output_shell.svg
index 54814bb107..53fb9b978f 100644
--- a/dev/breeze/doc/images/output_shell.svg
+++ b/dev/breeze/doc/images/output_shell.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 3880.7999999999997" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 3856.3999999999996" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -43,7 +43,7 @@
<defs>
<clipPath id="breeze-shell-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="3829.7999999999997" />
+ <rect x="0" y="0" width="1463.0" height="3805.3999999999996" />
</clipPath>
<clipPath id="breeze-shell-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -510,12 +510,9 @@
<clipPath id="breeze-shell-line-154">
<rect x="0" y="3759.1" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="breeze-shell-line-155">
- <rect x="0" y="3783.5" width="1464" height="24.65"/>
- </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="3878.8" rx="8"/><text class="breeze-shell-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: shell</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="3854.4" rx="8"/><text class="breeze-shell-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: shell</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -662,26 +659,25 @@
</text><text class="breeze-shell-r5" x="0" y="3289.6" textLength="12.2" clip-path="url(#breeze-shell-line-134)">│</text><text class="breeze-shell-r4" x="24.4" y="3289.6" textLength="170.8" clip-path="url(#breeze-shell-line-134)">--upgrade-boto</text><text class="breeze-shell-r1" x="341.6" y="3289.6" textLength="866.2" clip-path="url(#breeze-shell-line-134)">Remove aiobotocore and upgrade botocore and boto to the latest version.</text><tex [...]
</text><text class="breeze-shell-r5" x="0" y="3314" textLength="12.2" clip-path="url(#breeze-shell-line-135)">│</text><text class="breeze-shell-r4" x="24.4" y="3314" textLength="268.4" clip-path="url(#breeze-shell-line-135)">--downgrade-sqlalchemy</text><text class="breeze-shell-r1" x="341.6" y="3314" textLength="610" clip-path="url(#breeze-shell-line-135)">Downgrade SQLAlchemy to minimum supported version.</text><text class="breeze-shell-r5" x="1451.8" y="3314" [...]
</text><text class="breeze-shell-r5" x="0" y="3338.4" textLength="12.2" clip-path="url(#breeze-shell-line-136)">│</text><text class="breeze-shell-r4" x="24.4" y="3338.4" textLength="244" clip-path="url(#breeze-shell-line-136)">--downgrade-pendulum</text><text class="breeze-shell-r1" x="341.6" y="3338.4" textLength="585.6" clip-path="url(#breeze-shell-line-136)">Downgrade Pendulum to minimum supported version.</text><text class="breeze-shell-r5" x="1451.8" y="3338 [...]
-</text><text class="breeze-shell-r5" x="0" y="3362.8" textLength="12.2" clip-path="url(#breeze-shell-line-137)">│</text><text class="breeze-shell-r4" x="24.4" y="3362.8" textLength="122" clip-path="url(#breeze-shell-line-137)">--pydantic</text><text class="breeze-shell-r1" x="341.6" y="3362.8" textLength="658.8" clip-path="url(#breeze-shell-line-137)">Determines which pydantic should be used during tests.</text><text class="breeze-shell-r7" x="1012.6" y [...]
-</text><text class="breeze-shell-r5" x="0" y="3387.2" textLength="1464" clip-path="url(#breeze-shell-line-138)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3387.2" textLength="12.2" clip-path="url(#breeze-shell-line-138)">
-</text><text class="breeze-shell-r5" x="0" y="3411.6" textLength="24.4" clip-path="url(#breeze-shell-line-139)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3411.6" textLength="183" clip-path="url(#breeze-shell-line-139)"> DB test flags </text><text class="breeze-shell-r5" x="207.4" y="3411.6" textLength="1232.2" clip-path="url(#breeze-shell-line-139)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><te [...]
-</text><text class="breeze-shell-r5" x="0" y="3436" textLength="12.2" clip-path="url(#breeze-shell-line-140)">│</text><text class="breeze-shell-r4" x="24.4" y="3436" textLength="231.8" clip-path="url(#breeze-shell-line-140)">--run-db-tests-only</text><text class="breeze-shell-r1" x="305" y="3436" textLength="475.8" clip-path="url(#breeze-shell-line-140)">Only runs tests that require a database</text><text class="breeze-shell-r5" x="1451.8" y="3436" textLengt [...]
-</text><text class="breeze-shell-r5" x="0" y="3460.4" textLength="12.2" clip-path="url(#breeze-shell-line-141)">│</text><text class="breeze-shell-r4" x="24.4" y="3460.4" textLength="183" clip-path="url(#breeze-shell-line-141)">--skip-db-tests</text><text class="breeze-shell-r1" x="305" y="3460.4" textLength="414.8" clip-path="url(#breeze-shell-line-141)">Skip tests that require a database</text><text class="breeze-shell-r5" x="1451.8" y="3460.4" textLength="12.2" [...]
-</text><text class="breeze-shell-r5" x="0" y="3484.8" textLength="1464" clip-path="url(#breeze-shell-line-142)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3484.8" textLength="12.2" clip-path="url(#breeze-shell-line-142)">
-</text><text class="breeze-shell-r5" x="0" y="3509.2" textLength="24.4" clip-path="url(#breeze-shell-line-143)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3509.2" textLength="183" clip-path="url(#breeze-shell-line-143)"> Other options </text><text class="breeze-shell-r5" x="207.4" y="3509.2" textLength="1232.2" clip-path="url(#breeze-shell-line-143)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cl [...]
-</text><text class="breeze-shell-r5" x="0" y="3533.6" textLength="12.2" clip-path="url(#breeze-shell-line-144)">│</text><text class="breeze-shell-r4" x="24.4" y="3533.6" textLength="256.2" clip-path="url(#breeze-shell-line-144)">--forward-credentials</text><text class="breeze-shell-r6" x="305" y="3533.6" textLength="24.4" clip-path="url(#breeze-shell-line-144)">-f</text><text class="breeze-shell-r1" x="353.8" y="3533.6" textLength="634.4" clip-path="url(#breeze-shell-line-144)">Forward&# [...]
-</text><text class="breeze-shell-r5" x="0" y="3558" textLength="12.2" clip-path="url(#breeze-shell-line-145)">│</text><text class="breeze-shell-r4" x="24.4" y="3558" textLength="122" clip-path="url(#breeze-shell-line-145)">--max-time</text><text class="breeze-shell-r1" x="353.8" y="3558" textLength="1049.2" clip-path="url(#breeze-shell-line-145)">Maximum time that the command should take - if it takes longer, the command [...]
-</text><text class="breeze-shell-r5" x="0" y="3582.4" textLength="12.2" clip-path="url(#breeze-shell-line-146)">│</text><text class="breeze-shell-r7" x="353.8" y="3582.4" textLength="1049.2" clip-path="url(#breeze-shell-line-146)">(INTEGER RANGE)                                        & [...]
-</text><text class="breeze-shell-r5" x="0" y="3606.8" textLength="12.2" clip-path="url(#breeze-shell-line-147)">│</text><text class="breeze-shell-r4" x="24.4" y="3606.8" textLength="219.6" clip-path="url(#breeze-shell-line-147)">--verbose-commands</text><text class="breeze-shell-r1" x="353.8" y="3606.8" textLength="414.8" clip-path="url(#breeze-shell-line-147)">Show details of commands executed.</text><text class="breeze-shell-r5" x="1451.8" y="3606.8" textLength="12. [...]
-</text><text class="breeze-shell-r5" x="0" y="3631.2" textLength="12.2" clip-path="url(#breeze-shell-line-148)">│</text><text class="breeze-shell-r4" x="24.4" y="3631.2" textLength="244" clip-path="url(#breeze-shell-line-148)">--keep-env-variables</text><text class="breeze-shell-r1" x="353.8" y="3631.2" textLength="1000.4" clip-path="url(#breeze-shell-line-148)">Do not clear environment variables that might have side effect while run [...]
-</text><text class="breeze-shell-r5" x="0" y="3655.6" textLength="12.2" clip-path="url(#breeze-shell-line-149)">│</text><text class="breeze-shell-r4" x="24.4" y="3655.6" textLength="183" clip-path="url(#breeze-shell-line-149)">--no-db-cleanup</text><text class="breeze-shell-r1" x="353.8" y="3655.6" textLength="597.8" clip-path="url(#breeze-shell-line-149)">Do not clear the database before each test module</text><text class="breeze-shell-r5" x="1451 [...]
-</text><text class="breeze-shell-r5" x="0" y="3680" textLength="1464" clip-path="url(#breeze-shell-line-150)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3680" textLength="12.2" clip-path="url(#breeze-shell-line-150)">
-</text><text class="breeze-shell-r5" x="0" y="3704.4" textLength="24.4" clip-path="url(#breeze-shell-line-151)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3704.4" textLength="195.2" clip-path="url(#breeze-shell-line-151)"> Common options </text><text class="breeze-shell-r5" x="219.6" y="3704.4" textLength="1220" clip-path="url(#breeze-shell-line-151)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cl [...]
-</text><text class="breeze-shell-r5" x="0" y="3728.8" textLength="12.2" clip-path="url(#breeze-shell-line-152)">│</text><text class="breeze-shell-r4" x="24.4" y="3728.8" textLength="97.6" clip-path="url(#breeze-shell-line-152)">--answer</text><text class="breeze-shell-r6" x="158.6" y="3728.8" textLength="24.4" clip-path="url(#breeze-shell-line-152)">-a</text><text class="breeze-shell-r1" x="207.4" y="3728.8" textLength="317.2" clip-path="url(#breeze-shell-line-152)">Force answer [...]
-</text><text class="breeze-shell-r5" x="0" y="3753.2" textLength="12.2" clip-path="url(#breeze-shell-line-153)">│</text><text class="breeze-shell-r4" x="24.4" y="3753.2" textLength="109.8" clip-path="url(#breeze-shell-line-153)">--dry-run</text><text class="breeze-shell-r6" x="158.6" y="3753.2" textLength="24.4" clip-path="url(#breeze-shell-line-153)">-D</text><text class="breeze-shell-r1" x="207.4" y="3753.2" textLength="719.8" clip-path="url(#breeze-shell-line-153)">If dry-run [...]
-</text><text class="breeze-shell-r5" x="0" y="3777.6" textLength="12.2" clip-path="url(#breeze-shell-line-154)">│</text><text class="breeze-shell-r4" x="24.4" y="3777.6" textLength="109.8" clip-path="url(#breeze-shell-line-154)">--verbose</text><text class="breeze-shell-r6" x="158.6" y="3777.6" textLength="24.4" clip-path="url(#breeze-shell-line-154)">-v</text><text class="breeze-shell-r1" x="207.4" y="3777.6" textLength="585.6" clip-path="url(#breeze-shell-line-154)">Print verbose& [...]
-</text><text class="breeze-shell-r5" x="0" y="3802" textLength="12.2" clip-path="url(#breeze-shell-line-155)">│</text><text class="breeze-shell-r4" x="24.4" y="3802" textLength="73.2" clip-path="url(#breeze-shell-line-155)">--help</text><text class="breeze-shell-r6" x="158.6" y="3802" textLength="24.4" clip-path="url(#breeze-shell-line-155)">-h</text><text class="breeze-shell-r1" x="207.4" y="3802" textLength="329.4" clip-path="url(#breeze-shell-line-155)">Show this message [...]
-</text><text class="breeze-shell-r5" x="0" y="3826.4" textLength="1464" clip-path="url(#breeze-shell-line-156)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3826.4" textLength="12.2" clip-path="url(#breeze-shell-line-156)">
+</text><text class="breeze-shell-r5" x="0" y="3362.8" textLength="1464" clip-path="url(#breeze-shell-line-137)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3362.8" textLength="12.2" clip-path="url(#breeze-shell-line-137)">
+</text><text class="breeze-shell-r5" x="0" y="3387.2" textLength="24.4" clip-path="url(#breeze-shell-line-138)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3387.2" textLength="183" clip-path="url(#breeze-shell-line-138)"> DB test flags </text><text class="breeze-shell-r5" x="207.4" y="3387.2" textLength="1232.2" clip-path="url(#breeze-shell-line-138)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><te [...]
+</text><text class="breeze-shell-r5" x="0" y="3411.6" textLength="12.2" clip-path="url(#breeze-shell-line-139)">│</text><text class="breeze-shell-r4" x="24.4" y="3411.6" textLength="231.8" clip-path="url(#breeze-shell-line-139)">--run-db-tests-only</text><text class="breeze-shell-r1" x="305" y="3411.6" textLength="475.8" clip-path="url(#breeze-shell-line-139)">Only runs tests that require a database</text><text class="breeze-shell-r5" x="1451.8" y="3411.6" t [...]
+</text><text class="breeze-shell-r5" x="0" y="3436" textLength="12.2" clip-path="url(#breeze-shell-line-140)">│</text><text class="breeze-shell-r4" x="24.4" y="3436" textLength="183" clip-path="url(#breeze-shell-line-140)">--skip-db-tests</text><text class="breeze-shell-r1" x="305" y="3436" textLength="414.8" clip-path="url(#breeze-shell-line-140)">Skip tests that require a database</text><text class="breeze-shell-r5" x="1451.8" y="3436" textLength="12.2" clip-pa [...]
+</text><text class="breeze-shell-r5" x="0" y="3460.4" textLength="1464" clip-path="url(#breeze-shell-line-141)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3460.4" textLength="12.2" clip-path="url(#breeze-shell-line-141)">
+</text><text class="breeze-shell-r5" x="0" y="3484.8" textLength="24.4" clip-path="url(#breeze-shell-line-142)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3484.8" textLength="183" clip-path="url(#breeze-shell-line-142)"> Other options </text><text class="breeze-shell-r5" x="207.4" y="3484.8" textLength="1232.2" clip-path="url(#breeze-shell-line-142)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cl [...]
+</text><text class="breeze-shell-r5" x="0" y="3509.2" textLength="12.2" clip-path="url(#breeze-shell-line-143)">│</text><text class="breeze-shell-r4" x="24.4" y="3509.2" textLength="256.2" clip-path="url(#breeze-shell-line-143)">--forward-credentials</text><text class="breeze-shell-r6" x="305" y="3509.2" textLength="24.4" clip-path="url(#breeze-shell-line-143)">-f</text><text class="breeze-shell-r1" x="353.8" y="3509.2" textLength="634.4" clip-path="url(#breeze-shell-line-143)">Forward&# [...]
+</text><text class="breeze-shell-r5" x="0" y="3533.6" textLength="12.2" clip-path="url(#breeze-shell-line-144)">│</text><text class="breeze-shell-r4" x="24.4" y="3533.6" textLength="122" clip-path="url(#breeze-shell-line-144)">--max-time</text><text class="breeze-shell-r1" x="353.8" y="3533.6" textLength="1049.2" clip-path="url(#breeze-shell-line-144)">Maximum time that the command should take - if it takes longer, the comm [...]
+</text><text class="breeze-shell-r5" x="0" y="3558" textLength="12.2" clip-path="url(#breeze-shell-line-145)">│</text><text class="breeze-shell-r7" x="353.8" y="3558" textLength="1049.2" clip-path="url(#breeze-shell-line-145)">(INTEGER RANGE)                                          [...]
+</text><text class="breeze-shell-r5" x="0" y="3582.4" textLength="12.2" clip-path="url(#breeze-shell-line-146)">│</text><text class="breeze-shell-r4" x="24.4" y="3582.4" textLength="219.6" clip-path="url(#breeze-shell-line-146)">--verbose-commands</text><text class="breeze-shell-r1" x="353.8" y="3582.4" textLength="414.8" clip-path="url(#breeze-shell-line-146)">Show details of commands executed.</text><text class="breeze-shell-r5" x="1451.8" y="3582.4" textLength="12. [...]
+</text><text class="breeze-shell-r5" x="0" y="3606.8" textLength="12.2" clip-path="url(#breeze-shell-line-147)">│</text><text class="breeze-shell-r4" x="24.4" y="3606.8" textLength="244" clip-path="url(#breeze-shell-line-147)">--keep-env-variables</text><text class="breeze-shell-r1" x="353.8" y="3606.8" textLength="1000.4" clip-path="url(#breeze-shell-line-147)">Do not clear environment variables that might have side effect while run [...]
+</text><text class="breeze-shell-r5" x="0" y="3631.2" textLength="12.2" clip-path="url(#breeze-shell-line-148)">│</text><text class="breeze-shell-r4" x="24.4" y="3631.2" textLength="183" clip-path="url(#breeze-shell-line-148)">--no-db-cleanup</text><text class="breeze-shell-r1" x="353.8" y="3631.2" textLength="597.8" clip-path="url(#breeze-shell-line-148)">Do not clear the database before each test module</text><text class="breeze-shell-r5" x="1451 [...]
+</text><text class="breeze-shell-r5" x="0" y="3655.6" textLength="1464" clip-path="url(#breeze-shell-line-149)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3655.6" textLength="12.2" clip-path="url(#breeze-shell-line-149)">
+</text><text class="breeze-shell-r5" x="0" y="3680" textLength="24.4" clip-path="url(#breeze-shell-line-150)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3680" textLength="195.2" clip-path="url(#breeze-shell-line-150)"> Common options </text><text class="breeze-shell-r5" x="219.6" y="3680" textLength="1220" clip-path="url(#breeze-shell-line-150)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="b [...]
+</text><text class="breeze-shell-r5" x="0" y="3704.4" textLength="12.2" clip-path="url(#breeze-shell-line-151)">│</text><text class="breeze-shell-r4" x="24.4" y="3704.4" textLength="97.6" clip-path="url(#breeze-shell-line-151)">--answer</text><text class="breeze-shell-r6" x="158.6" y="3704.4" textLength="24.4" clip-path="url(#breeze-shell-line-151)">-a</text><text class="breeze-shell-r1" x="207.4" y="3704.4" textLength="317.2" clip-path="url(#breeze-shell-line-151)">Force answer [...]
+</text><text class="breeze-shell-r5" x="0" y="3728.8" textLength="12.2" clip-path="url(#breeze-shell-line-152)">│</text><text class="breeze-shell-r4" x="24.4" y="3728.8" textLength="109.8" clip-path="url(#breeze-shell-line-152)">--dry-run</text><text class="breeze-shell-r6" x="158.6" y="3728.8" textLength="24.4" clip-path="url(#breeze-shell-line-152)">-D</text><text class="breeze-shell-r1" x="207.4" y="3728.8" textLength="719.8" clip-path="url(#breeze-shell-line-152)">If dry-run [...]
+</text><text class="breeze-shell-r5" x="0" y="3753.2" textLength="12.2" clip-path="url(#breeze-shell-line-153)">│</text><text class="breeze-shell-r4" x="24.4" y="3753.2" textLength="109.8" clip-path="url(#breeze-shell-line-153)">--verbose</text><text class="breeze-shell-r6" x="158.6" y="3753.2" textLength="24.4" clip-path="url(#breeze-shell-line-153)">-v</text><text class="breeze-shell-r1" x="207.4" y="3753.2" textLength="585.6" clip-path="url(#breeze-shell-line-153)">Print verbose& [...]
+</text><text class="breeze-shell-r5" x="0" y="3777.6" textLength="12.2" clip-path="url(#breeze-shell-line-154)">│</text><text class="breeze-shell-r4" x="24.4" y="3777.6" textLength="73.2" clip-path="url(#breeze-shell-line-154)">--help</text><text class="breeze-shell-r6" x="158.6" y="3777.6" textLength="24.4" clip-path="url(#breeze-shell-line-154)">-h</text><text class="breeze-shell-r1" x="207.4" y="3777.6" textLength="329.4" clip-path="url(#breeze-shell-line-154)">Show this mes [...]
+</text><text class="breeze-shell-r5" x="0" y="3802" textLength="1464" clip-path="url(#breeze-shell-line-155)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3802" textLength="12.2" clip-path="url(#breeze-shell-line-155)">
</text>
</g>
</g>
diff --git a/dev/breeze/doc/images/output_shell.txt b/dev/breeze/doc/images/output_shell.txt
index 9443a8f293..080a9a26f9 100644
--- a/dev/breeze/doc/images/output_shell.txt
+++ b/dev/breeze/doc/images/output_shell.txt
@@ -1 +1 @@
-23410acb975d790d4f6bbd037cb54dff
+1ff986d98038ff346617ad0224a7f7ad
diff --git a/dev/breeze/doc/images/output_testing_db-tests.svg b/dev/breeze/doc/images/output_testing_db-tests.svg
index 398233f575..7ef7056dce 100644
--- a/dev/breeze/doc/images/output_testing_db-tests.svg
+++ b/dev/breeze/doc/images/output_testing_db-tests.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 2782.7999999999997" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 2758.3999999999996" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -43,7 +43,7 @@
<defs>
<clipPath id="breeze-testing-db-tests-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="2731.7999999999997" />
+ <rect x="0" y="0" width="1463.0" height="2707.3999999999996" />
</clipPath>
<clipPath id="breeze-testing-db-tests-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -375,12 +375,9 @@
<clipPath id="breeze-testing-db-tests-line-109">
<rect x="0" y="2661.1" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="breeze-testing-db-tests-line-110">
- <rect x="0" y="2685.5" width="1464" height="24.65"/>
- </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2780.8" rx="8"/><text class="breeze-testing-db-tests-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: testing db-tests</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2756.4" rx="8"/><text class="breeze-testing-db-tests-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: testing db-tests</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -448,60 +445,59 @@
</text><text class="breeze-testing-db-tests-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-55)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1362" textLength="170.8" clip-path="url(#breeze-testing-db-tests-line-55)">--upgrade-boto</text><text class="breeze-testing-db-tests-r1" x="341.6" y="1362" textLength="866.2" clip-path="url(#breeze-testing-db-tests-line-55)">Remove aiobotocore and upgrade botocore and b [...]
</text><text class="breeze-testing-db-tests-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-56)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1386.4" textLength="268.4" clip-path="url(#breeze-testing-db-tests-line-56)">--downgrade-sqlalchemy</text><text class="breeze-testing-db-tests-r1" x="341.6" y="1386.4" textLength="610" clip-path="url(#breeze-testing-db-tests-line-56)">Downgrade SQLAlchemy to minimum supported&# [...]
</text><text class="breeze-testing-db-tests-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-57)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1410.8" textLength="244" clip-path="url(#breeze-testing-db-tests-line-57)">--downgrade-pendulum</text><text class="breeze-testing-db-tests-r1" x="341.6" y="1410.8" textLength="585.6" clip-path="url(#breeze-testing-db-tests-line-57)">Downgrade Pendulum to minimum supported  [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-58)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1435.2" textLength="122" clip-path="url(#breeze-testing-db-tests-line-58)">--pydantic</text><text class="breeze-testing-db-tests-r1" x="341.6" y="1435.2" textLength="658.8" clip-path="url(#breeze-testing-db-tests-line-58)">Determines which pydantic should be used duri [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-59)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1459.6" textLength="256.2" clip-path="url(#breeze-testing-db-tests-line-59)">--remove-arm-packages</text><text class="breeze-testing-db-tests-r1" x="341.6" y="1459.6" textLength="817.4" clip-path="url(#breeze-testing-db-tests-line-59)">Removes arm packages from the image&# [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1484" textLength="1464" clip-path="url(#breeze-testing-db-tests-line-60)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-db-tests-r1" x="1464" y="1484" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-60)">
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1508.4" textLength="24.4" clip-path="url(#breeze-testing-db-tests-line-61)">╭─</text><text class="breeze-testing-db-tests-r5" x="24.4" y="1508.4" textLength="402.6" clip-path="url(#breeze-testing-db-tests-line-61)"> Advanced flag for tests command </text><text class="breeze-testing-db-tests-r5" x="427" y="1508.4" textLength="1012.6" clip-path="url(#breeze-testing-db-tests-line-61)">──────────────────── [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-62)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1532.8" textLength="378.2" clip-path="url(#breeze-testing-db-tests-line-62)">--airflow-constraints-reference</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1532.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-62)">Constraint reference to use for [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-63)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1557.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-63)">(used in calculated constraints URL).                  </text><text class="breeze-testing-db-tests-r5" x="1451.8 [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-64)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="1581.6" textLength="671" clip-path="url(#breeze-testing-db-tests-line-64)">(TEXT)                                     [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-65)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1606" textLength="341.6" clip-path="url(#breeze-testing-db-tests-line-65)">--clean-airflow-installation</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1606" textLength="671" clip-path="url(#breeze-testing-db-tests-line-65)">Clean the airflow installation before  [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-66)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1630.4" textLength="256.2" clip-path="url(#breeze-testing-db-tests-line-66)">version specified by </text><text class="breeze-testing-db-tests-r4" x="1024.8" y="1630.4" textLength="256.2" clip-path="url(#breeze-testing-db-tests-line-66)">--use-airflow-version</text><text class="bree [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1654.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-67)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1654.8" textLength="329.4" clip-path="url(#breeze-testing-db-tests-line-67)">--force-lowest-dependencies</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1654.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-67)">Run tests for the lowest direct&# [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1679.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-68)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1679.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-68)">or selected provider if `Provider[PROVIDER_ID]` is used</text><text class="breeze-testing-db-tests-r5" x="1451.8" y="1679.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-68)" [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-69)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1703.6" textLength="671" clip-path="url(#breeze-testing-db-tests-line-69)">as test type.                                 & [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-70)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1728" textLength="231.8" clip-path="url(#breeze-testing-db-tests-line-70)">--github-repository</text><text class="breeze-testing-db-tests-r7" x="719.8" y="1728" textLength="24.4" clip-path="url(#breeze-testing-db-tests-line-70)">-g</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1728" te [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-71)">│</text><text class="breeze-testing-db-tests-r5" x="768.6" y="1752.4" textLength="585.6" clip-path="url(#breeze-testing-db-tests-line-71)">[default: apache/airflow]                       </text><text class="breeze-testing-db-tests-r5" x="1 [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-72)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1776.8" textLength="134.2" clip-path="url(#breeze-testing-db-tests-line-72)">--image-tag</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1776.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-72)">Tag of the image which is used to  [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-73)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1801.2" textLength="109.8" clip-path="url(#breeze-testing-db-tests-line-73)">(implies </text><text class="breeze-testing-db-tests-r4" x="878.4" y="1801.2" textLength="183" clip-path="url(#breeze-testing-db-tests-line-73)">--mount-sources</text><text class="breeze-testing-db-tests-r1" x="1061 [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-74)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="1825.6" textLength="671" clip-path="url(#breeze-testing-db-tests-line-74)">(TEXT)                                     [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1850" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-75)">│</text><text class="breeze-testing-db-tests-r5" x="768.6" y="1850" textLength="671" clip-path="url(#breeze-testing-db-tests-line-75)">[default: latest]                                   [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1874.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-76)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1874.4" textLength="414.8" clip-path="url(#breeze-testing-db-tests-line-76)">--install-airflow-with-constraints</text><text class="breeze-testing-db-tests-r1" x="439.2" y="1874.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-76)">/</text><text class="breeze-testing-db-tests-r4" x [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1898.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-77)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1898.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-77)">determined from package or airflow version.            </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="1898.8" textLength=" [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-78)">│</text><text class="breeze-testing-db-tests-r5" x="768.6" y="1923.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-78)">[default: no-install-airflow-with-constraints]         </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="1923.2" textLength="12.2" clip-path="url(#breeze-testin [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-79)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1947.6" textLength="195.2" clip-path="url(#breeze-testing-db-tests-line-79)">--package-format</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1947.6" textLength="231.8" clip-path="url(#breeze-testing-db-tests-line-79)">Format of packages.</text><text class="breeze-testing-db- [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-80)">│</text><text class="breeze-testing-db-tests-r5" x="768.6" y="1972" textLength="231.8" clip-path="url(#breeze-testing-db-tests-line-80)">[default: wheel]   </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="1972" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-80)">│</text><text class="breeze-testing-db-tests-r1" [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-81)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1996.4" textLength="390.4" clip-path="url(#breeze-testing-db-tests-line-81)">--providers-constraints-location</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1996.4" textLength="671" clip-path="url(#breeze-testing-db-tests-line-81)">Location of providers constraints  [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-82)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2020.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-82)">local context file).                                 [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-83)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="2045.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-83)">(TEXT)                                     [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-84)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2069.6" textLength="341.6" clip-path="url(#breeze-testing-db-tests-line-84)">--providers-skip-constraints</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2069.6" textLength="597.8" clip-path="url(#breeze-testing-db-tests-line-84)">Do not use constraints when in [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-85)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2094" textLength="256.2" clip-path="url(#breeze-testing-db-tests-line-85)">--use-airflow-version</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2094" textLength="671" clip-path="url(#breeze-testing-db-tests-line-85)">Use (reinstall at entry) Airflow version  [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-86)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2118.4" textLength="671" clip-path="url(#breeze-testing-db-tests-line-86)">can also be version (to install from PyPI), `none`,    </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="2118.4" textLength="12.2" clip-path="url(#bre [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-87)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2142.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-87)">`wheel`, or `sdist` to install from `dist` folder, or  </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="2142.8" textLength="12.2" clip-path="url(#breeze-testin [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-88)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2167.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-88)">VCS URL to install from                               [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-89)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2191.6" textLength="671" clip-path="url(#breeze-testing-db-tests-line-89)">(https://pip.pypa.io/en/stable/topics/vcs-support/).   </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-89)">│</text><text [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-90)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2216" textLength="97.6" clip-path="url(#breeze-testing-db-tests-line-90)">Implies </text><text class="breeze-testing-db-tests-r4" x="866.2" y="2216" textLength="183" clip-path="url(#breeze-testing-db-tests-line-90)">--mount-sources</text><text class="breeze-testing-db-tests-r1" x="1049.2" y="2 [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-91)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="2240.4" textLength="671" clip-path="url(#breeze-testing-db-tests-line-91)">(none | wheel | sdist | <airflow_version>)             </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="2240 [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-92)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2264.8" textLength="292.8" clip-path="url(#breeze-testing-db-tests-line-92)">--use-packages-from-dist</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2264.8" textLength="341.6" clip-path="url(#breeze-testing-db-tests-line-92)">Install all found packages (</text><tex [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-93)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2289.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-93)">type) from 'dist' folder when entering breeze.         </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="2289.2" textLength=" [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-94)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2313.6" textLength="183" clip-path="url(#breeze-testing-db-tests-line-94)">--mount-sources</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2313.6" textLength="671" clip-path="url(#breeze-testing-db-tests-line-94)">Choose scope of local sources that should& [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-95)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2338" textLength="671" clip-path="url(#breeze-testing-db-tests-line-95)">skipped, or removed (default = selected).              </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="2338" textLeng [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-96)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="2362.4" textLength="671" clip-path="url(#breeze-testing-db-tests-line-96)">(selected | all | skip | remove | tests |              </text><text class="breeze-testing-db-tests-r5" x="1 [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-97)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="2386.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-97)">providers-and-tests)                                  [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-98)">│</text><text class="breeze-testing-db-tests-r5" x="768.6" y="2411.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-98)">[default: selected]                                  [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-99)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2435.6" textLength="317.2" clip-path="url(#breeze-testing-db-tests-line-99)">--skip-docker-compose-down</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2435.6" textLength="549" clip-path="url(#breeze-testing-db-tests-line-99)">Skips running docker-compose down after [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-100)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2460" textLength="195.2" clip-path="url(#breeze-testing-db-tests-line-100)">--skip-providers</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2460" textLength="671" clip-path="url(#breeze-testing-db-tests-line-100)">Space-separated list of provider ids to sk [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2484.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-101)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2484.4" textLength="671" clip-path="url(#breeze-testing-db-tests-line-101)">running tests                                  [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2508.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-102)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="2508.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-102)">(TEXT)                                    [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-103)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2533.2" textLength="244" clip-path="url(#breeze-testing-db-tests-line-103)">--keep-env-variables</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2533.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-103)">Do not clear environment variables that [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-104)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2557.6" textLength="671" clip-path="url(#breeze-testing-db-tests-line-104)">effect while running tests                             </tex [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2582" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-105)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2582" textLength="183" clip-path="url(#breeze-testing-db-tests-line-105)">--no-db-cleanup</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2582" textLength="597.8" clip-path="url(#breeze-testing-db-tests-line-105)">Do not clear the database before each  [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2606.4" textLength="1464" clip-path="url(#breeze-testing-db-tests-line-106)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-db-tests-r1" x="1464" y="2606.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-106)">
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2630.8" textLength="24.4" clip-path="url(#breeze-testing-db-tests-line-107)">╭─</text><text class="breeze-testing-db-tests-r5" x="24.4" y="2630.8" textLength="195.2" clip-path="url(#breeze-testing-db-tests-line-107)"> Common options </text><text class="breeze-testing-db-tests-r5" x="219.6" y="2630.8" textLength="1220" clip-path="url(#breeze-testing-db-tests-line-107)">───────────────────────────────────────────────── [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2655.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-108)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2655.2" textLength="109.8" clip-path="url(#breeze-testing-db-tests-line-108)">--dry-run</text><text class="breeze-testing-db-tests-r7" x="158.6" y="2655.2" textLength="24.4" clip-path="url(#breeze-testing-db-tests-line-108)">-D</text><text class="breeze-testing-db-tests-r1" x="207.4" y="2655.2" t [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2679.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-109)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2679.6" textLength="109.8" clip-path="url(#breeze-testing-db-tests-line-109)">--verbose</text><text class="breeze-testing-db-tests-r7" x="158.6" y="2679.6" textLength="24.4" clip-path="url(#breeze-testing-db-tests-line-109)">-v</text><text class="breeze-testing-db-tests-r1" x="207.4" y="2679.6" t [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2704" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-110)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2704" textLength="73.2" clip-path="url(#breeze-testing-db-tests-line-110)">--help</text><text class="breeze-testing-db-tests-r7" x="158.6" y="2704" textLength="24.4" clip-path="url(#breeze-testing-db-tests-line-110)">-h</text><text class="breeze-testing-db-tests-r1" x="207.4" y="2704" textLength="3 [...]
-</text><text class="breeze-testing-db-tests-r5" x="0" y="2728.4" textLength="1464" clip-path="url(#breeze-testing-db-tests-line-111)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-db-tests-r1" x="1464" y="2728.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-111)">
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-58)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1435.2" textLength="256.2" clip-path="url(#breeze-testing-db-tests-line-58)">--remove-arm-packages</text><text class="breeze-testing-db-tests-r1" x="341.6" y="1435.2" textLength="817.4" clip-path="url(#breeze-testing-db-tests-line-58)">Removes arm packages from the image&# [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1459.6" textLength="1464" clip-path="url(#breeze-testing-db-tests-line-59)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-db-tests-r1" x="1464" y="1459.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-59)">
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1484" textLength="24.4" clip-path="url(#breeze-testing-db-tests-line-60)">╭─</text><text class="breeze-testing-db-tests-r5" x="24.4" y="1484" textLength="402.6" clip-path="url(#breeze-testing-db-tests-line-60)"> Advanced flag for tests command </text><text class="breeze-testing-db-tests-r5" x="427" y="1484" textLength="1012.6" clip-path="url(#breeze-testing-db-tests-line-60)">────────────────────────── [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1508.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-61)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1508.4" textLength="378.2" clip-path="url(#breeze-testing-db-tests-line-61)">--airflow-constraints-reference</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1508.4" textLength="671" clip-path="url(#breeze-testing-db-tests-line-61)">Constraint reference to use for [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-62)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1532.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-62)">(used in calculated constraints URL).                  </text><text class="breeze-testing-db-tests-r5" x="1451.8 [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-63)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="1557.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-63)">(TEXT)                                     [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-64)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1581.6" textLength="341.6" clip-path="url(#breeze-testing-db-tests-line-64)">--clean-airflow-installation</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1581.6" textLength="671" clip-path="url(#breeze-testing-db-tests-line-64)">Clean the airflow installation before [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-65)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1606" textLength="256.2" clip-path="url(#breeze-testing-db-tests-line-65)">version specified by </text><text class="breeze-testing-db-tests-r4" x="1024.8" y="1606" textLength="256.2" clip-path="url(#breeze-testing-db-tests-line-65)">--use-airflow-version</text><text class="breeze-tes [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-66)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1630.4" textLength="329.4" clip-path="url(#breeze-testing-db-tests-line-66)">--force-lowest-dependencies</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1630.4" textLength="671" clip-path="url(#breeze-testing-db-tests-line-66)">Run tests for the lowest direct&# [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1654.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-67)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1654.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-67)">or selected provider if `Provider[PROVIDER_ID]` is used</text><text class="breeze-testing-db-tests-r5" x="1451.8" y="1654.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-67)" [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1679.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-68)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1679.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-68)">as test type.                                 & [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-69)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1703.6" textLength="231.8" clip-path="url(#breeze-testing-db-tests-line-69)">--github-repository</text><text class="breeze-testing-db-tests-r7" x="719.8" y="1703.6" textLength="24.4" clip-path="url(#breeze-testing-db-tests-line-69)">-g</text><text class="breeze-testing-db-tests-r1" x="768.6" y="17 [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-70)">│</text><text class="breeze-testing-db-tests-r5" x="768.6" y="1728" textLength="585.6" clip-path="url(#breeze-testing-db-tests-line-70)">[default: apache/airflow]                       </text><text class="breeze-testing-db-tests-r5" x="1451. [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-71)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1752.4" textLength="134.2" clip-path="url(#breeze-testing-db-tests-line-71)">--image-tag</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1752.4" textLength="671" clip-path="url(#breeze-testing-db-tests-line-71)">Tag of the image which is used to  [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-72)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1776.8" textLength="109.8" clip-path="url(#breeze-testing-db-tests-line-72)">(implies </text><text class="breeze-testing-db-tests-r4" x="878.4" y="1776.8" textLength="183" clip-path="url(#breeze-testing-db-tests-line-72)">--mount-sources</text><text class="breeze-testing-db-tests-r1" x="1061 [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-73)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="1801.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-73)">(TEXT)                                     [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-74)">│</text><text class="breeze-testing-db-tests-r5" x="768.6" y="1825.6" textLength="671" clip-path="url(#breeze-testing-db-tests-line-74)">[default: latest]                                 &# [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1850" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-75)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1850" textLength="414.8" clip-path="url(#breeze-testing-db-tests-line-75)">--install-airflow-with-constraints</text><text class="breeze-testing-db-tests-r1" x="439.2" y="1850" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-75)">/</text><text class="breeze-testing-db-tests-r4" x="451. [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1874.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-76)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1874.4" textLength="671" clip-path="url(#breeze-testing-db-tests-line-76)">determined from package or airflow version.            </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="1874.4" textLength=" [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1898.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-77)">│</text><text class="breeze-testing-db-tests-r5" x="768.6" y="1898.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-77)">[default: no-install-airflow-with-constraints]         </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="1898.8" textLength="12.2" clip-path="url(#breeze-testin [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-78)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1923.2" textLength="195.2" clip-path="url(#breeze-testing-db-tests-line-78)">--package-format</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1923.2" textLength="231.8" clip-path="url(#breeze-testing-db-tests-line-78)">Format of packages.</text><text class="breeze-testing-db- [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-79)">│</text><text class="breeze-testing-db-tests-r5" x="768.6" y="1947.6" textLength="231.8" clip-path="url(#breeze-testing-db-tests-line-79)">[default: wheel]   </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="1947.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-79)">│</text><text class="breeze-testing-db-test [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-80)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="1972" textLength="390.4" clip-path="url(#breeze-testing-db-tests-line-80)">--providers-constraints-location</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1972" textLength="671" clip-path="url(#breeze-testing-db-tests-line-80)">Location of providers constraints to [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-81)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="1996.4" textLength="671" clip-path="url(#breeze-testing-db-tests-line-81)">local context file).                                 [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-82)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="2020.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-82)">(TEXT)                                     [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-83)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2045.2" textLength="341.6" clip-path="url(#breeze-testing-db-tests-line-83)">--providers-skip-constraints</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2045.2" textLength="597.8" clip-path="url(#breeze-testing-db-tests-line-83)">Do not use constraints when in [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-84)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2069.6" textLength="256.2" clip-path="url(#breeze-testing-db-tests-line-84)">--use-airflow-version</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2069.6" textLength="671" clip-path="url(#breeze-testing-db-tests-line-84)">Use (reinstall at entry) Airflow versio [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-85)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2094" textLength="671" clip-path="url(#breeze-testing-db-tests-line-85)">can also be version (to install from PyPI), `none`,    </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="2094" textLength="12.2" clip-path="url(#breeze-te [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-86)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2118.4" textLength="671" clip-path="url(#breeze-testing-db-tests-line-86)">`wheel`, or `sdist` to install from `dist` folder, or  </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="2118.4" textLength="12.2" clip-path="url(#breeze-testin [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-87)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2142.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-87)">VCS URL to install from                               [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-88)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2167.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-88)">(https://pip.pypa.io/en/stable/topics/vcs-support/).   </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="2167.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-88)">│</text><text [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-89)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2191.6" textLength="97.6" clip-path="url(#breeze-testing-db-tests-line-89)">Implies </text><text class="breeze-testing-db-tests-r4" x="866.2" y="2191.6" textLength="183" clip-path="url(#breeze-testing-db-tests-line-89)">--mount-sources</text><text class="breeze-testing-db-tests-r1" x="1049.2 [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-90)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="2216" textLength="671" clip-path="url(#breeze-testing-db-tests-line-90)">(none | wheel | sdist | <airflow_version>)             </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="2216" te [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-91)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2240.4" textLength="292.8" clip-path="url(#breeze-testing-db-tests-line-91)">--use-packages-from-dist</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2240.4" textLength="341.6" clip-path="url(#breeze-testing-db-tests-line-91)">Install all found packages (</text><tex [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-92)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2264.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-92)">type) from 'dist' folder when entering breeze.         </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="2264.8" textLength=" [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-93)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2289.2" textLength="183" clip-path="url(#breeze-testing-db-tests-line-93)">--mount-sources</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2289.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-93)">Choose scope of local sources that should& [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-94)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2313.6" textLength="671" clip-path="url(#breeze-testing-db-tests-line-94)">skipped, or removed (default = selected).              </text><text class="breeze-testing-db-tests-r5" x="1451.8" y="2313.6" te [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-95)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="2338" textLength="671" clip-path="url(#breeze-testing-db-tests-line-95)">(selected | all | skip | remove | tests |              </text><text class="breeze-testing-db-tests-r5" x="1451. [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-96)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="2362.4" textLength="671" clip-path="url(#breeze-testing-db-tests-line-96)">providers-and-tests)                                  [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-97)">│</text><text class="breeze-testing-db-tests-r5" x="768.6" y="2386.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-97)">[default: selected]                                  [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-98)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2411.2" textLength="317.2" clip-path="url(#breeze-testing-db-tests-line-98)">--skip-docker-compose-down</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2411.2" textLength="549" clip-path="url(#breeze-testing-db-tests-line-98)">Skips running docker-compose down after [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-99)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2435.6" textLength="195.2" clip-path="url(#breeze-testing-db-tests-line-99)">--skip-providers</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2435.6" textLength="671" clip-path="url(#breeze-testing-db-tests-line-99)">Space-separated list of provider ids to  [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-100)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2460" textLength="671" clip-path="url(#breeze-testing-db-tests-line-100)">running tests                                  &# [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2484.4" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-101)">│</text><text class="breeze-testing-db-tests-r6" x="768.6" y="2484.4" textLength="671" clip-path="url(#breeze-testing-db-tests-line-101)">(TEXT)                                    [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2508.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-102)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2508.8" textLength="244" clip-path="url(#breeze-testing-db-tests-line-102)">--keep-env-variables</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2508.8" textLength="671" clip-path="url(#breeze-testing-db-tests-line-102)">Do not clear environment variables that [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-103)">│</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2533.2" textLength="671" clip-path="url(#breeze-testing-db-tests-line-103)">effect while running tests                             </tex [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-104)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2557.6" textLength="183" clip-path="url(#breeze-testing-db-tests-line-104)">--no-db-cleanup</text><text class="breeze-testing-db-tests-r1" x="768.6" y="2557.6" textLength="597.8" clip-path="url(#breeze-testing-db-tests-line-104)">Do not clear the database before each [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2582" textLength="1464" clip-path="url(#breeze-testing-db-tests-line-105)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-db-tests-r1" x="1464" y="2582" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-105)">
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2606.4" textLength="24.4" clip-path="url(#breeze-testing-db-tests-line-106)">╭─</text><text class="breeze-testing-db-tests-r5" x="24.4" y="2606.4" textLength="195.2" clip-path="url(#breeze-testing-db-tests-line-106)"> Common options </text><text class="breeze-testing-db-tests-r5" x="219.6" y="2606.4" textLength="1220" clip-path="url(#breeze-testing-db-tests-line-106)">───────────────────────────────────────────────── [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2630.8" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-107)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2630.8" textLength="109.8" clip-path="url(#breeze-testing-db-tests-line-107)">--dry-run</text><text class="breeze-testing-db-tests-r7" x="158.6" y="2630.8" textLength="24.4" clip-path="url(#breeze-testing-db-tests-line-107)">-D</text><text class="breeze-testing-db-tests-r1" x="207.4" y="2630.8" t [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2655.2" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-108)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2655.2" textLength="109.8" clip-path="url(#breeze-testing-db-tests-line-108)">--verbose</text><text class="breeze-testing-db-tests-r7" x="158.6" y="2655.2" textLength="24.4" clip-path="url(#breeze-testing-db-tests-line-108)">-v</text><text class="breeze-testing-db-tests-r1" x="207.4" y="2655.2" t [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2679.6" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-109)">│</text><text class="breeze-testing-db-tests-r4" x="24.4" y="2679.6" textLength="73.2" clip-path="url(#breeze-testing-db-tests-line-109)">--help</text><text class="breeze-testing-db-tests-r7" x="158.6" y="2679.6" textLength="24.4" clip-path="url(#breeze-testing-db-tests-line-109)">-h</text><text class="breeze-testing-db-tests-r1" x="207.4" y="2679.6" textL [...]
+</text><text class="breeze-testing-db-tests-r5" x="0" y="2704" textLength="1464" clip-path="url(#breeze-testing-db-tests-line-110)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-db-tests-r1" x="1464" y="2704" textLength="12.2" clip-path="url(#breeze-testing-db-tests-line-110)">
</text>
</g>
</g>
diff --git a/dev/breeze/doc/images/output_testing_db-tests.txt b/dev/breeze/doc/images/output_testing_db-tests.txt
index 015673020f..29b92971d9 100644
--- a/dev/breeze/doc/images/output_testing_db-tests.txt
+++ b/dev/breeze/doc/images/output_testing_db-tests.txt
@@ -1 +1 @@
-cd5b99d8875eeaa1912cc0362dad4d91
+091647cf9bbc26bef8ded8366bbabd51
diff --git a/dev/breeze/doc/images/output_testing_non-db-tests.svg b/dev/breeze/doc/images/output_testing_non-db-tests.svg
index 2d4b943b98..ca0bd7c581 100644
--- a/dev/breeze/doc/images/output_testing_non-db-tests.svg
+++ b/dev/breeze/doc/images/output_testing_non-db-tests.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 2538.7999999999997" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 2514.3999999999996" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -43,7 +43,7 @@
<defs>
<clipPath id="breeze-testing-non-db-tests-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="2487.7999999999997" />
+ <rect x="0" y="0" width="1463.0" height="2463.3999999999996" />
</clipPath>
<clipPath id="breeze-testing-non-db-tests-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -345,12 +345,9 @@
<clipPath id="breeze-testing-non-db-tests-line-99">
<rect x="0" y="2417.1" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="breeze-testing-non-db-tests-line-100">
- <rect x="0" y="2441.5" width="1464" height="24.65"/>
- </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2536.8" rx="8"/><text class="breeze-testing-non-db-tests-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: testing non-db-tests</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2512.4" rx="8"/><text class="breeze-testing-non-db-tests-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: testing non-db-tests</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -408,60 +405,59 @@
</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-45)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1118" textLength="170.8" clip-path="url(#breeze-testing-non-db-tests-line-45)">--upgrade-boto</text><text class="breeze-testing-non-db-tests-r1" x="341.6" y="1118" textLength="866.2" clip-path="url(#breeze-testing-non-db-tests-line-45)">Remove aiobotocore and upgrade  [...]
</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-46)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1142.4" textLength="268.4" clip-path="url(#breeze-testing-non-db-tests-line-46)">--downgrade-sqlalchemy</text><text class="breeze-testing-non-db-tests-r1" x="341.6" y="1142.4" textLength="610" clip-path="url(#breeze-testing-non-db-tests-line-46)">Downgrade SQLAlchemy to  [...]
</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-47)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1166.8" textLength="244" clip-path="url(#breeze-testing-non-db-tests-line-47)">--downgrade-pendulum</text><text class="breeze-testing-non-db-tests-r1" x="341.6" y="1166.8" textLength="585.6" clip-path="url(#breeze-testing-non-db-tests-line-47)">Downgrade Pendulum to mini [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-48)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1191.2" textLength="122" clip-path="url(#breeze-testing-non-db-tests-line-48)">--pydantic</text><text class="breeze-testing-non-db-tests-r1" x="341.6" y="1191.2" textLength="658.8" clip-path="url(#breeze-testing-non-db-tests-line-48)">Determines which pydantic should [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-49)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1215.6" textLength="256.2" clip-path="url(#breeze-testing-non-db-tests-line-49)">--remove-arm-packages</text><text class="breeze-testing-non-db-tests-r1" x="341.6" y="1215.6" textLength="817.4" clip-path="url(#breeze-testing-non-db-tests-line-49)">Removes arm packages fr [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1240" textLength="1464" clip-path="url(#breeze-testing-non-db-tests-line-50)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-non-db-tests-r1" x="1464" y="1240" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-50)">
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1264.4" textLength="24.4" clip-path="url(#breeze-testing-non-db-tests-line-51)">╭─</text><text class="breeze-testing-non-db-tests-r5" x="24.4" y="1264.4" textLength="402.6" clip-path="url(#breeze-testing-non-db-tests-line-51)"> Advanced flag for tests command </text><text class="breeze-testing-non-db-tests-r5" x="427" y="1264.4" textLength="1012.6" clip-path="url(#breeze-testing-non-db-tests-line-5 [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-52)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1288.8" textLength="378.2" clip-path="url(#breeze-testing-non-db-tests-line-52)">--airflow-constraints-reference</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1288.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-52)">Constraint reference  [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-53)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1313.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-53)">(used in calculated constraints URL).                  </text><text class="breeze-testing-non-db [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-54)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="1337.6" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-54)">(TEXT)                                 &# [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-55)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1362" textLength="341.6" clip-path="url(#breeze-testing-non-db-tests-line-55)">--clean-airflow-installation</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1362" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-55)">Clean the airflow instal [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-56)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1386.4" textLength="256.2" clip-path="url(#breeze-testing-non-db-tests-line-56)">version specified by </text><text class="breeze-testing-non-db-tests-r4" x="1024.8" y="1386.4" textLength="256.2" clip-path="url(#breeze-testing-non-db-tests-line-56)">--use-airflow-version [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-57)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1410.8" textLength="329.4" clip-path="url(#breeze-testing-non-db-tests-line-57)">--force-lowest-dependencies</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1410.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-57)">Run tests for the&# [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-58)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1435.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-58)">or selected provider if `Provider[PROVIDER_ID]` is used</text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y="1435.2" textLength="12.2" clip-path="url(#breeze-testin [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-59)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1459.6" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-59)">as test type.                               [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-60)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1484" textLength="231.8" clip-path="url(#breeze-testing-non-db-tests-line-60)">--github-repository</text><text class="breeze-testing-non-db-tests-r7" x="719.8" y="1484" textLength="24.4" clip-path="url(#breeze-testing-non-db-tests-line-60)">-g</text><text class="breeze-testing-non-db-tes [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1508.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-61)">│</text><text class="breeze-testing-non-db-tests-r5" x="768.6" y="1508.4" textLength="585.6" clip-path="url(#breeze-testing-non-db-tests-line-61)">[default: apache/airflow]                       </text><text class="breeze-testing-n [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-62)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1532.8" textLength="134.2" clip-path="url(#breeze-testing-non-db-tests-line-62)">--image-tag</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1532.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-62)">Tag of the image which is [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-63)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1557.2" textLength="109.8" clip-path="url(#breeze-testing-non-db-tests-line-63)">(implies </text><text class="breeze-testing-non-db-tests-r4" x="878.4" y="1557.2" textLength="183" clip-path="url(#breeze-testing-non-db-tests-line-63)">--mount-sources</text><text class="breeze-test [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-64)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="1581.6" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-64)">(TEXT)                                 &# [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-65)">│</text><text class="breeze-testing-non-db-tests-r5" x="768.6" y="1606" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-65)">[default: latest]                               &# [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-66)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1630.4" textLength="414.8" clip-path="url(#breeze-testing-non-db-tests-line-66)">--install-airflow-with-constraints</text><text class="breeze-testing-non-db-tests-r1" x="439.2" y="1630.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-66)">/</text><text class="breez [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1654.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-67)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1654.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-67)">determined from package or airflow version.            </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y=" [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1679.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-68)">│</text><text class="breeze-testing-non-db-tests-r5" x="768.6" y="1679.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-68)">[default: no-install-airflow-with-constraints]         </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y="1679.2" textLength="12.2" clip-path [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-69)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1703.6" textLength="195.2" clip-path="url(#breeze-testing-non-db-tests-line-69)">--package-format</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1703.6" textLength="231.8" clip-path="url(#breeze-testing-non-db-tests-line-69)">Format of packages.</text><text c [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-70)">│</text><text class="breeze-testing-non-db-tests-r5" x="768.6" y="1728" textLength="231.8" clip-path="url(#breeze-testing-non-db-tests-line-70)">[default: wheel]   </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y="1728" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-70)">│</text><text class="bree [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-71)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1752.4" textLength="390.4" clip-path="url(#breeze-testing-non-db-tests-line-71)">--providers-constraints-location</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1752.4" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-71)">Location of provide [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-72)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1776.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-72)">local context file).                             &# [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-73)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="1801.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-73)">(TEXT)                                 &# [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-74)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1825.6" textLength="341.6" clip-path="url(#breeze-testing-non-db-tests-line-74)">--providers-skip-constraints</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1825.6" textLength="597.8" clip-path="url(#breeze-testing-non-db-tests-line-74)">Do not use const [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1850" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-75)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1850" textLength="256.2" clip-path="url(#breeze-testing-non-db-tests-line-75)">--use-airflow-version</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1850" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-75)">Use (reinstall at entry) A [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1874.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-76)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1874.4" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-76)">can also be version (to install from PyPI), `none`,    </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y="1874.4" textLength="12.2" [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1898.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-77)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1898.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-77)">`wheel`, or `sdist` to install from `dist` folder, or  </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y="1898.8" textLength="12.2" clip-path [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-78)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1923.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-78)">VCS URL to install from                           & [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-79)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1947.6" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-79)">(https://pip.pypa.io/en/stable/topics/vcs-support/).   </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y="1947.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests- [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-80)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1972" textLength="97.6" clip-path="url(#breeze-testing-non-db-tests-line-80)">Implies </text><text class="breeze-testing-non-db-tests-r4" x="866.2" y="1972" textLength="183" clip-path="url(#breeze-testing-non-db-tests-line-80)">--mount-sources</text><text class="breeze-testing-non- [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-81)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="1996.4" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-81)">(none | wheel | sdist | <airflow_version>)             </text><text class="breeze-testing-non-db-tests-r5 [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-82)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2020.8" textLength="292.8" clip-path="url(#breeze-testing-non-db-tests-line-82)">--use-packages-from-dist</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2020.8" textLength="341.6" clip-path="url(#breeze-testing-non-db-tests-line-82)">Install all found pa [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-83)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2045.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-83)">type) from 'dist' folder when entering breeze.         </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y=" [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-84)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2069.6" textLength="183" clip-path="url(#breeze-testing-non-db-tests-line-84)">--mount-sources</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2069.6" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-84)">Choose scope of local source [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-85)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2094" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-85)">skipped, or removed (default = selected).              </text><text class="breeze-testing-non-db-tests-r5" x="1451. [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-86)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="2118.4" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-86)">(selected | all | skip | remove | tests |              </text><text class="breeze-testing-n [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-87)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="2142.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-87)">providers-and-tests)                                [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-88)">│</text><text class="breeze-testing-non-db-tests-r5" x="768.6" y="2167.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-88)">[default: selected]                              &# [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-89)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2191.6" textLength="317.2" clip-path="url(#breeze-testing-non-db-tests-line-89)">--skip-docker-compose-down</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2191.6" textLength="549" clip-path="url(#breeze-testing-non-db-tests-line-89)">Skips running docker-comp [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-90)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2216" textLength="195.2" clip-path="url(#breeze-testing-non-db-tests-line-90)">--skip-providers</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2216" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-90)">Space-separated list of provider [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-91)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2240.4" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-91)">running tests                               &# [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-92)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="2264.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-92)">(TEXT)                                 &# [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-93)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2289.2" textLength="244" clip-path="url(#breeze-testing-non-db-tests-line-93)">--keep-env-variables</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2289.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-93)">Do not clear environment [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-94)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2313.6" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-94)">effect while running tests                            [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-95)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2338" textLength="183" clip-path="url(#breeze-testing-non-db-tests-line-95)">--no-db-cleanup</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2338" textLength="597.8" clip-path="url(#breeze-testing-non-db-tests-line-95)">Do not clear the database b [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2362.4" textLength="1464" clip-path="url(#breeze-testing-non-db-tests-line-96)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-non-db-tests-r1" x="1464" y="2362.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-96)">
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2386.8" textLength="24.4" clip-path="url(#breeze-testing-non-db-tests-line-97)">╭─</text><text class="breeze-testing-non-db-tests-r5" x="24.4" y="2386.8" textLength="195.2" clip-path="url(#breeze-testing-non-db-tests-line-97)"> Common options </text><text class="breeze-testing-non-db-tests-r5" x="219.6" y="2386.8" textLength="1220" clip-path="url(#breeze-testing-non-db-tests-line-97)">──────────────────────────── [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-98)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2411.2" textLength="109.8" clip-path="url(#breeze-testing-non-db-tests-line-98)">--dry-run</text><text class="breeze-testing-non-db-tests-r7" x="158.6" y="2411.2" textLength="24.4" clip-path="url(#breeze-testing-non-db-tests-line-98)">-D</text><text class="breeze-testing-non-db-tests-r [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-99)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2435.6" textLength="109.8" clip-path="url(#breeze-testing-non-db-tests-line-99)">--verbose</text><text class="breeze-testing-non-db-tests-r7" x="158.6" y="2435.6" textLength="24.4" clip-path="url(#breeze-testing-non-db-tests-line-99)">-v</text><text class="breeze-testing-non-db-tests-r [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-100)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2460" textLength="73.2" clip-path="url(#breeze-testing-non-db-tests-line-100)">--help</text><text class="breeze-testing-non-db-tests-r7" x="158.6" y="2460" textLength="24.4" clip-path="url(#breeze-testing-non-db-tests-line-100)">-h</text><text class="breeze-testing-non-db-tests-r1" x="2 [...]
-</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2484.4" textLength="1464" clip-path="url(#breeze-testing-non-db-tests-line-101)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-non-db-tests-r1" x="1464" y="2484.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-101)">
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-48)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1191.2" textLength="256.2" clip-path="url(#breeze-testing-non-db-tests-line-48)">--remove-arm-packages</text><text class="breeze-testing-non-db-tests-r1" x="341.6" y="1191.2" textLength="817.4" clip-path="url(#breeze-testing-non-db-tests-line-48)">Removes arm packages fr [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1215.6" textLength="1464" clip-path="url(#breeze-testing-non-db-tests-line-49)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-non-db-tests-r1" x="1464" y="1215.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-49)">
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1240" textLength="24.4" clip-path="url(#breeze-testing-non-db-tests-line-50)">╭─</text><text class="breeze-testing-non-db-tests-r5" x="24.4" y="1240" textLength="402.6" clip-path="url(#breeze-testing-non-db-tests-line-50)"> Advanced flag for tests command </text><text class="breeze-testing-non-db-tests-r5" x="427" y="1240" textLength="1012.6" clip-path="url(#breeze-testing-non-db-tests-line-50)">── [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-51)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1264.4" textLength="378.2" clip-path="url(#breeze-testing-non-db-tests-line-51)">--airflow-constraints-reference</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1264.4" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-51)">Constraint reference  [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-52)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1288.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-52)">(used in calculated constraints URL).                  </text><text class="breeze-testing-non-db [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-53)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="1313.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-53)">(TEXT)                                 &# [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-54)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1337.6" textLength="341.6" clip-path="url(#breeze-testing-non-db-tests-line-54)">--clean-airflow-installation</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1337.6" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-54)">Clean the airflow  [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-55)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1362" textLength="256.2" clip-path="url(#breeze-testing-non-db-tests-line-55)">version specified by </text><text class="breeze-testing-non-db-tests-r4" x="1024.8" y="1362" textLength="256.2" clip-path="url(#breeze-testing-non-db-tests-line-55)">--use-airflow-version</text [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-56)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1386.4" textLength="329.4" clip-path="url(#breeze-testing-non-db-tests-line-56)">--force-lowest-dependencies</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1386.4" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-56)">Run tests for the&# [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-57)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1410.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-57)">or selected provider if `Provider[PROVIDER_ID]` is used</text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y="1410.8" textLength="12.2" clip-path="url(#breeze-testin [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-58)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1435.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-58)">as test type.                               [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-59)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1459.6" textLength="231.8" clip-path="url(#breeze-testing-non-db-tests-line-59)">--github-repository</text><text class="breeze-testing-non-db-tests-r7" x="719.8" y="1459.6" textLength="24.4" clip-path="url(#breeze-testing-non-db-tests-line-59)">-g</text><text class="breeze-testing-non- [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-60)">│</text><text class="breeze-testing-non-db-tests-r5" x="768.6" y="1484" textLength="585.6" clip-path="url(#breeze-testing-non-db-tests-line-60)">[default: apache/airflow]                       </text><text class="breeze-testing-non-d [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1508.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-61)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1508.4" textLength="134.2" clip-path="url(#breeze-testing-non-db-tests-line-61)">--image-tag</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1508.4" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-61)">Tag of the image which is [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-62)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1532.8" textLength="109.8" clip-path="url(#breeze-testing-non-db-tests-line-62)">(implies </text><text class="breeze-testing-non-db-tests-r4" x="878.4" y="1532.8" textLength="183" clip-path="url(#breeze-testing-non-db-tests-line-62)">--mount-sources</text><text class="breeze-test [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-63)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="1557.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-63)">(TEXT)                                 &# [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-64)">│</text><text class="breeze-testing-non-db-tests-r5" x="768.6" y="1581.6" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-64)">[default: latest]                               [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-65)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1606" textLength="414.8" clip-path="url(#breeze-testing-non-db-tests-line-65)">--install-airflow-with-constraints</text><text class="breeze-testing-non-db-tests-r1" x="439.2" y="1606" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-65)">/</text><text class="breeze-test [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-66)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1630.4" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-66)">determined from package or airflow version.            </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y=" [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1654.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-67)">│</text><text class="breeze-testing-non-db-tests-r5" x="768.6" y="1654.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-67)">[default: no-install-airflow-with-constraints]         </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y="1654.8" textLength="12.2" clip-path [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1679.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-68)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1679.2" textLength="195.2" clip-path="url(#breeze-testing-non-db-tests-line-68)">--package-format</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1679.2" textLength="231.8" clip-path="url(#breeze-testing-non-db-tests-line-68)">Format of packages.</text><text c [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-69)">│</text><text class="breeze-testing-non-db-tests-r5" x="768.6" y="1703.6" textLength="231.8" clip-path="url(#breeze-testing-non-db-tests-line-69)">[default: wheel]   </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y="1703.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-69)">│</text><text class [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-70)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1728" textLength="390.4" clip-path="url(#breeze-testing-non-db-tests-line-70)">--providers-constraints-location</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1728" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-70)">Location of providers [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-71)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1752.4" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-71)">local context file).                             &# [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-72)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="1776.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-72)">(TEXT)                                 &# [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-73)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1801.2" textLength="341.6" clip-path="url(#breeze-testing-non-db-tests-line-73)">--providers-skip-constraints</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1801.2" textLength="597.8" clip-path="url(#breeze-testing-non-db-tests-line-73)">Do not use const [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-74)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1825.6" textLength="256.2" clip-path="url(#breeze-testing-non-db-tests-line-74)">--use-airflow-version</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1825.6" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-74)">Use (reinstall at entry)& [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1850" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-75)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1850" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-75)">can also be version (to install from PyPI), `none`,    </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y="1850" textLength="12.2" clip- [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1874.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-76)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1874.4" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-76)">`wheel`, or `sdist` to install from `dist` folder, or  </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y="1874.4" textLength="12.2" clip-path [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1898.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-77)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1898.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-77)">VCS URL to install from                           & [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-78)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1923.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-78)">(https://pip.pypa.io/en/stable/topics/vcs-support/).   </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y="1923.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests- [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-79)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1947.6" textLength="97.6" clip-path="url(#breeze-testing-non-db-tests-line-79)">Implies </text><text class="breeze-testing-non-db-tests-r4" x="866.2" y="1947.6" textLength="183" clip-path="url(#breeze-testing-non-db-tests-line-79)">--mount-sources</text><text class="breeze-testin [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-80)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="1972" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-80)">(none | wheel | sdist | <airflow_version>)             </text><text class="breeze-testing-non-db-tests-r5" x= [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-81)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="1996.4" textLength="292.8" clip-path="url(#breeze-testing-non-db-tests-line-81)">--use-packages-from-dist</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="1996.4" textLength="341.6" clip-path="url(#breeze-testing-non-db-tests-line-81)">Install all found pa [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-82)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2020.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-82)">type) from 'dist' folder when entering breeze.         </text><text class="breeze-testing-non-db-tests-r5" x="1451.8" y=" [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-83)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2045.2" textLength="183" clip-path="url(#breeze-testing-non-db-tests-line-83)">--mount-sources</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2045.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-83)">Choose scope of local source [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-84)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2069.6" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-84)">skipped, or removed (default = selected).              </text><text class="breeze-testing-non-db-tests-r5" x="1 [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-85)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="2094" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-85)">(selected | all | skip | remove | tests |              </text><text class="breeze-testing-non-d [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-86)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="2118.4" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-86)">providers-and-tests)                                [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-87)">│</text><text class="breeze-testing-non-db-tests-r5" x="768.6" y="2142.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-87)">[default: selected]                              &# [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-88)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2167.2" textLength="317.2" clip-path="url(#breeze-testing-non-db-tests-line-88)">--skip-docker-compose-down</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2167.2" textLength="549" clip-path="url(#breeze-testing-non-db-tests-line-88)">Skips running docker-comp [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-89)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2191.6" textLength="195.2" clip-path="url(#breeze-testing-non-db-tests-line-89)">--skip-providers</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2191.6" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-89)">Space-separated list of provid [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-90)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2216" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-90)">running tests                                 [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-91)">│</text><text class="breeze-testing-non-db-tests-r6" x="768.6" y="2240.4" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-91)">(TEXT)                                 &# [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-92)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2264.8" textLength="244" clip-path="url(#breeze-testing-non-db-tests-line-92)">--keep-env-variables</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2264.8" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-92)">Do not clear environment [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-93)">│</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2289.2" textLength="671" clip-path="url(#breeze-testing-non-db-tests-line-93)">effect while running tests                            [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-94)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2313.6" textLength="183" clip-path="url(#breeze-testing-non-db-tests-line-94)">--no-db-cleanup</text><text class="breeze-testing-non-db-tests-r1" x="768.6" y="2313.6" textLength="597.8" clip-path="url(#breeze-testing-non-db-tests-line-94)">Do not clear the database& [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2338" textLength="1464" clip-path="url(#breeze-testing-non-db-tests-line-95)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-non-db-tests-r1" x="1464" y="2338" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-95)">
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2362.4" textLength="24.4" clip-path="url(#breeze-testing-non-db-tests-line-96)">╭─</text><text class="breeze-testing-non-db-tests-r5" x="24.4" y="2362.4" textLength="195.2" clip-path="url(#breeze-testing-non-db-tests-line-96)"> Common options </text><text class="breeze-testing-non-db-tests-r5" x="219.6" y="2362.4" textLength="1220" clip-path="url(#breeze-testing-non-db-tests-line-96)">──────────────────────────── [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-97)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2386.8" textLength="109.8" clip-path="url(#breeze-testing-non-db-tests-line-97)">--dry-run</text><text class="breeze-testing-non-db-tests-r7" x="158.6" y="2386.8" textLength="24.4" clip-path="url(#breeze-testing-non-db-tests-line-97)">-D</text><text class="breeze-testing-non-db-tests-r [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-98)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2411.2" textLength="109.8" clip-path="url(#breeze-testing-non-db-tests-line-98)">--verbose</text><text class="breeze-testing-non-db-tests-r7" x="158.6" y="2411.2" textLength="24.4" clip-path="url(#breeze-testing-non-db-tests-line-98)">-v</text><text class="breeze-testing-non-db-tests-r [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-99)">│</text><text class="breeze-testing-non-db-tests-r4" x="24.4" y="2435.6" textLength="73.2" clip-path="url(#breeze-testing-non-db-tests-line-99)">--help</text><text class="breeze-testing-non-db-tests-r7" x="158.6" y="2435.6" textLength="24.4" clip-path="url(#breeze-testing-non-db-tests-line-99)">-h</text><text class="breeze-testing-non-db-tests-r1" x [...]
+</text><text class="breeze-testing-non-db-tests-r5" x="0" y="2460" textLength="1464" clip-path="url(#breeze-testing-non-db-tests-line-100)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-non-db-tests-r1" x="1464" y="2460" textLength="12.2" clip-path="url(#breeze-testing-non-db-tests-line-100)">
</text>
</g>
</g>
diff --git a/dev/breeze/doc/images/output_testing_non-db-tests.txt b/dev/breeze/doc/images/output_testing_non-db-tests.txt
index f3f32ff67a..91e5599171 100644
--- a/dev/breeze/doc/images/output_testing_non-db-tests.txt
+++ b/dev/breeze/doc/images/output_testing_non-db-tests.txt
@@ -1 +1 @@
-ba2a582d1be6c987c0b7ceb61bcaffb9
+f70d22e8beb3ee9115e18cf8db4fdb27
diff --git a/dev/breeze/doc/images/output_testing_tests.svg b/dev/breeze/doc/images/output_testing_tests.svg
index 005ae5a768..be9e4a2f9e 100644
--- a/dev/breeze/doc/images/output_testing_tests.svg
+++ b/dev/breeze/doc/images/output_testing_tests.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 3222.0" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 3197.6" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -43,7 +43,7 @@
<defs>
<clipPath id="breeze-testing-tests-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="3171.0" />
+ <rect x="0" y="0" width="1463.0" height="3146.6" />
</clipPath>
<clipPath id="breeze-testing-tests-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -429,12 +429,9 @@
<clipPath id="breeze-testing-tests-line-127">
<rect x="0" y="3100.3" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="breeze-testing-tests-line-128">
- <rect x="0" y="3124.7" width="1464" height="24.65"/>
- </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="3220" rx="8"/><text class="breeze-testing-tests-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: testing tests</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="3195.6" rx="8"/><text class="breeze-testing-tests-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: testing tests</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -520,60 +517,59 @@
</text><text class="breeze-testing-tests-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-73)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1801.2" textLength="170.8" clip-path="url(#breeze-testing-tests-line-73)">--upgrade-boto</text><text class="breeze-testing-tests-r1" x="341.6" y="1801.2" textLength="866.2" clip-path="url(#breeze-testing-tests-line-73)">Remove aiobotocore and upgrade botocore and boto to& [...]
</text><text class="breeze-testing-tests-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-74)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1825.6" textLength="268.4" clip-path="url(#breeze-testing-tests-line-74)">--downgrade-sqlalchemy</text><text class="breeze-testing-tests-r1" x="341.6" y="1825.6" textLength="610" clip-path="url(#breeze-testing-tests-line-74)">Downgrade SQLAlchemy to minimum supported version.</text [...]
</text><text class="breeze-testing-tests-r5" x="0" y="1850" textLength="12.2" clip-path="url(#breeze-testing-tests-line-75)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1850" textLength="244" clip-path="url(#breeze-testing-tests-line-75)">--downgrade-pendulum</text><text class="breeze-testing-tests-r1" x="341.6" y="1850" textLength="585.6" clip-path="url(#breeze-testing-tests-line-75)">Downgrade Pendulum to minimum supported version.</text><text cla [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="1874.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-76)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1874.4" textLength="122" clip-path="url(#breeze-testing-tests-line-76)">--pydantic</text><text class="breeze-testing-tests-r1" x="341.6" y="1874.4" textLength="658.8" clip-path="url(#breeze-testing-tests-line-76)">Determines which pydantic should be used during tests.</te [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="1898.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-77)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1898.8" textLength="256.2" clip-path="url(#breeze-testing-tests-line-77)">--remove-arm-packages</text><text class="breeze-testing-tests-r1" x="341.6" y="1898.8" textLength="817.4" clip-path="url(#breeze-testing-tests-line-77)">Removes arm packages from the image to test&# [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="1923.2" textLength="1464" clip-path="url(#breeze-testing-tests-line-78)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r1" x="1464" y="1923.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-78)">
-</text><text class="breeze-testing-tests-r5" x="0" y="1947.6" textLength="24.4" clip-path="url(#breeze-testing-tests-line-79)">╭─</text><text class="breeze-testing-tests-r5" x="24.4" y="1947.6" textLength="402.6" clip-path="url(#breeze-testing-tests-line-79)"> Advanced flag for tests command </text><text class="breeze-testing-tests-r5" x="427" y="1947.6" textLength="1012.6" clip-path="url(#breeze-testing-tests-line-79)">────────────────────────────────────── [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-testing-tests-line-80)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1972" textLength="378.2" clip-path="url(#breeze-testing-tests-line-80)">--airflow-constraints-reference</text><text class="breeze-testing-tests-r1" x="768.6" y="1972" textLength="671" clip-path="url(#breeze-testing-tests-line-80)">Constraint reference to use for airflow installa [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-81)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="1996.4" textLength="671" clip-path="url(#breeze-testing-tests-line-81)">(used in calculated constraints URL).                  </text><text class="breeze-testing-tests-r5" x="1451.8" y="1996.4" te [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-82)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="2020.8" textLength="671" clip-path="url(#breeze-testing-tests-line-82)">(TEXT)                                       [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-83)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2045.2" textLength="341.6" clip-path="url(#breeze-testing-tests-line-83)">--clean-airflow-installation</text><text class="breeze-testing-tests-r1" x="768.6" y="2045.2" textLength="671" clip-path="url(#breeze-testing-tests-line-83)">Clean the airflow installation before installing&# [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-84)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2069.6" textLength="256.2" clip-path="url(#breeze-testing-tests-line-84)">version specified by </text><text class="breeze-testing-tests-r4" x="1024.8" y="2069.6" textLength="256.2" clip-path="url(#breeze-testing-tests-line-84)">--use-airflow-version</text><text class="breeze-testing-tests-r [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-testing-tests-line-85)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2094" textLength="329.4" clip-path="url(#breeze-testing-tests-line-85)">--force-lowest-dependencies</text><text class="breeze-testing-tests-r1" x="768.6" y="2094" textLength="671" clip-path="url(#breeze-testing-tests-line-85)">Run tests for the lowest direct dependencies of [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-86)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2118.4" textLength="671" clip-path="url(#breeze-testing-tests-line-86)">or selected provider if `Provider[PROVIDER_ID]` is used</text><text class="breeze-testing-tests-r5" x="1451.8" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-86)">│</text><text cla [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-87)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2142.8" textLength="671" clip-path="url(#breeze-testing-tests-line-87)">as test type.                                   & [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-88)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2167.2" textLength="231.8" clip-path="url(#breeze-testing-tests-line-88)">--github-repository</text><text class="breeze-testing-tests-r6" x="719.8" y="2167.2" textLength="24.4" clip-path="url(#breeze-testing-tests-line-88)">-g</text><text class="breeze-testing-tests-r1" x="768.6" y="2167.2" textLength="585 [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-89)">│</text><text class="breeze-testing-tests-r5" x="768.6" y="2191.6" textLength="585.6" clip-path="url(#breeze-testing-tests-line-89)">[default: apache/airflow]                       </text><text class="breeze-testing-tests-r5" x="1451.8" y="2191. [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-testing-tests-line-90)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2216" textLength="134.2" clip-path="url(#breeze-testing-tests-line-90)">--image-tag</text><text class="breeze-testing-tests-r1" x="768.6" y="2216" textLength="671" clip-path="url(#breeze-testing-tests-line-90)">Tag of the image which is used to run the image& [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-91)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2240.4" textLength="109.8" clip-path="url(#breeze-testing-tests-line-91)">(implies </text><text class="breeze-testing-tests-r4" x="878.4" y="2240.4" textLength="183" clip-path="url(#breeze-testing-tests-line-91)">--mount-sources</text><text class="breeze-testing-tests-r1" x="1061.4" y="2240.4" textLe [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-92)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="2264.8" textLength="671" clip-path="url(#breeze-testing-tests-line-92)">(TEXT)                                       [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-93)">│</text><text class="breeze-testing-tests-r5" x="768.6" y="2289.2" textLength="671" clip-path="url(#breeze-testing-tests-line-93)">[default: latest]                                   &# [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-94)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2313.6" textLength="414.8" clip-path="url(#breeze-testing-tests-line-94)">--install-airflow-with-constraints</text><text class="breeze-testing-tests-r1" x="439.2" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-94)">/</text><text class="breeze-testing-tests-r4" x="451.4" y="2313.6" t [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-testing-tests-line-95)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2338" textLength="671" clip-path="url(#breeze-testing-tests-line-95)">determined from package or airflow version.            </text><text class="breeze-testing-tests-r5" x="1451.8" y="2338" textLength="12.2" clip-path="url( [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-96)">│</text><text class="breeze-testing-tests-r5" x="768.6" y="2362.4" textLength="671" clip-path="url(#breeze-testing-tests-line-96)">[default: no-install-airflow-with-constraints]         </text><text class="breeze-testing-tests-r5" x="1451.8" y="2362.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-96 [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-97)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2386.8" textLength="195.2" clip-path="url(#breeze-testing-tests-line-97)">--package-format</text><text class="breeze-testing-tests-r1" x="768.6" y="2386.8" textLength="231.8" clip-path="url(#breeze-testing-tests-line-97)">Format of packages.</text><text class="breeze-testing-tests-r7" x="1012.6" [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-98)">│</text><text class="breeze-testing-tests-r5" x="768.6" y="2411.2" textLength="231.8" clip-path="url(#breeze-testing-tests-line-98)">[default: wheel]   </text><text class="breeze-testing-tests-r5" x="1451.8" y="2411.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-98)">│</text><text class="breeze-testing-tests-r1" x="1464" y="241 [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-99)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2435.6" textLength="390.4" clip-path="url(#breeze-testing-tests-line-99)">--providers-constraints-location</text><text class="breeze-testing-tests-r1" x="768.6" y="2435.6" textLength="671" clip-path="url(#breeze-testing-tests-line-99)">Location of providers constraints to use  [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-testing-tests-line-100)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2460" textLength="671" clip-path="url(#breeze-testing-tests-line-100)">local context file).                                  &# [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2484.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-101)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="2484.4" textLength="671" clip-path="url(#breeze-testing-tests-line-101)">(TEXT)                                      [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2508.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-102)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2508.8" textLength="341.6" clip-path="url(#breeze-testing-tests-line-102)">--providers-skip-constraints</text><text class="breeze-testing-tests-r1" x="768.6" y="2508.8" textLength="597.8" clip-path="url(#breeze-testing-tests-line-102)">Do not use constraints when installing p [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-103)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2533.2" textLength="256.2" clip-path="url(#breeze-testing-tests-line-103)">--use-airflow-version</text><text class="breeze-testing-tests-r1" x="768.6" y="2533.2" textLength="671" clip-path="url(#breeze-testing-tests-line-103)">Use (reinstall at entry) Airflow version from [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-104)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2557.6" textLength="671" clip-path="url(#breeze-testing-tests-line-104)">can also be version (to install from PyPI), `none`,    </text><text class="breeze-testing-tests-r5" x="1451.8" y="2557.6" textLength="12.2" clip-path="url(#breeze-testing-t [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2582" textLength="12.2" clip-path="url(#breeze-testing-tests-line-105)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2582" textLength="671" clip-path="url(#breeze-testing-tests-line-105)">`wheel`, or `sdist` to install from `dist` folder, or  </text><text class="breeze-testing-tests-r5" x="1451.8" y="2582" textLength="12.2" clip-path="url(#breeze-testing-tests-line-105)"> [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2606.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-106)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2606.4" textLength="671" clip-path="url(#breeze-testing-tests-line-106)">VCS URL to install from                                [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2630.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-107)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2630.8" textLength="671" clip-path="url(#breeze-testing-tests-line-107)">(https://pip.pypa.io/en/stable/topics/vcs-support/).   </text><text class="breeze-testing-tests-r5" x="1451.8" y="2630.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-107)">│</text><text class="breeze-t [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2655.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-108)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2655.2" textLength="97.6" clip-path="url(#breeze-testing-tests-line-108)">Implies </text><text class="breeze-testing-tests-r4" x="866.2" y="2655.2" textLength="183" clip-path="url(#breeze-testing-tests-line-108)">--mount-sources</text><text class="breeze-testing-tests-r1" x="1049.2" y="2655.2" textL [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2679.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-109)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="2679.6" textLength="671" clip-path="url(#breeze-testing-tests-line-109)">(none | wheel | sdist | <airflow_version>)             </text><text class="breeze-testing-tests-r5" x="1451.8" y="2679.6" textLengt [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2704" textLength="12.2" clip-path="url(#breeze-testing-tests-line-110)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2704" textLength="292.8" clip-path="url(#breeze-testing-tests-line-110)">--use-packages-from-dist</text><text class="breeze-testing-tests-r1" x="768.6" y="2704" textLength="341.6" clip-path="url(#breeze-testing-tests-line-110)">Install all found packages (</text><text class="breeze-testi [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2728.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-111)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2728.4" textLength="671" clip-path="url(#breeze-testing-tests-line-111)">type) from 'dist' folder when entering breeze.         </text><text class="breeze-testing-tests-r5" x="1451.8" y="2728.4" textLength="12.2" clip-pa [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2752.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-112)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2752.8" textLength="183" clip-path="url(#breeze-testing-tests-line-112)">--mount-sources</text><text class="breeze-testing-tests-r1" x="768.6" y="2752.8" textLength="671" clip-path="url(#breeze-testing-tests-line-112)">Choose scope of local sources that should be mo [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2777.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-113)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2777.2" textLength="671" clip-path="url(#breeze-testing-tests-line-113)">skipped, or removed (default = selected).              </text><text class="breeze-testing-tests-r5" x="1451.8" y="2777.2" textLength="12. [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2801.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-114)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="2801.6" textLength="671" clip-path="url(#breeze-testing-tests-line-114)">(selected | all | skip | remove | tests |              </text><text class="breeze-testing-tests-r5" x="1451.8" y="280 [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2826" textLength="12.2" clip-path="url(#breeze-testing-tests-line-115)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="2826" textLength="671" clip-path="url(#breeze-testing-tests-line-115)">providers-and-tests)                                   </text [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2850.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-116)">│</text><text class="breeze-testing-tests-r5" x="768.6" y="2850.4" textLength="671" clip-path="url(#breeze-testing-tests-line-116)">[default: selected]                                   [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2874.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-117)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2874.8" textLength="317.2" clip-path="url(#breeze-testing-tests-line-117)">--skip-docker-compose-down</text><text class="breeze-testing-tests-r1" x="768.6" y="2874.8" textLength="549" clip-path="url(#breeze-testing-tests-line-117)">Skips running docker-compose down after tests</te [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2899.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-118)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2899.2" textLength="195.2" clip-path="url(#breeze-testing-tests-line-118)">--skip-providers</text><text class="breeze-testing-tests-r1" x="768.6" y="2899.2" textLength="671" clip-path="url(#breeze-testing-tests-line-118)">Space-separated list of provider ids to skip when [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2923.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-119)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2923.6" textLength="671" clip-path="url(#breeze-testing-tests-line-119)">running tests                                    [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2948" textLength="12.2" clip-path="url(#breeze-testing-tests-line-120)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="2948" textLength="671" clip-path="url(#breeze-testing-tests-line-120)">(TEXT)                                      &# [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2972.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-121)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2972.4" textLength="244" clip-path="url(#breeze-testing-tests-line-121)">--keep-env-variables</text><text class="breeze-testing-tests-r1" x="768.6" y="2972.4" textLength="671" clip-path="url(#breeze-testing-tests-line-121)">Do not clear environment variables that might h [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="2996.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-122)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2996.8" textLength="671" clip-path="url(#breeze-testing-tests-line-122)">effect while running tests                             </text><text clas [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="3021.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-123)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="3021.2" textLength="183" clip-path="url(#breeze-testing-tests-line-123)">--no-db-cleanup</text><text class="breeze-testing-tests-r1" x="768.6" y="3021.2" textLength="597.8" clip-path="url(#breeze-testing-tests-line-123)">Do not clear the database before each test mo [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="3045.6" textLength="1464" clip-path="url(#breeze-testing-tests-line-124)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r1" x="1464" y="3045.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-124)">
-</text><text class="breeze-testing-tests-r5" x="0" y="3070" textLength="24.4" clip-path="url(#breeze-testing-tests-line-125)">╭─</text><text class="breeze-testing-tests-r5" x="24.4" y="3070" textLength="195.2" clip-path="url(#breeze-testing-tests-line-125)"> Common options </text><text class="breeze-testing-tests-r5" x="219.6" y="3070" textLength="1220" clip-path="url(#breeze-testing-tests-line-125)">───────────────────────────────────────────────────────────────────────── [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="3094.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-126)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="3094.4" textLength="109.8" clip-path="url(#breeze-testing-tests-line-126)">--dry-run</text><text class="breeze-testing-tests-r6" x="158.6" y="3094.4" textLength="24.4" clip-path="url(#breeze-testing-tests-line-126)">-D</text><text class="breeze-testing-tests-r1" x="207.4" y="3094.4" textLength="719.8" cli [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="3118.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-127)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="3118.8" textLength="109.8" clip-path="url(#breeze-testing-tests-line-127)">--verbose</text><text class="breeze-testing-tests-r6" x="158.6" y="3118.8" textLength="24.4" clip-path="url(#breeze-testing-tests-line-127)">-v</text><text class="breeze-testing-tests-r1" x="207.4" y="3118.8" textLength="585.6" cli [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="3143.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-128)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="3143.2" textLength="73.2" clip-path="url(#breeze-testing-tests-line-128)">--help</text><text class="breeze-testing-tests-r6" x="158.6" y="3143.2" textLength="24.4" clip-path="url(#breeze-testing-tests-line-128)">-h</text><text class="breeze-testing-tests-r1" x="207.4" y="3143.2" textLength="329.4" clip-pa [...]
-</text><text class="breeze-testing-tests-r5" x="0" y="3167.6" textLength="1464" clip-path="url(#breeze-testing-tests-line-129)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r1" x="1464" y="3167.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-129)">
+</text><text class="breeze-testing-tests-r5" x="0" y="1874.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-76)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1874.4" textLength="256.2" clip-path="url(#breeze-testing-tests-line-76)">--remove-arm-packages</text><text class="breeze-testing-tests-r1" x="341.6" y="1874.4" textLength="817.4" clip-path="url(#breeze-testing-tests-line-76)">Removes arm packages from the image to test&# [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1898.8" textLength="1464" clip-path="url(#breeze-testing-tests-line-77)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r1" x="1464" y="1898.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-77)">
+</text><text class="breeze-testing-tests-r5" x="0" y="1923.2" textLength="24.4" clip-path="url(#breeze-testing-tests-line-78)">╭─</text><text class="breeze-testing-tests-r5" x="24.4" y="1923.2" textLength="402.6" clip-path="url(#breeze-testing-tests-line-78)"> Advanced flag for tests command </text><text class="breeze-testing-tests-r5" x="427" y="1923.2" textLength="1012.6" clip-path="url(#breeze-testing-tests-line-78)">────────────────────────────────────── [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-79)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1947.6" textLength="378.2" clip-path="url(#breeze-testing-tests-line-79)">--airflow-constraints-reference</text><text class="breeze-testing-tests-r1" x="768.6" y="1947.6" textLength="671" clip-path="url(#breeze-testing-tests-line-79)">Constraint reference to use for airflow in [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-testing-tests-line-80)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="1972" textLength="671" clip-path="url(#breeze-testing-tests-line-80)">(used in calculated constraints URL).                  </text><text class="breeze-testing-tests-r5" x="1451.8" y="1972" textLeng [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-81)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="1996.4" textLength="671" clip-path="url(#breeze-testing-tests-line-81)">(TEXT)                                       [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-82)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2020.8" textLength="341.6" clip-path="url(#breeze-testing-tests-line-82)">--clean-airflow-installation</text><text class="breeze-testing-tests-r1" x="768.6" y="2020.8" textLength="671" clip-path="url(#breeze-testing-tests-line-82)">Clean the airflow installation before installing&# [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-83)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2045.2" textLength="256.2" clip-path="url(#breeze-testing-tests-line-83)">version specified by </text><text class="breeze-testing-tests-r4" x="1024.8" y="2045.2" textLength="256.2" clip-path="url(#breeze-testing-tests-line-83)">--use-airflow-version</text><text class="breeze-testing-tests-r [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-84)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2069.6" textLength="329.4" clip-path="url(#breeze-testing-tests-line-84)">--force-lowest-dependencies</text><text class="breeze-testing-tests-r1" x="768.6" y="2069.6" textLength="671" clip-path="url(#breeze-testing-tests-line-84)">Run tests for the lowest direct dependencies&# [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-testing-tests-line-85)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2094" textLength="671" clip-path="url(#breeze-testing-tests-line-85)">or selected provider if `Provider[PROVIDER_ID]` is used</text><text class="breeze-testing-tests-r5" x="1451.8" y="2094" textLength="12.2" clip-path="url(#breeze-testing-tests-line-85)">│</text><text class="br [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-86)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2118.4" textLength="671" clip-path="url(#breeze-testing-tests-line-86)">as test type.                                   & [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-87)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2142.8" textLength="231.8" clip-path="url(#breeze-testing-tests-line-87)">--github-repository</text><text class="breeze-testing-tests-r6" x="719.8" y="2142.8" textLength="24.4" clip-path="url(#breeze-testing-tests-line-87)">-g</text><text class="breeze-testing-tests-r1" x="768.6" y="2142.8" textLength="585 [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-88)">│</text><text class="breeze-testing-tests-r5" x="768.6" y="2167.2" textLength="585.6" clip-path="url(#breeze-testing-tests-line-88)">[default: apache/airflow]                       </text><text class="breeze-testing-tests-r5" x="1451.8" y="2167. [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-89)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2191.6" textLength="134.2" clip-path="url(#breeze-testing-tests-line-89)">--image-tag</text><text class="breeze-testing-tests-r1" x="768.6" y="2191.6" textLength="671" clip-path="url(#breeze-testing-tests-line-89)">Tag of the image which is used to run the  [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-testing-tests-line-90)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2216" textLength="109.8" clip-path="url(#breeze-testing-tests-line-90)">(implies </text><text class="breeze-testing-tests-r4" x="878.4" y="2216" textLength="183" clip-path="url(#breeze-testing-tests-line-90)">--mount-sources</text><text class="breeze-testing-tests-r1" x="1061.4" y="2216" textLength="37 [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-91)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="2240.4" textLength="671" clip-path="url(#breeze-testing-tests-line-91)">(TEXT)                                       [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-92)">│</text><text class="breeze-testing-tests-r5" x="768.6" y="2264.8" textLength="671" clip-path="url(#breeze-testing-tests-line-92)">[default: latest]                                   &# [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-93)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2289.2" textLength="414.8" clip-path="url(#breeze-testing-tests-line-93)">--install-airflow-with-constraints</text><text class="breeze-testing-tests-r1" x="439.2" y="2289.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-93)">/</text><text class="breeze-testing-tests-r4" x="451.4" y="2289.2" t [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-94)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2313.6" textLength="671" clip-path="url(#breeze-testing-tests-line-94)">determined from package or airflow version.            </text><text class="breeze-testing-tests-r5" x="1451.8" y="2313.6" textLength="12.2" clip-path [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-testing-tests-line-95)">│</text><text class="breeze-testing-tests-r5" x="768.6" y="2338" textLength="671" clip-path="url(#breeze-testing-tests-line-95)">[default: no-install-airflow-with-constraints]         </text><text class="breeze-testing-tests-r5" x="1451.8" y="2338" textLength="12.2" clip-path="url(#breeze-testing-tests-line-95)">│</ [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-96)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2362.4" textLength="195.2" clip-path="url(#breeze-testing-tests-line-96)">--package-format</text><text class="breeze-testing-tests-r1" x="768.6" y="2362.4" textLength="231.8" clip-path="url(#breeze-testing-tests-line-96)">Format of packages.</text><text class="breeze-testing-tests-r7" x="1012.6" [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-97)">│</text><text class="breeze-testing-tests-r5" x="768.6" y="2386.8" textLength="231.8" clip-path="url(#breeze-testing-tests-line-97)">[default: wheel]   </text><text class="breeze-testing-tests-r5" x="1451.8" y="2386.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-97)">│</text><text class="breeze-testing-tests-r1" x="1464" y="238 [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-98)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2411.2" textLength="390.4" clip-path="url(#breeze-testing-tests-line-98)">--providers-constraints-location</text><text class="breeze-testing-tests-r1" x="768.6" y="2411.2" textLength="671" clip-path="url(#breeze-testing-tests-line-98)">Location of providers constraints to use  [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-99)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2435.6" textLength="671" clip-path="url(#breeze-testing-tests-line-99)">local context file).                                   [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-testing-tests-line-100)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="2460" textLength="671" clip-path="url(#breeze-testing-tests-line-100)">(TEXT)                                      &# [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2484.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-101)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2484.4" textLength="341.6" clip-path="url(#breeze-testing-tests-line-101)">--providers-skip-constraints</text><text class="breeze-testing-tests-r1" x="768.6" y="2484.4" textLength="597.8" clip-path="url(#breeze-testing-tests-line-101)">Do not use constraints when installing p [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2508.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-102)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2508.8" textLength="256.2" clip-path="url(#breeze-testing-tests-line-102)">--use-airflow-version</text><text class="breeze-testing-tests-r1" x="768.6" y="2508.8" textLength="671" clip-path="url(#breeze-testing-tests-line-102)">Use (reinstall at entry) Airflow version from [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-103)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2533.2" textLength="671" clip-path="url(#breeze-testing-tests-line-103)">can also be version (to install from PyPI), `none`,    </text><text class="breeze-testing-tests-r5" x="1451.8" y="2533.2" textLength="12.2" clip-path="url(#breeze-testing-t [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-104)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2557.6" textLength="671" clip-path="url(#breeze-testing-tests-line-104)">`wheel`, or `sdist` to install from `dist` folder, or  </text><text class="breeze-testing-tests-r5" x="1451.8" y="2557.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line- [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2582" textLength="12.2" clip-path="url(#breeze-testing-tests-line-105)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2582" textLength="671" clip-path="url(#breeze-testing-tests-line-105)">VCS URL to install from                                < [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2606.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-106)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2606.4" textLength="671" clip-path="url(#breeze-testing-tests-line-106)">(https://pip.pypa.io/en/stable/topics/vcs-support/).   </text><text class="breeze-testing-tests-r5" x="1451.8" y="2606.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-106)">│</text><text class="breeze-t [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2630.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-107)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2630.8" textLength="97.6" clip-path="url(#breeze-testing-tests-line-107)">Implies </text><text class="breeze-testing-tests-r4" x="866.2" y="2630.8" textLength="183" clip-path="url(#breeze-testing-tests-line-107)">--mount-sources</text><text class="breeze-testing-tests-r1" x="1049.2" y="2630.8" textL [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2655.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-108)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="2655.2" textLength="671" clip-path="url(#breeze-testing-tests-line-108)">(none | wheel | sdist | <airflow_version>)             </text><text class="breeze-testing-tests-r5" x="1451.8" y="2655.2" textLengt [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2679.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-109)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2679.6" textLength="292.8" clip-path="url(#breeze-testing-tests-line-109)">--use-packages-from-dist</text><text class="breeze-testing-tests-r1" x="768.6" y="2679.6" textLength="341.6" clip-path="url(#breeze-testing-tests-line-109)">Install all found packages (</text><text class="breeze [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2704" textLength="12.2" clip-path="url(#breeze-testing-tests-line-110)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2704" textLength="671" clip-path="url(#breeze-testing-tests-line-110)">type) from 'dist' folder when entering breeze.         </text><text class="breeze-testing-tests-r5" x="1451.8" y="2704" textLength="12.2" clip-path="ur [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2728.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-111)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2728.4" textLength="183" clip-path="url(#breeze-testing-tests-line-111)">--mount-sources</text><text class="breeze-testing-tests-r1" x="768.6" y="2728.4" textLength="671" clip-path="url(#breeze-testing-tests-line-111)">Choose scope of local sources that should be mo [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2752.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-112)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2752.8" textLength="671" clip-path="url(#breeze-testing-tests-line-112)">skipped, or removed (default = selected).              </text><text class="breeze-testing-tests-r5" x="1451.8" y="2752.8" textLength="12. [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2777.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-113)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="2777.2" textLength="671" clip-path="url(#breeze-testing-tests-line-113)">(selected | all | skip | remove | tests |              </text><text class="breeze-testing-tests-r5" x="1451.8" y="277 [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2801.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-114)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="2801.6" textLength="671" clip-path="url(#breeze-testing-tests-line-114)">providers-and-tests)                                   </ [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2826" textLength="12.2" clip-path="url(#breeze-testing-tests-line-115)">│</text><text class="breeze-testing-tests-r5" x="768.6" y="2826" textLength="671" clip-path="url(#breeze-testing-tests-line-115)">[default: selected]                                   &# [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2850.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-116)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2850.4" textLength="317.2" clip-path="url(#breeze-testing-tests-line-116)">--skip-docker-compose-down</text><text class="breeze-testing-tests-r1" x="768.6" y="2850.4" textLength="549" clip-path="url(#breeze-testing-tests-line-116)">Skips running docker-compose down after tests</te [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2874.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-117)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2874.8" textLength="195.2" clip-path="url(#breeze-testing-tests-line-117)">--skip-providers</text><text class="breeze-testing-tests-r1" x="768.6" y="2874.8" textLength="671" clip-path="url(#breeze-testing-tests-line-117)">Space-separated list of provider ids to skip when [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2899.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-118)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2899.2" textLength="671" clip-path="url(#breeze-testing-tests-line-118)">running tests                                    [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2923.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-119)">│</text><text class="breeze-testing-tests-r7" x="768.6" y="2923.6" textLength="671" clip-path="url(#breeze-testing-tests-line-119)">(TEXT)                                      [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2948" textLength="12.2" clip-path="url(#breeze-testing-tests-line-120)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2948" textLength="244" clip-path="url(#breeze-testing-tests-line-120)">--keep-env-variables</text><text class="breeze-testing-tests-r1" x="768.6" y="2948" textLength="671" clip-path="url(#breeze-testing-tests-line-120)">Do not clear environment variables that might have [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2972.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-121)">│</text><text class="breeze-testing-tests-r1" x="768.6" y="2972.4" textLength="671" clip-path="url(#breeze-testing-tests-line-121)">effect while running tests                             </text><text clas [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="2996.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-122)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="2996.8" textLength="183" clip-path="url(#breeze-testing-tests-line-122)">--no-db-cleanup</text><text class="breeze-testing-tests-r1" x="768.6" y="2996.8" textLength="597.8" clip-path="url(#breeze-testing-tests-line-122)">Do not clear the database before each test mo [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="3021.2" textLength="1464" clip-path="url(#breeze-testing-tests-line-123)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r1" x="1464" y="3021.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-123)">
+</text><text class="breeze-testing-tests-r5" x="0" y="3045.6" textLength="24.4" clip-path="url(#breeze-testing-tests-line-124)">╭─</text><text class="breeze-testing-tests-r5" x="24.4" y="3045.6" textLength="195.2" clip-path="url(#breeze-testing-tests-line-124)"> Common options </text><text class="breeze-testing-tests-r5" x="219.6" y="3045.6" textLength="1220" clip-path="url(#breeze-testing-tests-line-124)">─────────────────────────────────────────────────────────────────── [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="3070" textLength="12.2" clip-path="url(#breeze-testing-tests-line-125)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="3070" textLength="109.8" clip-path="url(#breeze-testing-tests-line-125)">--dry-run</text><text class="breeze-testing-tests-r6" x="158.6" y="3070" textLength="24.4" clip-path="url(#breeze-testing-tests-line-125)">-D</text><text class="breeze-testing-tests-r1" x="207.4" y="3070" textLength="719.8" clip-path=" [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="3094.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-126)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="3094.4" textLength="109.8" clip-path="url(#breeze-testing-tests-line-126)">--verbose</text><text class="breeze-testing-tests-r6" x="158.6" y="3094.4" textLength="24.4" clip-path="url(#breeze-testing-tests-line-126)">-v</text><text class="breeze-testing-tests-r1" x="207.4" y="3094.4" textLength="585.6" cli [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="3118.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-127)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="3118.8" textLength="73.2" clip-path="url(#breeze-testing-tests-line-127)">--help</text><text class="breeze-testing-tests-r6" x="158.6" y="3118.8" textLength="24.4" clip-path="url(#breeze-testing-tests-line-127)">-h</text><text class="breeze-testing-tests-r1" x="207.4" y="3118.8" textLength="329.4" clip-pa [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="3143.2" textLength="1464" clip-path="url(#breeze-testing-tests-line-128)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r1" x="1464" y="3143.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-128)">
</text>
</g>
</g>
diff --git a/dev/breeze/doc/images/output_testing_tests.txt b/dev/breeze/doc/images/output_testing_tests.txt
index 226ce07013..63747a5754 100644
--- a/dev/breeze/doc/images/output_testing_tests.txt
+++ b/dev/breeze/doc/images/output_testing_tests.txt
@@ -1 +1 @@
-9156856b589d49e49c75bf78869a971b
+e0efccc2852183c918b59129c6e4d883
diff --git a/dev/breeze/src/airflow_breeze/commands/common_options.py b/dev/breeze/src/airflow_breeze/commands/common_options.py
index a6ab6855c2..f9a33d29cb 100644
--- a/dev/breeze/src/airflow_breeze/commands/common_options.py
+++ b/dev/breeze/src/airflow_breeze/commands/common_options.py
@@ -29,7 +29,6 @@ from airflow_breeze.global_constants import (
ALLOWED_MOUNT_OPTIONS,
ALLOWED_MYSQL_VERSIONS,
ALLOWED_POSTGRES_VERSIONS,
- ALLOWED_PYDANTIC_VERSIONS,
ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS,
ALLOWED_USE_AIRFLOW_VERSIONS,
APACHE_AIRFLOW_GITHUB_REPOSITORY,
@@ -388,14 +387,6 @@ option_uv_http_timeout = click.option(
show_default=True,
envvar="UV_HTTP_TIMEOUT",
)
-option_pydantic = click.option(
- "--pydantic",
- help="Determines which pydantic should be used during tests.",
- type=BetterChoice(ALLOWED_PYDANTIC_VERSIONS),
- show_default=True,
- default=ALLOWED_PYDANTIC_VERSIONS[0],
- envvar="PYDANTIC",
-)
option_use_airflow_version = click.option(
"--use-airflow-version",
help="Use (reinstall at entry) Airflow version from PyPI. It can also be version (to install from PyPI), "
diff --git a/dev/breeze/src/airflow_breeze/commands/developer_commands.py b/dev/breeze/src/airflow_breeze/commands/developer_commands.py
index 6fead47738..90a91dd55c 100644
--- a/dev/breeze/src/airflow_breeze/commands/developer_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/developer_commands.py
@@ -57,7 +57,6 @@ from airflow_breeze.commands.common_options import (
option_no_db_cleanup,
option_postgres_version,
option_project_name,
- option_pydantic,
option_python,
option_run_db_tests_only,
option_skip_db_tests,
@@ -288,7 +287,6 @@ option_install_airflow_with_constraints_default_true = click.option(
@option_mount_sources
@option_mysql_version
@option_no_db_cleanup
-@option_pydantic
@option_platform_single
@option_postgres_version
@option_project_name
@@ -351,7 +349,6 @@ def shell(
providers_constraints_mode: str,
providers_constraints_reference: str,
providers_skip_constraints: bool,
- pydantic: str,
python: str,
quiet: bool,
restart: bool,
@@ -419,7 +416,6 @@ def shell(
providers_constraints_mode=providers_constraints_mode,
providers_constraints_reference=providers_constraints_reference,
providers_skip_constraints=providers_skip_constraints,
- pydantic=pydantic,
python=python,
quiet=quiet,
restart=restart,
diff --git a/dev/breeze/src/airflow_breeze/commands/developer_commands_config.py b/dev/breeze/src/airflow_breeze/commands/developer_commands_config.py
index 1570e66851..7b6eb73dde 100644
--- a/dev/breeze/src/airflow_breeze/commands/developer_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/developer_commands_config.py
@@ -167,7 +167,6 @@ DEVELOPER_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = {
"--upgrade-boto",
"--downgrade-sqlalchemy",
"--downgrade-pendulum",
- "--pydantic",
],
},
{
diff --git a/dev/breeze/src/airflow_breeze/commands/testing_commands.py b/dev/breeze/src/airflow_breeze/commands/testing_commands.py
index 0a8976ce63..24cb8a273f 100644
--- a/dev/breeze/src/airflow_breeze/commands/testing_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/testing_commands.py
@@ -47,7 +47,6 @@ from airflow_breeze.commands.common_options import (
option_no_db_cleanup,
option_parallelism,
option_postgres_version,
- option_pydantic,
option_python,
option_run_db_tests_only,
option_run_in_parallel,
@@ -533,7 +532,6 @@ option_force_sa_warnings = click.option(
@option_postgres_version
@option_providers_constraints_location
@option_providers_skip_constraints
-@option_pydantic
@option_python
@option_remove_arm_packages
@option_run_db_tests_only
@@ -592,7 +590,6 @@ def command_for_tests(**kwargs):
@option_postgres_version
@option_providers_constraints_location
@option_providers_skip_constraints
-@option_pydantic
@option_python
@option_remove_arm_packages
@option_skip_cleanup
@@ -652,7 +649,6 @@ def command_for_db_tests(**kwargs):
@option_parallelism
@option_providers_constraints_location
@option_providers_skip_constraints
-@option_pydantic
@option_python
@option_remove_arm_packages
@option_skip_cleanup
@@ -711,7 +707,6 @@ def _run_test_command(
package_format: str,
providers_constraints_location: str,
providers_skip_constraints: bool,
- pydantic: str,
python: str,
remove_arm_packages: bool,
run_db_tests_only: bool,
@@ -768,7 +763,6 @@ def _run_test_command(
postgres_version=postgres_version,
providers_constraints_location=providers_constraints_location,
providers_skip_constraints=providers_skip_constraints,
- pydantic=pydantic,
python=python,
remove_arm_packages=remove_arm_packages,
run_db_tests_only=run_db_tests_only,
@@ -786,11 +780,6 @@ def _run_test_command(
fix_ownership_using_docker()
cleanup_python_generated_files()
perform_environment_checks()
- if pydantic != "v2":
- # Avoid edge cases when there are no available tests, e.g. No-Pydantic for Weaviate provider.
- # https://docs.pytest.org/en/stable/reference/exit-codes.html
- # https://github.com/apache/airflow/pull/38402#issuecomment-2014938950
- extra_pytest_args = (*extra_pytest_args, "--suppress-no-test-exit-code")
if skip_providers:
ignored_path_list = [
f"--ignore=tests/providers/{provider_id.replace('.','/')}"
diff --git a/dev/breeze/src/airflow_breeze/commands/testing_commands_config.py b/dev/breeze/src/airflow_breeze/commands/testing_commands_config.py
index f0127dbd3f..4f4c3a14c1 100644
--- a/dev/breeze/src/airflow_breeze/commands/testing_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/testing_commands_config.py
@@ -77,7 +77,6 @@ TESTING_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = {
"--upgrade-boto",
"--downgrade-sqlalchemy",
"--downgrade-pendulum",
- "--pydantic",
"--remove-arm-packages",
],
},
@@ -143,7 +142,6 @@ TESTING_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = {
"--upgrade-boto",
"--downgrade-sqlalchemy",
"--downgrade-pendulum",
- "--pydantic",
"--remove-arm-packages",
],
},
@@ -213,7 +211,6 @@ TESTING_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = {
"--upgrade-boto",
"--downgrade-sqlalchemy",
"--downgrade-pendulum",
- "--pydantic",
"--remove-arm-packages",
],
},
diff --git a/dev/breeze/src/airflow_breeze/global_constants.py b/dev/breeze/src/airflow_breeze/global_constants.py
index 46b0c3d521..47f14c818d 100644
--- a/dev/breeze/src/airflow_breeze/global_constants.py
+++ b/dev/breeze/src/airflow_breeze/global_constants.py
@@ -228,7 +228,6 @@ SINGLE_PLATFORMS = ["linux/amd64", "linux/arm64"]
ALLOWED_PLATFORMS = [*SINGLE_PLATFORMS, MULTI_PLATFORM]
ALLOWED_USE_AIRFLOW_VERSIONS = ["none", "wheel", "sdist"]
-ALLOWED_PYDANTIC_VERSIONS = ["v2", "v1", "none"]
ALL_HISTORICAL_PYTHON_VERSIONS = ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
diff --git a/dev/breeze/src/airflow_breeze/params/shell_params.py b/dev/breeze/src/airflow_breeze/params/shell_params.py
index 0b55fc0986..11f12d4a1f 100644
--- a/dev/breeze/src/airflow_breeze/params/shell_params.py
+++ b/dev/breeze/src/airflow_breeze/params/shell_params.py
@@ -32,7 +32,6 @@ from airflow_breeze.global_constants import (
ALLOWED_INSTALLATION_PACKAGE_FORMATS,
ALLOWED_MYSQL_VERSIONS,
ALLOWED_POSTGRES_VERSIONS,
- ALLOWED_PYDANTIC_VERSIONS,
ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS,
APACHE_AIRFLOW_GITHUB_REPOSITORY,
CELERY_BROKER_URLS_MAP,
@@ -183,7 +182,6 @@ class ShellParams:
providers_constraints_mode: str = ALLOWED_CONSTRAINTS_MODES_CI[0]
providers_constraints_reference: str = ""
providers_skip_constraints: bool = False
- pydantic: str = ALLOWED_PYDANTIC_VERSIONS[0]
python: str = ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS[0]
quiet: bool = False
regenerate_missing_docs: bool = False
@@ -566,7 +564,6 @@ class ShellParams:
_set_var(_env, "SYSTEM_TESTS_ENV_ID", None, "")
_set_var(_env, "TEST_TYPE", self.test_type, "")
_set_var(_env, "UPGRADE_BOTO", self.upgrade_boto)
- _set_var(_env, "PYDANTIC", self.pydantic)
_set_var(_env, "USE_AIRFLOW_VERSION", self.use_airflow_version, "")
_set_var(_env, "USE_PACKAGES_FROM_DIST", self.use_packages_from_dist)
_set_var(_env, "USE_UV", self.use_uv)
diff --git a/hatch_build.py b/hatch_build.py
index fd4dba6cbc..08f47731f2 100644
--- a/hatch_build.py
+++ b/hatch_build.py
@@ -116,9 +116,6 @@ CORE_EXTRAS: dict[str, list[str]] = {
"bcrypt>=2.0.0",
"flask-bcrypt>=0.7.1",
],
- "pydantic": [
- "pydantic>=2.3.0",
- ],
"rabbitmq": [
"amqp",
],
@@ -431,6 +428,7 @@ DEPENDENCIES = [
"cryptography>=41.0.0",
"deprecated>=1.2.13",
"dill>=0.2.2",
+ "fastapi[standard]>=0.112.2",
"flask-caching>=2.0.0",
# Flask-Session 0.6 add new arguments into the SqlAlchemySessionInterface constructor as well as
# all parameters now are mandatory which make AirflowDatabaseSessionInterface incopatible with this version.
@@ -468,6 +466,7 @@ DEPENDENCIES = [
'pendulum>=3.0.0,<4.0;python_version>="3.12"',
"pluggy>=1.5.0",
"psutil>=5.8.0",
+ "pydantic>=2.3.0",
"pygments>=2.0.1",
"pyjwt>=2.0.0",
"python-daemon>=3.0.0",
diff --git a/newsfragments/41857.significant.rst b/newsfragments/41857.significant.rst
new file mode 100644
index 0000000000..df3c85853e
--- /dev/null
+++ b/newsfragments/41857.significant.rst
@@ -0,0 +1,3 @@
+**Breaking Change**
+
+Airflow core now depends on ``pydantic>=2.3.0``. If you have Pydantic v1 installed, please upgrade.
diff --git a/pyproject.toml b/pyproject.toml
index 22fbfc0143..5b6a75445e 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -79,8 +79,8 @@ dynamic = ["version", "optional-dependencies", "dependencies"]
# START CORE EXTRAS HERE
#
# aiobotocore, apache-atlas, apache-webhdfs, async, cgroups, cloudpickle, github-enterprise, google-
-# auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, pydantic, rabbitmq, s3fs, saml,
-# sentry, statsd, uv, virtualenv
+# auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, rabbitmq, s3fs, saml, sentry,
+# statsd, uv, virtualenv
#
# END CORE EXTRAS HERE
#
diff --git a/scripts/ci/docker-compose/devcontainer.env b/scripts/ci/docker-compose/devcontainer.env
index 2b7cddb47e..f6c7e2e022 100644
--- a/scripts/ci/docker-compose/devcontainer.env
+++ b/scripts/ci/docker-compose/devcontainer.env
@@ -59,7 +59,6 @@ NUM_RUNS=
ONLY_MIN_VERSION_UPDATE="false"
PACKAGE_FORMAT=
POSTGRES_VERSION=10
-PYDANTIC="v2"
PYTHONDONTWRITEBYTECODE="true"
REMOVE_ARM_PACKAGES="false"
RUN_TESTS="false"
diff --git a/scripts/docker/entrypoint_ci.sh b/scripts/docker/entrypoint_ci.sh
index b1d6f4cf70..1f0a431579 100755
--- a/scripts/docker/entrypoint_ci.sh
+++ b/scripts/docker/entrypoint_ci.sh
@@ -269,47 +269,6 @@ function check_boto_upgrade() {
pip check
}
-# Remove or reinstall pydantic if needed
-function check_pydantic() {
- if [[ ${PYDANTIC=} == "none" ]]; then
- echo
- echo "${COLOR_YELLOW}Reinstalling airflow from local sources to account for pyproject.toml changes${COLOR_RESET}"
- echo
- # shellcheck disable=SC2086
- ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} -e .
- echo
- echo "${COLOR_YELLOW}Remove pydantic and 3rd party libraries that depend on it${COLOR_RESET}"
- echo
- # shellcheck disable=SC2086
- ${PACKAGING_TOOL_CMD} uninstall ${EXTRA_UNINSTALL_FLAGS} pydantic aws-sam-translator openai \
- pyiceberg qdrant-client cfn-lint weaviate-client google-cloud-aiplatform
- pip check
- elif [[ ${PYDANTIC=} == "v1" ]]; then
- echo
- echo "${COLOR_YELLOW}Reinstalling airflow from local sources to account for pyproject.toml changes${COLOR_RESET}"
- echo
- # shellcheck disable=SC2086
- ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} -e .
- echo
- echo "${COLOR_YELLOW}Uninstalling dependencies which are not compatible with Pydantic 1${COLOR_RESET}"
- echo
- # shellcheck disable=SC2086
- ${PACKAGING_TOOL_CMD} uninstall ${EXTRA_UNINSTALL_FLAGS} pyiceberg weaviate-client
- echo
- echo "${COLOR_YELLOW}Downgrading Pydantic to < 2${COLOR_RESET}"
- echo
- # Pydantic 1.10.17/1.10.15 conflicts with aws-sam-translator so we need to exclude it
- # shellcheck disable=SC2086
- ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} --upgrade "pydantic<2.0.0,!=1.10.17,!=1.10.15"
- pip check
- else
- echo
- echo "${COLOR_BLUE}Leaving default pydantic v2${COLOR_RESET}"
- echo
- fi
-}
-
-
# Download minimum supported version of sqlalchemy to run tests with it
function check_downgrade_sqlalchemy() {
if [[ ${DOWNGRADE_SQLALCHEMY=} != "true" ]]; then
@@ -422,7 +381,6 @@ function check_force_lowest_dependencies() {
determine_airflow_to_use
environment_initialization
check_boto_upgrade
-check_pydantic
check_downgrade_sqlalchemy
check_downgrade_pendulum
check_force_lowest_dependencies
diff --git a/tests/always/test_example_dags.py b/tests/always/test_example_dags.py
index b9e45647ec..12ff4c0f38 100644
--- a/tests/always/test_example_dags.py
+++ b/tests/always/test_example_dags.py
@@ -65,12 +65,6 @@ IGNORE_AIRFLOW_PROVIDER_DEPRECATION_WARNING: tuple[str, ...] = (
)
-if os.environ.get("PYDANTIC", "v2") != "v2":
- pytest.skip(
- "The test is skipped because we are running in limited Pydantic environment", allow_module_level=True
- )
-
-
def match_optional_dependencies(distribution_name: str, specifier: str | None) -> tuple[bool, str]:
try:
package_version = Version(importlib_metadata.version(distribution_name))
diff --git a/tests/operators/test_python.py b/tests/operators/test_python.py
index 0f52f16b87..3a3eaa6840 100644
--- a/tests/operators/test_python.py
+++ b/tests/operators/test_python.py
@@ -63,7 +63,6 @@ from airflow.operators.python import (
from airflow.settings import _ENABLE_AIP_44
from airflow.utils import timezone
from airflow.utils.context import AirflowContextDeprecationWarning, Context
-from airflow.utils.pydantic import is_pydantic_2_installed
from airflow.utils.python_virtualenv import prepare_virtualenv
from airflow.utils.session import create_session
from airflow.utils.state import DagRunState, State, TaskInstanceState
@@ -88,10 +87,7 @@ DILL_MARKER = pytest.mark.skipif(not DILL_INSTALLED, reason="`dill` is not insta
CLOUDPICKLE_INSTALLED = find_spec("cloudpickle") is not None
CLOUDPICKLE_MARKER = pytest.mark.skipif(not CLOUDPICKLE_INSTALLED, reason="`cloudpickle` is not installed")
-HAS_PYDANTIC_2 = is_pydantic_2_installed()
-USE_AIRFLOW_CONTEXT_MARKER = pytest.mark.skipif(
- not HAS_PYDANTIC_2 or not _ENABLE_AIP_44, reason="`pydantic<2` or AIP-44 is not enabled"
-)
+USE_AIRFLOW_CONTEXT_MARKER = pytest.mark.skipif(not _ENABLE_AIP_44, reason="AIP-44 is not enabled")
class BasePythonTest:
@@ -1085,18 +1081,6 @@ class BaseTestPythonVirtualenvOperator(BasePythonTest):
ti = self.run_as_task(f, return_ti=True, multiple_outputs=False, use_airflow_context=True)
assert ti.state == TaskInstanceState.SUCCESS
- @pytest.mark.skipif(HAS_PYDANTIC_2, reason="`pydantic>=2` is installed")
- def test_use_airflow_context_without_pydantic_v2_error(self):
- def f():
- from airflow.operators.python import get_current_context
-
- get_current_context()
- return []
-
- error_msg = "`get_current_context()` needs to be used with Pydantic 2 and AIP-44 enabled."
- with pytest.raises(AirflowException, match=re.escape(error_msg)):
- self.run_as_task(f, return_ti=True, multiple_outputs=False, use_airflow_context=True)
-
@pytest.mark.skipif(_ENABLE_AIP_44, reason="AIP-44 is enabled")
def test_use_airflow_context_without_aip_44_error(self):
def f():
@@ -1105,7 +1089,7 @@ class BaseTestPythonVirtualenvOperator(BasePythonTest):
get_current_context()
return []
- error_msg = "`get_current_context()` needs to be used with Pydantic 2 and AIP-44 enabled."
+ error_msg = "`get_current_context()` needs to be used with AIP-44 enabled."
with pytest.raises(AirflowException, match=re.escape(error_msg)):
self.run_as_task(f, return_ti=True, multiple_outputs=False, use_airflow_context=True)
diff --git a/tests/serialization/test_serde.py b/tests/serialization/test_serde.py
index 2d03aa0a7b..cc50e77224 100644
--- a/tests/serialization/test_serde.py
+++ b/tests/serialization/test_serde.py
@@ -26,6 +26,7 @@ from typing import ClassVar
import attr
import pytest
+from pydantic import BaseModel
from airflow.datasets import Dataset
from airflow.serialization.serde import (
@@ -42,7 +43,6 @@ from airflow.serialization.serde import (
serialize,
)
from airflow.utils.module_loading import import_string, iter_namespace, qualname
-from airflow.utils.pydantic import BaseModel
from tests.test_utils.config import conf_vars
diff --git a/tests/serialization/test_serialized_objects.py b/tests/serialization/test_serialized_objects.py
index 624da24d26..20ed3954e1 100644
--- a/tests/serialization/test_serialized_objects.py
+++ b/tests/serialization/test_serialized_objects.py
@@ -29,6 +29,7 @@ import pytest
from dateutil import relativedelta
from kubernetes.client import models as k8s
from pendulum.tz.timezone import Timezone
+from pydantic import BaseModel
from airflow.datasets import Dataset, DatasetAlias, DatasetAliasEvent
from airflow.exceptions import (
@@ -63,7 +64,6 @@ from airflow.utils import timezone
from airflow.utils.context import OutletEventAccessor, OutletEventAccessors
from airflow.utils.db import LazySelectSequence
from airflow.utils.operator_resources import Resources
-from airflow.utils.pydantic import BaseModel
from airflow.utils.state import DagRunState, State
from airflow.utils.task_group import TaskGroup
from airflow.utils.types import DagRunType