У меня есть файл в YAML (я назвал его default.yaml
), который описывает набор параметров и то, как эти параметры могут быть установлены (например, тип: bool). У пользователя есть другой файл *.yaml
, в котором он может настроить эти параметры. Я написал Python framework, чтобы убедиться, что пользователь не настраивает ничего, что не описано в моем default.yaml
. Мне было интересно, если уже есть какая-то библиотека или фреймворк, который делает это для меня. Может быть, я могу определить эти зависимости и правила для записей, а затем использовать платформу для проверки правильности ввода пользователя.
Моя главная проблема заключается в том, что у меня есть некоторые "сложные" зависимости, что делает проверку в целом достаточно больно, и код не очень читабелен.
Например, мой default.yaml
выглядит примерно так:
parameter1: { default: null,
requires: [["parameter2", True], ["parameter3-len", [2-4]],
type: int,
values: { !!python/tuple [True, True] : 1,
!!python/tuple [True, False] : 2,
!!python/tuple [False, True] : 3,
!!python/tuple [False, False] : 4 }
}
parameter2: { ... }
parameter1: { default: null,
requires: null,
type: list,
list-type: int,
list-allow-dups: True,
...
}
Итак, у меня есть параметры, которые могут быть списками, int, bool или строками, а также некоторые из моих списков могут иметь повторяющиеся значения, другие списки не должны содержать дубликаты, и т. д. c.