Я пишу основанную на плагинах программу для командной строки, где плагины будут предоставлять дополнительные функциональные возможности поверх того, что я предоставляю.
Например, предположим, я написал простой скрипт, который анализировал изображения и сохранял их, и это все, что я делаю. Затем кто-то другой может написать набор скриптов для управления изображением, поместив свои скрипты в плагин.
Плагин будет загружен, и пользователи смогут получить доступ к плагину, указав его имя в командной строке.
Сценарии нередко хотят предоставить дополнительные опции для пользователя.
Предположим, что за несколько лет было написано 20 различных плагинов.
Теперь все авторы хотят разрешить пользователям предоставлять параметры, поэтому основной движок должен взять параметры пользователя и передать их плагину, чтобы он мог обрабатывать их так, как ему хочется.
Чтобы сохранить его единообразным, они могут согласиться, что определенные опции должны выполнять аналогичную операцию. Как и «-o name», следует установить имя выхода в «name». Затем они пойдут на реализацию своих собственных опций и прочего, о чем не знает главный движок (конечно, он не должен знать, что делают плагины)
Я использую устаревший модуль getopt, и он будет выдавать исключения всякий раз, когда я указываю неопределенную опцию. Я слышал о optparse и argparse, но я не уверен, позволят ли они пользователю указывать какие-либо параметры, которые ему нужны, без исключения кода.
Как сделать так, чтобы я мог указать любой параметр командной строки?