Я использую absl-py python gflags для моего проекта.
Это удобный способ задания конфигураций, но мне часто нравится запускать одну и ту же конфигурацию, и сохранение вызовов командной строки не является предпочтительным, поскольку их трудно читать и поддерживать.
Вместо этого я хотел бы иметь возможность поддерживать текстовые файлы YAML, в которых указаны значения флагов. Например, программа, которая может быть вызвана как
python myapp.py --some_int_arg 3 --noboolean_value
также может быть вызван как
python myapp.py --from_config config.yaml
где содержимое config.yaml
равно
some_int_arg: 3
boolean_value: false
и аналогично было бы неплохо иметь возможность создать файл выше при первом вызове.
Какой самый идиоматический способ
- принять путь к файлу конфигурации в командной строке и переопределить все значения
absl.flags.FLAGS
?
- преобразование экземпляра
absl.flags.FLAGS
в текстовое представление (предпочтительно YAML), которое затем может быть вызвано с помощью (1)?
Редактировать . Кажется, есть простой способ принять файл конфигурации, используя --flagfile
, который должен просто содержать значения каждого флага в новой строке. Тем не менее, мой вопрос (2) все еще остается, как я смогу восстановить такой файл? В настоящее время кажется, что единственное решение состоит в том, чтобы сканировать flags.FLAGS
и вручную фиксировать каждое значение флага.