11import dataclasses
22from pathlib import Path
3- from typing import Any , Dict , List , Literal , Optional , Union
3+ from typing import Any , Dict , List , Literal , Optional , TypedDict , Union
44
55from packaging .specifiers import SpecifierSet
66from packaging .version import Version
2121 "SDistSettings" ,
2222 "ScikitBuildSettings" ,
2323 "SearchSettings" ,
24+ "SettingsFieldMetadata" ,
2425 "WheelSettings" ,
2526]
2627
@@ -29,6 +30,11 @@ def __dir__() -> List[str]:
2930 return __all__
3031
3132
33+ class SettingsFieldMetadata (TypedDict , total = False ):
34+ display_default : Optional [str ]
35+ deprecated : bool
36+
37+
3238class CMakeSettingsDefine (str ):
3339 """
3440 A str subtype for automatically normalizing bool and list values
@@ -53,7 +59,9 @@ def escape_semicolons(item: str) -> str:
5359
5460@dataclasses .dataclass
5561class CMakeSettings :
56- minimum_version : Optional [Version ] = None
62+ minimum_version : Optional [Version ] = dataclasses .field (
63+ default = None , metadata = SettingsFieldMetadata (deprecated = True )
64+ )
5765 """
5866 DEPRECATED in 0.8; use version instead.
5967 """
@@ -114,7 +122,9 @@ class SearchSettings:
114122
115123@dataclasses .dataclass
116124class NinjaSettings :
117- minimum_version : Optional [Version ] = None
125+ minimum_version : Optional [Version ] = dataclasses .field (
126+ default = None , metadata = SettingsFieldMetadata (deprecated = True )
127+ )
118128 """
119129 DEPRECATED in 0.8; use version instead.
120130 """
@@ -174,7 +184,12 @@ class SDistSettings:
174184
175185@dataclasses .dataclass
176186class 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+ )
178193 """
179194 A list of packages to auto-copy into the wheel. If this is not set, it will
180195 default to the first of ``src/<package>``, ``python/<package>``, or
@@ -300,7 +315,9 @@ class InstallSettings:
300315 The components to install. If empty, all default components are installed.
301316 """
302317
303- strip : Optional [bool ] = None
318+ strip : Optional [bool ] = dataclasses .field (
319+ default = None , metadata = SettingsFieldMetadata (display_default = "true" )
320+ )
304321 """
305322 Whether to strip the binaries. True for release builds on scikit-build-core
306323 0.5+ (0.5-0.10.5 also incorrectly set this for debug builds).
@@ -382,7 +399,12 @@ class ScikitBuildSettings:
382399 Enable early previews of features not finalized yet.
383400 """
384401
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+ )
386408 """
387409 If set, this will provide a method for backward compatibility.
388410 """
0 commit comments