-
-
Notifications
You must be signed in to change notification settings - Fork 113
Expand file tree
/
Copy pathpyproject.toml
More file actions
200 lines (191 loc) · 5.94 KB
/
Copy pathpyproject.toml
File metadata and controls
200 lines (191 loc) · 5.94 KB
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
[build-system]
build-backend = "hatchling.build"
requires = [
"hatch-vcs>=0.5",
"hatchling>=1.29",
]
[project]
name = "sphinx-autodoc-typehints"
description = "Type hints (PEP 484) support for the Sphinx autodoc extension"
readme.content-type = "text/markdown"
readme.file = "README.md"
keywords = [
"environments",
"isolated",
"testing",
"virtual",
]
license = "MIT"
maintainers = [
{ name = "Bernát Gábor", email = "gaborjbernat@gmail.com" },
]
authors = [
{ name = "Bernát Gábor", email = "gaborjbernat@gmail.com" },
]
requires-python = ">=3.12"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Framework :: Sphinx :: Extension",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Documentation :: Sphinx",
]
dynamic = [
"version",
]
dependencies = [
"sphinx>=9.1",
]
urls.Changelog = "https://github.com/tox-dev/sphinx-autodoc-typehints/releases"
urls.Homepage = "https://github.com/tox-dev/sphinx-autodoc-typehints"
urls.Source = "https://github.com/tox-dev/sphinx-autodoc-typehints"
urls.Tracker = "https://github.com/tox-dev/sphinx-autodoc-typehints/issues"
[dependency-groups]
dev = [
{ include-group = "docs" },
{ include-group = "lint" },
{ include-group = "pkg-meta" },
{ include-group = "test" },
{ include-group = "type" },
]
test = [
"attrs>=25.4",
"covdefaults>=2.3",
"coverage>=7.13.4",
"defusedxml>=0.7.1",
"diff-cover>=10.2",
"numpydoc>=1.10",
"pytest>=9.0.2",
"pytest-cov>=7",
"sphobjinv>=2.3.1.3",
"typing-extensions>=4.15",
]
type = [
"ty>=0.0.19,<0.0.25",
{ include-group = "docs" },
{ include-group = "test" },
]
docs = [
"furo>=2025.12.19",
]
lint = [
"pre-commit-uv>=4.2.1",
]
pkg-meta = [
"check-wheel-contents>=0.6.3",
"twine>=6.2",
"uv>=0.10.6",
]
[tool.hatch]
version.source = "vcs"
build.hooks.vcs.version-file = "src/sphinx_autodoc_typehints/version.py"
[tool.ruff]
line-length = 120
format.preview = true
format.docstring-code-line-length = 100
format.docstring-code-format = true
lint.select = [
"ALL",
]
lint.ignore = [
"ANN401", # allow Any as type annotation
"COM812", # Conflict with formatter
"CPY", # No copyright statements
"D203", # `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible
"D212", # `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible
"DOC", # no sphinx support
"ISC001", # Conflict with formatter
"RUF067", # `__init__` module should only contain docstrings and re-exports
"S104", # Possible binding to all interface
]
lint.per-file-ignores."tests/**/*.py" = [
"B903", # test fixture classes intentionally use plain __init__ without dataclass
"D", # don't care about documentation in tests
"FBT", # don't care about booleans as positional arguments in tests
"INP001", # no implicit namespace
"PLC2701", # private imports
"PLR0913", # any number of arguments in tests
"PLR0917", # any number of arguments in tests
"PLR2004", # Magic value used in comparison, consider replacing with a constant variable
"PYI033", # we test for legacy `# type:` comments
"S101", # asserts allowed in tests
"S603", # `subprocess` call: check for execution of untrusted input
"UP006", # we test for old List/Tuple syntax
"UP007", # we test for old Union syntax
"UP045", # we test for old Optional syntax
]
lint.per-file-ignores."tests/roots/test-integration/mod_eager.py" = [
"I002", # this file intentionally omits `from __future__ import annotations` to test non-deferred annotations
]
lint.per-file-ignores."tests/roots/test-integration/mod_forward_ref.py" = [
"I002", # intentionally omits `from __future__ import annotations` to test forward references
"PLR6301", # method must be instance method to test class forward refs
]
lint.per-file-ignores."tests/roots/test-pyi-stubs/stub_mod.py" = [
"ANN", # intentionally has no type annotations to simulate a C extension
"I002", # intentionally omits `from __future__ import annotations`
"PLR6301", # method must be instance method to test stub resolution
"RUF029", # async function must be async to test async stub resolution
]
lint.per-file-ignores."tests/roots/test-pyi-stubs/stub_mod.pyi" = [
"I002", # stub files don't use `from __future__ import annotations`
]
lint.per-file-ignores."tests/test_resolver/test_type_comments.py" = [
"ANN001", # type comment fixtures intentionally omit annotations
"ARG001", # type comment fixtures have intentionally unused args
]
lint.isort = { known-first-party = [
"sphinx_autodoc_typehints",
"tests",
], required-imports = [
"from __future__ import annotations",
] }
lint.preview = true
[tool.codespell]
builtin = "clear,usage,en-GB_to_en-US"
ignore-words = "ignore-words.txt"
write-changes = true
count = true
[tool.pyproject-fmt]
max_supported_python = "3.14"
[tool.ty]
src.exclude = [ "tests/roots/" ]
environment.python-version = "3.14"
overrides = [ { include = [ "tests/" ], rules.empty-body = "ignore" } ]
[tool.pytest]
ini_options.testpaths = [
"tests",
]
ini_options.filterwarnings = [
"error",
"ignore:.*rm_rf.*:pytest.PytestWarning",
"ignore::sphinx.deprecation.RemovedInSphinx11Warning", # numpydoc upstream: https://github.com/numpy/numpydoc/issues/679
"ignore:urllib3.*doesn't match a supported version",
]
[tool.coverage]
run.parallel = true
run.plugins = [
"covdefaults",
]
paths.source = [
"src",
".tox/*/lib/python*/site-packages",
".tox/pypy*/site-packages",
".tox\\*\\Lib\\site-packages",
".tox/*/.venv/lib/python*/site-packages",
".tox/pypy*/.venv/site-packages",
".tox\\*\\.venv\\Lib\\site-packages",
"*/src",
"*\\src",
]
report.fail_under = 88
report.omit = [
"tests/roots/*",
]
html.show_contexts = true
html.skip_covered = false