Pywalify-评估嵌套映射



我正在使用pykwalify来验证模式。

给定这个yaml:

variables:
dev:
options:
key: value
uat:
key: value
key2: value
prd:
key: value
key2: value

在变量下,应允许任何映射。在第二个级别(dev、uat、prd(下,应该允许任何键,EXCEPT选项除外"选项";不应该被允许在这里。

我尝试过使用regex,但这只是评估顶级,我不太确定如何评估嵌套在"下面的级别;dev,uat,prd"数量

variables:
type: map
matching-rule: all
mapping:
regex;([^,]+):
type: any
regex;(^(?!.*options:).*$):
type: any

另一个可能的选择是,如果我必须明确列出允许的值,这也会起作用。

我在您的代码片段中看到两个问题:

  1. 正则表达式匹配除";选项";是错误的
  2. 架构的结构不适合嵌套映射

下面的模式应该提供您所需要的:

variables:
type: map
matching-rule: all
mapping:
regex;([^,]+):
type: map
mapping:
regex;(^(?!options$).*):
type: any

最新更新