in source/src/molecule-unfolding/lambda/TaskParametersLambda/app.py [0:0]
def validate_input(input_dict: dict):
log.info('validate_input')
log.info("input_dict: {input_dict}")
valid_keys = ['version', 'runMode', 'molFile', 'modelVersion', 'optParams',
'experimentName', 'modelParams', 'devicesArns', 'hpcResources', 'Comment']
valid_keys_str = "|".join(valid_keys)
errors = []
if '!' in json.dumps(input_dict):
errors.append("invalid char '!' in input")
try:
for k in input_dict.keys():
if k not in valid_keys:
errors.append(
f"invalid field: {k}, support fields: {valid_keys_str}")
if 'version' == k:
if input_dict['version'] not in ['1']:
errors.append(
f"invalid version, current only support value: '1' ")
if 'devicesArns' == k:
if not isinstance(input_dict[k], list):
errors.append(f"devicesArns must be an array")
for arn in list(input_dict[k]):
if arn not in default_devices_arns:
errors.append(f"unknown devices arn: {arn}")
if 'modelParams' == k:
validate_modelParams(input_dict, errors)
if 'hpcResources' == k:
validate_hpcResources(input_dict, errors)
if 'optParams' == k:
validate_optParams(input_dict, errors)
except Exception as e:
errors.append(repr(e))
log.info(errors)
return errors