Стандартная библиотека Python имеет модули для синтаксического анализа файла конфигурации (configparser), чтение переменных среды (os.environ) и анализ аргументов командной строки (argparse). Я хочу написать программу, которая делает все это, а также:
-
Имеет каскад значений параметров:
- значения по умолчанию, переопределенные
- параметры файла конфигурации, переопределенные
- переменные среды, переопределенные
- параметры командной строки.
-
Позволяет указать один или несколько местоположений конфигурационных файлов , указанных в командной строке, например.
--config-file foo.conf
и читает (либо вместо обычного файла конфигурации, либо в дополнение к нему). Это должно по-прежнему подчиняться вышеуказанному каскаду. -
Разрешает определения в одном месте для определения поведения синтаксического анализа для файлов конфигурации и командной строки.
-
Унифицирует разобранные параметры в единый набор значений параметров для остальной части программы, чтобы получить доступ, не заботясь о том, откуда они пришли.
Все, что мне нужно, очевидно, находится в стандартной библиотеке Python, но они не работают вместе плавно.
Как я могу достичь этого с минимальным отклонением от стандартной библиотеки Python?