Skip to content

Commit a3d86df

Browse files
committed
refactor: simpler TypedDict
Signed-off-by: Henry Schreiner <[email protected]>
1 parent ced24cb commit a3d86df

File tree

2 files changed

+10
-27
lines changed

2 files changed

+10
-27
lines changed

src/scikit_build_core/settings/documentation.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,7 @@ def mk_docs(dc: type[object], prefix: str = "") -> Generator[DCDoc, None, None]:
8585
yield from mk_docs(field_type, prefix=f"{prefix}{field.name}[].")
8686
continue
8787

88-
if default_before_format := field.metadata.get("skbuild", {}).get(
89-
"display_default", None
90-
):
88+
if default_before_format := field.metadata.get("display_default", None):
9189
assert isinstance(default_before_format, str)
9290
default = default_before_format.format(
9391
version=version_display,
@@ -107,5 +105,5 @@ def mk_docs(dc: type[object], prefix: str = "") -> Generator[DCDoc, None, None]:
107105
name=f"{prefix}{field.name}".replace("_", "-"),
108106
default=sanitize_default_field(default),
109107
docs=docs[field.name],
110-
deprecated=field.metadata.get("skbuild", {}).get("deprecated", False),
108+
deprecated=field.metadata.get("deprecated", False),
111109
)

src/scikit_build_core/settings/skbuild_model.py

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,28 +30,11 @@ def __dir__() -> List[str]:
3030
return __all__
3131

3232

33-
class SettingsFieldMetadataInner(TypedDict):
33+
class SettingsFieldMetadata(TypedDict, total=False):
3434
display_default: Optional[str]
3535
deprecated: bool
3636

3737

38-
class SettingsFieldMetadata(TypedDict, total=False):
39-
skbuild: SettingsFieldMetadataInner
40-
41-
42-
def mk_metadata(
43-
*, display_default: Optional[str] = None, deprecated: bool = False
44-
) -> SettingsFieldMetadata:
45-
"""
46-
A helper function to create metadata for a field.
47-
"""
48-
return SettingsFieldMetadata(
49-
skbuild=SettingsFieldMetadataInner(
50-
display_default=display_default, deprecated=deprecated
51-
)
52-
)
53-
54-
5538
class CMakeSettingsDefine(str):
5639
"""
5740
A str subtype for automatically normalizing bool and list values
@@ -77,7 +60,7 @@ def escape_semicolons(item: str) -> str:
7760
@dataclasses.dataclass
7861
class CMakeSettings:
7962
minimum_version: Optional[Version] = dataclasses.field(
80-
default=None, metadata=mk_metadata(deprecated=True)
63+
default=None, metadata=SettingsFieldMetadata(deprecated=True)
8164
)
8265
"""
8366
DEPRECATED in 0.8; use version instead.
@@ -140,7 +123,7 @@ class SearchSettings:
140123
@dataclasses.dataclass
141124
class NinjaSettings:
142125
minimum_version: Optional[Version] = dataclasses.field(
143-
default=None, metadata=mk_metadata(deprecated=True)
126+
default=None, metadata=SettingsFieldMetadata(deprecated=True)
144127
)
145128
"""
146129
DEPRECATED in 0.8; use version instead.
@@ -203,7 +186,7 @@ class SDistSettings:
203186
class WheelSettings:
204187
packages: Optional[Union[List[str], Dict[str, str]]] = dataclasses.field(
205188
default=None,
206-
metadata=mk_metadata(
189+
metadata=SettingsFieldMetadata(
207190
display_default='["src/<package>", "python/<package>", "<package>"]'
208191
),
209192
)
@@ -333,7 +316,7 @@ class InstallSettings:
333316
"""
334317

335318
strip: Optional[bool] = dataclasses.field(
336-
default=None, metadata=mk_metadata(display_default="true")
319+
default=None, metadata=SettingsFieldMetadata(display_default="true")
337320
)
338321
"""
339322
Whether to strip the binaries. True for release builds on scikit-build-core
@@ -418,7 +401,9 @@ class ScikitBuildSettings:
418401

419402
minimum_version: Optional[Version] = dataclasses.field(
420403
default=None,
421-
metadata=mk_metadata(display_default='"{version}" # current version'),
404+
metadata=SettingsFieldMetadata(
405+
display_default='"{version}" # current version'
406+
),
422407
)
423408
"""
424409
If set, this will provide a method for backward compatibility.

0 commit comments

Comments
 (0)