Skip to content

Commit 7fef7cf

Browse files
author
Nick Laurenson
committed
Fix get_dynamic_mapped_parameter for nested map keys
The old implementation only returned the key names without the parent struct path prefix. This caused generated code to reference non-existent members like 'updated_params.entries' instead of 'updated_params.nested.entries'. Changes: - Rename old get_dynamic_mapped_parameter to get_dynamic_mapped_parameter_names - Create new get_dynamic_mapped_parameter that builds full paths including parent struct prefixes (e.g., 'nested.entries' instead of just 'entries') - Update get_dynamic_parameter_map to use the renamed function
1 parent e3df370 commit 7fef7cf

1 file changed

Lines changed: 23 additions & 1 deletion

File tree

  • generate_parameter_library_py/generate_parameter_library_py

generate_parameter_library_py/generate_parameter_library_py/parse_yaml.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,28 @@ def get_dynamic_parameter_field(yaml_parameter_name: str):
106106

107107

108108
def get_dynamic_mapped_parameter(yaml_parameter_name: str):
109+
tmp = yaml_parameter_name.split('.')
110+
mapped_params = []
111+
current_prefix = []
112+
map_index = 1
113+
for val in tmp[:-1]:
114+
if is_mapped_parameter(val):
115+
# construct the current level of map parmeter
116+
key_name = val.replace('__map_', '')
117+
keys_path = '.'.join(current_prefix + [key_name])
118+
mapped_params.append(keys_path)
119+
120+
# construct the next level of prefix
121+
map_name = key_name + '_map'
122+
current_prefix.append(f"{map_name}[value_{map_index}]")
123+
map_index += 1
124+
else:
125+
current_prefix.append(val)
126+
127+
return mapped_params
128+
129+
130+
def get_dynamic_mapped_parameter_names(yaml_parameter_name: str):
109131
tmp = yaml_parameter_name.split('.')
110132
mapped_params = [
111133
val.replace('__map_', '') for val in tmp[:-1] if is_mapped_parameter(val)
@@ -129,7 +151,7 @@ def get_dynamic_parameter_name(yaml_parameter_name: str):
129151

130152

131153
def get_dynamic_parameter_map(yaml_parameter_name: str):
132-
mapped_params = get_dynamic_mapped_parameter(yaml_parameter_name)
154+
mapped_params = get_dynamic_mapped_parameter_names(yaml_parameter_name)
133155
parameter_map = [val + '_map' for val in mapped_params]
134156
parameter_map = '.'.join(parameter_map)
135157
return parameter_map

0 commit comments

Comments
 (0)