Skip to content

Commit 0722170

Browse files
committed
Move deprecated handling to field metadata
Signed-off-by: Cristian Le <[email protected]>
1 parent fddf400 commit 0722170

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

src/scikit_build_core/settings/documentation.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ class DCDoc:
5454
name: str
5555
default: str
5656
docs: str
57+
deprecated: bool = False
5758

5859
def __str__(self) -> str:
5960
docs = "\n".join(f"# {s}" for s in textwrap.wrap(self.docs, width=78))
@@ -107,4 +108,5 @@ def mk_docs(dc: type[object], prefix: str = "") -> Generator[DCDoc, None, None]:
107108
name=f"{prefix}{field.name}".replace("_", "-"),
108109
default=sanitize_default_field(default),
109110
docs=docs[field.name],
111+
deprecated=get_metadata_field(field, "deprecated", False), # noqa: FBT003
110112
)

src/scikit_build_core/settings/skbuild_docs.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,12 @@ def __dir__() -> list[str]:
1313

1414
version = ".".join(__version__.split(".")[:2])
1515

16-
INV = {"cmake.minimum-version", "ninja.minimum-version"}
17-
1816

1917
def mk_skbuild_docs() -> str:
2018
"""
2119
Makes documentation for the skbuild model.
2220
"""
23-
items = [x for x in mk_docs(ScikitBuildSettings) if x.name not in INV]
21+
items = [x for x in mk_docs(ScikitBuildSettings) if not x.deprecated]
2422
for item in items:
2523
if item.name == "minimum-version":
2624
item.default = f'"{version}" # current version'

src/scikit_build_core/settings/skbuild_model.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ class SettingsFieldMetadata(Mapping[str, Any]):
3636
Convenience dataclass to store field metadata for documentation.
3737
"""
3838

39+
deprecated: bool = False
40+
3941
def __contains__(self, key: Any) -> bool:
4042
return any(key == field.name for field in dataclasses.fields(self))
4143

@@ -74,7 +76,9 @@ def escape_semicolons(item: str) -> str:
7476

7577
@dataclasses.dataclass
7678
class CMakeSettings:
77-
minimum_version: Optional[Version] = None
79+
minimum_version: Optional[Version] = dataclasses.field(
80+
default=None, metadata=SettingsFieldMetadata(deprecated=True)
81+
)
7882
"""
7983
DEPRECATED in 0.8; use version instead.
8084
"""
@@ -135,7 +139,9 @@ class SearchSettings:
135139

136140
@dataclasses.dataclass
137141
class NinjaSettings:
138-
minimum_version: Optional[Version] = None
142+
minimum_version: Optional[Version] = dataclasses.field(
143+
default=None, metadata=SettingsFieldMetadata(deprecated=True)
144+
)
139145
"""
140146
DEPRECATED in 0.8; use version instead.
141147
"""

0 commit comments

Comments
 (0)