@@ -7,7 +7,7 @@ dynamic = ["version"]
77name = " pandoc-numbering"
88description = " A pandoc filter for automatic numbering"
99readme = " README.md"
10- requires-python = " >=3.10,<3.14 "
10+ requires-python = " >=3.10,<3.15 "
1111license = {text = " BSD-3-Clause" }
1212license-files = {paths = [" LICENSE" ]}
1313authors = [{name = " Christophe Demko" , email = " chdemko@gmail.com" }]
@@ -35,6 +35,7 @@ classifiers = [
3535 " Programming Language :: Python :: 3.11" ,
3636 " Programming Language :: Python :: 3.12" ,
3737 " Programming Language :: Python :: 3.13" ,
38+ " Programming Language :: Python :: 3.14" ,
3839 # Natural language used
3940 " Natural Language :: English"
4041]
@@ -63,45 +64,20 @@ local_scheme = "no-local-version"
6364packages = [" src/pandoc_numbering" ]
6465
6566[[tool .hatch .envs .hatch-test .matrix ]]
66- python = [" 3.10" , " 3.11" , " 3.12" , " 3.13" ]
67+ python = [" 3.10" , " 3.11" , " 3.12" , " 3.13" , " 3.14 " ]
6768
6869[tool .hatch .envs .hatch-static-analysis ]
6970dependencies = [
7071 # Types
7172 " types-PyYAML~=6.0" ,
7273 # Formatter
73- " black[jupyter]~=25.1 " ,
74+ " black[jupyter]~=26.3 " ,
7475 # Style checkers
75- " doc8~=1.1" ,
76- " mypy~=1.15" ,
77- " flake8~=7.1" ,
78- " flake8-pyproject~=1.2" ,
79- " flake8-annotations-complexity~=0.0" ,
80- " flake8-black~=0.3" ,
81- " flake8-blind-except~=0.2" ,
82- " flake8-bugbear~=24.10" ,
83- " flake8-builtins~=2.5" ,
84- " flake8-cognitive-complexity~=0.1" ,
85- " flake8-comprehensions~=3.16" ,
86- " flake8-docstrings~=1.7" ,
87- " flake8-expression-complexity~=0.0" ,
88- " flake8-fixme~=1.1" ,
89- " flake8-functions~=0.0" ,
90- " flake8-import-order~=0.18" ,
91- " flake8-mypy~=17.8" ,
92- " flake8-pyi~=24.9" ,
93- " flake8-pydocstyle~=0.2" ,
94- " flake8-return~=1.2" ,
95- " flake8-simplify~=0.21" ,
96- " flake8-spellcheck~=0.28" ,
97- " flake8-use-fstring~=1.4" ,
98- " flake8-variables-names~=0.0" ,
99- " pep8-naming~=0.14" ,
100- " darglint~=1.8.1" ,
101- " pydoclint[flake8]~=0.6" ,
76+ " doc8~=2.0" ,
77+ " mypy~=1.10" ,
10278 " teyit~=0.4" ,
103- " refurb~=2.0 " ,
104- " ruff~=0.9 "
79+ " refurb~=2.3 " ,
80+ " ruff~=0.15 "
10581]
10682
10783[tool .hatch .envs .hatch-static-analysis .scripts ]
@@ -115,8 +91,7 @@ format-fix = [
11591lint-check = [
11692 " refurb {args:src docs}" ,
11793 " ruff check {args:src docs}" ,
118- " teyit --show-stats --fail-on-change {args:tests}" ,
119- " flake8 {args:src docs}"
94+ " teyit --show-stats --fail-on-change {args:tests}"
12095]
12196lint-fix = [
12297 " ruff check --fix {args:src docs}"
@@ -125,7 +100,7 @@ lint-fix = [
125100[tool .hatch .envs .lint ]
126101dependencies = [
127102 " slotscheck~=0.19" ,
128- " pylint~=3.3 "
103+ " pylint~=4.0 "
129104]
130105
131106[tool .hatch .envs .lint .scripts ]
@@ -136,9 +111,9 @@ check = [
136111
137112[tool .hatch .envs .docs ]
138113dependencies = [
139- " myst-parser~=4 .0" ,
140- " Sphinx~=8 .1" ,
141- " sphinx-rtd-theme~=3.0 " ,
114+ " myst-parser~=5 .0" ,
115+ " Sphinx~=9 .1" ,
116+ " sphinx-rtd-theme~=3.1 " ,
142117 " sphinx-copybutton~=0.5"
143118]
144119
@@ -149,69 +124,14 @@ build = "sphinx-build docs {args:build/sphinx/html}"
149124consider_namespace_packages = true
150125pythonpath = [" src" ]
151126
127+ [tool .black ]
128+ target-version = [" py310" , " py311" , " py312" ]
129+
152130[tool .ruff ]
153131# Allow lines to be as long as 88.
154132line-length = 88
155133target-version = " py310"
156134
157- [tool .flake8 ]
158- # flake8-docstrings
159- docstring-convention = " numpy"
160- # darglint
161- docstring_style = " numpy"
162- exclude = " *.pyi"
163- ignore = [
164- # class attribute is shadowing a Python builtin
165- " A003" ,
166- # Cognitive complexity is too high
167- " CCR001" ,
168- # Function "__init__" has ... arguments that exceeds max allowed 6
169- " CFQ002" ,
170- # Function attributes has length ... that exceeds max allowed length 100
171- " CFQ001" ,
172- # Function ... has ... returns that exceeds max allowed 3
173- " CFQ004" ,
174- # Missing docstring in public method
175- " D105" ,
176- # One-line docstring should fit on one line with quotes
177- " D200" ,
178- # The docstring parameter type doesn't match function.
179- " DAR103" ,
180- # Class docstring contains fewer class attributes than actual class attributes.
181- " DOC601" ,
182- # Class docstring attributes are different from actual class attributes.
183- " DOC603" ,
184- # whitespace before ":"
185- " E203" ,
186- # Expression is too complex
187- " ECE001" ,
188- # undefined name TODO: remove
189- " F821" ,
190- # Multi-line construct missing trailing comma
191- " S101" ,
192- # Spelling error in name (e.g. variable, function, class)
193- " SC200" ,
194- # SIM119 Use a dataclass for "class ..."
195- " SIM119" ,
196- # fixme found (TODO)
197- " T101" ,
198- # Returning Any from function declared to return "..."
199- " T484" ,
200- # Found ... errors in ... file (checked ... source file)
201- " T499" ,
202- # variable names that shadow builtins are not allowed
203- " VNE003" ,
204- # line break before binary operator
205- " W503"
206- ]
207- max-line-length = 88
208- statistics = true
209- # pydoclint
210- arg-type-hints-in-docstring = false
211-
212- [tool .pydoclint ]
213- style = " numpy"
214-
215135[tool .mypy ]
216136ignore_missing_imports = true
217137no_implicit_optional = true
0 commit comments