@sh.add_function(dsp, inputs_kwargs=True, outputs=['data'])
def merge_data(
raw_data, cmd_flags=None, hard_validation=False, declaration_mode=False,
type_approval_mode=False, encryption_keys=None, sign_key=None,
enable_selector=False):
"""
Merge raw data with model flags.
:param raw_data:
Raw input data.
:type raw_data: dict
:param cmd_flags:
Command line options.
:type cmd_flags: dict
:param hard_validation:
Add extra data validations.
:type hard_validation: bool
:param declaration_mode:
Use only the declaration data.
:type declaration_mode: bool
:param type_approval_mode:
Is launched for TA?
:type type_approval_mode: bool
:param encryption_keys:
Encryption keys for TA mode.
:type encryption_keys: str
:param sign_key:
User signature key for TA mode.
:type sign_key: str
:param enable_selector:
Enable the selection of the best model to predict both H/L cycles.
:type enable_selector: bool
:return:
Merged raw data.
:rtype: dict
"""
flag = {k: v for k, v in dict(
hard_validation=hard_validation,
declaration_mode=declaration_mode,
type_approval_mode=type_approval_mode,
encryption_keys=encryption_keys,
sign_key=sign_key,
enable_selector=enable_selector
).items() if v is not None}
data = sh.combine_dicts(raw_data, flag)
data['flag'] = sh.combine_dicts(data.get('flag', {}), cmd_flags or {}, flag)
return data