23
23
help = "Add and configure development tools, e.g. linters." , add_completion = False
24
24
)
25
25
26
+ how_opt = typer .Option (
27
+ False , "--how" , help = "Only print how to use the tool, do not add or remove it."
28
+ )
26
29
remove_opt = typer .Option (
27
30
False , "--remove" , help = "Remove the tool instead of adding it."
28
31
)
29
-
30
32
frozen_opt = typer .Option (False , "--frozen" , help = "Use the frozen dependencies." )
31
33
32
34
37
39
)
38
40
def codespell (
39
41
remove : bool = remove_opt ,
42
+ how : bool = how_opt ,
40
43
offline : bool = offline_opt ,
41
44
quiet : bool = quiet_opt ,
42
45
frozen : bool = frozen_opt ,
@@ -45,7 +48,7 @@ def codespell(
45
48
usethis_config .set (offline = offline , quiet = quiet , frozen = frozen ),
46
49
files_manager (),
47
50
):
48
- _run_tool (use_codespell , remove = remove )
51
+ _run_tool (use_codespell , remove = remove , how = how )
49
52
50
53
51
54
@app .command (
@@ -55,6 +58,7 @@ def codespell(
55
58
)
56
59
def coverage (
57
60
remove : bool = remove_opt ,
61
+ how : bool = how_opt ,
58
62
offline : bool = offline_opt ,
59
63
quiet : bool = quiet_opt ,
60
64
frozen : bool = frozen_opt ,
@@ -63,7 +67,7 @@ def coverage(
63
67
usethis_config .set (offline = offline , quiet = quiet , frozen = frozen ),
64
68
files_manager (),
65
69
):
66
- _run_tool (use_coverage , remove = remove )
70
+ _run_tool (use_coverage , remove = remove , how = how )
67
71
68
72
69
73
@app .command (
@@ -73,6 +77,7 @@ def coverage(
73
77
)
74
78
def deptry (
75
79
remove : bool = remove_opt ,
80
+ how : bool = how_opt ,
76
81
offline : bool = offline_opt ,
77
82
quiet : bool = quiet_opt ,
78
83
frozen : bool = frozen_opt ,
@@ -81,7 +86,7 @@ def deptry(
81
86
usethis_config .set (offline = offline , quiet = quiet , frozen = frozen ),
82
87
files_manager (),
83
88
):
84
- _run_tool (use_deptry , remove = remove )
89
+ _run_tool (use_deptry , remove = remove , how = how )
85
90
86
91
87
92
@app .command (
@@ -91,6 +96,7 @@ def deptry(
91
96
)
92
97
def import_linter (
93
98
remove : bool = remove_opt ,
99
+ how : bool = how_opt ,
94
100
offline : bool = offline_opt ,
95
101
quiet : bool = quiet_opt ,
96
102
frozen : bool = frozen_opt ,
@@ -99,7 +105,7 @@ def import_linter(
99
105
usethis_config .set (offline = offline , quiet = quiet , frozen = frozen ),
100
106
files_manager (),
101
107
):
102
- _run_tool (use_import_linter , remove = remove )
108
+ _run_tool (use_import_linter , remove = remove , how = how )
103
109
104
110
105
111
@app .command (
@@ -109,6 +115,7 @@ def import_linter(
109
115
)
110
116
def pre_commit (
111
117
remove : bool = remove_opt ,
118
+ how : bool = how_opt ,
112
119
offline : bool = offline_opt ,
113
120
quiet : bool = quiet_opt ,
114
121
frozen : bool = frozen_opt ,
@@ -117,7 +124,7 @@ def pre_commit(
117
124
usethis_config .set (offline = offline , quiet = quiet , frozen = frozen ),
118
125
files_manager (),
119
126
):
120
- _run_tool (use_pre_commit , remove = remove )
127
+ _run_tool (use_pre_commit , remove = remove , how = how )
121
128
122
129
123
130
@app .command (
@@ -127,6 +134,7 @@ def pre_commit(
127
134
)
128
135
def pyproject_fmt (
129
136
remove : bool = remove_opt ,
137
+ how : bool = how_opt ,
130
138
offline : bool = offline_opt ,
131
139
quiet : bool = quiet_opt ,
132
140
frozen : bool = frozen_opt ,
@@ -135,7 +143,7 @@ def pyproject_fmt(
135
143
usethis_config .set (offline = offline , quiet = quiet , frozen = frozen ),
136
144
files_manager (),
137
145
):
138
- _run_tool (use_pyproject_fmt , remove = remove )
146
+ _run_tool (use_pyproject_fmt , remove = remove , how = how )
139
147
140
148
141
149
@app .command (
@@ -145,6 +153,7 @@ def pyproject_fmt(
145
153
)
146
154
def pyproject_toml (
147
155
remove : bool = remove_opt ,
156
+ how : bool = how_opt ,
148
157
offline : bool = offline_opt ,
149
158
quiet : bool = quiet_opt ,
150
159
frozen : bool = frozen_opt ,
@@ -153,14 +162,15 @@ def pyproject_toml(
153
162
usethis_config .set (offline = offline , quiet = quiet , frozen = frozen ),
154
163
files_manager (),
155
164
):
156
- _run_tool (use_pyproject_toml , remove = remove )
165
+ _run_tool (use_pyproject_toml , remove = remove , how = how )
157
166
158
167
159
168
@app .command (
160
169
name = "pytest" , help = "Use the pytest testing framework." , rich_help_panel = "Testing"
161
170
)
162
171
def pytest (
163
172
remove : bool = remove_opt ,
173
+ how : bool = how_opt ,
164
174
offline : bool = offline_opt ,
165
175
quiet : bool = quiet_opt ,
166
176
frozen : bool = frozen_opt ,
@@ -169,7 +179,7 @@ def pytest(
169
179
usethis_config .set (offline = offline , quiet = quiet , frozen = frozen ),
170
180
files_manager (),
171
181
):
172
- _run_tool (use_pytest , remove = remove )
182
+ _run_tool (use_pytest , remove = remove , how = how )
173
183
174
184
175
185
@app .command (
@@ -179,6 +189,7 @@ def pytest(
179
189
)
180
190
def requirements_txt (
181
191
remove : bool = remove_opt ,
192
+ how : bool = how_opt ,
182
193
offline : bool = offline_opt ,
183
194
quiet : bool = quiet_opt ,
184
195
frozen : bool = frozen_opt ,
@@ -187,7 +198,7 @@ def requirements_txt(
187
198
usethis_config .set (offline = offline , quiet = quiet , frozen = frozen ),
188
199
files_manager (),
189
200
):
190
- _run_tool (use_requirements_txt , remove = remove )
201
+ _run_tool (use_requirements_txt , remove = remove , how = how )
191
202
192
203
193
204
@app .command (
@@ -197,6 +208,7 @@ def requirements_txt(
197
208
)
198
209
def ruff (
199
210
remove : bool = remove_opt ,
211
+ how : bool = how_opt ,
200
212
offline : bool = offline_opt ,
201
213
quiet : bool = quiet_opt ,
202
214
frozen : bool = frozen_opt ,
@@ -205,16 +217,16 @@ def ruff(
205
217
usethis_config .set (offline = offline , quiet = quiet , frozen = frozen ),
206
218
files_manager (),
207
219
):
208
- _run_tool (use_ruff , remove = remove )
220
+ _run_tool (use_ruff , remove = remove , how = how )
209
221
210
222
211
223
class UseToolFunc (Protocol ):
212
- def __call__ (self , * , remove : bool ) -> None : ...
224
+ def __call__ (self , * , remove : bool , how : bool ) -> None : ...
213
225
214
226
215
- def _run_tool (caller : UseToolFunc , * , remove : bool ):
227
+ def _run_tool (caller : UseToolFunc , * , remove : bool , how : bool ):
216
228
try :
217
- caller (remove = remove )
229
+ caller (remove = remove , how = how )
218
230
except UsethisError as err :
219
231
err_print (err )
220
232
raise typer .Exit (code = 1 ) from None
0 commit comments