in source/idea/idea-sdk/src/ideasdk/user_input/framework.py [0:0]
def get_params(self, module: str = None, section: str = None, group: str = None, all_=True) -> List[SocaUserInputParamMetadata]:
self._check_initialized()
result = []
if Utils.is_empty(module) and all_:
for key in self._params:
result.append(self._params[key])
return result
module_info = self.get_module(module)
if module_info is None:
return result
if Utils.is_empty(module_info.sections):
return result
def merge(to: SocaUserInputParamMetadata, from_: SocaUserInputParamMetadata) -> SocaUserInputParamMetadata:
to_dict = to.copy(deep=True).dict(exclude_unset=True, exclude_none=True, exclude_defaults=True, by_alias=True)
from_dict = from_.dict(by_alias=True)
for key in from_dict:
value = from_dict[key]
if key not in to_dict:
to_dict[key] = value
return SocaUserInputParamMetadata(**to_dict)
for section_info in module_info.sections:
if Utils.is_not_empty(section) and section != section_info.name:
continue
if Utils.is_empty(group) or Utils.is_not_empty(group) and all_:
if Utils.is_not_empty(section_info.params):
for section_param in section_info.params:
param_info = self.get_param(section_param.name)
result.append(merge(section_param, param_info))
if all_ or Utils.is_not_empty(group):
if Utils.is_not_empty(section_info.groups):
for group_info in section_info.groups:
if Utils.is_not_empty(group) and group != group_info.name:
continue
if Utils.is_not_empty(group_info.params):
for group_param in group_info.params:
param_info = self.get_param(group_param.name)
result.append(merge(group_param, param_info))
return result