Python标准库有用于配置文件解析(configparser)、环境变量读取(os.environ)和命令行参数解析(argparse)的模块。我想编写一个程序,可以完成所有这些功能,并且还要:
具有级联选项值:
- 默认选项值,被覆盖为
- 配置文件选项,被覆盖为
- 环境变量,被覆盖为
- 命令行选项。
允许在命令行上指定一个或多个配置文件位置,例如
--config-file foo.conf
,并读取该文件(替代或附加到通常的配置文件)。这仍然必须遵循上述级联规则。允许在单个位置定义选项以确定配置文件和命令行的解析行为。
将解析的选项统一为单个选项值集合,供程序余下部分使用,而不必关心它们来自哪里。
显然,我需要的一切都在Python标准库中,但它们之间不能很好地协同工作。
如何在最小程度偏离Python标准库的情况下实现此目标?