Parse config, окружение и аргументы командной строки, чтобы получить единый набор параметров

В стандартной библиотеке Python есть модули для разбора файла конфигурации ( configparser ), чтения переменных среды ( os.environ ) и синтаксический анализ аргументов командной строки ( argparse ). Я хочу написать программу, которая делает все это, а также:

  • Имеет каскад значений параметров :

    • значений параметров по умолчанию, переопределенных параметрами файла конфигурации
    • , переопределенными параметрами
    • переменные среды, переопределенные параметрами командной строки
    • .
  • Разрешает одно или несколько местоположений файлов конфигурации, указанных в командной строке , например, - файл конфигурации foo.conf , и читает его (вместо обычного файла конфигурации или в дополнение к нему). Это должно по-прежнему подчиняться приведенному выше каскаду.

  • Позволяет определениям параметров в одном месте определять поведение синтаксического анализа для файлов конфигурации и командной строки.

  • Объединяет проанализированные параметры в единую . набор значений параметров для доступа остальной части программы, не беспокоясь о том, откуда они пришли.

Все, что мне нужно, очевидно, находится в стандартной библиотеке Python, но они не работают вместе гладко.

Как могут Я достигаю этого с минимальным отклонением от стандартной библиотеки Python?

103
задан bignose 2 March 2016 в 23:35
поделиться