22build-backend = " hatchling.build"
33requires = [
44 " hatch-vcs>=0.3" ,
5- " hatchling>=1.14 .1" ,
5+ " hatchling>=1.17 .1" ,
66]
77
88[project ]
@@ -28,6 +28,13 @@ classifiers = [
2828 " Operating System :: MacOS :: MacOS X" ,
2929 " Operating System :: Microsoft :: Windows" ,
3030 " Operating System :: POSIX" ,
31+ " Programming Language :: Python :: 3 :: Only" ,
32+ " Programming Language :: Python :: 3.7" ,
33+ " Programming Language :: Python :: 3.8" ,
34+ " Programming Language :: Python :: 3.9" ,
35+ " Programming Language :: Python :: 3.10" ,
36+ " Programming Language :: Python :: 3.11" ,
37+ " Programming Language :: Python :: 3.12" ,
3138 " Topic :: Software Development :: Libraries" ,
3239 " Topic :: Software Development :: Testing" ,
3340 " Topic :: Utilities" ,
@@ -40,17 +47,17 @@ dependencies = [
4047 ' tomli>=2.0.1; python_version < "3.11"' ,
4148]
4249optional-dependencies.docs = [
43- " furo>=2023.3.27 " ,
44- " sphinx>=6.2 .1" ,
50+ " furo>=2023.5.20 " ,
51+ " sphinx>=7.0 .1" ,
4552 " sphinx-autodoc-typehints!=1.23.4,>=1.23" ,
4653]
4754optional-dependencies.testing = [
4855 " covdefaults>=2.3" ,
4956 ' importlib-metadata>=6.6; python_version < "3.8"' ,
5057 " pytest>=7.3.1" ,
51- " pytest-cov>=4" ,
58+ " pytest-cov>=4.1 " ,
5259 " pytest-mock>=3.10" ,
53- " setuptools>=67.7.2 " ,
60+ " setuptools>=67.8 " ,
5461 " wheel>=0.40" ,
5562]
5663urls.Homepage = " http://pyproject_api.readthedocs.org"
@@ -64,18 +71,6 @@ version.source = "vcs"
6471[tool .black ]
6572line-length = 120
6673
67- [tool .isort ]
68- known_first_party = [" pyproject_api" ]
69- profile = " black"
70- line_length = 120
71-
72- [tool .flake8 ]
73- max-complexity = 22
74- max-line-length = 120
75- unused-arguments-ignore-abstract-functions = true
76- noqa-require-code = true
77- dictionaries = [" en_US" , " python" , " technical" , " django" ]
78-
7974[tool .coverage ]
8075html.show_contexts = true
8176html.skip_covered = false
@@ -98,5 +93,26 @@ show_error_codes = true
9893strict = true
9994overrides = [{ module = [" virtualenv.*" ], ignore_missing_imports = true }]
10095
101- [tool .pep8 ]
102- max-line-length = " 120"
96+ [tool .ruff ]
97+ select = [" ALL" ]
98+ line-length = 120
99+ target-version = " py37"
100+ isort = {known-first-party = [" pyproject_api" ], required-imports = [" from __future__ import annotations" ]}
101+ ignore = [
102+ " INP001" , # no implicit namespaces here
103+ " ANN101" , # Missing type annotation for `self` in method
104+ " ANN102" , # Missing type annotation for `cls` in classmethod"
105+ " ANN401" , # Dynamically typed expressions
106+ " D203" , # `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible
107+ " D212" , # `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible
108+ " S104" , # Possible binding to all interface
109+ ]
110+ [tool .ruff .per-file-ignores ]
111+ "tests/**/*.py" = [
112+ " S101" , # asserts allowed in tests...
113+ " FBT" , # don"t care about booleans as positional arguments in tests
114+ " INP001" , # no implicit namespace
115+ " D" , # don"t care about documentation in tests
116+ " S603" , # `subprocess` call: check for execution of untrusted input
117+ " PLR2004" , # Magic value used in comparison, consider replacing with a constant variable
118+ ]
0 commit comments