Файл YAML выглядит примерно так, как показано ниже
Код: Выделить всё
label: sample
version: 1
parameters:
- columns : [Name]
metadata:
type: pii-string
- columns : [Age]
metadata:
type: pii-number
args:
mask_value: XX
- columns : [city]
metadata:
type: location
args:
default_value: IND
Я пытаюсь проверить этот YAML с помощью cerberus. Однако я не могу понять логику проверки определенных аргументов для определенных метаданных.
Например:
- Если тип метаданных — «pii_number», то аргументы должны иметь значение_маски.
- Если тип метаданных — «location», аргументы должны иметь «значение_по умолчанию».
Код: Выделить всё
"label": {"type": "string", "required": True},
"version": {"type": "integer", "required": True},
"parameters": {
"type": "list",
"schema": {
"type": "dict",
"schema": {
"columns": {"type": "list", "required": True},
"metadata": {
"type": "dict",
"required": True,
"schema": {
"type": {
"type": "string",
"allowed": ["pii-string", "pii-number", "location"],
"required": True,
},
"args": {
"type": "dict",
"allowed": ["mask_value", "default_value"],
"required": False
},
},
},
},
},
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... g-cerberus