Каков идиоматический способ выполнения преобразований из gthongs python в yaml и обратно? - PullRequest
0 голосов
/ 06 мая 2018

Я использую 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

и аналогично было бы неплохо иметь возможность создать файл выше при первом вызове.

Какой самый идиоматический способ

  1. принять путь к файлу конфигурации в командной строке и переопределить все значения absl.flags.FLAGS?
  2. преобразование экземпляра absl.flags.FLAGS в текстовое представление (предпочтительно YAML), которое затем может быть вызвано с помощью (1)?

Редактировать . Кажется, есть простой способ принять файл конфигурации, используя --flagfile, который должен просто содержать значения каждого флага в новой строке. Тем не менее, мой вопрос (2) все еще остается, как я смогу восстановить такой файл? В настоящее время кажется, что единственное решение состоит в том, чтобы сканировать flags.FLAGS и вручную фиксировать каждое значение флага.

1 Ответ

0 голосов
/ 21 мая 2018

FLAGS.flags_into_string() должен возвращать строку, которая может быть помещена в файл флага. Или FLAGS.append_flags_into_file('path/to/flagfile.txt') добавит флаги к этому файлу.

Это работает для вас?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...