blob: 9a377070bb2cf832e846a5cb31fcf034fd1fb8ed [file]
# 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 = ["flit_core >=3.12.0,<4"]
build-backend = "flit_core.buildapi"
[project]
name = "apache-airflow-breeze"
version = "0.0.1"
description = "Apache Airflow Breeze development environment"
readme = "README.md"
authors = [
{name="Apache Software Foundation", email="dev@airflow.apache.org"},
]
maintainers = [
{name="Apache Software Foundation", email="dev@airflow.apache.org"},
]
keywords = [ "airflow", "development", "ci" ]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Developers",
"Framework :: Apache Airflow",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]
requires-python = ">=3.10,!=3.15"
dependencies = [
"black>=26.1.0",
"click>=8.3.0",
"filelock>=3.13.0",
"flit>=3.12.0",
"flit-core>=3.12.0",
"google-api-python-client>=2.142.0",
"google-auth-httplib2>=0.2.0",
"google-auth-oauthlib>=1.2.0",
"gitpython>=3.1.40",
"hatch>=1.16.5",
"inputimeout>=1.0.4",
"jinja2>=3.1.5",
"jsonschema>=4.19.1",
"packaging>=25.0",
"prek>=0.4.1",
"psutil>=5.9.6",
"pygithub>=2.1.1",
"pytest-xdist>=3.3.1",
"pytest>=9.0.0",
"pyyaml>=6.0.3",
"requests>=2.32.0",
"restructuredtext-lint>=1.4.0",
"rich-click>=1.9.7",
"rich>=13.6.0",
"tabulate>=0.9.0",
"tomli>=2.0.1; python_version < '3.11'",
"twine>=4.0.2",
"tqdm>=4.67.1",
"boto3>=1.37.2",
"semver>=3.0.4"
]
[project.scripts]
breeze = "airflow_breeze.breeze:main"
[tool.flit.module]
name = "airflow_breeze"
# Explicit sdist contents so the build does not rely on VCS information
# (flit 4.0 makes --no-use-vcs the default — see https://github.com/pypa/flit/pull/782).
[tool.flit.sdist]
include = [
"autocomplete/",
"doc/",
"tests/",
"uv.lock",
]
[tool.black]
line-length = 110
target-version = ['py310', 'py311', 'py312']
[tool.pytest]
addopts = [
"-rasl",
"--verbosity=2",
"-p", "no:flaky",
"-p", "no:nose",
"-p", "no:legacypath",
]
norecursedirs = [
".eggs",
]
log_level = "INFO"
filterwarnings = [
"error::pytest.PytestCollectionWarning",
]
python_files = [
"*.py",
]
testpaths = [
"tests",
]
# Keep temporary directories (created by `tmp_path`) for 2 recent runs only failed tests.
tmp_path_retention_count = "2"
tmp_path_retention_policy = "failed"
[tool.ruff]
extend = "../../pyproject.toml"
src = ["src"]
[tool.uv]
# Synchroonize with scripts/ci/prek/upgrade_important_versions.py
exclude-newer = "4 days"
[tool.mypy]
ignore_missing_imports = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = false
pretty = true
[tool.isort]
line_length = 110
combine_as_imports = true
default_section = "THIRDPARTY"
known_first_party = "airflow,airflow_breeze,tests"
skip= "build,.tox,venv"
profile = "black"