From 493dbdc6f71d850fee6ab749be831722069f35a6 Mon Sep 17 00:00:00 2001 From: Coline Piloquet <55250145+colinepiloquet@users.noreply.github.com> Date: Tue, 30 Jul 2024 14:30:35 +0200 Subject: [PATCH] Make pairing key of dangling lines updatable (#811) Signed-off-by: Coline PILOQUET --- .../com/powsybl/dataframe/network/NetworkDataframes.java | 2 +- pypowsybl/network/impl/network.py | 2 ++ tests/test_network.py | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/java/src/main/java/com/powsybl/dataframe/network/NetworkDataframes.java b/java/src/main/java/com/powsybl/dataframe/network/NetworkDataframes.java index 35d3777f6..7389f2e4f 100644 --- a/java/src/main/java/com/powsybl/dataframe/network/NetworkDataframes.java +++ b/java/src/main/java/com/powsybl/dataframe/network/NetworkDataframes.java @@ -603,7 +603,7 @@ static NetworkDataframeMapper danglingLines() { .strings("bus_breaker_bus_id", getBusBreakerViewBusId(), NetworkDataframes::setBusBreakerViewBusId, false) .ints("node", dl -> getNode(dl.getTerminal()), false) .booleans("connected", dl -> dl.getTerminal().isConnected(), connectInjection()) - .strings("pairing_key", dl -> Objects.toString(dl.getPairingKey(), "")) + .strings("pairing_key", dl -> Objects.toString(dl.getPairingKey(), ""), DanglingLine::setPairingKey) .strings("ucte_xnode_code", dl -> Objects.toString(dl.getPairingKey(), "")) .booleans("fictitious", Identifiable::isFictitious, Identifiable::setFictitious, false) .strings("tie_line_id", dl -> dl.getTieLine().map(Identifiable::getId).orElse("")) diff --git a/pypowsybl/network/impl/network.py b/pypowsybl/network/impl/network.py index f8a20914b..d5869e010 100644 --- a/pypowsybl/network/impl/network.py +++ b/pypowsybl/network/impl/network.py @@ -2584,6 +2584,8 @@ def update_dangling_lines(self, df: DataFrame = None, **kwargs: ArrayLike) -> No - `q` - `connected` - `fictitious` + - `pairing_key` + - `bus_breaker_bus_id` if the dangling line is in a voltage level with `BUS_BREAKER` topology See Also: :meth:`get_dangling_lines` diff --git a/tests/test_network.py b/tests/test_network.py index 1dba0a891..a829ef23c 100644 --- a/tests/test_network.py +++ b/tests/test_network.py @@ -2092,6 +2092,12 @@ def test_nad_parameters(): assert nad_parameters.radius_factor == 120.0 assert nad_parameters.edge_info_displayed == EdgeInfoType.CURRENT +def test_update_dangling_line(): + network = pp.network.create_eurostag_tutorial_example1_network() + network.create_dangling_lines(id='dangling_line', voltage_level_id='VLGEN', bus_id='NGEN', p0=100, q0=100, r=0, x=0, g=0, b=0) + network.update_dangling_lines(id=['dangling_line'], pairing_key=['XNODE']) + assert network.get_dangling_lines().loc['dangling_line'].pairing_key == 'XNODE' + if __name__ == '__main__': unittest.main()