Skip to content

Commit ce24c99

Browse files
Merge pull request #2831 from VWS-Python/bump-fmt-2
Bump pyproject-fmt to 2.14.0
2 parents e66761e + 7721f7c commit ce24c99

File tree

1 file changed

+68
-107
lines changed

1 file changed

+68
-107
lines changed

pyproject.toml

Lines changed: 68 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -54,18 +54,14 @@ optional-dependencies.dev = [
5454
"pygments==2.19.2",
5555
"pylint[spelling]==4.0.4",
5656
"pylint-per-file-ignores==3.2.0",
57-
"pyproject-fmt==2.12.1",
57+
"pyproject-fmt==2.14.0",
5858
"pyrefly==0.51.1",
5959
"pyright==1.1.408",
6060
"pyroma==5.0.1",
6161
"pytest==9.0.2",
6262
"pytest-cov==7.0.0",
6363
"pyyaml==6.0.3",
6464
"ruff==0.15.0",
65-
# We add shellcheck-py not only for shell scripts and shell code blocks,
66-
# but also because having it installed means that ``actionlint-py`` will
67-
# use it to lint shell commands in GitHub workflow files.
68-
"shellcheck-py==0.11.0.1",
6965
"shfmt-py==3.12.0.2",
7066
"sphinx==9.1.0",
7167
"sphinx-copybutton==0.5.2",
@@ -79,6 +75,10 @@ optional-dependencies.dev = [
7975
"vulture==2.14",
8076
"vws-python-mock==2025.3.10.1",
8177
"vws-test-fixtures==2023.3.5",
78+
# We add shellcheck-py not only for shell scripts and shell code blocks,
79+
# but also because having it installed means that ``actionlint-py`` will
80+
# use it to lint shell commands in GitHub workflow files.
81+
"shellcheck-py==0.11.0.1",
8282
"yamlfix==1.19.1",
8383
"zizmor==1.22.0",
8484
]
@@ -88,22 +88,17 @@ urls.Source = "https://github.com/VWS-Python/vws-python"
8888

8989
[tool.setuptools]
9090
zip-safe = false
91-
92-
[tool.setuptools.package-data]
93-
vws = [
91+
package-data.vws = [
9492
"py.typed",
9593
]
96-
97-
[tool.setuptools.packages.find]
98-
where = [
94+
packages.find.where = [
9995
"src",
10096
]
10197

102-
[tool.distutils.bdist_wheel]
103-
universal = true
98+
[tool.distutils]
99+
bdist_wheel.universal = true
104100

105101
[tool.setuptools_scm]
106-
107102
# This keeps the start of the version the same as the last release.
108103
# This is useful for our documentation to include e.g. binary links
109104
# to the latest released binary.
@@ -113,39 +108,34 @@ version_scheme = "post-release"
113108

114109
[tool.ruff]
115110
line-length = 79
116-
117111
lint.select = [
118112
"ALL",
119113
]
120114
lint.ignore = [
121-
# Ruff warns that this conflicts with the formatter.
122-
"COM812",
123115
# Allow our chosen docstring line-style - pydocstringformatter handles formatting
124116
# but doesn't enforce D205 (blank line after summary) or D212 (summary on first line).
125117
"D205",
126-
"D212",
127-
# Ruff warns that this conflicts with the formatter.
128-
"ISC001",
129-
# Ignore "too-many-*" errors as they seem to get in the way more than
118+
# Ignore 'too-many-*' errors as they seem to get in the way more than
130119
# helping.
131120
"PLR0913",
121+
# Ruff warns that this conflicts with the formatter.
122+
"COM812",
123+
# Ruff warns that this conflicts with the formatter.
124+
"ISC001",
125+
"D212",
132126
]
133-
134127
lint.per-file-ignores."doccmd_*.py" = [
135128
# Allow asserts in docs.
136129
"S101",
137130
]
138-
139131
lint.per-file-ignores."docs/source/*.py" = [
140132
# Allow asserts in docs.
141133
"S101",
142134
]
143-
144135
lint.per-file-ignores."tests/*.py" = [
145136
# Allow asserts in tests.
146137
"S101",
147138
]
148-
149139
# Do not automatically remove commented out code.
150140
# We comment out code during development, and with VSCode auto-save, this code
151141
# is sometimes annoyingly removed.
@@ -155,21 +145,13 @@ lint.unfixable = [
155145
lint.pydocstyle.convention = "google"
156146

157147
[tool.pylint]
158-
159-
[tool.pylint.'FORMAT']
160-
161148
# Allow the body of an if to be on the same line as the test if there is no
162149
# else.
163-
single-line-if-stmt = false
164-
165-
[tool.pylint.'MASTER']
166-
150+
"FORMAT".single-line-if-stmt = false
167151
# Pickle collected data for later comparisons.
168-
persistent = true
169-
152+
"MASTER".persistent = true
170153
# Use multiple processes to speed up Pylint.
171-
jobs = 0
172-
154+
"MASTER".jobs = 0
173155
# List of plugins (as comma separated values of python modules names) to load,
174156
# usually to register additional checkers.
175157
# See https://chezsoi.org/lucas/blog/pylint-strict-base-configuration.html.
@@ -179,44 +161,39 @@ jobs = 0
179161
# - pylint.extensions.magic_value
180162
# - pylint.extensions.while_used
181163
# as they seemed to get in the way.
182-
load-plugins = [
164+
"MASTER".load-plugins = [
183165
"pylint_per_file_ignores",
184-
'pylint.extensions.bad_builtin',
185-
'pylint.extensions.comparison_placement',
186-
'pylint.extensions.consider_refactoring_into_while_condition',
187-
'pylint.extensions.docparams',
188-
'pylint.extensions.dunder',
189-
'pylint.extensions.eq_without_hash',
190-
'pylint.extensions.for_any_all',
191-
'pylint.extensions.mccabe',
192-
'pylint.extensions.no_self_use',
193-
'pylint.extensions.overlapping_exceptions',
194-
'pylint.extensions.private_import',
195-
'pylint.extensions.redefined_loop_name',
196-
'pylint.extensions.redefined_variable_type',
197-
'pylint.extensions.set_membership',
198-
'pylint.extensions.typing',
166+
"pylint.extensions.bad_builtin",
167+
"pylint.extensions.comparison_placement",
168+
"pylint.extensions.consider_refactoring_into_while_condition",
169+
"pylint.extensions.docparams",
170+
"pylint.extensions.dunder",
171+
"pylint.extensions.eq_without_hash",
172+
"pylint.extensions.for_any_all",
173+
"pylint.extensions.mccabe",
174+
"pylint.extensions.no_self_use",
175+
"pylint.extensions.overlapping_exceptions",
176+
"pylint.extensions.private_import",
177+
"pylint.extensions.redefined_loop_name",
178+
"pylint.extensions.redefined_variable_type",
179+
"pylint.extensions.set_membership",
180+
"pylint.extensions.typing",
199181
]
200-
201182
# Allow loading of arbitrary C extensions. Extensions are imported into the
202183
# active Python interpreter and may run arbitrary code.
203-
unsafe-load-any-extension = false
204-
205-
[tool.pylint.'MESSAGES CONTROL']
206-
184+
"MASTER".unsafe-load-any-extension = false
207185
# Enable the message, report, category or checker with the given id(s). You can
208186
# either give multiple identifier separated by comma (,) or put this option
209187
# multiple time (only on the command line, not in the configuration file where
210188
# it should appear only once). See also the "--disable" option for examples.
211-
enable = [
212-
'bad-inline-option',
213-
'deprecated-pragma',
214-
'file-ignored',
215-
'spelling',
216-
'use-symbolic-message-instead',
217-
'useless-suppression',
189+
"MESSAGES CONTROL".enable = [
190+
"bad-inline-option",
191+
"deprecated-pragma",
192+
"file-ignored",
193+
"spelling",
194+
"use-symbolic-message-instead",
195+
"useless-suppression",
218196
]
219-
220197
# Disable the message, report, category or checker with the given id(s). You
221198
# can either give multiple identifiers separated by comma (,) or put this
222199
# option multiple times (only on the command line, not in the configuration
@@ -226,57 +203,49 @@ enable = [
226203
# --enable=similarities". If you want to run only the classes checker, but have
227204
# no Warning level messages displayed, use"--disable=all --enable=classes
228205
# --disable=W"
229-
230-
disable = [
231-
'too-few-public-methods',
232-
'too-many-locals',
233-
'too-many-arguments',
234-
'too-many-instance-attributes',
235-
'too-many-return-statements',
236-
'too-many-lines',
237-
'locally-disabled',
206+
"MESSAGES CONTROL".disable = [
207+
"too-few-public-methods",
208+
"too-many-locals",
209+
"too-many-arguments",
210+
"too-many-instance-attributes",
211+
"too-many-return-statements",
212+
"too-many-lines",
213+
"locally-disabled",
238214
# Let ruff handle long lines
239-
'line-too-long',
215+
"line-too-long",
240216
# Let ruff handle unused imports
241-
'unused-import',
217+
"unused-import",
242218
# Let ruff deal with sorting
243-
'ungrouped-imports',
219+
"ungrouped-imports",
244220
# We don't need everything to be documented because of mypy
245-
'missing-type-doc',
246-
'missing-return-type-doc',
221+
"missing-type-doc",
222+
"missing-return-type-doc",
247223
# Too difficult to please
248-
'duplicate-code',
224+
"duplicate-code",
249225
# Let ruff handle imports
250-
'wrong-import-order',
226+
"wrong-import-order",
251227
# mypy does not want untyped parameters.
252-
'useless-type-doc',
228+
"useless-type-doc",
253229
]
254-
255230
# We ignore invalid names because:
256231
# - We want to use generated module names, which may not be valid, but are never seen.
257232
# - We want to use global variables in documentation, which may not be uppercase.
258233
# - conf.py is a Sphinx configuration file which requires lowercase global variable names.
259-
per-file-ignores = [
234+
"MESSAGES CONTROL".per-file-ignores = [
260235
"docs/source/conf.py:invalid-name",
261236
"docs/source/doccmd_*.py:invalid-name",
262237
"doccmd_README_rst_*.py:invalid-name",
263238
]
264-
265-
[tool.pylint.'SPELLING']
266-
267239
# Spelling dictionary name. Available dictionaries: none. To make it working
268240
# install python-enchant package.
269-
spelling-dict = 'en_US'
270-
241+
"SPELLING".spelling-dict = "en_US"
271242
# A path to a file that contains private dictionary; one word per line.
272-
spelling-private-dict-file = 'spelling_private_dict.txt'
273-
243+
"SPELLING".spelling-private-dict-file = "spelling_private_dict.txt"
274244
# Tells whether to store unknown words to indicated private dictionary in
275245
# --spelling-private-dict-file option instead of raising a message.
276-
spelling-store-unknown-words = 'no'
246+
"SPELLING".spelling-store-unknown-words = "no"
277247

278248
[tool.check-manifest]
279-
280249
ignore = [
281250
".checkmake-config.ini",
282251
".prettierrc",
@@ -314,22 +283,17 @@ indent = 4
314283
keep_full_version = true
315284
max_supported_python = "3.14"
316285

317-
[tool.pytest.ini_options]
318-
319-
xfail_strict = true
320-
log_cli = true
286+
[tool.pytest]
287+
ini_options.xfail_strict = true
288+
ini_options.log_cli = true
321289

322-
[tool.coverage.report]
323-
exclude_also = [
290+
[tool.coverage]
291+
report.exclude_also = [
324292
"if TYPE_CHECKING:",
325293
]
326-
327-
[tool.coverage.run]
328-
329-
branch = true
294+
run.branch = true
330295

331296
[tool.mypy]
332-
333297
strict = true
334298
files = [ "." ]
335299
exclude = [ "build" ]
@@ -339,7 +303,6 @@ plugins = [
339303
]
340304

341305
[tool.pyright]
342-
343306
enableTypeIgnoreComments = false
344307
reportUnnecessaryTypeIgnoreComment = true
345308
typeCheckingMode = "strict"
@@ -359,7 +322,6 @@ omit-covered-files = true
359322
verbose = 2
360323

361324
[tool.doc8]
362-
363325
max_line_length = 2000
364326
ignore_path = [
365327
"./.eggs",
@@ -408,7 +370,6 @@ ignore_names = [
408370
"templates_path",
409371
"warning_is_error",
410372
]
411-
412373
# Duplicate some of .gitignore
413374
exclude = [ ".venv" ]
414375

0 commit comments

Comments
 (0)