File: pyproject.toml

package info (click to toggle)
python-packaging 26.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 920 kB
  • sloc: python: 11,120; makefile: 130; sh: 35
file content (138 lines) | stat: -rw-r--r-- 4,132 bytes parent folder | download
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"]