@@ -38,13 +38,13 @@ optional-dependencies.dev = [
3838 " deptry==0.24.0" ,
3939 " doc8==2.0.0" ,
4040 " doccmd==2026.1.23.4" ,
41- " docformatter==1.7.7" ,
4241 " freezegun==1.5.5" ,
4342 " furo==2025.12.19" ,
4443 " interrogate==1.7.0" ,
4544 " mypy[faster-cache]==1.19.1" ,
4645 " mypy-strict-kwargs==2026.1.12" ,
4746 " prek==0.3.0" ,
47+ " pydocstringformatter==0.7.3" ,
4848 " pylint[spelling]==4.0.4" ,
4949 " pylint-per-file-ignores==3.2.0" ,
5050 " pyproject-fmt==2.11.1" ,
@@ -112,8 +112,8 @@ lint.select = [
112112lint.ignore = [
113113 # Ruff warns that this conflicts with the formatter.
114114 " COM812" ,
115- # Allow our chosen docstring line-style - no one-line summary.
116- " D200 " ,
115+ # Allow our chosen docstring line-style - pydocstringformatter handles formatting
116+ # but doesn't enforce D205 (blank line after summary) or D212 (summary on first line).
117117 " D205" ,
118118 " D212" ,
119119 # Ruff warns that this conflicts with the formatter.
@@ -264,9 +264,6 @@ spelling-private-dict-file = 'spelling_private_dict.txt'
264264# --spelling-private-dict-file option instead of raising a message.
265265spelling-store-unknown-words = ' no'
266266
267- [tool .docformatter ]
268- make-summary-multi-line = true
269-
270267[tool .check-manifest ]
271268
272269ignore = [
@@ -331,6 +328,12 @@ enableTypeIgnoreComments = false
331328reportUnnecessaryTypeIgnoreComment = true
332329typeCheckingMode = " strict"
333330
331+ [tool .pydocstringformatter ]
332+ write = true
333+ split-summary-body = false
334+ max-line-length = 75
335+ linewrap-full-docstring = true
336+
334337[tool .interrogate ]
335338fail-under = 100
336339omit-covered-files = true
0 commit comments