1
1
[build-system ]
2
- requires = [" hatchling" , " hatch-vcs" ]
3
2
build-backend = " hatchling.build"
3
+ requires = [ " hatch-vcs" , " hatchling" ]
4
4
5
5
[project ]
6
6
name = " scverse-template-scripts"
7
- dynamic = [" version" ]
8
7
description = " scripts for ecosystem package data"
9
8
readme = " ../README.md"
10
- requires-python = " >=3.11"
11
9
license = " GPL-3.0"
12
10
authors = [
13
- {
name =
" Philipp A." ,
email =
" [email protected] " },
11
+ {
name =
" Philipp A." ,
email =
" [email protected] " },
14
12
]
15
- urls.Documentation = " https://github.com/scverse/cookiecutter-scverse#readme"
16
- urls.Issues = " https://github.com/scverse/cookiecutter-scverse/issues"
17
- urls.Source = " https://github.com/scverse/cookiecutter-scverse"
13
+ requires-python = " >=3.11"
14
+ classifiers = [
15
+ " Programming Language :: Python :: 3 :: Only" ,
16
+ " Programming Language :: Python :: 3.11" ,
17
+ " Programming Language :: Python :: 3.12" ,
18
+ ]
19
+ dynamic = [ " version" ]
18
20
dependencies = [
19
- " cruft" ,
20
- " rich " ,
21
- " typer " ,
22
- " furl " ,
23
- " GitPython " ,
24
- " PyGitHub >= 2 " ,
25
- " PyYAML " ,
26
- " pre-commit " , # is ran by cruft
21
+ " cruft" ,
22
+ " furl " ,
23
+ " gitpython " ,
24
+ " pre-commit " , # is ran by cruft
25
+ " pygithub>=2 " ,
26
+ " pyyaml " ,
27
+ " rich " ,
28
+ " typer " ,
27
29
]
28
-
29
- [project .optional-dependencies ]
30
- test = [
31
- " pytest" ,
32
- " pytest-socket" ,
33
- " pytest-responsemock" ,
30
+ optional-dependencies.test = [
31
+ " pytest" ,
32
+ " pytest-responsemock" ,
33
+ " pytest-socket" ,
34
34
]
35
-
36
- [project .scripts ]
37
- send-cruft-prs = " scverse_template_scripts.cruft_prs:cli"
38
- make-rich-output = " scverse_template_scripts.make_rich_output:main"
35
+ urls.Documentation = " https://github.com/scverse/cookiecutter-scverse#readme"
36
+ urls.Issues = " https://github.com/scverse/cookiecutter-scverse/issues"
37
+ urls.Source = " https://github.com/scverse/cookiecutter-scverse"
38
+ scripts.make-rich-output = " scverse_template_scripts.make_rich_output:main"
39
+ scripts.send-cruft-prs = " scverse_template_scripts.cruft_prs:cli"
39
40
40
41
[tool .hatch .build .targets .wheel ]
41
- packages = [" src/testing" , " src/scverse_template_scripts" ]
42
+ packages = [ " src/testing" , " src/scverse_template_scripts" ]
42
43
43
44
[tool .hatch .version ]
44
45
source = " vcs"
@@ -48,75 +49,72 @@ fallback-version = "0.0"
48
49
python = " 3.11"
49
50
50
51
[tool .hatch .envs .hatch-test ]
51
- features = [" test" ]
52
-
53
- [tool .pytest .ini_options ]
54
- addopts = [
55
- " --import-mode=importlib" ,
56
- " --disable-socket" ,
57
- " -presponsemock" ,
58
- " -ptesting.scverse_template_scripts._pytest"
59
- ]
60
- filterwarnings = [
61
- " error" ,
62
- # https://github.com/man-group/pytest-plugins/issues/224
63
- " ignore::DeprecationWarning:pytest_shutil" ,
64
- ]
52
+ features = [ " test" ]
65
53
66
54
[tool .ruff ]
67
55
line-length = 120
68
56
69
- [tool .ruff .format ]
70
- docstring-code-format = true
57
+ format.docstring-code-format = true
71
58
72
- [tool .ruff .lint ]
73
- allowed-confusables = [" ’" , " ×" ]
74
- select = [
75
- " A" ,
76
- " ARG" ,
77
- " B" ,
78
- " C" ,
79
- " DTZ" ,
80
- " E" ,
81
- " EM" ,
82
- " F" ,
83
- " FBT" ,
84
- " I" ,
85
- " ICN" ,
86
- " ISC" ,
87
- " N" ,
88
- " PLC" ,
89
- " PLE" ,
90
- " PLR" ,
91
- " PLW" ,
92
- " Q" ,
93
- " RUF" ,
94
- " S" ,
95
- " T" ,
96
- " TCH" ,
97
- " TID" ,
98
- " UP" ,
99
- " W" ,
100
- " YTT" ,
59
+ lint.select = [
60
+ " A" ,
61
+ " ARG" ,
62
+ " B" ,
63
+ " C" ,
64
+ " DTZ" ,
65
+ " E" ,
66
+ " EM" ,
67
+ " F" ,
68
+ " FBT" ,
69
+ " I" ,
70
+ " ICN" ,
71
+ " ISC" ,
72
+ " N" ,
73
+ " PLC" ,
74
+ " PLE" ,
75
+ " PLR" ,
76
+ " PLW" ,
77
+ " Q" ,
78
+ " RUF" ,
79
+ " S" ,
80
+ " T" ,
81
+ " TCH" ,
82
+ " TID" ,
83
+ " UP" ,
84
+ " W" ,
85
+ " YTT" ,
101
86
]
102
- ignore = [
103
- " S101 " , # assert should be allowed
104
- " S603 " , # subprocess with shell=False should be allowed
105
- " S311" , # we don’t need cryptographically secure RNG
106
- " ISC001 " , # conflicts with formatter
87
+ lint. ignore = [
88
+ " ISC001 " , # conflicts with formatter
89
+ " S101 " , # assert should be allowed
90
+ " S311" , # we don’t need cryptographically secure RNG
91
+ " S603 " , # subprocess with shell=False should be allowed
107
92
]
108
- unfixable = [" RUF001" ] # never “fix” “confusables”
109
-
110
- [tool .ruff .lint .isort ]
111
- known-first-party = [" scverse_template_scripts" , " testing.scverse_template_scripts" ]
112
- required-imports = [" from __future__ import annotations" ]
93
+ lint.per-file-ignores."tests/*.py" = [
94
+ " ARG001" , # pytest fixtures don’t need to be used
95
+ " PLR0913" , # allow as many pytest fixtures being used as one likes
96
+ ]
97
+ lint.unfixable = [
98
+ " RUF001" , # never “fix” “confusables”
99
+ ]
100
+ lint.allowed-confusables = [ " ×" , " ’" ]
101
+ lint.flake8-type-checking.exempt-modules = [ ]
102
+ lint.flake8-type-checking.strict = true
103
+ lint.isort.known-first-party = [ " scverse_template_scripts" , " testing.scverse_template_scripts" ]
104
+ lint.isort.required-imports = [ " from __future__ import annotations" ]
113
105
114
- [tool .ruff .lint .flake8-type-checking ]
115
- exempt-modules = []
116
- strict = true
106
+ [tool .pyproject-fmt ]
107
+ column_width = 120
117
108
118
- [tool .ruff .lint .per-file-ignores ]
119
- "tests/*.py" = [
120
- " ARG001" , # pytest fixtures don’t need to be used
121
- " PLR0913" , # allow as many pytest fixtures being used as one likes
109
+ [tool .pytest .ini_options ]
110
+ addopts = [
111
+ " --import-mode=importlib" ,
112
+ " --disable-socket" ,
113
+ " -presponsemock" ,
114
+ " -ptesting.scverse_template_scripts._pytest" ,
115
+ ]
116
+ filterwarnings = [
117
+ " error" ,
118
+ # https://github.com/man-group/pytest-plugins/issues/224
119
+ " ignore::DeprecationWarning:pytest_shutil" ,
122
120
]
0 commit comments