@@ -30,6 +30,7 @@ requires-python = ">=3.9"
3030
3131[project .optional-dependencies ]
3232dev = [
33+ " poethepoet ~= 0.34.0" ,
3334 " pytest ~=7.4.4" ,
3435 " pytest-benchmark" ,
3536 " flit ~= 3.9.0" ,
@@ -46,8 +47,12 @@ omit = [
4647 " tests/*" ,
4748]
4849
50+ [tool .coverage .report ]
51+ fail_under =94
52+ precision =1
53+
4954[tool .flit .sdist ]
50- exclude = [" .github" , " Makefile " , " tests" ]
55+ exclude = [" .github" , " tests" ]
5156
5257[tool .ruff ]
5358line-length = 100
@@ -61,3 +66,36 @@ select = ["F", "E", "W", "I", "UP", "S", "B", "T20", "RUF"]
6166
6267[tool .pytest .ini_options ]
6368addopts = " --doctest-glob='*.md'"
69+
70+ [tool .poe .tasks .lint ]
71+ help = " Check for formatting issues"
72+ sequence = [
73+ {cmd = " ruff format . --check" },
74+ {cmd = " ruff check ." },
75+ ]
76+
77+ [tool .poe .tasks .format ]
78+ help = " Fix formatting issues (where possible)"
79+ sequence = [
80+ {cmd = " ruff format ." },
81+ {cmd = " ruff check . --fix --show-fixes" },
82+ ]
83+
84+ [tool .poe .tasks .test ]
85+ help = " Run tests"
86+ cmd = " pytest --benchmark-skip"
87+
88+ [tool .poe .tasks .bench ]
89+ help = " Run benchmark tests"
90+ cmd = " pytest --benchmark-only"
91+
92+ [tool .poe .tasks .coverage ]
93+ help = " Generate test coverage report"
94+ sequence = [
95+ {cmd = " coverage run -m pytest --benchmark-skip" },
96+ {cmd = " coverage html" },
97+ ]
98+
99+ [tool .poe .tasks .build ]
100+ help = " Build wheel package"
101+ cmd = " uv build"
0 commit comments