Skip to content

Commit 7dd2ca1

Browse files
committed
Update CMakePreset Optionals
1 parent ed4e6ec commit 7dd2ca1

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

cppython/schema.py

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,20 @@ class Preset(BaseModel):
1919

2020
name: str
2121
hidden: Optional[bool]
22-
inherits: list[str] = []
22+
inherits: Optional[list[str] | str]
2323
displayName: Optional[str]
2424
description: Optional[str]
2525

26+
@validator("inherits")
27+
def validate_str(cls, values):
28+
"""
29+
Conform to list
30+
"""
31+
if isinstance(values, str):
32+
return [values]
33+
34+
return values
35+
2636

2737
class ConfigurePreset(Preset):
2838
"""
@@ -73,22 +83,25 @@ class CMakePresets(BaseModel, extra=Extra.forbid):
7383
"""
7484

7585
version: int = Field(default=4, const=True)
76-
cmakeMinimumRequired: CMakeVersion = CMakeVersion() # TODO: 'version' compatability validation
77-
include: list[str] = []
86+
cmakeMinimumRequired: CMakeVersion = CMakeVersion() # TODO: 'version' compatibility validation
87+
include: Optional[list[str]]
7888
vendor: Optional[Any]
79-
configurePresets: list[ConfigurePreset] = []
80-
buildPresets: list[BuildPreset] = []
81-
testPresets: list[TestPreset] = []
89+
configurePresets: Optional[list[ConfigurePreset]]
90+
buildPresets: Optional[list[BuildPreset]]
91+
testPresets: Optional[list[TestPreset]]
8292

8393
@validator("include")
84-
def validate_path(cls, v):
94+
def validate_path(cls, values):
8595
"""
8696
TODO
8797
"""
88-
output = []
89-
for value in v:
90-
output.append(Path(value).as_posix())
91-
return output
98+
if values is not None:
99+
output = []
100+
for value in values:
101+
output.append(Path(value).as_posix())
102+
return output
103+
104+
return None
92105

93106

94107
@dataclass

0 commit comments

Comments
 (0)