@@ -19,10 +19,20 @@ class Preset(BaseModel):
19
19
20
20
name : str
21
21
hidden : Optional [bool ]
22
- inherits : list [str ] = [ ]
22
+ inherits : Optional [ list [str ] | str ]
23
23
displayName : Optional [str ]
24
24
description : Optional [str ]
25
25
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
+
26
36
27
37
class ConfigurePreset (Preset ):
28
38
"""
@@ -73,22 +83,25 @@ class CMakePresets(BaseModel, extra=Extra.forbid):
73
83
"""
74
84
75
85
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 ]]
78
88
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 ]]
82
92
83
93
@validator ("include" )
84
- def validate_path (cls , v ):
94
+ def validate_path (cls , values ):
85
95
"""
86
96
TODO
87
97
"""
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
92
105
93
106
94
107
@dataclass
0 commit comments