Как выполнить проверку схемы YAML с помощью Cerberus?Python

Программы на Python
Anonymous
Как выполнить проверку схемы YAML с помощью Cerberus?

Сообщение Anonymous »

Я пытаюсь разработать схему проверки для своего проекта, и мне нужна помощь.
Файл 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
Параметры — это словарь, содержащий столбцы и метаданные. Поле метаданных содержит дополнительные аргументы для определенных типов, таких как pii, work_location и т. д. Аргументы могут различаться для каждого типа метаданных.
Я пытаюсь проверить этот 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

Вернуться в «Python»