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 130 131 132 133 134 135 136 137 138
|
[build-system]
requires = ["flit_core >=3.12"]
build-backend = "flit_core.buildapi"
[project]
name = "packaging"
description = "Core utilities for Python packages"
dynamic = ["version"]
license = "Apache-2.0 OR BSD-2-Clause"
readme = "README.rst"
requires-python = ">=3.8"
authors = [{name = "Donald Stufft", email = "donald@stufft.io"}]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"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",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Typing :: Typed",
]
dependencies = []
[project.urls]
Documentation = "https://packaging.pypa.io/"
Source = "https://github.com/pypa/packaging"
[dependency-groups]
test = [
"coverage[toml]>=7.2.0",
"pip>=21.1",
"pretend",
"pytest>=6.2.0",
"tomli; python_version<'3.11'",
"tomli_w",
]
dev = [{ include-group = "test" }]
[tool.flit.sdist]
include = ["tests/", "docs/", "CHANGELOG.rst"]
exclude = ["docs/_build", "tests/manylinux/build-hello-world.sh", "tests/musllinux/build.sh", "tests/hello-world.c", "tests/__pycache__", "build/__pycache__"]
[tool.typos.default.extend-identifiers]
iMatix = "iMatix"
ANDed = "ANDed"
ORed = "ORed"
[tool.typos.default.extend-words]
dynamc = "dynamc"
notin = "notin"
nd = "nd"
tou = "tou"
[tool.coverage.run]
branch = true
source_pkgs = ["packaging"]
[tool.coverage.report]
show_missing = true
fail_under = 100
exclude_also = ["@abc.abstractmethod", "@abc.abstractproperty", "if typing.TYPE_CHECKING:"]
[tool.pytest.ini_options]
minversion = "6.2"
addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"]
xfail_strict = true
filterwarnings = ["error"]
log_level = "INFO"
testpaths = ["tests"]
[tool.mypy]
strict = true
enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
warn_unused_ignores = true
python_version = "3.8"
files = ["src", "tests", "noxfile.py"]
[[tool.mypy.overrides]]
module = ["_manylinux", "pretend", "progress.*", "pkg_resources"]
ignore_missing_imports = true
[tool.ruff]
extend-exclude = [
"src/packaging/licenses/_spdx.py"
]
show-fixes = true
[tool.ruff.lint]
select = ["ALL"]
ignore = [
"A002", # function args shadowing builtins is fine
"C9", # complexity
"COM812", # trailing commas teach the formatter
"D", # doc formatting
"EM", # flake8-errmsg
"ERA", # commented out code
"FBT", # boolean positional args (existing API)
"FIX", # has todos
"N818", # exceptions must end in "*Error"
"PLR09", # too many ...
"PLR2004", # magic value in comparison
"PLW0127", # duplicate of F821
"PTH", # pathlib
"RET505", # unused else/elif after return
"RET506", # unused else/elif after raise
"RET507", # unused else/elif after continue
"RET508", # unused else/elif after break
"S101", # assert is used by mypy and pytest
"S105", # the name token doesn't mean it's a password
"S603", # check for untrusted input
"SIM103", # returning negated value directly not ideal for long chain
"SIM105", # try/except is faster than contextlib.suppress
"SLF001", # private member access
"TD", # todo format
"TRY003", # long messages outside exception class
]
flake8-comprehensions.allow-dict-calls-with-keyword-arguments = true
flake8-unused-arguments.ignore-variadic-names = true
[tool.ruff.lint.per-file-ignores]
"tests/test_*.py" = ["PYI024", "PLR", "SIM201", "T20", "S301"]
"tasks/check.py" = ["UP032", "T20"]
"tests/test_requirements.py" = ["UP032"]
"src/packaging/_musllinux.py" = ["T20"]
"docs/conf.py" = ["INP001", "S", "A001"]
"noxfile.py" = ["T20", "S"]
|