pyprojkit 0.5.0__tar.gz → 0.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/PKG-INFO +7 -7
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/README.md +6 -6
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/pyproject.toml +1 -2
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/__init__.py +2 -2
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/config/__init__.py +2 -2
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/config/base.py +3 -4
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/config/profiles.py +7 -6
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/config/project.py +30 -30
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/config/tools.py +14 -15
- pyprojkit-0.7.0/src/pyprojkit/py.typed +1 -0
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/LICENSE +0 -0
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/_paths.py +0 -0
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/_run.py +0 -0
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/cli.py +0 -0
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/discovery.py +0 -0
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/sessions.py +0 -0
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/skill.py +0 -0
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/sync.py +0 -0
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/tasks.py +0 -0
- {pyprojkit-0.5.0 → pyprojkit-0.7.0}/src/pyprojkit/versions.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyprojkit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
Summary: Development workflow toolkit for Python projects: pyproject.toml sync, doit tasks, nox sessions
|
|
5
5
|
Author: mm21
|
|
6
6
|
Author-email: mm21 <mm21.dev@gmail.com>
|
|
@@ -183,7 +183,7 @@ Tool configurations are grouped by category under `ToolsConfig`. Every category
|
|
|
183
183
|
- `publish`: build/publish output directory
|
|
184
184
|
- `skill`: a `pyprojkit-python` [agent skill](https://agentskills.io) generated from the configuration
|
|
185
185
|
|
|
186
|
-
`
|
|
186
|
+
`create_recommended_tools()` returns a `ToolsConfig` with everything enabled (except sphinx, which needs project-specific settings). Customize it with `dataclasses.replace`:
|
|
187
187
|
|
|
188
188
|
```python
|
|
189
189
|
from dataclasses import replace
|
|
@@ -195,7 +195,7 @@ from pyprojkit import (
|
|
|
195
195
|
PythonVersions,
|
|
196
196
|
RequiresPython,
|
|
197
197
|
SphinxConfig,
|
|
198
|
-
|
|
198
|
+
create_recommended_tools,
|
|
199
199
|
)
|
|
200
200
|
|
|
201
201
|
config = ProjectConfig(
|
|
@@ -203,7 +203,7 @@ config = ProjectConfig(
|
|
|
203
203
|
requires_python=RequiresPython((3, 12)),
|
|
204
204
|
pinned_python=PythonVersions(3, (12, 14)),
|
|
205
205
|
tools=replace(
|
|
206
|
-
|
|
206
|
+
create_recommended_tools(),
|
|
207
207
|
doc=DocConfig(sphinx=SphinxConfig(copy_env_var="MY_PACKAGE_DOCS_DIR")),
|
|
208
208
|
analysis=None,
|
|
209
209
|
),
|
|
@@ -214,7 +214,7 @@ To tweak a managed value, replace it in the tool's config:
|
|
|
214
214
|
|
|
215
215
|
```python
|
|
216
216
|
tools=replace(
|
|
217
|
-
|
|
217
|
+
create_recommended_tools(),
|
|
218
218
|
test=TestConfig(pytest=PytestConfig(addopts="-x")),
|
|
219
219
|
)
|
|
220
220
|
```
|
|
@@ -334,11 +334,11 @@ There is no profile registry: a shared configuration is just a function or globa
|
|
|
334
334
|
# in your shared module, e.g. mycompany_config.py
|
|
335
335
|
from dataclasses import replace
|
|
336
336
|
|
|
337
|
-
from pyprojkit import AnalysisConfig, ToolsConfig,
|
|
337
|
+
from pyprojkit import AnalysisConfig, ToolsConfig, create_recommended_tools
|
|
338
338
|
|
|
339
339
|
|
|
340
340
|
def create_mycompany_tools() -> ToolsConfig:
|
|
341
|
-
return replace(
|
|
341
|
+
return replace(create_recommended_tools(), analysis=AnalysisConfig())
|
|
342
342
|
```
|
|
343
343
|
|
|
344
344
|
```python
|
|
@@ -140,7 +140,7 @@ Tool configurations are grouped by category under `ToolsConfig`. Every category
|
|
|
140
140
|
- `publish`: build/publish output directory
|
|
141
141
|
- `skill`: a `pyprojkit-python` [agent skill](https://agentskills.io) generated from the configuration
|
|
142
142
|
|
|
143
|
-
`
|
|
143
|
+
`create_recommended_tools()` returns a `ToolsConfig` with everything enabled (except sphinx, which needs project-specific settings). Customize it with `dataclasses.replace`:
|
|
144
144
|
|
|
145
145
|
```python
|
|
146
146
|
from dataclasses import replace
|
|
@@ -152,7 +152,7 @@ from pyprojkit import (
|
|
|
152
152
|
PythonVersions,
|
|
153
153
|
RequiresPython,
|
|
154
154
|
SphinxConfig,
|
|
155
|
-
|
|
155
|
+
create_recommended_tools,
|
|
156
156
|
)
|
|
157
157
|
|
|
158
158
|
config = ProjectConfig(
|
|
@@ -160,7 +160,7 @@ config = ProjectConfig(
|
|
|
160
160
|
requires_python=RequiresPython((3, 12)),
|
|
161
161
|
pinned_python=PythonVersions(3, (12, 14)),
|
|
162
162
|
tools=replace(
|
|
163
|
-
|
|
163
|
+
create_recommended_tools(),
|
|
164
164
|
doc=DocConfig(sphinx=SphinxConfig(copy_env_var="MY_PACKAGE_DOCS_DIR")),
|
|
165
165
|
analysis=None,
|
|
166
166
|
),
|
|
@@ -171,7 +171,7 @@ To tweak a managed value, replace it in the tool's config:
|
|
|
171
171
|
|
|
172
172
|
```python
|
|
173
173
|
tools=replace(
|
|
174
|
-
|
|
174
|
+
create_recommended_tools(),
|
|
175
175
|
test=TestConfig(pytest=PytestConfig(addopts="-x")),
|
|
176
176
|
)
|
|
177
177
|
```
|
|
@@ -291,11 +291,11 @@ There is no profile registry: a shared configuration is just a function or globa
|
|
|
291
291
|
# in your shared module, e.g. mycompany_config.py
|
|
292
292
|
from dataclasses import replace
|
|
293
293
|
|
|
294
|
-
from pyprojkit import AnalysisConfig, ToolsConfig,
|
|
294
|
+
from pyprojkit import AnalysisConfig, ToolsConfig, create_recommended_tools
|
|
295
295
|
|
|
296
296
|
|
|
297
297
|
def create_mycompany_tools() -> ToolsConfig:
|
|
298
|
-
return replace(
|
|
298
|
+
return replace(create_recommended_tools(), analysis=AnalysisConfig())
|
|
299
299
|
```
|
|
300
300
|
|
|
301
301
|
```python
|
|
@@ -29,7 +29,7 @@ license-files = ["LICENSE"]
|
|
|
29
29
|
name = "pyprojkit"
|
|
30
30
|
readme = "README.md"
|
|
31
31
|
requires-python = ">=3.12,<4.0" # pyprojkit-managed
|
|
32
|
-
version = "0.
|
|
32
|
+
version = "0.7.0"
|
|
33
33
|
|
|
34
34
|
[project.optional-dependencies]
|
|
35
35
|
all = [
|
|
@@ -108,7 +108,6 @@ quiet = true # pyprojkit-managed
|
|
|
108
108
|
|
|
109
109
|
[tool.mypy]
|
|
110
110
|
check_untyped_defs = true # pyprojkit-managed
|
|
111
|
-
ignore_missing_imports = true # pyprojkit-managed
|
|
112
111
|
python_version = "3.12" # pyprojkit-managed
|
|
113
112
|
|
|
114
113
|
[tool.nox]
|
|
@@ -44,7 +44,7 @@ from .config import (
|
|
|
44
44
|
AnalysisConfig,
|
|
45
45
|
PublishConfig,
|
|
46
46
|
SkillConfig,
|
|
47
|
-
|
|
47
|
+
create_recommended_tools,
|
|
48
48
|
)
|
|
49
49
|
from .versions import (
|
|
50
50
|
DEFAULT_PATCH_VERSIONS,
|
|
@@ -98,7 +98,7 @@ __all__ = [
|
|
|
98
98
|
"AnalysisConfig",
|
|
99
99
|
"PublishConfig",
|
|
100
100
|
"SkillConfig",
|
|
101
|
-
"
|
|
101
|
+
"create_recommended_tools",
|
|
102
102
|
"DEFAULT_PATCH_VERSIONS",
|
|
103
103
|
"PythonVersions",
|
|
104
104
|
"PythonVersionSet",
|
|
@@ -44,7 +44,7 @@ from .project import (
|
|
|
44
44
|
SkillConfig,
|
|
45
45
|
)
|
|
46
46
|
from .profiles import (
|
|
47
|
-
|
|
47
|
+
create_recommended_tools,
|
|
48
48
|
)
|
|
49
49
|
|
|
50
50
|
__all__ = [
|
|
@@ -74,6 +74,6 @@ __all__ = [
|
|
|
74
74
|
"AnalysisConfig",
|
|
75
75
|
"PublishConfig",
|
|
76
76
|
"SkillConfig",
|
|
77
|
-
"
|
|
77
|
+
"create_recommended_tools",
|
|
78
78
|
]
|
|
79
79
|
# </AUTOGEN_INIT>
|
|
@@ -31,16 +31,15 @@ class BaseConfig(ABC):
|
|
|
31
31
|
individual tools' `pyproject.toml` tables (e.g. `PytestConfig`).
|
|
32
32
|
|
|
33
33
|
A default-constructed config is empty: every setting is unset and every optional
|
|
34
|
-
sub-config is disabled. Opinionated settings are provided by
|
|
35
|
-
`create_kitchen_sink()`.
|
|
34
|
+
sub-config is disabled. Opinionated settings are provided by `create_recommended()`.
|
|
36
35
|
"""
|
|
37
36
|
|
|
38
37
|
@classmethod
|
|
39
38
|
@abstractmethod
|
|
40
|
-
def
|
|
39
|
+
def create_recommended(cls) -> Self:
|
|
41
40
|
"""
|
|
42
41
|
Get a new instance with opinionated settings, as used by
|
|
43
|
-
`
|
|
42
|
+
`create_recommended_tools()`.
|
|
44
43
|
"""
|
|
45
44
|
...
|
|
46
45
|
|
|
@@ -30,7 +30,7 @@ def create_mycompany_tools() -> ToolsConfig:
|
|
|
30
30
|
)
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
Alternatively, start from `
|
|
33
|
+
Alternatively, start from `create_recommended_tools()` and override parts of it with
|
|
34
34
|
`dataclasses.replace()`.
|
|
35
35
|
"""
|
|
36
36
|
|
|
@@ -39,13 +39,14 @@ from __future__ import annotations
|
|
|
39
39
|
from .project import ToolsConfig
|
|
40
40
|
|
|
41
41
|
__all__ = [
|
|
42
|
-
"
|
|
42
|
+
"create_recommended_tools",
|
|
43
43
|
]
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
def
|
|
46
|
+
def create_recommended_tools() -> ToolsConfig:
|
|
47
47
|
"""
|
|
48
|
-
Get a new instance of the configuration
|
|
49
|
-
|
|
48
|
+
Get a new instance of the recommended configuration: every tool which doesn't need
|
|
49
|
+
project-specific settings, with opinionated settings; equivalent to
|
|
50
|
+
`ToolsConfig.create_recommended()`.
|
|
50
51
|
"""
|
|
51
|
-
return ToolsConfig.
|
|
52
|
+
return ToolsConfig.create_recommended()
|
|
@@ -52,14 +52,14 @@ class FormattingConfig(BaseConfig):
|
|
|
52
52
|
"""
|
|
53
53
|
|
|
54
54
|
@classmethod
|
|
55
|
-
def
|
|
55
|
+
def create_recommended(cls) -> Self:
|
|
56
56
|
return cls(
|
|
57
57
|
formatters=(
|
|
58
|
-
AutoflakeConfig.
|
|
59
|
-
IsortConfig.
|
|
60
|
-
DocfmtConfig.
|
|
61
|
-
BlackConfig.
|
|
62
|
-
TomlSortConfig.
|
|
58
|
+
AutoflakeConfig.create_recommended(),
|
|
59
|
+
IsortConfig.create_recommended(),
|
|
60
|
+
DocfmtConfig.create_recommended(),
|
|
61
|
+
BlackConfig.create_recommended(),
|
|
62
|
+
TomlSortConfig.create_recommended(),
|
|
63
63
|
)
|
|
64
64
|
)
|
|
65
65
|
|
|
@@ -75,11 +75,11 @@ class TestConfig(BaseConfig):
|
|
|
75
75
|
coverage_report: CoverageReportConfig = field(default_factory=CoverageReportConfig)
|
|
76
76
|
|
|
77
77
|
@classmethod
|
|
78
|
-
def
|
|
78
|
+
def create_recommended(cls) -> Self:
|
|
79
79
|
return cls(
|
|
80
|
-
pytest=PytestConfig.
|
|
81
|
-
coverage_run=CoverageRunConfig.
|
|
82
|
-
coverage_report=CoverageReportConfig.
|
|
80
|
+
pytest=PytestConfig.create_recommended(),
|
|
81
|
+
coverage_run=CoverageRunConfig.create_recommended(),
|
|
82
|
+
coverage_report=CoverageReportConfig.create_recommended(),
|
|
83
83
|
)
|
|
84
84
|
|
|
85
85
|
|
|
@@ -95,7 +95,7 @@ class MkinitConfig(BaseConfig):
|
|
|
95
95
|
"""
|
|
96
96
|
|
|
97
97
|
@classmethod
|
|
98
|
-
def
|
|
98
|
+
def create_recommended(cls) -> Self:
|
|
99
99
|
return cls(
|
|
100
100
|
args=("--recursive", "--nomods", "--relative", "-i", "--source-order")
|
|
101
101
|
)
|
|
@@ -119,7 +119,7 @@ class SphinxConfig(BaseConfig):
|
|
|
119
119
|
"""
|
|
120
120
|
|
|
121
121
|
@classmethod
|
|
122
|
-
def
|
|
122
|
+
def create_recommended(cls) -> Self:
|
|
123
123
|
return cls()
|
|
124
124
|
|
|
125
125
|
|
|
@@ -140,12 +140,12 @@ class DocConfig(BaseConfig):
|
|
|
140
140
|
"""
|
|
141
141
|
|
|
142
142
|
@classmethod
|
|
143
|
-
def
|
|
143
|
+
def create_recommended(cls) -> Self:
|
|
144
144
|
"""
|
|
145
145
|
Enables mkinit; sphinx is left disabled since it needs project-specific
|
|
146
146
|
settings.
|
|
147
147
|
"""
|
|
148
|
-
return cls(mkinit=MkinitConfig.
|
|
148
|
+
return cls(mkinit=MkinitConfig.create_recommended())
|
|
149
149
|
|
|
150
150
|
|
|
151
151
|
@dataclass(kw_only=True)
|
|
@@ -158,10 +158,10 @@ class AnalysisConfig(BaseConfig):
|
|
|
158
158
|
pyright: PyrightConfig | None = None
|
|
159
159
|
|
|
160
160
|
@classmethod
|
|
161
|
-
def
|
|
161
|
+
def create_recommended(cls) -> Self:
|
|
162
162
|
return cls(
|
|
163
|
-
mypy=MypyConfig.
|
|
164
|
-
pyright=PyrightConfig.
|
|
163
|
+
mypy=MypyConfig.create_recommended(),
|
|
164
|
+
pyright=PyrightConfig.create_recommended(),
|
|
165
165
|
)
|
|
166
166
|
|
|
167
167
|
|
|
@@ -178,7 +178,7 @@ class PublishConfig(BaseConfig):
|
|
|
178
178
|
"""
|
|
179
179
|
|
|
180
180
|
@classmethod
|
|
181
|
-
def
|
|
181
|
+
def create_recommended(cls) -> Self:
|
|
182
182
|
return cls(out_dir=str(_paths.UV_PATH))
|
|
183
183
|
|
|
184
184
|
|
|
@@ -198,7 +198,7 @@ class SkillConfig(BaseConfig):
|
|
|
198
198
|
"""
|
|
199
199
|
|
|
200
200
|
@classmethod
|
|
201
|
-
def
|
|
201
|
+
def create_recommended(cls) -> Self:
|
|
202
202
|
return cls()
|
|
203
203
|
|
|
204
204
|
|
|
@@ -208,8 +208,8 @@ class ToolsConfig(BaseConfig):
|
|
|
208
208
|
Development tool configurations, grouped by broad tool category.
|
|
209
209
|
|
|
210
210
|
Every category is opt-in: `None` (the default) means the tool is neither managed nor
|
|
211
|
-
given a task. For a pre-canned set of everything, see `
|
|
212
|
-
available as `
|
|
211
|
+
given a task. For a pre-canned set of everything, see `create_recommended()` (also
|
|
212
|
+
available as `create_recommended_tools()`); to share a configuration across
|
|
213
213
|
projects, define your own factory function or global.
|
|
214
214
|
"""
|
|
215
215
|
|
|
@@ -233,7 +233,7 @@ class ToolsConfig(BaseConfig):
|
|
|
233
233
|
"""
|
|
234
234
|
|
|
235
235
|
@classmethod
|
|
236
|
-
def
|
|
236
|
+
def create_recommended(cls) -> Self:
|
|
237
237
|
"""
|
|
238
238
|
Enables every tool category, each with its opinionated settings: uv as the
|
|
239
239
|
workflow tool, formatting, testing, doit, nox, mkinit, static analysis,
|
|
@@ -242,14 +242,14 @@ class ToolsConfig(BaseConfig):
|
|
|
242
242
|
"""
|
|
243
243
|
return cls(
|
|
244
244
|
workflow_tool="uv",
|
|
245
|
-
formatting=FormattingConfig.
|
|
246
|
-
test=TestConfig.
|
|
247
|
-
doit=DoitConfig.
|
|
248
|
-
nox=NoxConfig.
|
|
249
|
-
doc=DocConfig.
|
|
250
|
-
analysis=AnalysisConfig.
|
|
251
|
-
publish=PublishConfig.
|
|
252
|
-
skill=SkillConfig.
|
|
245
|
+
formatting=FormattingConfig.create_recommended(),
|
|
246
|
+
test=TestConfig.create_recommended(),
|
|
247
|
+
doit=DoitConfig.create_recommended(),
|
|
248
|
+
nox=NoxConfig.create_recommended(),
|
|
249
|
+
doc=DocConfig.create_recommended(),
|
|
250
|
+
analysis=AnalysisConfig.create_recommended(),
|
|
251
|
+
publish=PublishConfig.create_recommended(),
|
|
252
|
+
skill=SkillConfig.create_recommended(),
|
|
253
253
|
)
|
|
254
254
|
|
|
255
255
|
|
|
@@ -3,7 +3,7 @@ Configurations for all supported tools.
|
|
|
3
3
|
|
|
4
4
|
Formatters are tools which additionally run as part of the `format` task. Every field
|
|
5
5
|
defaults to `None` (unset); each tool's opinionated settings are provided by its
|
|
6
|
-
`
|
|
6
|
+
`create_recommended()`.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
from __future__ import annotations
|
|
@@ -50,7 +50,7 @@ class AutoflakeConfig(BaseFormatterConfig):
|
|
|
50
50
|
)
|
|
51
51
|
|
|
52
52
|
@classmethod
|
|
53
|
-
def
|
|
53
|
+
def create_recommended(cls) -> Self:
|
|
54
54
|
return cls(
|
|
55
55
|
in_place=True,
|
|
56
56
|
recursive=True,
|
|
@@ -70,7 +70,7 @@ class IsortConfig(BaseFormatterConfig):
|
|
|
70
70
|
quiet: bool | None = None
|
|
71
71
|
|
|
72
72
|
@classmethod
|
|
73
|
-
def
|
|
73
|
+
def create_recommended(cls) -> Self:
|
|
74
74
|
return cls(profile="black", quiet=True)
|
|
75
75
|
|
|
76
76
|
def command(self, py_paths: list[str], toml_paths: list[str]) -> list[str]:
|
|
@@ -84,7 +84,7 @@ class BlackConfig(BaseFormatterConfig):
|
|
|
84
84
|
quiet: bool | None = None
|
|
85
85
|
|
|
86
86
|
@classmethod
|
|
87
|
-
def
|
|
87
|
+
def create_recommended(cls) -> Self:
|
|
88
88
|
return cls(quiet=True)
|
|
89
89
|
|
|
90
90
|
def extra_toml(self, project: ProjectConfig) -> dict[str, Any]:
|
|
@@ -114,7 +114,7 @@ class DocfmtConfig(BaseFormatterConfig):
|
|
|
114
114
|
force_reflow: bool | None = field(default=None, metadata={"toml": "force-reflow"})
|
|
115
115
|
|
|
116
116
|
@classmethod
|
|
117
|
-
def
|
|
117
|
+
def create_recommended(cls) -> Self:
|
|
118
118
|
return cls(
|
|
119
119
|
in_place=True, recursive=True, summary_on_own_line=True, force_reflow=True
|
|
120
120
|
)
|
|
@@ -135,7 +135,7 @@ class TomlSortConfig(BaseFormatterConfig):
|
|
|
135
135
|
spaces_before_inline_comment: int | None = None
|
|
136
136
|
|
|
137
137
|
@classmethod
|
|
138
|
-
def
|
|
138
|
+
def create_recommended(cls) -> Self:
|
|
139
139
|
return cls(
|
|
140
140
|
sort_first=("project", "dependency-groups", "build-system"),
|
|
141
141
|
sort_table_keys=True,
|
|
@@ -158,7 +158,7 @@ class PytestConfig(BaseToolConfig):
|
|
|
158
158
|
testpaths: str | None = None
|
|
159
159
|
|
|
160
160
|
@classmethod
|
|
161
|
-
def
|
|
161
|
+
def create_recommended(cls) -> Self:
|
|
162
162
|
return cls(
|
|
163
163
|
addopts="--import-mode=importlib -s -v -rA",
|
|
164
164
|
cache_dir=str(_paths.PYTEST_CACHE_PATH),
|
|
@@ -173,7 +173,7 @@ class CoverageRunConfig(BaseToolConfig):
|
|
|
173
173
|
data_file: str | None = None
|
|
174
174
|
|
|
175
175
|
@classmethod
|
|
176
|
-
def
|
|
176
|
+
def create_recommended(cls) -> Self:
|
|
177
177
|
return cls(data_file=str(_paths.COVERAGE_DATA_PATH))
|
|
178
178
|
|
|
179
179
|
|
|
@@ -184,7 +184,7 @@ class CoverageReportConfig(BaseToolConfig):
|
|
|
184
184
|
exclude_lines: tuple[str, ...] | None = None
|
|
185
185
|
|
|
186
186
|
@classmethod
|
|
187
|
-
def
|
|
187
|
+
def create_recommended(cls) -> Self:
|
|
188
188
|
return cls(exclude_lines=("if TYPE_CHECKING:", "\\.\\.\\.$"))
|
|
189
189
|
|
|
190
190
|
|
|
@@ -196,7 +196,7 @@ class DoitConfig(BaseToolConfig):
|
|
|
196
196
|
verbosity: int | None = None
|
|
197
197
|
|
|
198
198
|
@classmethod
|
|
199
|
-
def
|
|
199
|
+
def create_recommended(cls) -> Self:
|
|
200
200
|
return cls(dep_file=str(_paths.DOIT_DB_PATH), verbosity=2)
|
|
201
201
|
|
|
202
202
|
|
|
@@ -208,7 +208,7 @@ class NoxConfig(BaseToolConfig):
|
|
|
208
208
|
envdir: str | None = None
|
|
209
209
|
|
|
210
210
|
@classmethod
|
|
211
|
-
def
|
|
211
|
+
def create_recommended(cls) -> Self:
|
|
212
212
|
return cls(default_venv_backend="uv", envdir=str(_paths.NOX_ENVDIR_PATH))
|
|
213
213
|
|
|
214
214
|
|
|
@@ -216,12 +216,11 @@ class NoxConfig(BaseToolConfig):
|
|
|
216
216
|
class MypyConfig(BaseToolConfig):
|
|
217
217
|
table_path: ClassVar[str] = "tool.mypy"
|
|
218
218
|
|
|
219
|
-
ignore_missing_imports: bool | None = None
|
|
220
219
|
check_untyped_defs: bool | None = None
|
|
221
220
|
|
|
222
221
|
@classmethod
|
|
223
|
-
def
|
|
224
|
-
return cls(
|
|
222
|
+
def create_recommended(cls) -> Self:
|
|
223
|
+
return cls(check_untyped_defs=True)
|
|
225
224
|
|
|
226
225
|
def extra_toml(self, project: ProjectConfig) -> dict[str, Any]:
|
|
227
226
|
versions = project.pinned_versions
|
|
@@ -236,7 +235,7 @@ class PyrightConfig(BaseToolConfig):
|
|
|
236
235
|
table_path: ClassVar[str] = "tool.pyright"
|
|
237
236
|
|
|
238
237
|
@classmethod
|
|
239
|
-
def
|
|
238
|
+
def create_recommended(cls) -> Self:
|
|
240
239
|
return cls()
|
|
241
240
|
|
|
242
241
|
def extra_toml(self, project: ProjectConfig) -> dict[str, Any]:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|