Если задача на каждый параметр вызывать функцию (чтобы не плодить if/else), то можно задействовать сабпарсеры
subp = aparser.add_subparsers()
subparser1 = subp.add_parser('g', help='Generation mode')
subparser1.set_defaults(func=generate)
в последнем вызове set_defaults(func=xxx) как раз задается функция для параметра.
Потом эта функция может быть вызвана так:
Ну, во первых, мне не кажется, что передавать необходимый объект параметром некрасиво (а для чего тогда параметры вообще?).
Если это, по какой-то причине, нежелательно, то можно воспользоваться тем, что все плагины "живут" в одном модуле, у которого есть __init__.py:
#some_plugin.py
from plugin import app
things = ThingsResource()
app.add_route('/things', things)
На мой вкус это не красивее параметра, передаваемого в плагин (и кода больше и логика запутаннее, а если у app появятся "братики и сестренки" то это быстро станет адом, __init__.py больше подходит для хранения общих для всех плагинов настроечных констант.
PS: чтобы работал импорт в some_plugin.py, возможно, придется поиграться с sys.path.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
subp = aparser.add_subparsers()
subparser1 = subp.add_parser('g', help='Generation mode')
subparser1.set_defaults(func=generate)
в последнем вызове set_defaults(func=xxx) как раз задается функция для параметра.
Потом эта функция может быть вызвана так:
args = aparser.parse_args()
args.func()