Я работаю над серией инструментов командной строки, которые подключаются к одному и тому же серверу и выполняют связанные, но разные вещи. Я бы хотел, чтобы пользователи могли иметь единый файл конфигурации, в котором они могли бы размещать общие аргументы, такие как информация о соединении, которая может использоваться всеми инструментами. В идеале я хотел бы что-то, что делает для меня следующее:
- Если адрес сервера указан в командной строке, используйте это и игнорируйте любые другие значения
- Если адрес сервера не указан в командной строке, но находится в файле конфигурации, указанном в командной строке, используйте этот адрес. Игнорировать любые другие значения.
- Если адрес сервера не указан в командной строке или в файле конфигурации, указанном в команде, но доступен в файле конфигурации в домашнем каталоге пользователя (скажем, .myapprc ), используйте это значение.
- Если адрес сервера не указан ни в одном из вышеперечисленных механизмов, выйдите с сообщением об ошибке.
Наиболее близким к этому я видел модуль configparse , который, насколько я могу судить, предлагает парсер опций, который также просматривает файлы конфигурации, но, похоже, не имеет понятия " Должно быть указано где-то ", что мне нужно.
Кто-нибудь знает о существующем модуле, который может покрыть мой пример использования выше? Если нет, то было бы очень признательно за простое расширение для optparse, configparse или какого-либо другого модуля, который я не рассматривал.