Skip to content

Commit

Permalink
add bus_legend and substation_description_displayed parameters
Browse files Browse the repository at this point in the history
Signed-off-by: Etienne LESOT <etienne.lesot@rte-france.com>
  • Loading branch information
EtienneLt committed Nov 23, 2023
1 parent 190574f commit 164c1cc
Show file tree
Hide file tree
Showing 9 changed files with 52 additions and 6 deletions.
4 changes: 3 additions & 1 deletion cpp/src/bindings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -480,7 +480,9 @@ PYBIND11_MODULE(_pypowsybl, m) {
.def_readwrite("current_value_precision", &pypowsybl::NadParameters::current_value_precision)
.def_readwrite("angle_value_precision", &pypowsybl::NadParameters::angle_value_precision)
.def_readwrite("voltage_value_precision", &pypowsybl::NadParameters::voltage_value_precision)
.def_readwrite("id_displayed", &pypowsybl::NadParameters::id_displayed);
.def_readwrite("id_displayed", &pypowsybl::NadParameters::id_displayed)
.def_readwrite("bus_legend", &pypowsybl::NadParameters::bus_legend)
.def_readwrite("substation_description_displayed", &pypowsybl::NadParameters::substation_description_displayed);

m.def("write_single_line_diagram_svg", &pypowsybl::writeSingleLineDiagramSvg, "Write single line diagram SVG",
py::arg("network"), py::arg("container_id"), py::arg("svg_file"), py::arg("metadata_file"), py::arg("sld_parameters"));
Expand Down
2 changes: 2 additions & 0 deletions cpp/src/pypowsybl-api.h
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,8 @@ typedef struct nad_parameters_struct {
int current_value_precision;
int angle_value_precision;
int voltage_value_precision;
unsigned char substation_description_displayed;
unsigned char bus_legend;
} nad_parameters;

typedef enum {
Expand Down
4 changes: 4 additions & 0 deletions cpp/src/pypowsybl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1257,6 +1257,8 @@ NadParameters::NadParameters(nad_parameters* src) {
current_value_precision = src->current_value_precision;
angle_value_precision = src->angle_value_precision;
voltage_value_precision = src->voltage_value_precision;
substation_description_displayed = src->substation_description_displayed;
bus_legend = src->bus_legend;
}

void SldParameters::sld_to_c_struct(sld_parameters& res) const {
Expand All @@ -1276,6 +1278,8 @@ void NadParameters::nad_to_c_struct(nad_parameters& res) const {
res.current_value_precision = current_value_precision;
res.angle_value_precision = angle_value_precision;
res.voltage_value_precision = voltage_value_precision;
res.substation_description_displayed = substation_description_displayed;
res.bus_legend = bus_legend;
}

std::shared_ptr<sld_parameters> SldParameters::to_c_struct() const {
Expand Down
2 changes: 2 additions & 0 deletions cpp/src/pypowsybl.h
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,8 @@ class NadParameters {
int current_value_precision;
int angle_value_precision;
int voltage_value_precision;
bool bus_legend;
bool substation_description_displayed;
};

char* copyStringToCharPtr(const std::string& str);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1042,6 +1042,18 @@ public interface NadParametersPointer extends PointerBase {

@CField("voltage_value_precision")
int getVoltageValuePrecision();

@CField("bus_legend")
void setBusLegend(boolean busLegend);

@CField("bus_legend")
boolean isBusLegend();

@CField("substation_description_displayed")
void setSubstationDescriptionDisplayed(boolean substationDescriptionDisplayed);

@CField("substation_description_displayed")
boolean isSubstationDescriptionDisplayed();
}

@CEnum("DynamicMappingType")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -894,7 +894,8 @@ public static void copyToCNadParameters(NadParameters parameters, NadParametersP
cParameters.setCurrentValuePrecision(parameters.getSvgParameters().getCurrentValuePrecision());
cParameters.setAngleValuePrecision(parameters.getSvgParameters().getAngleValuePrecision());
cParameters.setVoltageValuePrecision(parameters.getSvgParameters().getVoltageValuePrecision());

cParameters.setBusLegend(parameters.getSvgParameters().isBusLegend());
cParameters.setSubstationDescriptionDisplayed(parameters.getSvgParameters().isSubstationDescriptionDisplayed());
}

@CEntryPoint(name = "createNadParameters")
Expand Down Expand Up @@ -944,7 +945,9 @@ public static NadParameters convertNadParameters(NadParametersPointer nadParamet
.setCurrentValuePrecision(nadParametersPointer.getCurrentValuePrecision())
.setAngleValuePrecision(nadParametersPointer.getAngleValuePrecision())
.setVoltageValuePrecision(nadParametersPointer.getVoltageValuePrecision())
.setIdDisplayed(nadParametersPointer.isIdDisplayed());
.setIdDisplayed(nadParametersPointer.isIdDisplayed())
.setBusLegend(nadParametersPointer.isBusLegend())
.setSubstationDescriptionDisplayed(nadParametersPointer.isSubstationDescriptionDisplayed());
return nadParameters;
}

Expand Down
2 changes: 2 additions & 0 deletions pypowsybl/_pypowsybl.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,8 @@ class NadParameters:
angle_value_precision: int
current_value_precision: int
voltage_value_precision: int
substation_description_displayed: bool
bus_legend: bool
def __init__(self) -> None: ...

class LimitType:
Expand Down
17 changes: 16 additions & 1 deletion pypowsybl/network/impl/nad_parameters.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,17 @@ class NadParameters:

def __init__(self, edge_name_displayed: bool = False, id_displayed: bool = False,
edge_info_along_edge: bool = True, power_value_precision: int = 0, angle_value_precision: int = 1,
current_value_precision: int = 0, voltage_value_precision: int = 1):
current_value_precision: int = 0, voltage_value_precision: int = 1, bus_legend: bool = True,
substation_description_displayed: bool = False):
self._edge_name_displayed = edge_name_displayed
self._edge_info_along_edge = edge_info_along_edge
self._id_displayed = id_displayed
self._power_value_precision = power_value_precision
self._angle_value_precision = angle_value_precision
self._current_value_precision = current_value_precision
self._voltage_value_precision = voltage_value_precision
self._bus_legend = bus_legend
self._substation_description_displayed = substation_description_displayed

@property
def edge_name_displayed(self) -> bool:
Expand Down Expand Up @@ -56,6 +59,16 @@ def voltage_value_precision(self) -> int:
"""voltage_value_precision"""
return self._voltage_value_precision

@property
def bus_legend(self) -> int:
"""bus_legend"""
return self._bus_legend

@property
def substation_description_displayed(self) -> int:
"""substation_description_displayed"""
return self._substation_description_displayed

def _to_c_parameters(self) -> _pp.NadParameters:
c_parameters = _pp.NadParameters()
c_parameters.edge_name_displayed = self._edge_name_displayed
Expand All @@ -65,4 +78,6 @@ def _to_c_parameters(self) -> _pp.NadParameters:
c_parameters.angle_value_precision = self._angle_value_precision
c_parameters.current_value_precision = self._current_value_precision
c_parameters.voltage_value_precision = self._voltage_value_precision
c_parameters.bus_legend = self._bus_legend
c_parameters.substation_description_displayed = self._substation_description_displayed
return c_parameters
8 changes: 6 additions & 2 deletions tests/test_network.py
Original file line number Diff line number Diff line change
Expand Up @@ -856,7 +856,9 @@ def test_sld_nad():
power_value_precision=1,
angle_value_precision=0,
current_value_precision=1,
voltage_value_precision=0
voltage_value_precision=0,
bus_legend=False,
substation_description_displayed=True
))
assert re.search('.*<svg.*', sld.svg)
with tempfile.TemporaryDirectory() as tmp_dir_name:
Expand All @@ -874,7 +876,9 @@ def test_sld_nad():
power_value_precision=1,
angle_value_precision=0,
current_value_precision=1,
voltage_value_precision=0))
voltage_value_precision=0,
bus_legend=False,
substation_description_displayed=True))


def test_nad_displayed_voltage_levels():
Expand Down

0 comments on commit 164c1cc

Please sign in to comment.