@@ -33,12 +33,12 @@ classifiers = [
3333 " Programming Language :: Python :: 3.14" ,
3434]
3535dependencies = [
36- " babel==2.17 .0" ,
37- " platformdirs==4.4.0 " ,
38- " pygit2==1.18 .2" ,
39- " pygithub==2.8 .1" ,
40- " pyyaml== 6.0.2 " ,
41- " textual==6.1.0 " ,
36+ " babel>=2.18 .0" ,
37+ " platformdirs>=4.9.6 " ,
38+ " pygit2>=1.19 .2" ,
39+ " pygithub>=2.9 .1" ,
40+ " pyyaml>= 6.0.3 " ,
41+ " textual>=8.2.7 " ,
4242]
4343
4444[project .urls ]
@@ -54,23 +54,97 @@ edit-python-pe = "edit_python_pe.main:main"
5454
5555[dependency-groups ]
5656dev = [
57- " black>=25.1 .0" ,
57+ " coverage>=7.14 .0" ,
5858 " deep-translator>=1.11.4" ,
59- " isort>=6.0.1 " ,
59+ " poethepoet>=0.46.0 " ,
6060 " polib>=1.2.0" ,
61- " pre-commit>=4.3.0" ,
62- " pytest>=8.4.1" ,
63- " pytest-cov>=6.2.1" ,
64- " textual-dev==1.7.0" ,
61+ " pre-commit>=4.6.0" ,
62+ " pytest>=9.0.3" ,
63+ " pytest-cov>=7.1.0" ,
64+ " ruff>=0.15.14" ,
65+ " tbump>=6.11.0" ,
66+ " textual-dev>=1.8.0" ,
6567 " tomli-w>=1.2.0" ,
68+ " ty>=0.0.39" ,
6669]
6770
6871[build-system ]
6972requires = [" uv_build>=0.9.18,<0.10.0" ]
7073build-backend = " uv_build"
7174
72- [tool .black ]
75+ [tool .poe .tasks ]
76+ "lint:update" = " uv run pre-commit autoupdate"
77+ "lint" = " uv run pre-commit run --all"
78+ "test" = " uv run pytest --cov edit_python_pe --cov-report xml:cobertura.xml --cov-report term --junitxml report.xml"
79+ "freeze" = " uv export --format requirements.txt --no-group dev --no-hashes --no-annotate --no-header --output-file requirements.txt"
80+ "freeze:dev" = " uv export --format requirements.txt --all-groups --no-hashes --no-annotate --no-header --output-file requirements.dev.txt"
81+ "changelog:draft" = { shell = " cat .diff.txt | gemini < prompts/changelog_generator.txt > .CHANGELOG_DRAFT.md" }
82+
83+ [tool .poe .tasks ."version:update" ]
84+ sequence = [
85+ { cmd = " uv run tbump --no-push --no-tag --non-interactive ${version}" },
86+ ]
87+ args = [{ name = " version" , positional = true }]
88+
89+ [tool .ruff ]
7390line-length = 79
91+ target-version = " py314"
92+
93+ [tool .ruff .lint ]
94+ select = [
95+ " E" , # pycodestyle errors
96+ " W" , # pycodestyle warnings
97+ " F" , # pyflakes
98+ " I" , # isort
99+ " D" , # pydocstyle
100+ " S" , # bandit
101+ " UP" , # pyupgrade
102+ " B" , # flake8-bugbear
103+ " C4" , # flake8-comprehensions
104+ ]
105+ ignore = [
106+ " E501" , # line too long, handled by black
107+ " E203" , # space before :, handled by black
108+ " E231" , # missing whitespace after ','
109+ " E722" , # do not use bare 'except'
110+ " F401" , # imported but unused
111+ " F811" , # redefinition of unused
112+ " D100" , # Missing docstring in public module
113+ " D101" , # Missing docstring in public class
114+ " D102" , # Missing docstring in public method
115+ " D103" , # Missing docstring in public function
116+ " D104" , # Missing docstring in public package
117+ " D105" , # Missing docstring in magic method
118+ " D106" , # Missing docstring in public nested class
119+ " D107" , # Missing docstring in __init__
120+ " D202" , # No blank lines allowed after function docstring
121+ " D203" , # 1 blank line required before class docstring
122+ " D213" , # Multi-line docstring summary should start at the second line
123+ " D407" , # Missing dashed underline after section
124+ " S101" , # Use of assert detected (often used in tests)
125+ ]
126+
127+ [tool .ruff .lint .isort ]
128+ known-first-party = [" edit_python_pe" ]
129+ known-third-party = [" github" , " pygit2" , " textual" , " yaml" ]
130+
131+ [tool .ruff .lint .pydocstyle ]
132+ convention = " google"
133+
134+ [tool .ruff .format ]
135+ quote-style = " double"
136+ indent-style = " space"
137+ skip-magic-trailing-comma = false
138+ line-ending = " auto"
139+
140+ [tool .ty .rules ]
141+ not-subscriptable = " ignore"
142+ invalid-return-type = " ignore"
143+ unresolved-import = " ignore"
144+ possibly-missing-attribute = " ignore"
145+ invalid-argument-type = " ignore"
146+ inconsistent-mro = " ignore"
147+ unresolved-attribute = " ignore"
74148
75149[tool .uv .build-backend ]
76150module-name = " edit_python_pe"
0 commit comments