22build-backend = " hatchling.build"
33requires = [
44 " hatch-vcs>=0.4" ,
5- " hatchling>=1.18 " ,
5+ " hatchling>=1.21.1 " ,
66]
77
88[project ]
@@ -33,6 +33,7 @@ classifiers = [
3333 " Programming Language :: Python :: 3.9" ,
3434 " Programming Language :: Python :: 3.10" ,
3535 " Programming Language :: Python :: 3.11" ,
36+ " Programming Language :: Python :: 3.12" ,
3637 " Topic :: Software Development :: Libraries" ,
3738 " Topic :: Software Development :: Testing" ,
3839 " Topic :: Utilities" ,
@@ -42,13 +43,13 @@ dynamic = [
4243]
4344dependencies = [
4445 " devpi-client>=7.0.2" ,
45- " devpi-server>=6.9.2 " ,
46- ' typing-extensions>=4.8 ; python_version < "3.11"' ,
46+ " devpi-server>=6.10 " ,
47+ ' typing-extensions>=4.9 ; python_version < "3.11"' ,
4748]
4849optional-dependencies.test = [
4950 " covdefaults>=2.3" ,
50- " httpx>=0.25.2 " ,
51- " pytest>=7.4.3 " ,
51+ " httpx>=0.27 " ,
52+ " pytest>=8.0.1 " ,
5253 " pytest-cov>=4.1" ,
5354]
5455urls.Homepage = " https://github.com/tox-dev/devpi-process#readme"
@@ -63,27 +64,39 @@ version.source = "vcs"
6364line-length = 120
6465
6566[tool .ruff ]
66- select = [" ALL" ]
6767line-length = 120
6868target-version = " py38"
69- isort = {known-first-party = [" devpi_process" ], required-imports = [" from __future__ import annotations" ]}
70- ignore = [
71- " ANN101" , # no typoe annotation for self
72- " ANN401" , # allow Any as type annotation
73- " D203" , # `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible
74- " D212" , # `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible
75- " S104" , # Possible binding to all interface
69+ lint.isort = { known-first-party = [" devpi_process" ], required-imports = [" from __future__ import annotations" ] }
70+ lint.select = [" ALL" ]
71+ lint.ignore = [
72+ " ANN101" , # no type annotation for self
73+ " ANN401" , # allow Any as type annotation
74+ " D203" , # `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible
75+ " D212" , # `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible
76+ " S104" , # Possible binding to all interface
77+ " COM812" , # Conflict with formatter
78+ " ISC001" , # Conflict with formatter
79+ " CPY" , # No copyright statements
7680]
77- [tool .ruff .per-file-ignores ]
81+ lint.preview = true
82+ format.preview = true
83+ format.docstring-code-format = true
84+ format.docstring-code-line-length = 100
85+ [tool .ruff .lint .per-file-ignores ]
7886"tests/**/*.py" = [
79- " S101" , # asserts allowed in tests...
80- " FBT" , # don" t care about booleans as positional arguments in tests
81- " INP001" , # no implicit namespace
82- " D" , # don"t care about documentation in tests
83- " S603" , # `subprocess` call: check for execution of untrusted input
84- " PLR2004" , # Magic value used in comparison, consider replacing with a constant variable
87+ " S101" , # asserts allowed in tests...
88+ " FBT" , # don' t care about booleans as positional arguments in tests
89+ " INP001" , # no implicit namespace
90+ " D" , # don"t care about documentation in tests
91+ " S603" , # `subprocess` call: check for execution of untrusted input
92+ " PLR2004" , # Magic value used in comparison, consider replacing with a constant variable
8593]
8694
95+ [tool .codespell ]
96+ builtin = " clear,usage,en-GB_to_en-US"
97+ write-changes = true
98+ count = true
99+
87100[tool .coverage ]
88101html.show_contexts = true
89102html.skip_covered = false
0 commit comments