2
2
build-backend = " hatchling.build"
3
3
requires = [
4
4
" hatch-vcs>=0.3" ,
5
- " hatchling>=1.14.1 " ,
5
+ " hatchling>=1.17 " ,
6
6
]
7
7
8
8
[project ]
@@ -37,7 +37,6 @@ classifiers = [
37
37
" Programming Language :: Python :: 3.9" ,
38
38
" Programming Language :: Python :: 3.10" ,
39
39
" Programming Language :: Python :: 3.11" ,
40
- " Programming Language :: Python :: 3.12" ,
41
40
" Programming Language :: Python :: Implementation :: CPython" ,
42
41
" Programming Language :: Python :: Implementation :: PyPy" ,
43
42
" Topic :: Software Development :: Libraries :: Python Modules" ,
@@ -46,19 +45,19 @@ dynamic = [
46
45
" version" ,
47
46
]
48
47
dependencies = [
49
- ' typing-extensions>=4.5 ; python_version < "3.8"' ,
48
+ ' typing-extensions>=4.6.3 ; python_version < "3.8"' ,
50
49
]
51
50
optional-dependencies.docs = [
52
- " furo>=2023.3.27 " ,
51
+ " furo>=2023.5.20 " ,
53
52
" proselint>=0.13" ,
54
- " sphinx>=6.2 .1" ,
53
+ " sphinx>=7.0 .1" ,
55
54
" sphinx-autodoc-typehints!=1.23.4,>=1.23" ,
56
55
]
57
56
optional-dependencies.test = [
58
57
" appdirs==1.4.4" ,
59
58
" covdefaults>=2.3" ,
60
59
" pytest>=7.3.1" ,
61
- " pytest-cov>=4" ,
60
+ " pytest-cov>=4.1 " ,
62
61
" pytest-mock>=3.10" ,
63
62
]
64
63
urls.Documentation = " https://platformdirs.readthedocs.io"
@@ -74,17 +73,6 @@ version.source = "vcs"
74
73
[tool .black ]
75
74
line-length = 120
76
75
77
- [tool .isort ]
78
- profile = " black"
79
- known_first_party = [" platformdirs" ]
80
-
81
- [tool .flake8 ]
82
- max-complexity = 22
83
- max-line-length = 120
84
- unused-arguments-ignore-abstract-functions = true
85
- noqa-require-code = true
86
- dictionaries = [" en_US" , " python" , " technical" , " django" ]
87
-
88
76
[tool .coverage ]
89
77
html.show_contexts = true
90
78
html.skip_covered = false
@@ -100,5 +88,26 @@ show_error_codes = true
100
88
strict = true
101
89
overrides = [{ module = [" appdirs.*" , " jnius.*" ], ignore_missing_imports = true }]
102
90
103
- [tool .pep8 ]
104
- max-line-length = " 120"
91
+ [tool .ruff ]
92
+ select = [" ALL" ]
93
+ line-length = 120
94
+ target-version = " py37"
95
+ isort = {known-first-party = [" platformdirs" , " tests" ], required-imports = [" from __future__ import annotations" ]}
96
+ ignore = [
97
+ " ANN101" , # Missing type annotation for `self` in method
98
+ " D301" , # Use `r"""` if any backslashes in a docstring
99
+ " D205" , # 1 blank line required between summary line and description
100
+ " D401" , # First line of docstring should be in imperative mood
101
+ " D203" , # `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible
102
+ " D212" , # `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible
103
+ " S104" , # Possible binding to all interface
104
+ ]
105
+ [tool .ruff .per-file-ignores ]
106
+ "tests/**/*.py" = [
107
+ " S101" , # asserts allowed in tests...
108
+ " FBT" , # don"t care about booleans as positional arguments in tests
109
+ " INP001" , # no implicit namespace
110
+ " D" , # don"t care about documentation in tests
111
+ " S603" , # `subprocess` call: check for execution of untrusted input
112
+ " PLR2004" , # Magic value used in comparison, consider replacing with a constant variable
113
+ ]
0 commit comments