@@ -49,6 +49,7 @@ dependencies = [
4949 " hypothesis>=4.36.0" ,
5050 " hypothesmith>=0.0.4" ,
5151 " maturin>=1.7.0,<1.8" ,
52+ " poethepoet>=0.35.0" ,
5253 " prompt-toolkit>=2.0.9" ,
5354 " pyre-check==0.9.18; platform_system != 'Windows'" ,
5455 " setuptools_scm>=6.0.1" ,
@@ -58,17 +59,27 @@ dependencies = [
5859 " slotscheck>=0.7.1" ,
5960]
6061
61- [tool .hatch .envs .default .scripts ]
62- fixtures = [" python scripts/regenerate-fixtures.py" , " git diff --exit-code" ]
62+ [tool .poe .tasks ]
63+ fixtures = [" regenerate-fixtures" , " _assert_no_changes" ]
64+ regenerate-fixtures = " python scripts/regenerate-fixtures.py"
65+ _assert_no_changes = " git diff --exit-code"
66+
6367format = " ufmt format libcst scripts"
64- lint = [
65- " flake8 libcst" ,
66- " ufmt check libcst scripts" ,
67- " python -m slotscheck libcst" ,
68- " python scripts/check_copyright.py" ,
69- ]
70- test = [" python --version" , " python -m coverage run -m libcst.tests" ]
71- typecheck = [" pyre --version" , " pyre check" ]
68+ _flake8 = " flake8 libcst"
69+ _ufmt = " ufmt check libcst scripts"
70+ _slotscheck = " python -m slotscheck libcst"
71+ _check_copyright = " python scripts/check_copyright.py"
72+ lint = [" _flake8" , " _ufmt" , " _slotscheck" , " _check_copyright" ]
73+ test = " python -m coverage run -m libcst.tests"
74+ typecheck = " pyre check"
75+ docs = " sphinx-build -ab html docs/source docs/build"
76+
77+ [tool .hatch .envs .default .scripts ]
78+ fixtures = " poe fixtures"
79+ format = " poe format"
80+ lint = " poe lint"
81+ test = " poe test"
82+ typecheck = " poe typecheck"
7283
7384[tool .hatch .envs .docs ]
7485extra-dependencies = [
@@ -79,7 +90,7 @@ extra-dependencies = [
7990 " jinja2==3.1.6" ,
8091]
8192[tool .hatch .envs .docs .scripts ]
82- docs = " sphinx-build -ab html docs/source docs/build "
93+ docs = " poe docs"
8394
8495[tool .slotscheck ]
8596exclude-modules = ' ^libcst\.(testing|tests)'
0 commit comments