| # 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. | |
| [build-system] | |
| requires = [ | |
| "hatchling==1.32.4", | |
| "packaging==26.3", | |
| "pathspec==1.1.1", | |
| "pluggy==1.6.0", | |
| "tomli==2.4.1; python_version < '3.11'", | |
| "tomlkit==0.15.1", | |
| "trove-classifiers==2026.9.21.13", | |
| ] | |
| build-backend = "hatchling.build" | |
| [project] | |
| name = "apache-airflow-scripts" | |
| description = "Scripts and utilities for Apache Airflow CI, Docker, and development" | |
| classifiers = [ | |
| "Private :: Do Not Upload", | |
| ] | |
| requires-python = ">=3.10,!=3.15" | |
| authors = [ | |
| { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, | |
| ] | |
| maintainers = [ | |
| { name = "Apache Software Foundation", email = "dev@airflow.apache.org" }, | |
| ] | |
| version = "0.0.1" | |
| dependencies = [ | |
| "astor>=0.8.1", | |
| "jsonschema>=4.19.1", | |
| "libcst>=1.1.0; python_version < '3.14'", | |
| "libcst>=1.8.6; python_version >= '3.14'", | |
| "packaging>=25.0", | |
| "python-dateutil>=2.8.2", | |
| "pyyaml>=6.0.3", | |
| "requests>=2.31.0", | |
| "rich>=13.6.0", | |
| "rich-click>=1.9.7", | |
| "tabulate>=0.9.0", | |
| "termcolor>=2.3.0", | |
| ] | |
| [dependency-groups] | |
| dev = [ | |
| "apache-airflow-devel-common", | |
| ] | |
| mypy = [ | |
| "apache-airflow-core", | |
| "apache-airflow-devel-common[mypy]", | |
| ] | |
| [tool.uv.sources] | |
| apache-airflow-devel-common = {workspace = true} | |
| [tool.hatch.build.targets.sdist] | |
| exclude = ["*"] | |
| [tool.hatch.build.targets.wheel] | |
| packages = ["ci", "cov", "docker", "in_container", "tools"] | |
| [tool.pytest.ini_options] | |
| # "." makes ci.prek.* importable as packages; "ci/prek" makes bare | |
| # "from common_prek_utils import ..." inside those modules resolve correctly | |
| # (mirroring what Python does automatically when scripts are run directly). | |
| pythonpath = [".", "ci/prek", "in_container"] | |
| [tool.mypy] | |
| ignore_missing_imports = true | |
| no_implicit_optional = true | |
| warn_redundant_casts = true | |
| warn_unused_ignores = false | |
| pretty = true | |
| show_error_codes = true | |
| disable_error_code = [ | |
| "annotation-unchecked", | |
| ] | |
| namespace_packages = true | |
| explicit_package_bases = true | |
| exclude = [ | |
| ".*/node_modules/.*", | |
| # Exclude hidden files and directories | |
| ".*/\\..*" | |
| ] | |
| # Workspace packages (airflow, airflow.sdk, airflowctl, airflow_breeze, tests_common) | |
| # are installed editable into the hook's virtualenv by `uv sync`, so mypy resolves them | |
| # via site-packages — no mypy_path entries needed. | |
| [[tool.mypy.overrides]] | |
| module="airflow.config_templates.default_webserver_config" | |
| disable_error_code = [ | |
| "var-annotated", | |
| ] | |
| [[tool.mypy.overrides]] | |
| module="airflow.migrations.*" | |
| ignore_errors = true | |
| [[tool.mypy.overrides]] | |
| module="airflow.*._vendor.*" | |
| ignore_errors = true | |
| [[tool.mypy.overrides]] | |
| module= [ | |
| "google.cloud.*", | |
| "azure.*", | |
| ] | |
| no_implicit_optional = false | |
| [[tool.mypy.overrides]] | |
| module = "google.api_core.gapic_v1" | |
| ignore_errors = true | |
| [[tool.mypy.overrides]] | |
| module=[ | |
| "referencing.*", | |
| # Beam has some old type annotations, and they introduced an error recently with bad signature of | |
| # a function. This is captured in https://github.com/apache/beam/issues/29927 | |
| # and we should remove this exclusion when it is fixed. | |
| "apache_beam.*" | |
| ] | |
| ignore_errors = true | |
| # airflowctl autogenered datamodels | |
| [[tool.mypy.overrides]] | |
| module="airflowctl.api.datamodels.*" | |
| ignore_errors = true |