Features
- Support for PowerFactory file import (329)
- Network area diagrams can now be created around a list of voltage levels, instead of just 1 (327)
**breaking change**: the argument is in consequence renamed from `voltage_level_id` to `voltage_level_ids`:
python
network.get_network_area_diagram(voltage_level_ids=['VL1', 'VL2'], depth=2)
- A per-unit view of the network is now available: `pypowsybl.perunit.per_unit_view(network)` (193)
- Network data
- The location regulated by the voltage control of generators is now available as `regulated_element_id` attribute (218)
For now, it is only supported in node breaker voltage levels.
- Network elements creation (259, 319)
- Dataframes elements selection (283, 311, 312)
**breaking change**: in order to get columns corresponding to properties in IIDM, you now need to use the argument `all_atributes=True`:
python
network.get_generators() Only gets default columns, which does not include IIDM properties
network.get_generators(all_attributes=True) Get all possible columns
- Missing lcc dataframe update (321)
- **breaking change:** for better consistency between dataframes, all attributes ending with `..._setpoint` have been renamed to `target_...`. For example `voltage_setpoint` becomes `target_v` (282)
- Update powsybl components (326):
- powsybl-core 4.7.0
- powsybl-sld 2.8.0
- powsybl-nad 0.3.0
- powsybl-open-loadflow 0.18.0
Bug fixes
- Security analysis is now correctly run on the current working variant of the network (314)
- Fix sensitivity replay mode (315)
Documentation
- Fix documentation (310, 309, 313)
- Add network area diagram to reference doc (324)
Technical improvements
- Python 3.10 build (275)
- Move native libs to pypowsyb package, remove source distribution (291)
- pypowsybl now provides python stubs for native module _pypowsybl, to allow static type checking (306)
- Shared libraries are not installed anymore in python root package, but in `pypowsybl` package (290)
- CI: using pytest to execute unit tests (295)
- CI: enforcing type annotations with mypy (307)
- Fix SLD unit test with Java 17 (322)
- ARM64 build support (323)
- Fix GraalVM reflection config (316)
- Linting (308)
- Fix code coverage generation for sonar (294, 297)
- Use official GraalVM GitHub action (292)
Breaking changes
- By default, not all columns of network dataframes are now returned by getters:
in particular, IIDM properties are now considered "non default columns", and you need to either ask for all attributes
or for the specific attributes you need:
python
network.get_generators() Only gets default columns, which does not include IIDM properties
network.get_generators(all_attributes=True) Get all possible columns
network.get_generators(attributes=['target_p', 'my_property']) Get only target_p and my_property columns
- for better consistency between dataframes, all dataframe columns ending with `..._setpoint` have been renamed to `target_...`. For example `voltage_setpoint` becomes `target_v`.
- Network area diagrams can now be created around a list of voltage levels, instead of just 1,
the argument is in consequence renamed from `voltage_level_id` to `voltage_level_ids`:
python
network.get_network_area_diagram(voltage_level_ids=['VL1', 'VL2'], depth=2)