in modular_cli/service/decorators.py [0:0]
def dynamic_dispatcher(func):
@wraps(func)
def wrapper(ctx, *args, **kwargs):
try:
if not ctx.args:
params = {HELP_COMMAND: True}
return func(**params)
view_type = CLI_VIEW
if ctx.params.get(TABLE_VIEW):
view_type = TABLE_VIEW
if ctx.params.get(JSON_VIEW):
view_type = JSON_VIEW
if ctx.args[0] in ['setup', 'login', 'cleanup', 'version',
'enable_autocomplete', 'disable_autocomplete']:
response = configuration_executor(
config_command=ctx.args[0],
config_command_help=ctx.params['help'],
config_params=ctx.args,
)
return response
params_indexes = [
ctx.args.index(arg) for arg in ctx.args if arg.startswith('-')
]
if params_indexes:
command_end_index, *_ = params_indexes
requested_command = ctx.args[:command_end_index]
parameters = ctx.args[command_end_index:]
response = func(help=kwargs.get('help'),
command=requested_command,
parameters=parameters,
view_type=view_type)
else:
requested_command = ctx.args
parameters = {}
response = func(help=kwargs.get('help'),
command=requested_command,
parameters=parameters,
view_type=view_type)
return response
except ModularCliBaseException as e:
response = CommandResponse(message=str(e), code=e.code)
return response
return wrapper