@@ -57,7 +57,6 @@ optional-dependencies.dev = [
5757 " dirty-equals==0.11" ,
5858 " doc8==1.1.1" ,
5959 " doccmd==2026.1.25" ,
60- " docformatter==1.7.7" ,
6160 " docker==7.1.0" ,
6261 " enum-tools[sphinx]==0.13.0" ,
6362 " freezegun==1.5.5" ,
@@ -66,6 +65,7 @@ optional-dependencies.dev = [
6665 " mypy[faster-cache]==1.19.1" ,
6766 " mypy-strict-kwargs==2026.1.12" ,
6867 " prek==0.3.0" ,
68+ " pydocstringformatter==0.7.3" ,
6969 " pydocstyle==6.3" ,
7070 " pylint[spelling]==4.0.4" ,
7171 " pylint-per-file-ignores==3.2.0" ,
@@ -152,8 +152,8 @@ lint.select = [
152152lint.ignore = [
153153 # Ruff warns that this conflicts with the formatter.
154154 " COM812" ,
155- # Allow our chosen docstring line-style - no one-line summary.
156- " D200 " ,
155+ # Allow our chosen docstring line-style - pydocstringformatter handles formatting
156+ # but doesn't enforce D205 (blank line after summary) or D212 (summary on first line).
157157 " D205" ,
158158 " D212" ,
159159 " D415" ,
@@ -169,6 +169,14 @@ lint.per-file-ignores."ci/test_custom_linters.py" = [
169169 " S101" ,
170170]
171171
172+ lint.per-file-ignores."doccmd_*.py" = [
173+ # Allow our chosen docstring line-style - pydocstringformatter handles
174+ # formatting but docstrings in docs may not match this style.
175+ " D200" ,
176+ # Allow asserts in docs.
177+ " S101" ,
178+ ]
179+
172180lint.per-file-ignores."tests/**" = [
173181 # Allow asserts in tests.
174182 " S101" ,
@@ -298,9 +306,6 @@ spelling-private-dict-file = 'spelling_private_dict.txt'
298306# --spelling-private-dict-file option instead of raising a message.
299307spelling-store-unknown-words = ' no'
300308
301- [tool .docformatter ]
302- make-summary-multi-line = true
303-
304309[tool .check-manifest ]
305310
306311ignore = [
@@ -403,6 +408,12 @@ enableTypeIgnoreComments = false
403408reportUnnecessaryTypeIgnoreComment = true
404409typeCheckingMode = " strict"
405410
411+ [tool .pydocstringformatter ]
412+ write = true
413+ split-summary-body = false
414+ max-line-length = 75
415+ linewrap-full-docstring = true
416+
406417[tool .interrogate ]
407418fail-under = 100
408419omit-covered-files = true
0 commit comments