[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", ]