88
99from pydantic import Field
1010
11- from . import LibraryManifest , ManifestSpec
11+ from . import SPEC_CONFIG , LibraryManifest , ManifestSpec
1212
1313
1414class BpsSpec (ManifestSpec ):
@@ -17,37 +17,35 @@ class BpsSpec(ManifestSpec):
1717 a campaign template.
1818 """
1919
20- pipeline_yaml : str | None = Field (default = None )
20+ model_config = SPEC_CONFIG
21+ pipeline_yaml : str | None = Field (
22+ default = None ,
23+ description = "The absolute path to a Pipeline YAML specification file with optional anchor. "
24+ "The path must begin with a `/` or a `${...}` environment variable." ,
25+ pattern = "^(/|\\ $\\ {.*\\ })(.*)(\\ .yaml)(#.*)?$" ,
26+ )
2127 variables : dict [str , str ] | None = Field (
2228 default = None ,
23- description = (
24- "A mapping of name-value string pairs used to define addtional "
25- "top-level BPS substitution variables. Note that the values are quoted in the "
26- "output."
27- ),
29+ description = "A mapping of name-value string pairs used to define addtional "
30+ "top-level BPS substitution variables. Note that the values are quoted in the "
31+ "output." ,
2832 )
2933 include_files : list [str ] | None = Field (default = None )
3034 literals : dict [str , Any ] | None = Field (
3135 default = None ,
32- description = (
33- "A mapping of arbitrary top-level mapping sections to be added as additional literal YAML, "
34- "e.g., `finalJob`."
35- ),
36+ description = "A mapping of arbitrary top-level mapping sections to be added as additional "
37+ "literal YAML, e.g., `finalJob`." ,
3638 )
3739 environment : dict [str , str ] | None = Field (
3840 default = None ,
39- description = (
40- "A mapping of name-value string pairs used to defined additional "
41- "values under the `environment` heading."
42- ),
41+ description = "A mapping of name-value string pairs used to defined additional "
42+ "values under the `environment` heading." ,
4343 )
4444 payload : dict [str , str ] | None = Field (
4545 default = None ,
46- description = (
47- "A mapping of name-value string pairs used to define BPS payload "
48- "options. Note that these values are generated from other configuration "
49- "sources at runtime."
50- ),
46+ description = "A mapping of name-value string pairs used to define BPS payload "
47+ "options. Note that these values are generated from other configuration "
48+ "sources at runtime." ,
5149 )
5250 extra_init_options : str | None = Field (
5351 default = None , description = "Options added to the end of pipetaskinit"
@@ -61,9 +59,8 @@ class BpsSpec(ManifestSpec):
6159 extra_update_qgraph_options : str | None = Field (default = None )
6260 clustering : dict [str , Any ] | None = Field (
6361 default = None ,
64- description = (
65- "A mapping of clustering directives, added as literal YAML under the `clustering` heading."
66- ),
62+ description = "A mapping of clustering directives, added as literal YAML "
63+ "under the `clustering` heading." ,
6764 )
6865
6966
0 commit comments