Skip to content

Commit 57085e7

Browse files
committed
Fix error with serialization of unique_name dependency expressions
1 parent 696f7ee commit 57085e7

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/easyscience/variable/parameter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,7 @@ def as_dict(self, skip: Optional[List[str]] = None) -> Dict[str, Any]:
536536
# Add dependency information for dependent parameters
537537
if not self._independent:
538538
# Save the dependency expression
539-
raw_dict['_dependency_string'] = self._dependency_string
539+
raw_dict['_dependency_string'] = self._clean_dependency_string
540540

541541
# Mark that this parameter is dependent
542542
raw_dict['_independent'] = self._independent

tests/unit_tests/variable/test_parameter_dependency_serialization.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,18 +147,21 @@ def test_unique_name_dependency_serialization(self, clear_global_map):
147147
a_serialized = a.as_dict()
148148
b_serialized = b.as_dict()
149149

150+
del a_serialized['unique_name'] # Remove unique_name to force new assignment on deserialization
151+
del b_serialized['unique_name']
152+
150153
# Should contain unique name mapping
151-
assert b_serialized['_dependency_string'] == '2 * "Parameter_0"'
154+
assert b_serialized['_dependency_string'] == '2 * __Parameter_0__'
152155
assert "__Parameter_0__" in b_serialized['_dependency_map_dependency_ids']
153156
assert b_serialized['_dependency_map_dependency_ids']["__Parameter_0__"] == a._DescriptorNumber__dependency_id
154157

155158
# Deserialize both and resolve
156159
global_object.map._clear()
160+
c = Parameter(name='c', value=0.0) # Dummy to occupy unique name, to force new unique_names
161+
157162
new_b = Parameter.from_dict(b_serialized)
158163
new_a = Parameter.from_dict(a_serialized)
159164
resolve_all_parameter_dependencies({"a": new_a, "b": new_b})
160-
161-
assert False # To remember that this needs to be fixed, currently falsely succeeds.
162165

163166
# Should work correctly
164167
assert new_b.independent is False

0 commit comments

Comments
 (0)