У меня есть script, который имеет определенные параметры, которые могут быть переданы в командной строке или из переменных среды. CLI должен иметь приоритет, если они оба присутствуют, и возникает ошибка, если они не установлены.
Я могу проверить, что опция назначена после синтаксического анализа, но я предпочитаю, чтобы argparse выполнял тяжелую работу и отвечал за отображение инструкции использования, если синтаксический анализ завершился неудачей.
Я придумал пару альтернативных подходов к этому (которые я буду публиковать ниже в качестве ответов, чтобы их можно было обсудить отдельно), но они чувствуют себя довольно kludgey для меня, и я думаю, что я чего-то не хватает.
Есть ли принятый "лучший" способ сделать это?
(Изменить, чтобы очистить желаемое поведение, когда параметры CLI и переменная среды не установлены)