clean up settings response to use CopyFrom to be better at repeated and nested fields

This commit is contained in:
Ian McEwen
2024-09-11 17:10:04 -07:00
parent 180ddbcd1a
commit cc2067b729

View File

@@ -98,6 +98,7 @@ class Node:
print("")
adminMessage = p["decoded"]["admin"]
if "getConfigResponse" in adminMessage:
oneof = "get_config_response"
resp = adminMessage["getConfigResponse"]
field = list(resp.keys())[0]
config_type = self.localConfig.DESCRIPTOR.fields_by_name.get(
@@ -106,6 +107,7 @@ class Node:
if config_type is not None:
config_values = getattr(self.localConfig, config_type.name)
elif "getModuleConfigResponse" in adminMessage:
oneof = "get_module_config_response"
resp = adminMessage["getModuleConfigResponse"]
field = list(resp.keys())[0]
config_type = self.moduleConfig.DESCRIPTOR.fields_by_name.get(
@@ -118,8 +120,8 @@ class Node:
)
return
if config_values is not None:
for key, value in resp[field].items():
setattr(config_values, camel_to_snake(key), value)
raw_config = getattr(getattr(adminMessage['raw'], oneof), field)
config_values.CopyFrom(raw_config)
print(f"{str(camel_to_snake(field))}:\n{str(config_values)}")
def requestConfig(self, configType):