You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by po...@apache.org on 2022/08/04 19:36:56 UTC
[airflow] 01/07: Adjust limits when constructing cross-provider dependencies (#25364)
This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch v2-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit ef8ec274b3265687c40f2f7a3c846eb0af412bcc
Author: Jarek Potiuk <ja...@polidea.com>
AuthorDate: Fri Jul 29 13:24:56 2022 +0200
Adjust limits when constructing cross-provider dependencies (#25364)
When we are constructing cross-provider dependencies, we should adjust
the limits to account for some apache-airflow packages that are not yet
released.
The adjustment is to add ".*" after the version number when
dependency is lower-bound with `>=`. It's not explicitly mentioned in
PEP 440 - it is only mentioned there that it works for
equality, but since `>=` is also part of `equal` it also
works there.
Example is a common-sql package that might be limited to `>=1.1.0`
in google provider as part of the change, but it might not yet be released
as it is being released together with the package it is needed by.
We need to adjust the version whenever in our providers we
refer to other providers with >= install clause because `--pre`
flag in `pip` only allows to install direct pre-release (and
development) dependencies but it does not modify requirements of
those package to also include pre-releases as transitive dependency.
Also, we need to remove the limits in `devel` dependencies because
the packages are not yet released at the moment we use those
dependencies, so the limits in `devel` should be removed, allowing
the developers to install Airflow without those devel packages.
Also a bug was found that would prevent to generate
the dependencies in case provider.yaml file only changed (bad
specification of .pre-commit include)
(cherry picked from commit 5e423f5fc026a37793ec617a94533aa82a30b4ea)
---
.pre-commit-config.yaml | 37 +---
STATIC_CODE_CHECKS.rst | 9 +-
dev/breeze/src/airflow_breeze/pre_commit_ids.py | 3 +-
dev/provider_packages/prepare_provider_packages.py | 128 ++++++------
images/breeze/output-commands-hash.txt | 2 +-
images/breeze/output-static-checks.svg | 224 ++++++++++-----------
setup.py | 19 +-
7 files changed, 207 insertions(+), 215 deletions(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index af8736c3e7..0142eb6995 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -19,6 +19,7 @@ default_stages: [commit, push]
default_language_version:
# force all unspecified python hooks to run python3
python: python3
+ node: 18.6.0
minimum_pre_commit_version: "2.0.0"
repos:
- repo: meta
@@ -343,7 +344,7 @@ repos:
# This check might be removed when min-airflow-version in providers is 2.2
- id: check-airflow-2-2-compatibility
name: Check that providers are 2.2 compatible.
- entry: ./scripts/ci/pre_commit/pre_commit_check_2_1_compatibility.py
+ entry: ./scripts/ci/pre_commit/pre_commit_check_2_2_compatibility.py
language: python
pass_filenames: true
files: ^airflow/providers/.*\.py$
@@ -352,7 +353,7 @@ repos:
name: Update output of breeze commands in BREEZE.rst
entry: ./scripts/ci/pre_commit/pre_commit_breeze_cmd_line.py
language: python
- files: ^BREEZE\.rst$|^dev/breeze/.*$
+ files: ^BREEZE\.rst$|^dev/breeze/.*$|^\.pre-commit-config\.yml$
pass_filenames: false
additional_dependencies: ['rich>=12.4.4', 'rich-click>=1.5']
- id: update-local-yml-file
@@ -368,13 +369,6 @@ repos:
language: system
files: ^setup\.cfg$
pass_filenames: false
- - id: update-providers-dependencies
- name: Update cross-dependencies for providers packages
- entry: ./scripts/ci/pre_commit/pre_commit_build_providers_dependencies.sh
- language: python
- files: ^airflow/providers/.*\.py$|^tests/providers/.*\.py$
- pass_filenames: false
- additional_dependencies: ['setuptools']
- id: update-extras
name: Update extras in documentation
entry: ./scripts/ci/pre_commit/pre_commit_insert_extras.py
@@ -582,14 +576,12 @@ repos:
name: stylelint
entry: "stylelint"
language: node
- language_version: 18.6.0
files: ^airflow/www/.*\.(css|scss|sass)$
# Keep dependency versions in sync w/ airflow/www/package.json
additional_dependencies: ['stylelint@13.3.1', 'stylelint-config-standard@20.0.0']
- id: compile-www-assets
name: Compile www assets
language: node
- language_version: 18.6.0
stages: ['manual']
'types_or': [javascript, tsx, ts]
files: ^airflow/www/
@@ -641,14 +633,6 @@ repos:
additional_dependencies: ['pyyaml', 'jinja2', 'black==22.3.0', 'tabulate', 'rich>=12.4.4']
require_serial: true
pass_filenames: false
- - id: check-airflow-providers-have-extras
- name: Checks providers available when declared by extras in setup.py
- language: python
- entry: ./scripts/ci/pre_commit/pre_commit_check_extras_have_providers.py
- files: ^setup\.py$|^airflow/providers/.*\.py$
- pass_filenames: false
- require_serial: true
- additional_dependencies: ['rich>=12.4.4']
- id: update-breeze-readme-config-hash
name: Update Breeze README.md with config files hash
language: python
@@ -669,7 +653,7 @@ repos:
entry: ./scripts/ci/pre_commit/pre_commit_check_system_tests.py
language: python
files: ^tests/system/.*/example_[^/]*.py$
- exclude: ^tests/system/providers/google/bigquery/example_bigquery_queries\.py$
+ exclude: ^tests/system/providers/google/cloud/bigquery/example_bigquery_queries\.py$
pass_filenames: true
additional_dependencies: ['rich>=12.4.4']
- id: lint-markdown
@@ -677,7 +661,6 @@ repos:
description: Checks the style of Markdown files.
entry: markdownlint
language: node
- language_version: 18.6.0
types: [markdown]
files: \.(md|mdown|markdown)$
additional_dependencies: ['markdownlint-cli']
@@ -818,18 +801,16 @@ repos:
- id: lint-javascript
name: ESLint against airflow/ui
language: node
- language_version: 18.6.0
'types_or': [javascript, tsx, ts]
files: ^airflow/ui/
entry: ./scripts/ci/pre_commit/pre_commit_ui_lint.py
pass_filenames: false
additional_dependencies: ['yarn@1.22.19']
- - id: lint-javascript
- name: ESLint against current UI JavaScript files
+ - id: ts-compile-and-lint-javascript
+ name: TS types generation and ESLint against current UI files
language: node
- language_version: 18.6.0
- 'types_or': [javascript, tsx, ts]
- files: ^airflow/www/static/js/
+ 'types_or': [javascript, tsx, ts, yaml]
+ files: ^airflow/www/static/js/|^airflow/api_connexion/openapi/v1.yaml
entry: ./scripts/ci/pre_commit/pre_commit_www_lint.py
additional_dependencies: ['yarn@1.22.19']
pass_filenames: false
@@ -879,5 +860,5 @@ repos:
entry: ./scripts/ci/pre_commit/pre_commit_migration_reference.py
pass_filenames: false
files: ^airflow/migrations/versions/.*\.py$|^docs/apache-airflow/migrations-ref\.rst$
- additional_dependencies: ['rich>=12.4.4', 'inputimeout']
+ additional_dependencies: ['rich>=12.4.4', 'inputimeout', 'markdown-it-py']
## ONLY ADD PRE-COMMITS HERE THAT REQUIRE CI IMAGE
diff --git a/STATIC_CODE_CHECKS.rst b/STATIC_CODE_CHECKS.rst
index 69cc38ec1b..4b1de0022e 100644
--- a/STATIC_CODE_CHECKS.rst
+++ b/STATIC_CODE_CHECKS.rst
@@ -140,8 +140,6 @@ require Breeze Docker image to be build locally.
+--------------------------------------------------------+------------------------------------------------------------------+---------+
| check-airflow-config-yaml-consistent | Checks for consistency between config.yml and default_config.cfg | |
+--------------------------------------------------------+------------------------------------------------------------------+---------+
-| check-airflow-providers-have-extras | Checks providers available when declared by extras in setup.py | |
-+--------------------------------------------------------+------------------------------------------------------------------+---------+
| check-apache-license-rat | Check if licenses are OK for Apache | |
+--------------------------------------------------------+------------------------------------------------------------------+---------+
| check-base-operator-usage | * Check BaseOperator[Link] core imports | |
@@ -254,8 +252,7 @@ require Breeze Docker image to be build locally.
+--------------------------------------------------------+------------------------------------------------------------------+---------+
| lint-helm-chart | Lint Helm Chart | |
+--------------------------------------------------------+------------------------------------------------------------------+---------+
-| lint-javascript | * ESLint against airflow/ui | |
-| | * ESLint against current UI JavaScript files | |
+| lint-javascript | ESLint against airflow/ui | |
+--------------------------------------------------------+------------------------------------------------------------------+---------+
| lint-json-schema | * Lint JSON Schema files with JSON Schema | |
| | * Lint NodePort Service with JSON Schema | |
@@ -294,6 +291,8 @@ require Breeze Docker image to be build locally.
+--------------------------------------------------------+------------------------------------------------------------------+---------+
| trailing-whitespace | Remove trailing whitespace at end of line | |
+--------------------------------------------------------+------------------------------------------------------------------+---------+
+| ts-compile-and-lint-javascript | TS types generation and ESLint against current UI files | |
++--------------------------------------------------------+------------------------------------------------------------------+---------+
| update-breeze-cmd-output | Update output of breeze commands in BREEZE.rst | |
+--------------------------------------------------------+------------------------------------------------------------------+---------+
| update-breeze-readme-config-hash | Update Breeze README.md with config files hash | |
@@ -308,8 +307,6 @@ require Breeze Docker image to be build locally.
+--------------------------------------------------------+------------------------------------------------------------------+---------+
| update-migration-references | Update migration ref doc | * |
+--------------------------------------------------------+------------------------------------------------------------------+---------+
-| update-providers-dependencies | Update cross-dependencies for providers packages | |
-+--------------------------------------------------------+------------------------------------------------------------------+---------+
| update-setup-cfg-file | Update setup.cfg file with all licenses | |
+--------------------------------------------------------+------------------------------------------------------------------+---------+
| update-spelling-wordlist-to-be-sorted | Sort alphabetically and uniquify spelling_wordlist.txt | |
diff --git a/dev/breeze/src/airflow_breeze/pre_commit_ids.py b/dev/breeze/src/airflow_breeze/pre_commit_ids.py
index 106c3d8969..9d338a6a3b 100644
--- a/dev/breeze/src/airflow_breeze/pre_commit_ids.py
+++ b/dev/breeze/src/airflow_breeze/pre_commit_ids.py
@@ -27,7 +27,6 @@ PRE_COMMIT_LIST = [
'blacken-docs',
'check-airflow-2-2-compatibility',
'check-airflow-config-yaml-consistent',
- 'check-airflow-providers-have-extras',
'check-apache-license-rat',
'check-base-operator-usage',
'check-boring-cyborg-configuration',
@@ -94,6 +93,7 @@ PRE_COMMIT_LIST = [
'run-shellcheck',
'static-check-autoflake',
'trailing-whitespace',
+ 'ts-compile-and-lint-javascript',
'update-breeze-cmd-output',
'update-breeze-readme-config-hash',
'update-extras',
@@ -101,7 +101,6 @@ PRE_COMMIT_LIST = [
'update-inlined-dockerfile-scripts',
'update-local-yml-file',
'update-migration-references',
- 'update-providers-dependencies',
'update-setup-cfg-file',
'update-spelling-wordlist-to-be-sorted',
'update-supported-versions',
diff --git a/dev/provider_packages/prepare_provider_packages.py b/dev/provider_packages/prepare_provider_packages.py
index ca979bdc3d..243aaa19e6 100755
--- a/dev/provider_packages/prepare_provider_packages.py
+++ b/dev/provider_packages/prepare_provider_packages.py
@@ -37,6 +37,7 @@ from enum import Enum
from functools import lru_cache
from os.path import dirname, relpath
from pathlib import Path
+from random import choice
from shutil import copyfile
from typing import Any, Dict, Generator, Iterable, List, NamedTuple, Optional, Set, Tuple, Union
@@ -91,19 +92,27 @@ AIRFLOW_PATH = AIRFLOW_SOURCES_ROOT_PATH / "airflow"
DIST_PATH = AIRFLOW_SOURCES_ROOT_PATH / "dist"
PROVIDERS_PATH = AIRFLOW_PATH / "providers"
DOCUMENTATION_PATH = AIRFLOW_SOURCES_ROOT_PATH / "docs"
+
+DEPENDENCIES_JSON_FILE_PATH = AIRFLOW_SOURCES_ROOT_PATH / "generated" / "provider_dependencies.json"
+
TARGET_PROVIDER_PACKAGES_PATH = AIRFLOW_SOURCES_ROOT_PATH / "provider_packages"
GENERATED_AIRFLOW_PATH = TARGET_PROVIDER_PACKAGES_PATH / "airflow"
GENERATED_PROVIDERS_PATH = GENERATED_AIRFLOW_PATH / "providers"
PROVIDER_RUNTIME_DATA_SCHEMA_PATH = AIRFLOW_SOURCES_ROOT_PATH / "airflow" / "provider_info.schema.json"
+CROSS_PROVIDERS_DEPS = "cross-providers-deps"
+DEPS = "deps"
+
sys.path.insert(0, str(AIRFLOW_SOURCES_ROOT_PATH))
+
+ALL_DEPENDENCIES = json.loads(DEPENDENCIES_JSON_FILE_PATH.read_text())
+
# those imports need to come after the above sys.path.insert to make sure that Airflow
# sources are importable without having to add the airflow sources to the PYTHONPATH before
# running the script
-from setup import PROVIDERS_REQUIREMENTS # type: ignore[attr-defined] # isort:skip # noqa
-from setup import PREINSTALLED_PROVIDERS # type: ignore[attr-defined] # isort:skip # noqa
+from setup import PREINSTALLED_PROVIDERS, ALL_PROVIDERS # type: ignore[attr-defined] # isort:skip # noqa
# Note - we do not test protocols as they are not really part of the official API of
# Apache Airflow
@@ -134,14 +143,6 @@ class EntityType(Enum):
Secrets = "Secrets"
-def get_provider_packages() -> List[str]:
- """
- Returns all provider packages.
-
- """
- return list(PROVIDERS_REQUIREMENTS.keys())
-
-
@click.group(context_settings={'help_option_names': ['-h', '--help'], 'max_content_width': 500})
def cli():
...
@@ -257,9 +258,6 @@ def get_target_providers_package_folder(provider_package_id: str) -> str:
return os.path.join(get_target_providers_folder(), *provider_package_id.split("."))
-DEPENDENCIES_JSON_FILE = os.path.join(PROVIDERS_PATH, "dependencies.json")
-
-
def get_pip_package_name(provider_package_id: str) -> str:
"""
Returns PIP package name for the package id.
@@ -316,28 +314,21 @@ def get_install_requirements(provider_package_id: str, version_suffix: str) -> s
:return: install requirements of the package
"""
- dependencies = PROVIDERS_REQUIREMENTS[provider_package_id]
- provider_yaml = get_provider_yaml(provider_package_id)
- install_requires = []
- if "additional-dependencies" in provider_yaml:
- additional_dependencies = provider_yaml['additional-dependencies']
- if version_suffix:
- # In case we are preparing "rc" or dev0 packages, we should also
- # make sure that cross-dependency with Airflow or Airflow Providers will
- # contain the version suffix, otherwise we will have conflicting dependencies.
- # For example if (in sftp) we have ssh>=2.0.1 and release ssh==2.0.1
- # we want to turn this into ssh>=2.0.1.dev0 if we build dev0 version of the packages
- # or >=2.0.1rc1 if we build rc1 version of the packages.
- for dependency in additional_dependencies:
- if dependency.startswith("apache-airflow") and ">=" in dependency:
- dependency = (
- dependency + ("." if not version_suffix.startswith(".") else "") + version_suffix
- )
- install_requires.append(dependency)
- else:
- install_requires.extend(additional_dependencies)
- install_requires.extend(dependencies)
+ def apply_version_suffix(install_clause: str) -> str:
+ if install_clause.startswith("apache-airflow") and ">=" in install_clause and version_suffix != "":
+ # This is workaround for `pip` way of handling `--pre` installation switch. It apparently does
+ # not modify the meaning of `install_requires` to include also pre-releases, so we need to
+ # modify our internal provider and airflow package version references to include all pre-releases
+ # including all development releases. When you specify dependency as >= X.Y.Z, and you
+ # have packages X.Y.Zdev0 or X.Y.Zrc1 in a local file, such package is not considered
+ # as fulfilling the requirement even if `--pre` switch is used.
+ return install_clause + ".*"
+ return install_clause
+
+ install_requires = [
+ apply_version_suffix(clause) for clause in ALL_DEPENDENCIES[provider_package_id][DEPS]
+ ]
prefix = "\n "
return prefix + prefix.join(install_requires)
@@ -361,24 +352,28 @@ def get_package_extras(provider_package_id: str) -> Dict[str, List[str]]:
"""
if provider_package_id == 'providers':
return {}
- with open(DEPENDENCIES_JSON_FILE) as dependencies_file:
- cross_provider_dependencies: Dict[str, List[str]] = json.load(dependencies_file)
- extras_dict = (
- {
- module: [get_pip_package_name(module)]
- for module in cross_provider_dependencies[provider_package_id]
- }
- if cross_provider_dependencies.get(provider_package_id)
- else {}
- )
+ extras_dict: Dict[str, List[str]] = {
+ module: [get_pip_package_name(module)]
+ for module in ALL_DEPENDENCIES[provider_package_id][CROSS_PROVIDERS_DEPS]
+ }
provider_yaml_dict = get_provider_yaml(provider_package_id)
additional_extras = provider_yaml_dict.get('additional-extras')
if additional_extras:
- for key in additional_extras:
- if key in extras_dict:
- extras_dict[key].append(additional_extras[key])
+ for entry in additional_extras:
+ name = entry['name']
+ dependencies = entry['dependencies']
+ if name in extras_dict:
+ # remove non-versioned dependencies if versioned ones are coming
+ existing_dependencies = set(extras_dict[name])
+ for new_dependency in dependencies:
+ for dependency in existing_dependencies:
+ # remove extra if exists as non-versioned one
+ if new_dependency.startswith(dependency):
+ extras_dict[name].remove(dependency)
+ break
+ extras_dict[name].append(new_dependency)
else:
- extras_dict[key] = additional_extras[key]
+ extras_dict[name] = dependencies
return extras_dict
@@ -412,7 +407,7 @@ def render_template(
return content
-PR_PATTERN = re.compile(r".*\(#([0-9]+)\)")
+PR_PATTERN = re.compile(r".*\(#(\d+)\)")
class Change(NamedTuple):
@@ -659,9 +654,7 @@ def get_cross_provider_dependent_packages(provider_package_id: str) -> List[str]
:param provider_package_id: package id
:return: list of cross-provider dependencies
"""
- with open(os.path.join(PROVIDERS_PATH, "dependencies.json")) as dependencies_file:
- dependent_packages = json.load(dependencies_file).get(provider_package_id) or []
- return dependent_packages
+ return ALL_DEPENDENCIES[provider_package_id][CROSS_PROVIDERS_DEPS]
def make_sure_remote_apache_exists_and_fetch(git_update: bool, verbose: bool):
@@ -1028,11 +1021,7 @@ def get_provider_details(provider_package_id: str) -> ProviderPackageDetails:
def get_provider_requirements(provider_package_id: str) -> List[str]:
provider_yaml = get_provider_yaml(provider_package_id)
- requirements = (
- provider_yaml['additional-dependencies'].copy() if 'additional-dependencies' in provider_yaml else []
- )
- requirements.extend(PROVIDERS_REQUIREMENTS[provider_package_id])
- return requirements
+ return provider_yaml['dependencies']
def get_provider_jinja_context(
@@ -1082,7 +1071,7 @@ def get_provider_jinja_context(
provider_package_path=provider_details.source_provider_package_path
),
"CROSS_PROVIDERS_DEPENDENCIES": cross_providers_dependencies,
- "PIP_REQUIREMENTS": PROVIDERS_REQUIREMENTS[provider_details.provider_package_id],
+ "PIP_REQUIREMENTS": get_provider_requirements(provider_details.provider_package_id),
"PROVIDER_TYPE": "Provider",
"PROVIDERS_FOLDER": "providers",
"PROVIDER_DESCRIPTION": provider_details.provider_description,
@@ -1144,12 +1133,23 @@ class TypeOfChange(Enum):
SKIP = "s"
-def get_type_of_changes() -> TypeOfChange:
+def get_type_of_changes(answer: Optional[str]) -> TypeOfChange:
"""
Ask user to specify type of changes (case-insensitive).
:return: Type of change.
"""
given_answer = ""
+ if answer and answer.lower() in ["yes", "y"]:
+ # Simulate all possible non-terminal answers
+ return choice(
+ [
+ TypeOfChange.DOCUMENTATION,
+ TypeOfChange.BUGFIX,
+ TypeOfChange.FEATURE,
+ TypeOfChange.BREAKING_CHANGE,
+ TypeOfChange.SKIP,
+ ]
+ )
while given_answer not in [*[t.value for t in TypeOfChange], "q"]:
console.print(
"[yellow]Type of change (d)ocumentation, (b)ugfix, (f)eature, (x)breaking "
@@ -1212,7 +1212,7 @@ def update_release_notes(
:param version_suffix: version suffix corresponding to the version in the code
:param force: regenerate already released documentation
:param verbose: whether to print verbose messages
- :param answer: force answer to questions if set.
+ :param answer: force answer to question if set.
:returns False if the package should be skipped, True if everything generated properly
"""
verify_provider_package(provider_package_id)
@@ -1229,7 +1229,7 @@ def update_release_notes(
console.print()
return False
else:
- type_of_change = get_type_of_changes()
+ type_of_change = get_type_of_changes(answer=answer)
if type_of_change == TypeOfChange.DOCUMENTATION:
if isinstance(latest_change, Change):
mark_latest_changes_as_documentation_only(provider_package_id, latest_change)
@@ -1443,7 +1443,7 @@ def get_all_providers() -> List[str]:
Returns all providers for regular packages.
:return: list of providers that are considered for provider packages
"""
- return list(PROVIDERS_REQUIREMENTS.keys())
+ return list(ALL_PROVIDERS)
def verify_provider_package(provider_package_id: str) -> None:
@@ -1452,10 +1452,10 @@ def verify_provider_package(provider_package_id: str) -> None:
:param provider_package_id: package id to verify
:return: None
"""
- if provider_package_id not in get_provider_packages():
+ if provider_package_id not in get_all_providers():
console.print(f"[red]Wrong package name: {provider_package_id}[/]")
console.print("Use one of:")
- console.print(get_provider_packages())
+ console.print(get_all_providers())
raise Exception(f"The package {provider_package_id} is not a provider package.")
diff --git a/images/breeze/output-commands-hash.txt b/images/breeze/output-commands-hash.txt
index 0c6425a26b..b889b05211 100644
--- a/images/breeze/output-commands-hash.txt
+++ b/images/breeze/output-commands-hash.txt
@@ -29,7 +29,7 @@ self-upgrade:b5437c0a1a91533a11ee9d0a9692369c
setup-autocomplete:355b72dee171c2fcba46fc90ac7c97b0
shell:ab7955da71048b3a695485c152d06786
start-airflow:30caa077555bef44e5bdf76dfeca092c
-static-checks:f67ced7d54feee18d504712a1cf610ac
+static-checks:d70a46e0c663e9a633665fe87b4ece0e
stop:8ebd8a42f1003495d37b884de5ac7ce6
tests:e39111ecbd33a65ababb3cbfbac2b069
verify-image:a6b3c70957aea96a5d4d261f23359a2d
diff --git a/images/breeze/output-static-checks.svg b/images/breeze/output-static-checks.svg
index 904cc38de3..534af58e7e 100644
--- a/images/breeze/output-static-checks.svg
+++ b/images/breeze/output-static-checks.svg
@@ -19,241 +19,241 @@
font-weight: 700;
}
- .terminal-2820057193-matrix {
+ .terminal-3102383761-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
- .terminal-2820057193-title {
+ .terminal-3102383761-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
- .terminal-2820057193-r1 { fill: #c5c8c6;font-weight: bold }
-.terminal-2820057193-r2 { fill: #c5c8c6 }
-.terminal-2820057193-r3 { fill: #d0b344;font-weight: bold }
-.terminal-2820057193-r4 { fill: #868887 }
-.terminal-2820057193-r5 { fill: #68a0b3;font-weight: bold }
-.terminal-2820057193-r6 { fill: #98a84b;font-weight: bold }
-.terminal-2820057193-r7 { fill: #8d7b39 }
+ .terminal-3102383761-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-3102383761-r2 { fill: #c5c8c6 }
+.terminal-3102383761-r3 { fill: #d0b344;font-weight: bold }
+.terminal-3102383761-r4 { fill: #868887 }
+.terminal-3102383761-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-3102383761-r6 { fill: #98a84b;font-weight: bold }
+.terminal-3102383761-r7 { fill: #8d7b39 }
</style>
<defs>
- <clipPath id="terminal-2820057193-clip-terminal">
+ <clipPath id="terminal-3102383761-clip-terminal">
<rect x="0" y="0" width="1463.0" height="1219.0" />
</clipPath>
- <clipPath id="terminal-2820057193-line-0">
+ <clipPath id="terminal-3102383761-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-1">
+<clipPath id="terminal-3102383761-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-2">
+<clipPath id="terminal-3102383761-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-3">
+<clipPath id="terminal-3102383761-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-4">
+<clipPath id="terminal-3102383761-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-5">
+<clipPath id="terminal-3102383761-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-6">
+<clipPath id="terminal-3102383761-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-7">
+<clipPath id="terminal-3102383761-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-8">
+<clipPath id="terminal-3102383761-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-9">
+<clipPath id="terminal-3102383761-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-10">
+<clipPath id="terminal-3102383761-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-11">
+<clipPath id="terminal-3102383761-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-12">
+<clipPath id="terminal-3102383761-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-13">
+<clipPath id="terminal-3102383761-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-14">
+<clipPath id="terminal-3102383761-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-15">
+<clipPath id="terminal-3102383761-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-16">
+<clipPath id="terminal-3102383761-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-17">
+<clipPath id="terminal-3102383761-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-18">
+<clipPath id="terminal-3102383761-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-19">
+<clipPath id="terminal-3102383761-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-20">
+<clipPath id="terminal-3102383761-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-21">
+<clipPath id="terminal-3102383761-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-22">
+<clipPath id="terminal-3102383761-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-23">
+<clipPath id="terminal-3102383761-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-24">
+<clipPath id="terminal-3102383761-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-25">
+<clipPath id="terminal-3102383761-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-26">
+<clipPath id="terminal-3102383761-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-27">
+<clipPath id="terminal-3102383761-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-28">
+<clipPath id="terminal-3102383761-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-29">
+<clipPath id="terminal-3102383761-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-30">
+<clipPath id="terminal-3102383761-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-31">
+<clipPath id="terminal-3102383761-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-32">
+<clipPath id="terminal-3102383761-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-33">
+<clipPath id="terminal-3102383761-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-34">
+<clipPath id="terminal-3102383761-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-35">
+<clipPath id="terminal-3102383761-line-35">
<rect x="0" y="855.5" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-36">
+<clipPath id="terminal-3102383761-line-36">
<rect x="0" y="879.9" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-37">
+<clipPath id="terminal-3102383761-line-37">
<rect x="0" y="904.3" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-38">
+<clipPath id="terminal-3102383761-line-38">
<rect x="0" y="928.7" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-39">
+<clipPath id="terminal-3102383761-line-39">
<rect x="0" y="953.1" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-40">
+<clipPath id="terminal-3102383761-line-40">
<rect x="0" y="977.5" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-41">
+<clipPath id="terminal-3102383761-line-41">
<rect x="0" y="1001.9" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-42">
+<clipPath id="terminal-3102383761-line-42">
<rect x="0" y="1026.3" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-43">
+<clipPath id="terminal-3102383761-line-43">
<rect x="0" y="1050.7" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-44">
+<clipPath id="terminal-3102383761-line-44">
<rect x="0" y="1075.1" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-45">
+<clipPath id="terminal-3102383761-line-45">
<rect x="0" y="1099.5" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-46">
+<clipPath id="terminal-3102383761-line-46">
<rect x="0" y="1123.9" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-47">
+<clipPath id="terminal-3102383761-line-47">
<rect x="0" y="1148.3" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="terminal-2820057193-line-48">
+<clipPath id="terminal-3102383761-line-48">
<rect x="0" y="1172.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="1268" rx="8"/><text class="terminal-2820057193-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: static-checks</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="1268" rx="8"/><text class="terminal-3102383761-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: static-checks</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
- <g transform="translate(9, 41)" clip-path="url(#terminal-2820057193-clip-terminal)">
+ <g transform="translate(9, 41)" clip-path="url(#terminal-3102383761-clip-terminal)">
- <g class="terminal-2820057193-matrix">
- <text class="terminal-2820057193-r2" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-2820057193-line-0)">
-</text><text class="terminal-2820057193-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#terminal-2820057193-line-1)">Usage: </text><text class="terminal-2820057193-r1" x="97.6" y="44.4" textLength="610" clip-path="url(#terminal-2820057193-line-1)">breeze static-checks [OPTIONS] [PRECOMMIT_ARGS]...</text><text class="terminal-2820057193-r2" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-2820057193-line-1)">
-</text><text class="terminal-2820057193-r2" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-2)">
-</text><text class="terminal-2820057193-r2" x="12.2" y="93.2" textLength="219.6" clip-path="url(#terminal-2820057193-line-3)">Run static checks.</text><text class="terminal-2820057193-r2" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-2820057193-line-3)">
-</text><text class="terminal-2820057193-r2" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-2820057193-line-4)">
-</text><text class="terminal-2820057193-r4" x="0" y="142" textLength="24.4" clip-path="url(#terminal-2820057193-line-5)">╭─</text><text class="terminal-2820057193-r4" x="24.4" y="142" textLength="1415.2" clip-path="url(#terminal-2820057193-line-5)"> Pre-commit flags ──────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="terminal-2820057193-r4" x="1439.6" y="142" textLength="24.4" clip-path="url(#terminal-282005 [...]
-</text><text class="terminal-2820057193-r4" x="0" y="166.4" textLength="12.2" clip-path="url(#terminal-2820057193-line-6)">│</text><text class="terminal-2820057193-r5" x="24.4" y="166.4" textLength="12.2" clip-path="url(#terminal-2820057193-line-6)">-</text><text class="terminal-2820057193-r5" x="36.6" y="166.4" textLength="61" clip-path="url(#terminal-2820057193-line-6)">-type</text><text class="terminal-2820057193-r6" x="317.2" y="166.4" textLength="24.4" clip-path="url(#terminal-28200 [...]
-</text><text class="terminal-2820057193-r4" x="0" y="190.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-7)">│</text><text class="terminal-2820057193-r7" x="366" y="190.8" textLength="1073.6" clip-path="url(#terminal-2820057193-line-7)">(all | black | blacken-docs | check-airflow-2-2-compatibility |                         [...]
-</text><text class="terminal-2820057193-r4" x="0" y="215.2" textLength="12.2" clip-path="url(#terminal-2820057193-line-8)">│</text><text class="terminal-2820057193-r7" x="366" y="215.2" textLength="1073.6" clip-path="url(#terminal-2820057193-line-8)">check-airflow-config-yaml-consistent | check-airflow-providers-have-extras |            </text><text class="terminal-2820057193-r4" x="1451.8" y="215.2" textLength="1 [...]
-</text><text class="terminal-2820057193-r4" x="0" y="239.6" textLength="12.2" clip-path="url(#terminal-2820057193-line-9)">│</text><text class="terminal-2820057193-r7" x="366" y="239.6" textLength="1073.6" clip-path="url(#terminal-2820057193-line-9)">check-apache-license-rat | check-base-operator-usage | check-boring-cyborg-configuration</text><text class="terminal-2820057193-r4" x="1451.8" y="239.6" textLength="12.2" clip-path="url(#terminal-2820057193-line-9)">│</te [...]
-</text><text class="terminal-2820057193-r4" x="0" y="264" textLength="12.2" clip-path="url(#terminal-2820057193-line-10)">│</text><text class="terminal-2820057193-r7" x="366" y="264" textLength="1073.6" clip-path="url(#terminal-2820057193-line-10)">| check-breeze-top-dependencies-limited | check-builtin-literals |                      </text><text class="termi [...]
-</text><text class="terminal-2820057193-r4" x="0" y="288.4" textLength="12.2" clip-path="url(#terminal-2820057193-line-11)">│</text><text class="terminal-2820057193-r7" x="366" y="288.4" textLength="1073.6" clip-path="url(#terminal-2820057193-line-11)">check-changelog-has-no-duplicates | check-daysago-import-from-utils |                   </text><text class="terminal-2820057193-r [...]
-</text><text class="terminal-2820057193-r4" x="0" y="312.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-12)">│</text><text class="terminal-2820057193-r7" x="366" y="312.8" textLength="1073.6" clip-path="url(#terminal-2820057193-line-12)">check-docstring-param-types | check-executables-have-shebangs |                         </text><tex [...]
-</text><text class="terminal-2820057193-r4" x="0" y="337.2" textLength="12.2" clip-path="url(#terminal-2820057193-line-13)">│</text><text class="terminal-2820057193-r7" x="366" y="337.2" textLength="1073.6" clip-path="url(#terminal-2820057193-line-13)">check-extra-packages-references | check-extras-order | check-for-inclusive-language |   </text><text class="terminal-2820057193-r4" x="1451.8" y="337.2" textLength="12.2" clip-path="url(#terminal-282 [...]
-</text><text class="terminal-2820057193-r4" x="0" y="361.6" textLength="12.2" clip-path="url(#terminal-2820057193-line-14)">│</text><text class="terminal-2820057193-r7" x="366" y="361.6" textLength="1073.6" clip-path="url(#terminal-2820057193-line-14)">check-hooks-apply | check-incorrect-use-of-LoggingMixin |                             [...]
-</text><text class="terminal-2820057193-r4" x="0" y="386" textLength="12.2" clip-path="url(#terminal-2820057193-line-15)">│</text><text class="terminal-2820057193-r7" x="366" y="386" textLength="1073.6" clip-path="url(#terminal-2820057193-line-15)">check-integrations-are-consistent | check-merge-conflict | check-newsfragments-are-valid</text><text class="terminal-2820057193-r4" x="1451.8" y="386" textLength="12.2" clip-path="url(#terminal-2820057193-line-15)">│</text> [...]
-</text><text class="terminal-2820057193-r4" x="0" y="410.4" textLength="12.2" clip-path="url(#terminal-2820057193-line-16)">│</text><text class="terminal-2820057193-r7" x="366" y="410.4" textLength="1073.6" clip-path="url(#terminal-2820057193-line-16)">| check-no-providers-in-core-examples | check-no-relative-imports |                     </text><text class="termin [...]
-</text><text class="terminal-2820057193-r4" x="0" y="434.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-17)">│</text><text class="terminal-2820057193-r7" x="366" y="434.8" textLength="1073.6" clip-path="url(#terminal-2820057193-line-17)">check-persist-credentials-disabled-in-github-workflows |                              [...]
-</text><text class="terminal-2820057193-r4" x="0" y="459.2" textLength="12.2" clip-path="url(#terminal-2820057193-line-18)">│</text><text class="terminal-2820057193-r7" x="366" y="459.2" textLength="1073.6" clip-path="url(#terminal-2820057193-line-18)">check-pre-commit-information-consistent | check-provide-create-sessions-imports |       </text><text class="terminal-2820057193-r4" x="1451.8" y="459.2" textLength="12.2" clip-path="url(#te [...]
-</text><text class="terminal-2820057193-r4" x="0" y="483.6" textLength="12.2" clip-path="url(#terminal-2820057193-line-19)">│</text><text class="terminal-2820057193-r7" x="366" y="483.6" textLength="1073.6" clip-path="url(#terminal-2820057193-line-19)">check-provider-yaml-valid | check-providers-init-file-missing |                         </text><tex [...]
-</text><text class="terminal-2820057193-r4" x="0" y="508" textLength="12.2" clip-path="url(#terminal-2820057193-line-20)">│</text><text class="terminal-2820057193-r7" x="366" y="508" textLength="1073.6" clip-path="url(#terminal-2820057193-line-20)">check-providers-subpackages-init-file-exist | check-pydevd-left-in-code |               </text><text class="terminal-2820057193-r4" x="1451.8" y="508" te [...]
-</text><text class="terminal-2820057193-r4" x="0" y="532.4" textLength="12.2" clip-path="url(#terminal-2820057193-line-21)">│</text><text class="terminal-2820057193-r7" x="366" y="532.4" textLength="1073.6" clip-path="url(#terminal-2820057193-line-21)">check-revision-heads-map | check-safe-filter-usage-in-html | check-setup-order |        </text><text class="terminal-2820057193-r4" x="1451.8" y="532.4" textLength="12.2" cli [...]
-</text><text class="terminal-2820057193-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-22)">│</text><text class="terminal-2820057193-r7" x="366" y="556.8" textLength="1073.6" clip-path="url(#terminal-2820057193-line-22)">check-start-date-not-used-in-defaults | check-system-tests-present |                    </text><text class="terminal-2820057 [...]
-</text><text class="terminal-2820057193-r4" x="0" y="581.2" textLength="12.2" clip-path="url(#terminal-2820057193-line-23)">│</text><text class="terminal-2820057193-r7" x="366" y="581.2" textLength="1073.6" clip-path="url(#terminal-2820057193-line-23)">check-system-tests-tocs | check-xml | codespell | compile-www-assets |                  </text><text class="termin [...]
-</text><text class="terminal-2820057193-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#terminal-2820057193-line-24)">│</text><text class="terminal-2820057193-r7" x="366" y="605.6" textLength="1073.6" clip-path="url(#terminal-2820057193-line-24)">compile-www-assets-dev | create-missing-init-py-files-tests | debug-statements |        </text><text class="terminal-2820057193-r4" x="1451.8" y="605.6" textLength="12.2" cli [...]
-</text><text class="terminal-2820057193-r4" x="0" y="630" textLength="12.2" clip-path="url(#terminal-2820057193-line-25)">│</text><text class="terminal-2820057193-r7" x="366" y="630" textLength="1073.6" clip-path="url(#terminal-2820057193-line-25)">detect-private-key | doctoc | end-of-file-fixer | fix-encoding-pragma | flynt |         </text><text class="terminal-2820057193-r4" x="1451.8" y="630" te [...]
-</text><text class="terminal-2820057193-r4" x="0" y="654.4" textLength="12.2" clip-path="url(#terminal-2820057193-line-26)">│</text><text class="terminal-2820057193-r7" x="366" y="654.4" textLength="1073.6" clip-path="url(#terminal-2820057193-line-26)">forbid-tabs | identity | insert-license | isort | lint-chart-schema | lint-css |        </text><text class="terminal-2820057193-r4" x="1451.8" y [...]
-</text><text class="terminal-2820057193-r4" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-27)">│</text><text class="terminal-2820057193-r7" x="366" y="678.8" textLength="1073.6" clip-path="url(#terminal-2820057193-line-27)">lint-dockerfile | lint-helm-chart | lint-javascript | lint-json-schema | lint-markdown |</text><text class="terminal-2820057193-r4" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#termina [...]
-</text><text class="terminal-2820057193-r4" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-2820057193-line-28)">│</text><text class="terminal-2820057193-r7" x="366" y="703.2" textLength="1073.6" clip-path="url(#terminal-2820057193-line-28)">lint-openapi | mixed-line-ending | pretty-format-json | pydocstyle | python-no-log-warn </text><text class="terminal-2820057193-r4" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#termina [...]
-</text><text class="terminal-2820057193-r4" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-2820057193-line-29)">│</text><text class="terminal-2820057193-r7" x="366" y="727.6" textLength="1073.6" clip-path="url(#terminal-2820057193-line-29)">| pyupgrade | rst-backticks | run-flake8 | run-mypy | run-shellcheck |                  </text><tex [...]
-</text><text class="terminal-2820057193-r4" x="0" y="752" textLength="12.2" clip-path="url(#terminal-2820057193-line-30)">│</text><text class="terminal-2820057193-r7" x="366" y="752" textLength="1073.6" clip-path="url(#terminal-2820057193-line-30)">static-check-autoflake | trailing-whitespace | update-breeze-cmd-output |               </text><text class="terminal-2820057193-r4" x="1451.8" [...]
-</text><text class="terminal-2820057193-r4" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-2820057193-line-31)">│</text><text class="terminal-2820057193-r7" x="366" y="776.4" textLength="1073.6" clip-path="url(#terminal-2820057193-line-31)">update-breeze-readme-config-hash | update-extras | update-in-the-wild-to-be-sorted |    </text><text class="terminal-2820057193-r4" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#termina [...]
-</text><text class="terminal-2820057193-r4" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-32)">│</text><text class="terminal-2820057193-r7" x="366" y="800.8" textLength="1073.6" clip-path="url(#terminal-2820057193-line-32)">update-inlined-dockerfile-scripts | update-local-yml-file | update-migration-references </text><text class="terminal-2820057193-r4" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-32 [...]
-</text><text class="terminal-2820057193-r4" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-2820057193-line-33)">│</text><text class="terminal-2820057193-r7" x="366" y="825.2" textLength="1073.6" clip-path="url(#terminal-2820057193-line-33)">| update-providers-dependencies | update-setup-cfg-file |                            [...]
-</text><text class="terminal-2820057193-r4" x="0" y="849.6" textLength="12.2" clip-path="url(#terminal-2820057193-line-34)">│</text><text class="terminal-2820057193-r7" x="366" y="849.6" textLength="1073.6" clip-path="url(#terminal-2820057193-line-34)">update-spelling-wordlist-to-be-sorted | update-supported-versions |                     </text><text class="terminal-28 [...]
-</text><text class="terminal-2820057193-r4" x="0" y="874" textLength="12.2" clip-path="url(#terminal-2820057193-line-35)">│</text><text class="terminal-2820057193-r7" x="366" y="874" textLength="1073.6" clip-path="url(#terminal-2820057193-line-35)">update-vendored-in-k8s-json-schema | update-version | yamllint | yesqa)                 </text><text class="terminal-2820057193- [...]
-</text><text class="terminal-2820057193-r4" x="0" y="898.4" textLength="12.2" clip-path="url(#terminal-2820057193-line-36)">│</text><text class="terminal-2820057193-r5" x="24.4" y="898.4" textLength="12.2" clip-path="url(#terminal-2820057193-line-36)">-</text><text class="terminal-2820057193-r5" x="36.6" y="898.4" textLength="61" clip-path="url(#terminal-2820057193-line-36)">-file</text><text class="terminal-2820057193-r6" x="317.2" y="898.4" textLength="24.4" clip-path="url(#terminal-28 [...]
-</text><text class="terminal-2820057193-r4" x="0" y="922.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-37)">│</text><text class="terminal-2820057193-r5" x="24.4" y="922.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-37)">-</text><text class="terminal-2820057193-r5" x="36.6" y="922.8" textLength="48.8" clip-path="url(#terminal-2820057193-line-37)">-all</text><text class="terminal-2820057193-r5" x="85.4" y="922.8" textLength="73.2" clip-path="url(#terminal-28 [...]
-</text><text class="terminal-2820057193-r4" x="0" y="947.2" textLength="12.2" clip-path="url(#terminal-2820057193-line-38)">│</text><text class="terminal-2820057193-r5" x="24.4" y="947.2" textLength="12.2" clip-path="url(#terminal-2820057193-line-38)">-</text><text class="terminal-2820057193-r5" x="36.6" y="947.2" textLength="61" clip-path="url(#terminal-2820057193-line-38)">-show</text><text class="terminal-2820057193-r5" x="97.6" y="947.2" textLength="195.2" clip-path="url(#terminal-28 [...]
-</text><text class="terminal-2820057193-r4" x="0" y="971.6" textLength="12.2" clip-path="url(#terminal-2820057193-line-39)">│</text><text class="terminal-2820057193-r5" x="24.4" y="971.6" textLength="12.2" clip-path="url(#terminal-2820057193-line-39)">-</text><text class="terminal-2820057193-r5" x="36.6" y="971.6" textLength="61" clip-path="url(#terminal-2820057193-line-39)">-last</text><text class="terminal-2820057193-r5" x="97.6" y="971.6" textLength="85.4" clip-path="url(#terminal-282 [...]
-</text><text class="terminal-2820057193-r4" x="0" y="996" textLength="1464" clip-path="url(#terminal-2820057193-line-40)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="terminal-2820057193-r2" x="1464" y="996" textLength="12.2" clip-path="url(#terminal-2820057193-line-40)">
-</text><text class="terminal-2820057193-r4" x="0" y="1020.4" textLength="24.4" clip-path="url(#terminal-2820057193-line-41)">╭─</text><text class="terminal-2820057193-r4" x="24.4" y="1020.4" textLength="1415.2" clip-path="url(#terminal-2820057193-line-41)"> Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="terminal-2820057193-r4" x="1439.6" y="1020.4" textLength="24.4" clip-path="url(#terminal- [...]
-</text><text class="terminal-2820057193-r4" x="0" y="1044.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-42)">│</text><text class="terminal-2820057193-r5" x="24.4" y="1044.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-42)">-</text><text class="terminal-2820057193-r5" x="36.6" y="1044.8" textLength="85.4" clip-path="url(#terminal-2820057193-line-42)">-commit</text><text class="terminal-2820057193-r5" x="122" y="1044.8" textLength="48.8" clip-path="url(#termi [...]
-</text><text class="terminal-2820057193-r4" x="0" y="1069.2" textLength="12.2" clip-path="url(#terminal-2820057193-line-43)">│</text><text class="terminal-2820057193-r2" x="329.4" y="1069.2" textLength="183" clip-path="url(#terminal-2820057193-line-43)">exclusive with </text><text class="terminal-2820057193-r5" x="512.4" y="1069.2" textLength="12.2" clip-path="url(#terminal-2820057193-line-43)">-</text><text class="terminal-2820057193-r5" x="524.6" y="1069.2" textLength="61" cl [...]
-</text><text class="terminal-2820057193-r4" x="0" y="1093.6" textLength="12.2" clip-path="url(#terminal-2820057193-line-44)">│</text><text class="terminal-2820057193-r7" x="329.4" y="1093.6" textLength="1110.2" clip-path="url(#terminal-2820057193-line-44)">(TEXT)                                      & [...]
-</text><text class="terminal-2820057193-r4" x="0" y="1118" textLength="12.2" clip-path="url(#terminal-2820057193-line-45)">│</text><text class="terminal-2820057193-r5" x="24.4" y="1118" textLength="12.2" clip-path="url(#terminal-2820057193-line-45)">-</text><text class="terminal-2820057193-r5" x="36.6" y="1118" textLength="97.6" clip-path="url(#terminal-2820057193-line-45)">-verbose</text><text class="terminal-2820057193-r6" x="280.6" y="1118" textLength="24.4" clip-path="url(#terminal-2 [...]
-</text><text class="terminal-2820057193-r4" x="0" y="1142.4" textLength="12.2" clip-path="url(#terminal-2820057193-line-46)">│</text><text class="terminal-2820057193-r5" x="24.4" y="1142.4" textLength="12.2" clip-path="url(#terminal-2820057193-line-46)">-</text><text class="terminal-2820057193-r5" x="36.6" y="1142.4" textLength="48.8" clip-path="url(#terminal-2820057193-line-46)">-dry</text><text class="terminal-2820057193-r5" x="85.4" y="1142.4" textLength="48.8" clip-path="url(#termina [...]
-</text><text class="terminal-2820057193-r4" x="0" y="1166.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-47)">│</text><text class="terminal-2820057193-r5" x="24.4" y="1166.8" textLength="12.2" clip-path="url(#terminal-2820057193-line-47)">-</text><text class="terminal-2820057193-r5" x="36.6" y="1166.8" textLength="85.4" clip-path="url(#terminal-2820057193-line-47)">-github</text><text class="terminal-2820057193-r5" x="122" y="1166.8" textLength="134.2" clip-path="url(#term [...]
-</text><text class="terminal-2820057193-r4" x="0" y="1191.2" textLength="12.2" clip-path="url(#terminal-2820057193-line-48)">│</text><text class="terminal-2820057193-r5" x="24.4" y="1191.2" textLength="12.2" clip-path="url(#terminal-2820057193-line-48)">-</text><text class="terminal-2820057193-r5" x="36.6" y="1191.2" textLength="61" clip-path="url(#terminal-2820057193-line-48)">-help</text><text class="terminal-2820057193-r6" x="280.6" y="1191.2" textLength="24.4" clip-path="url(#termina [...]
-</text><text class="terminal-2820057193-r4" x="0" y="1215.6" textLength="1464" clip-path="url(#terminal-2820057193-line-49)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="terminal-2820057193-r2" x="1464" y="1215.6" textLength="12.2" clip-path="url(#terminal-2820057193-line-49)">
+ <g class="terminal-3102383761-matrix">
+ <text class="terminal-3102383761-r2" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-3102383761-line-0)">
+</text><text class="terminal-3102383761-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#terminal-3102383761-line-1)">Usage: </text><text class="terminal-3102383761-r1" x="97.6" y="44.4" textLength="610" clip-path="url(#terminal-3102383761-line-1)">breeze static-checks [OPTIONS] [PRECOMMIT_ARGS]...</text><text class="terminal-3102383761-r2" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-3102383761-line-1)">
+</text><text class="terminal-3102383761-r2" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-3102383761-line-2)">
+</text><text class="terminal-3102383761-r2" x="12.2" y="93.2" textLength="219.6" clip-path="url(#terminal-3102383761-line-3)">Run static checks.</text><text class="terminal-3102383761-r2" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-3102383761-line-3)">
+</text><text class="terminal-3102383761-r2" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-3102383761-line-4)">
+</text><text class="terminal-3102383761-r4" x="0" y="142" textLength="24.4" clip-path="url(#terminal-3102383761-line-5)">╭─</text><text class="terminal-3102383761-r4" x="24.4" y="142" textLength="1415.2" clip-path="url(#terminal-3102383761-line-5)"> Pre-commit flags ──────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="terminal-3102383761-r4" x="1439.6" y="142" textLength="24.4" clip-path="url(#terminal-310238 [...]
+</text><text class="terminal-3102383761-r4" x="0" y="166.4" textLength="12.2" clip-path="url(#terminal-3102383761-line-6)">│</text><text class="terminal-3102383761-r5" x="24.4" y="166.4" textLength="12.2" clip-path="url(#terminal-3102383761-line-6)">-</text><text class="terminal-3102383761-r5" x="36.6" y="166.4" textLength="61" clip-path="url(#terminal-3102383761-line-6)">-type</text><text class="terminal-3102383761-r6" x="317.2" y="166.4" textLength="24.4" clip-path="url(#terminal-31023 [...]
+</text><text class="terminal-3102383761-r4" x="0" y="190.8" textLength="12.2" clip-path="url(#terminal-3102383761-line-7)">│</text><text class="terminal-3102383761-r7" x="366" y="190.8" textLength="1073.6" clip-path="url(#terminal-3102383761-line-7)">(all | black | blacken-docs | check-airflow-2-2-compatibility |                         [...]
+</text><text class="terminal-3102383761-r4" x="0" y="215.2" textLength="12.2" clip-path="url(#terminal-3102383761-line-8)">│</text><text class="terminal-3102383761-r7" x="366" y="215.2" textLength="1073.6" clip-path="url(#terminal-3102383761-line-8)">check-airflow-config-yaml-consistent | check-apache-license-rat |                       </text><text class="ter [...]
+</text><text class="terminal-3102383761-r4" x="0" y="239.6" textLength="12.2" clip-path="url(#terminal-3102383761-line-9)">│</text><text class="terminal-3102383761-r7" x="366" y="239.6" textLength="1073.6" clip-path="url(#terminal-3102383761-line-9)">check-base-operator-usage | check-boring-cyborg-configuration |                         </text><text [...]
+</text><text class="terminal-3102383761-r4" x="0" y="264" textLength="12.2" clip-path="url(#terminal-3102383761-line-10)">│</text><text class="terminal-3102383761-r7" x="366" y="264" textLength="1073.6" clip-path="url(#terminal-3102383761-line-10)">check-breeze-top-dependencies-limited | check-builtin-literals |                        </text><text class=" [...]
+</text><text class="terminal-3102383761-r4" x="0" y="288.4" textLength="12.2" clip-path="url(#terminal-3102383761-line-11)">│</text><text class="terminal-3102383761-r7" x="366" y="288.4" textLength="1073.6" clip-path="url(#terminal-3102383761-line-11)">check-changelog-has-no-duplicates | check-daysago-import-from-utils |                   </text><text class="terminal-3102383761-r [...]
+</text><text class="terminal-3102383761-r4" x="0" y="312.8" textLength="12.2" clip-path="url(#terminal-3102383761-line-12)">│</text><text class="terminal-3102383761-r7" x="366" y="312.8" textLength="1073.6" clip-path="url(#terminal-3102383761-line-12)">check-docstring-param-types | check-executables-have-shebangs |                         </text><tex [...]
+</text><text class="terminal-3102383761-r4" x="0" y="337.2" textLength="12.2" clip-path="url(#terminal-3102383761-line-13)">│</text><text class="terminal-3102383761-r7" x="366" y="337.2" textLength="1073.6" clip-path="url(#terminal-3102383761-line-13)">check-extra-packages-references | check-extras-order | check-for-inclusive-language |   </text><text class="terminal-3102383761-r4" x="1451.8" y="337.2" textLength="12.2" clip-path="url(#terminal-310 [...]
+</text><text class="terminal-3102383761-r4" x="0" y="361.6" textLength="12.2" clip-path="url(#terminal-3102383761-line-14)">│</text><text class="terminal-3102383761-r7" x="366" y="361.6" textLength="1073.6" clip-path="url(#terminal-3102383761-line-14)">check-hooks-apply | check-incorrect-use-of-LoggingMixin |                             [...]
+</text><text class="terminal-3102383761-r4" x="0" y="386" textLength="12.2" clip-path="url(#terminal-3102383761-line-15)">│</text><text class="terminal-3102383761-r7" x="366" y="386" textLength="1073.6" clip-path="url(#terminal-3102383761-line-15)">check-integrations-are-consistent | check-merge-conflict | check-newsfragments-are-valid</text><text class="terminal-3102383761-r4" x="1451.8" y="386" textLength="12.2" clip-path="url(#terminal-3102383761-line-15)">│</text> [...]
+</text><text class="terminal-3102383761-r4" x="0" y="410.4" textLength="12.2" clip-path="url(#terminal-3102383761-line-16)">│</text><text class="terminal-3102383761-r7" x="366" y="410.4" textLength="1073.6" clip-path="url(#terminal-3102383761-line-16)">| check-no-providers-in-core-examples | check-no-relative-imports |                     </text><text class="termin [...]
+</text><text class="terminal-3102383761-r4" x="0" y="434.8" textLength="12.2" clip-path="url(#terminal-3102383761-line-17)">│</text><text class="terminal-3102383761-r7" x="366" y="434.8" textLength="1073.6" clip-path="url(#terminal-3102383761-line-17)">check-persist-credentials-disabled-in-github-workflows |                              [...]
+</text><text class="terminal-3102383761-r4" x="0" y="459.2" textLength="12.2" clip-path="url(#terminal-3102383761-line-18)">│</text><text class="terminal-3102383761-r7" x="366" y="459.2" textLength="1073.6" clip-path="url(#terminal-3102383761-line-18)">check-pre-commit-information-consistent | check-provide-create-sessions-imports |       </text><text class="terminal-3102383761-r4" x="1451.8" y="459.2" textLength="12.2" clip-path="url(#te [...]
+</text><text class="terminal-3102383761-r4" x="0" y="483.6" textLength="12.2" clip-path="url(#terminal-3102383761-line-19)">│</text><text class="terminal-3102383761-r7" x="366" y="483.6" textLength="1073.6" clip-path="url(#terminal-3102383761-line-19)">check-provider-yaml-valid | check-providers-init-file-missing |                         </text><tex [...]
+</text><text class="terminal-3102383761-r4" x="0" y="508" textLength="12.2" clip-path="url(#terminal-3102383761-line-20)">│</text><text class="terminal-3102383761-r7" x="366" y="508" textLength="1073.6" clip-path="url(#terminal-3102383761-line-20)">check-providers-subpackages-init-file-exist | check-pydevd-left-in-code |               </text><text class="terminal-3102383761-r4" x="1451.8" y="508" te [...]
+</text><text class="terminal-3102383761-r4" x="0" y="532.4" textLength="12.2" clip-path="url(#terminal-3102383761-line-21)">│</text><text class="terminal-3102383761-r7" x="366" y="532.4" textLength="1073.6" clip-path="url(#terminal-3102383761-line-21)">check-revision-heads-map | check-safe-filter-usage-in-html | check-setup-order |        </text><text class="terminal-3102383761-r4" x="1451.8" y="532.4" textLength="12.2" cli [...]
+</text><text class="terminal-3102383761-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#terminal-3102383761-line-22)">│</text><text class="terminal-3102383761-r7" x="366" y="556.8" textLength="1073.6" clip-path="url(#terminal-3102383761-line-22)">check-start-date-not-used-in-defaults | check-system-tests-present |                    </text><text class="terminal-3102383 [...]
+</text><text class="terminal-3102383761-r4" x="0" y="581.2" textLength="12.2" clip-path="url(#terminal-3102383761-line-23)">│</text><text class="terminal-3102383761-r7" x="366" y="581.2" textLength="1073.6" clip-path="url(#terminal-3102383761-line-23)">check-system-tests-tocs | check-xml | codespell | compile-www-assets |                  </text><text class="termin [...]
+</text><text class="terminal-3102383761-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#terminal-3102383761-line-24)">│</text><text class="terminal-3102383761-r7" x="366" y="605.6" textLength="1073.6" clip-path="url(#terminal-3102383761-line-24)">compile-www-assets-dev | create-missing-init-py-files-tests | debug-statements |        </text><text class="terminal-3102383761-r4" x="1451.8" y="605.6" textLength="12.2" cli [...]
+</text><text class="terminal-3102383761-r4" x="0" y="630" textLength="12.2" clip-path="url(#terminal-3102383761-line-25)">│</text><text class="terminal-3102383761-r7" x="366" y="630" textLength="1073.6" clip-path="url(#terminal-3102383761-line-25)">detect-private-key | doctoc | end-of-file-fixer | fix-encoding-pragma | flynt |         </text><text class="terminal-3102383761-r4" x="1451.8" y="630" te [...]
+</text><text class="terminal-3102383761-r4" x="0" y="654.4" textLength="12.2" clip-path="url(#terminal-3102383761-line-26)">│</text><text class="terminal-3102383761-r7" x="366" y="654.4" textLength="1073.6" clip-path="url(#terminal-3102383761-line-26)">forbid-tabs | identity | insert-license | isort | lint-chart-schema | lint-css |        </text><text class="terminal-3102383761-r4" x="1451.8" y [...]
+</text><text class="terminal-3102383761-r4" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-3102383761-line-27)">│</text><text class="terminal-3102383761-r7" x="366" y="678.8" textLength="1073.6" clip-path="url(#terminal-3102383761-line-27)">lint-dockerfile | lint-helm-chart | lint-javascript | lint-json-schema | lint-markdown |</text><text class="terminal-3102383761-r4" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#termina [...]
+</text><text class="terminal-3102383761-r4" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-3102383761-line-28)">│</text><text class="terminal-3102383761-r7" x="366" y="703.2" textLength="1073.6" clip-path="url(#terminal-3102383761-line-28)">lint-openapi | mixed-line-ending | pretty-format-json | pydocstyle | python-no-log-warn </text><text class="terminal-3102383761-r4" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#termina [...]
+</text><text class="terminal-3102383761-r4" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-3102383761-line-29)">│</text><text class="terminal-3102383761-r7" x="366" y="727.6" textLength="1073.6" clip-path="url(#terminal-3102383761-line-29)">| pyupgrade | rst-backticks | run-flake8 | run-mypy | run-shellcheck |                  </text><tex [...]
+</text><text class="terminal-3102383761-r4" x="0" y="752" textLength="12.2" clip-path="url(#terminal-3102383761-line-30)">│</text><text class="terminal-3102383761-r7" x="366" y="752" textLength="1073.6" clip-path="url(#terminal-3102383761-line-30)">static-check-autoflake | trailing-whitespace | ts-compile-and-lint-javascript |         </text><text class="terminal-3102383761-r4" x="1451.8" y="752" textLength="12.2" clip [...]
+</text><text class="terminal-3102383761-r4" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-3102383761-line-31)">│</text><text class="terminal-3102383761-r7" x="366" y="776.4" textLength="1073.6" clip-path="url(#terminal-3102383761-line-31)">update-breeze-cmd-output | update-breeze-readme-config-hash | update-extras |           </text><text class="terminal-3102383761-r4" x="1451.8" y="776.4" textLe [...]
+</text><text class="terminal-3102383761-r4" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-3102383761-line-32)">│</text><text class="terminal-3102383761-r7" x="366" y="800.8" textLength="1073.6" clip-path="url(#terminal-3102383761-line-32)">update-in-the-wild-to-be-sorted | update-inlined-dockerfile-scripts |                   </text><text class="terminal-3102383761-r [...]
+</text><text class="terminal-3102383761-r4" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-3102383761-line-33)">│</text><text class="terminal-3102383761-r7" x="366" y="825.2" textLength="1073.6" clip-path="url(#terminal-3102383761-line-33)">update-local-yml-file | update-migration-references | update-setup-cfg-file |           </text><text class="terminal-3102383761-r4" x="1451.8" y="825.2" textLe [...]
+</text><text class="terminal-3102383761-r4" x="0" y="849.6" textLength="12.2" clip-path="url(#terminal-3102383761-line-34)">│</text><text class="terminal-3102383761-r7" x="366" y="849.6" textLength="1073.6" clip-path="url(#terminal-3102383761-line-34)">update-spelling-wordlist-to-be-sorted | update-supported-versions |                     </text><text class="terminal-31 [...]
+</text><text class="terminal-3102383761-r4" x="0" y="874" textLength="12.2" clip-path="url(#terminal-3102383761-line-35)">│</text><text class="terminal-3102383761-r7" x="366" y="874" textLength="1073.6" clip-path="url(#terminal-3102383761-line-35)">update-vendored-in-k8s-json-schema | update-version | yamllint | yesqa)                 </text><text class="terminal-3102383761- [...]
+</text><text class="terminal-3102383761-r4" x="0" y="898.4" textLength="12.2" clip-path="url(#terminal-3102383761-line-36)">│</text><text class="terminal-3102383761-r5" x="24.4" y="898.4" textLength="12.2" clip-path="url(#terminal-3102383761-line-36)">-</text><text class="terminal-3102383761-r5" x="36.6" y="898.4" textLength="61" clip-path="url(#terminal-3102383761-line-36)">-file</text><text class="terminal-3102383761-r6" x="317.2" y="898.4" textLength="24.4" clip-path="url(#terminal-31 [...]
+</text><text class="terminal-3102383761-r4" x="0" y="922.8" textLength="12.2" clip-path="url(#terminal-3102383761-line-37)">│</text><text class="terminal-3102383761-r5" x="24.4" y="922.8" textLength="12.2" clip-path="url(#terminal-3102383761-line-37)">-</text><text class="terminal-3102383761-r5" x="36.6" y="922.8" textLength="48.8" clip-path="url(#terminal-3102383761-line-37)">-all</text><text class="terminal-3102383761-r5" x="85.4" y="922.8" textLength="73.2" clip-path="url(#terminal-31 [...]
+</text><text class="terminal-3102383761-r4" x="0" y="947.2" textLength="12.2" clip-path="url(#terminal-3102383761-line-38)">│</text><text class="terminal-3102383761-r5" x="24.4" y="947.2" textLength="12.2" clip-path="url(#terminal-3102383761-line-38)">-</text><text class="terminal-3102383761-r5" x="36.6" y="947.2" textLength="61" clip-path="url(#terminal-3102383761-line-38)">-show</text><text class="terminal-3102383761-r5" x="97.6" y="947.2" textLength="195.2" clip-path="url(#terminal-31 [...]
+</text><text class="terminal-3102383761-r4" x="0" y="971.6" textLength="12.2" clip-path="url(#terminal-3102383761-line-39)">│</text><text class="terminal-3102383761-r5" x="24.4" y="971.6" textLength="12.2" clip-path="url(#terminal-3102383761-line-39)">-</text><text class="terminal-3102383761-r5" x="36.6" y="971.6" textLength="61" clip-path="url(#terminal-3102383761-line-39)">-last</text><text class="terminal-3102383761-r5" x="97.6" y="971.6" textLength="85.4" clip-path="url(#terminal-310 [...]
+</text><text class="terminal-3102383761-r4" x="0" y="996" textLength="1464" clip-path="url(#terminal-3102383761-line-40)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="terminal-3102383761-r2" x="1464" y="996" textLength="12.2" clip-path="url(#terminal-3102383761-line-40)">
+</text><text class="terminal-3102383761-r4" x="0" y="1020.4" textLength="24.4" clip-path="url(#terminal-3102383761-line-41)">╭─</text><text class="terminal-3102383761-r4" x="24.4" y="1020.4" textLength="1415.2" clip-path="url(#terminal-3102383761-line-41)"> Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="terminal-3102383761-r4" x="1439.6" y="1020.4" textLength="24.4" clip-path="url(#terminal- [...]
+</text><text class="terminal-3102383761-r4" x="0" y="1044.8" textLength="12.2" clip-path="url(#terminal-3102383761-line-42)">│</text><text class="terminal-3102383761-r5" x="24.4" y="1044.8" textLength="12.2" clip-path="url(#terminal-3102383761-line-42)">-</text><text class="terminal-3102383761-r5" x="36.6" y="1044.8" textLength="85.4" clip-path="url(#terminal-3102383761-line-42)">-commit</text><text class="terminal-3102383761-r5" x="122" y="1044.8" textLength="48.8" clip-path="url(#termi [...]
+</text><text class="terminal-3102383761-r4" x="0" y="1069.2" textLength="12.2" clip-path="url(#terminal-3102383761-line-43)">│</text><text class="terminal-3102383761-r2" x="329.4" y="1069.2" textLength="183" clip-path="url(#terminal-3102383761-line-43)">exclusive with </text><text class="terminal-3102383761-r5" x="512.4" y="1069.2" textLength="12.2" clip-path="url(#terminal-3102383761-line-43)">-</text><text class="terminal-3102383761-r5" x="524.6" y="1069.2" textLength="61" cl [...]
+</text><text class="terminal-3102383761-r4" x="0" y="1093.6" textLength="12.2" clip-path="url(#terminal-3102383761-line-44)">│</text><text class="terminal-3102383761-r7" x="329.4" y="1093.6" textLength="1110.2" clip-path="url(#terminal-3102383761-line-44)">(TEXT)                                      & [...]
+</text><text class="terminal-3102383761-r4" x="0" y="1118" textLength="12.2" clip-path="url(#terminal-3102383761-line-45)">│</text><text class="terminal-3102383761-r5" x="24.4" y="1118" textLength="12.2" clip-path="url(#terminal-3102383761-line-45)">-</text><text class="terminal-3102383761-r5" x="36.6" y="1118" textLength="97.6" clip-path="url(#terminal-3102383761-line-45)">-verbose</text><text class="terminal-3102383761-r6" x="280.6" y="1118" textLength="24.4" clip-path="url(#terminal-3 [...]
+</text><text class="terminal-3102383761-r4" x="0" y="1142.4" textLength="12.2" clip-path="url(#terminal-3102383761-line-46)">│</text><text class="terminal-3102383761-r5" x="24.4" y="1142.4" textLength="12.2" clip-path="url(#terminal-3102383761-line-46)">-</text><text class="terminal-3102383761-r5" x="36.6" y="1142.4" textLength="48.8" clip-path="url(#terminal-3102383761-line-46)">-dry</text><text class="terminal-3102383761-r5" x="85.4" y="1142.4" textLength="48.8" clip-path="url(#termina [...]
+</text><text class="terminal-3102383761-r4" x="0" y="1166.8" textLength="12.2" clip-path="url(#terminal-3102383761-line-47)">│</text><text class="terminal-3102383761-r5" x="24.4" y="1166.8" textLength="12.2" clip-path="url(#terminal-3102383761-line-47)">-</text><text class="terminal-3102383761-r5" x="36.6" y="1166.8" textLength="85.4" clip-path="url(#terminal-3102383761-line-47)">-github</text><text class="terminal-3102383761-r5" x="122" y="1166.8" textLength="134.2" clip-path="url(#term [...]
+</text><text class="terminal-3102383761-r4" x="0" y="1191.2" textLength="12.2" clip-path="url(#terminal-3102383761-line-48)">│</text><text class="terminal-3102383761-r5" x="24.4" y="1191.2" textLength="12.2" clip-path="url(#terminal-3102383761-line-48)">-</text><text class="terminal-3102383761-r5" x="36.6" y="1191.2" textLength="61" clip-path="url(#terminal-3102383761-line-48)">-help</text><text class="terminal-3102383761-r6" x="280.6" y="1191.2" textLength="24.4" clip-path="url(#termina [...]
+</text><text class="terminal-3102383761-r4" x="0" y="1215.6" textLength="1464" clip-path="url(#terminal-3102383761-line-49)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="terminal-3102383761-r2" x="1464" y="1215.6" textLength="12.2" clip-path="url(#terminal-3102383761-line-49)">
</text>
</g>
</g>
diff --git a/setup.py b/setup.py
index 0c31292513..e8ca5816d8 100644
--- a/setup.py
+++ b/setup.py
@@ -927,12 +927,27 @@ def is_package_excluded(package: str, exclusion_list: List[str]) -> bool:
return any(package.startswith(excluded_package) for excluded_package in exclusion_list)
+def remove_provider_limits(package: str) -> str:
+ """
+ Removes the limit for providers in devel_all to account for pre-release and development packages.
+
+ :param package: package name (beginning of it)
+ :return: true if package should be excluded
+ """
+ return (
+ package.split(">=")[0]
+ if package.startswith("apache-airflow-providers") and ">=" in package
+ else package
+ )
+
+
+devel = [remove_provider_limits(package) for package in devel]
devel_all = [
- package
+ remove_provider_limits(package)
for package in devel_all
if not is_package_excluded(package=package, exclusion_list=PACKAGES_EXCLUDED_FOR_ALL)
]
-
+devel_hadoop = [remove_provider_limits(package) for package in devel_hadoop]
devel_ci = devel_all