sdk-python/pyproject.toml

145 lines
3.1 KiB
TOML

[project]
name = "cloudevents"
dynamic = ["version"]
description = "CloudEvents Python SDK"
authors = [
{ name = "The Cloud Events Contributors", email = "cncfcloudevents@gmail.com" }
]
readme = "README.md"
requires-python = ">= 3.9"
license = "Apache-2.0"
classifiers = [
"Intended Audience :: Information Technology",
"Intended Audience :: System Administrators",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Development Status :: 5 - Production/Stable",
"Operating System :: OS Independent",
"Natural Language :: English",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Typing :: Typed",
]
keywords = [
"CloudEvents",
"Eventing",
"Serverless",
]
dependencies = [
"ruff>=0.6.8",
]
[project.urls]
"Source code" = "https://github.com/cloudevents/sdk-python"
"Documentation" = "https://cloudevents.io"
"Home page" = "https://cloudevents.io"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.uv]
dev-dependencies = [
"pytest>=8.3.3",
"mypy>=1.11.2",
"isort>=5.13.2",
"flake8>=7.1.1",
"pep8-naming>=0.14.1",
"flake8-print>=5.0.0",
"pre-commit>=3.8.0",
"pytest-cov>=5.0.0",
]
[tool.uv.pip]
universal = true
generate-hashes = true
[tool.hatch.version]
path = "src/cloudevents/__init__.py"
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.wheel.force-include]
"CHANGELOG.md" = "CHANGELOG.md"
"MAINTAINERS.md" = "MAINTAINERS.md"
"README.md" = "README.md"
[tool.hatch.build.targets.sdist]
packages = ["src/cloudevents"]
[tool.hatch.build.targets.sdist.force-include]
"CHANGELOG.md" = "CHANGELOG.md"
"MAINTAINERS.md" = "MAINTAINERS.md"
[tool.ruff]
line-length = 88
target-version = "py38"
exclude = [
".bzr",
".direnv",
".eggs",
".git",
".git-rewrite",
".hg",
".mypy_cache",
".nox",
".pants.d",
".pyenv",
".pytest_cache",
".pytype",
".ruff_cache",
".svn",
".tox",
".venv",
".vscode",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"site-packages",
"venv",
]
[tool.ruff.lint]
ignore = ["E731"]
extend-ignore = ["E203"]
select = ["I"]
[tool.pytest.ini_options]
testpaths = [
"tests",
]
[tool.mypy]
python_version = 3.9
ignore_missing_imports = true
namespace_packages = true
explicit_package_bases = true
scripts_are_modules = true
pretty = true
show_error_context = true
follow_imports_for_stubs = true
warn_redundant_casts = true
warn_unused_ignores = true
# subset of mypy --strict
# https://mypy.readthedocs.io/en/stable/config_file.html
check_untyped_defs = true
disallow_incomplete_defs = true
warn_return_any = true
strict_equality = true
disallow_untyped_defs = true
exclude = [
"src/cloudevents/v1",
]