1
1
import dataclasses
2
2
from pathlib import Path
3
- from typing import Any , Dict , List , Literal , Optional , Union
3
+ from typing import Any , Dict , List , Literal , Optional , TypedDict , Union
4
4
5
5
from packaging .specifiers import SpecifierSet
6
6
from packaging .version import Version
21
21
"SDistSettings" ,
22
22
"ScikitBuildSettings" ,
23
23
"SearchSettings" ,
24
+ "SettingsFieldMetadata" ,
24
25
"WheelSettings" ,
25
26
]
26
27
@@ -29,6 +30,11 @@ def __dir__() -> List[str]:
29
30
return __all__
30
31
31
32
33
+ class SettingsFieldMetadata (TypedDict , total = False ):
34
+ display_default : Optional [str ]
35
+ deprecated : bool
36
+
37
+
32
38
class CMakeSettingsDefine (str ):
33
39
"""
34
40
A str subtype for automatically normalizing bool and list values
@@ -53,7 +59,9 @@ def escape_semicolons(item: str) -> str:
53
59
54
60
@dataclasses .dataclass
55
61
class CMakeSettings :
56
- minimum_version : Optional [Version ] = None
62
+ minimum_version : Optional [Version ] = dataclasses .field (
63
+ default = None , metadata = SettingsFieldMetadata (deprecated = True )
64
+ )
57
65
"""
58
66
DEPRECATED in 0.8; use version instead.
59
67
"""
@@ -114,7 +122,9 @@ class SearchSettings:
114
122
115
123
@dataclasses .dataclass
116
124
class NinjaSettings :
117
- minimum_version : Optional [Version ] = None
125
+ minimum_version : Optional [Version ] = dataclasses .field (
126
+ default = None , metadata = SettingsFieldMetadata (deprecated = True )
127
+ )
118
128
"""
119
129
DEPRECATED in 0.8; use version instead.
120
130
"""
@@ -174,7 +184,12 @@ class SDistSettings:
174
184
175
185
@dataclasses .dataclass
176
186
class WheelSettings :
177
- packages : Optional [Union [List [str ], Dict [str , str ]]] = None
187
+ packages : Optional [Union [List [str ], Dict [str , str ]]] = dataclasses .field (
188
+ default = None ,
189
+ metadata = SettingsFieldMetadata (
190
+ display_default = '["src/<package>", "python/<package>", "<package>"]'
191
+ ),
192
+ )
178
193
"""
179
194
A list of packages to auto-copy into the wheel. If this is not set, it will
180
195
default to the first of ``src/<package>``, ``python/<package>``, or
@@ -300,7 +315,9 @@ class InstallSettings:
300
315
The components to install. If empty, all default components are installed.
301
316
"""
302
317
303
- strip : Optional [bool ] = None
318
+ strip : Optional [bool ] = dataclasses .field (
319
+ default = None , metadata = SettingsFieldMetadata (display_default = "true" )
320
+ )
304
321
"""
305
322
Whether to strip the binaries. True for release builds on scikit-build-core
306
323
0.5+ (0.5-0.10.5 also incorrectly set this for debug builds).
@@ -382,7 +399,12 @@ class ScikitBuildSettings:
382
399
Enable early previews of features not finalized yet.
383
400
"""
384
401
385
- minimum_version : Optional [Version ] = None
402
+ minimum_version : Optional [Version ] = dataclasses .field (
403
+ default = None ,
404
+ metadata = SettingsFieldMetadata (
405
+ display_default = '"{version}" # current version'
406
+ ),
407
+ )
386
408
"""
387
409
If set, this will provide a method for backward compatibility.
388
410
"""
0 commit comments