Pywalify - 评估嵌套地图
Pywalify - evaluate nested maps
我正在使用 pykwalify 来验证模式。
鉴于此 yaml:
variables:
dev:
options:
key: value
uat:
key: value
key2: value
prd:
key: value
key2: value
在变量下,应该允许任何映射。
在第二层(dev、uat、prd)下——任何键都应该被允许,除了选项。此处不应允许“选项”。
我试过使用正则表达式,但这只是评估顶层,我不太确定如何评估嵌套在“dev、uat、prd”级别下的级别。
variables:
type: map
matching-rule: all
mapping:
regex;([^,]+):
type: any
regex;(^(?!.*options:).*$):
type: any
另一个可能的选择是,如果我必须明确列出允许的值,那也可以。
我在您的代码段中发现了两个问题:
- 匹配除“选项”以外的任何内容的正则表达式是错误的。
- 架构的结构不适合嵌套映射。
以下架构应提供您所需要的内容:
variables:
type: map
matching-rule: all
mapping:
regex;([^,]+):
type: map
mapping:
regex;(^(?!options$).*):
type: any
我正在使用 pykwalify 来验证模式。
鉴于此 yaml:
variables:
dev:
options:
key: value
uat:
key: value
key2: value
prd:
key: value
key2: value
在变量下,应该允许任何映射。 在第二层(dev、uat、prd)下——任何键都应该被允许,除了选项。此处不应允许“选项”。
我试过使用正则表达式,但这只是评估顶层,我不太确定如何评估嵌套在“dev、uat、prd”级别下的级别。
variables:
type: map
matching-rule: all
mapping:
regex;([^,]+):
type: any
regex;(^(?!.*options:).*$):
type: any
另一个可能的选择是,如果我必须明确列出允许的值,那也可以。
我在您的代码段中发现了两个问题:
- 匹配除“选项”以外的任何内容的正则表达式是错误的。
- 架构的结构不适合嵌套映射。
以下架构应提供您所需要的内容:
variables:
type: map
matching-rule: all
mapping:
regex;([^,]+):
type: map
mapping:
regex;(^(?!options$).*):
type: any