1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
[build-system]
requires = [
# sync with setup.py until we discard non-pep-517/518
"setuptools>=65.0",
"setuptools-scm[toml]>=8.0",
]
build-backend = "setuptools.build_meta"
[project]
name = "pluggy"
license = {text = "MIT"}
authors = [{name = "Holger Krekel", email = "holger@merlinux.eu"}]
classifiers = [
"Development Status :: 6 - Mature",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: POSIX",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS :: MacOS X",
"Topic :: Software Development :: Testing",
"Topic :: Software Development :: Libraries",
"Topic :: Utilities",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
description = "plugin and hook calling mechanisms for python"
readme = {file = "README.rst", content-type = "text/x-rst"}
requires-python = ">=3.9"
dynamic = ["version"]
[project.optional-dependencies]
dev = ["pre-commit", "tox"]
testing = ["pytest", "pytest-benchmark", "coverage"]
[tool.setuptools]
packages = ["pluggy"]
package-dir = {""="src"}
package-data = {"pluggy" = ["py.typed"]}
[tool.ruff.lint]
extend-select = [
"I", # isort
"F","E", "W",
"UP", "ANN",
]
extend-ignore = ["ANN401"]
[tool.ruff.lint.extend-per-file-ignores]
"testing/*.py" = ["ANN001", "ANN002", "ANN003", "ANN201", "ANN202","ANN204" ,]
"docs/*.py" = ["ANN001", "ANN002", "ANN003", "ANN201", "ANN202","ANN204" ,]
[tool.ruff.lint.isort]
force-single-line = true
combine-as-imports = true
force-sort-within-sections = true
order-by-type = false
known-local-folder = ["pluggy"]
lines-after-imports = 2
[tool.setuptools_scm]
version_file = "src/pluggy/_version.py"
[tool.towncrier]
package = "pluggy"
package_dir = "src/pluggy"
filename = "CHANGELOG.rst"
directory = "changelog/"
title_format = "pluggy {version} ({project_date})"
template = "changelog/_template.rst"
[[tool.towncrier.type]]
directory = "removal"
name = "Deprecations and Removals"
showcontent = true
[[tool.towncrier.type]]
directory = "feature"
name = "Features"
showcontent = true
[[tool.towncrier.type]]
directory = "bugfix"
name = "Bug Fixes"
showcontent = true
[[tool.towncrier.type]]
directory = "vendor"
name = "Vendored Libraries"
showcontent = true
[[tool.towncrier.type]]
directory = "doc"
name = "Improved Documentation"
showcontent = true
[[tool.towncrier.type]]
directory = "trivial"
name = "Trivial/Internal Changes"
showcontent = true
[tool.mypy]
mypy_path = "src"
check_untyped_defs = true
# Hopefully we can set this someday!
# disallow_any_expr = true
disallow_any_generics = true
disallow_any_unimported = true
disallow_subclassing_any = true
disallow_untyped_calls = true
disallow_untyped_decorators = true
ignore_missing_imports = true
implicit_reexport = false
no_implicit_optional = true
show_error_codes = true
strict_equality = true
strict_optional = true
warn_redundant_casts = true
warn_return_any = true
warn_unreachable = true
warn_unused_configs = true
warn_unused_ignores = true
|