从 python gflags 到 yaml 并返回的惯用方式是什么?
What's the idiomatic way of performing conversions from python gflags to yaml and back?
我正在为我的项目使用 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
并手动将每个标志值字符串化。
FLAGS.flags_into_string()
应该 return 一个可以放在标志文件中的字符串。或者 FLAGS.append_flags_into_file('path/to/flagfile.txt')
将标志附加到该文件。
这对你有用吗?
我正在为我的项目使用 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
并手动将每个标志值字符串化。
FLAGS.flags_into_string()
应该 return 一个可以放在标志文件中的字符串。或者 FLAGS.append_flags_into_file('path/to/flagfile.txt')
将标志附加到该文件。
这对你有用吗?