Установка параметров из переменных окружения при использовании argparse

У меня есть сценарий, в котором есть определенные параметры, которые можно передать либо в командной строке, либо из переменных среды. CLI должен иметь приоритет, если присутствуют оба, и возникает ошибка, если ни один из них не установлен.

Я мог бы проверить, назначена ли опция после синтаксического анализа, но я предпочитаю, чтобы argparse выполнял тяжелую работу и отвечал за отображение оператора использования в случае сбоя синтаксического анализа.

Я придумал несколько альтернативных подходов к этому (которые я опубликую ниже в качестве ответов, чтобы их можно было обсудить отдельно), но они кажутся мне довольно неуклюжими, и я думаю, что я что-то упускаю.

Существует ли общепринятый «лучший» способ сделать это?

(Редактируйте, чтобы сделать желаемое поведение понятным, когда параметр CLI и переменная среды не установлены)

37
задан Russell Heilling 11 May 2012 в 12:40
поделиться