in rostran/core/parameters.py [0:0]
def as_dict(self, format=False, metadata: MetaData = None) -> dict:
data = {}
keys = self.keys()
if format and metadata:
ros_interface = metadata.get(MetaData.ROS_INTERFACE)
if ros_interface:
param_groups = ros_interface.value.get(MetaItem.PARAMETER_GROUPS)
score = 0
key_scores = {}
if param_groups:
for param_group in param_groups:
parameters = param_group[MetaItem.PARAMETERS]
for parameter in parameters:
if isinstance(parameter, str):
key_scores[parameter] = score
score += 1
if key_scores:
keys = sorted_data(keys, scores=key_scores)
for key in keys:
param: Parameter = self[key]
data.update(param.as_dict(format))
return data