in modular_cli/service/request_processor.py [0:0]
def process_input_parameters(token_meta, passed_parameters):
index = 0
processed_parameters = {}
for idx, param in enumerate(passed_parameters):
if idx < index:
continue
existed_param = [parameter for parameter in token_meta['parameters']
if f'-{parameter["alias"]}' == param or
f'--{parameter["name"]}' == param]
if not existed_param:
raise ModularCliBadRequestException(f"No such option: "
f"\'{param}\'")
existed_param = existed_param[0]
param_name = existed_param['name']
is_bool_param = existed_param['type'] == 'bool'
is_flag_param = existed_param.get('is_flag')
# process bool parameter type
if is_flag_param:
processed_parameters[param_name] = True
index += 1
elif is_bool_param:
try:
processed_parameters[param_name] = BOOL_PARAM_MAP.get(
passed_parameters[index + 1].lower()
)
index += 2
if not isinstance(processed_parameters[param_name], bool):
raise ModularCliBadRequestException(
f'Missed value for "{param}" parameter. '
f'Bool type expected'
)
except IndexError:
raise ModularCliBadRequestException(
f'Missed value for "{param}" parameter. '
f'Bool type expected'
)
elif param_name in processed_parameters:
# process multiple parameter type
existed_param_value = processed_parameters[param_name]
if existed_param_value and isinstance(existed_param_value, list):
processed_parameters[param_name].append(
passed_parameters[index + 1]
)
else:
processed_parameters[param_name] = [
existed_param_value,
passed_parameters[index + 1]
]
index += 2
else:
try:
processed_parameters[existed_param['name']] = passed_parameters[idx+1]
except IndexError:
raise ModularCliBadRequestException(
f'Missed value for "{param}" parameter'
)
index += 2
return processed_parameters