File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -112,3 +112,6 @@ secrets.tar
112112src /* /_setuptools_scm_version.txt
113113
114114uv.lock
115+
116+ # Vale styles downloaded by ``vale sync``
117+ styles /
Original file line number Diff line number Diff line change @@ -288,6 +288,33 @@ repos:
288288 - *uv_version
289289 stages : [pre-commit]
290290
291+ # Vale enforces prose style rules, such as banning em dashes, in
292+ # reStructuredText files.
293+ # The rules come from the ``ClearProse`` package pinned in ``.vale.ini``,
294+ # which ``vale sync`` downloads into the (gitignored) ``styles``
295+ # directory.
296+ # Vale needs ``rst2html`` from Docutils on the ``PATH`` to parse
297+ # reStructuredText.
298+ - id : vale-sync
299+ name : vale sync
300+ entry : uv run --extra=dev vale sync
301+ language : python
302+ pass_filenames : false
303+ types_or : [rst]
304+ additional_dependencies :
305+ - *uv_version
306+ stages : [pre-commit]
307+
308+ - id : vale
309+ name : vale
310+ entry : uv run --extra=dev vale
311+ language : python
312+ types_or : [rst]
313+ require_serial : true
314+ additional_dependencies :
315+ - *uv_version
316+ stages : [pre-commit]
317+
291318 - id : interrogate
292319 name : interrogate
293320 entry : uv run --extra=dev -m interrogate
Original file line number Diff line number Diff line change 1+ StylesPath = styles
2+ MinAlertLevel = error
3+
4+ Packages = https://github.com/adamtheturtle/vale-style-clear-prose/releases/download/v1.0.1/ClearProse.zip
5+
6+ [*.rst]
7+ BasedOnStyles = ClearProse
8+
9+ # Docutils does not know Sphinx roles such as `:ref:`, and renders their
10+ # argument as ordinary prose. Ignoring role syntax keeps target names, which
11+ # are not prose, out of the linter.
12+ TokenIgnores = (:\w+:`[^`]*`)
Original file line number Diff line number Diff line change @@ -84,6 +84,7 @@ optional-dependencies.dev = [
8484 " towncrier==25.8.0" ,
8585 " ty==0.0.65" ,
8686 " types-requests==2.33.0.20260712" ,
87+ " vale==3.13.0.0" ,
8788 " vulture==2.16" ,
8889 " vws-python-mock==2026.8.4.2" ,
8990 " vws-test-fixtures==2023.3.5" ,
@@ -286,6 +287,7 @@ ignore = [
286287 " .git_archival.txt" ,
287288 " .pre-commit-config.yaml" ,
288289 " .prettierrc" ,
290+ " .vale.ini" ,
289291 " .yamlfmt" ,
290292 " CHANGELOG.rst" ,
291293 " ci" ,
You can’t perform that action at this time.
0 commit comments