Skip to content

Commit 0b90af2

Browse files
committed
rewrite to append method and add asserts to test
Signed-off-by: Thijs Baaijen <[email protected]>
1 parent 13fcb93 commit 0b90af2

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/power_grid_model_ds/_core/model/grids/base.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -441,20 +441,21 @@ def set_feeder_ids(self):
441441
set_feeder_ids(grid=self)
442442

443443
@classmethod
444-
def from_extended(cls, extended: "Grid", load_graphs: bool = True) -> "Grid":
444+
def from_extended(cls, extended: "Grid") -> "Grid":
445445
"""Create a grid from an extended Grid object."""
446446
new_grid = cls.empty()
447447

448+
# Add nodes first, so that branches can reference them
449+
new_grid.append(new_grid.node.__class__.from_extended(extended.node))
450+
448451
for field in dataclasses.fields(cls):
452+
if field.name == "node":
453+
continue # already added
449454
if issubclass(field.type, FancyArray):
450455
extended_array = getattr(extended, field.name)
451456
new_array = field.type.from_extended(extended_array)
452-
setattr(new_grid, field.name, new_array)
453-
454-
new_grid._id_counter = new_grid.max_id
457+
new_grid.append(new_array, check_max_id=False)
455458

456-
if load_graphs:
457-
new_grid.graphs = GraphContainer.from_arrays(new_grid)
458459
return new_grid
459460

460461

tests/unit/model/grids/test_grid_base.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ def test_from_extended_grid():
6262
assert grid.graphs.active_graph.nr_nodes == len(grid.node)
6363
assert grid.graphs.complete_graph.nr_nodes == len(grid.branches)
6464

65+
assert extended_grid.id_counter == grid.id_counter
66+
assert extended_grid.max_id == grid.max_id
67+
6568

6669
def test_grid_build(basic_grid: Grid):
6770
grid = basic_grid

0 commit comments

Comments
 (0)