Skip to content

Commit c8d505d

Browse files
authored
Merge branch 'e2nIEE:structure_dict_extension' into structure_dict_extension
2 parents 1c45c28 + e3993c8 commit c8d505d

275 files changed

Lines changed: 42549 additions & 5682 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/github_test_action.yml

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
group: [ 1, 2 ]
3030
steps:
3131
# - uses: julia-actions/setup-julia # Update version when using this by adding commit sha!
32-
- uses: actions/checkout@v4
32+
- uses: actions/checkout@v6
3333
- name: Install uv
3434
uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a #v4.2.0
3535
with:
@@ -58,7 +58,7 @@ jobs:
5858
cp ./coverage.xml ./coverage-${{ matrix.group }}.xml
5959
- name: Upload coverage as artifact
6060
if: ${{ matrix.python-version == '3.10' }}
61-
uses: actions/upload-artifact@v4
61+
uses: actions/upload-artifact@v7
6262
with:
6363
name: coverage-${{ matrix.group }}
6464
path: ./coverage-${{ matrix.group }}.xml
@@ -70,7 +70,7 @@ jobs:
7070
matrix:
7171
group: [1, 2]
7272
steps:
73-
- uses: actions/checkout@v4
73+
- uses: actions/checkout@v6
7474
- name: Install uv
7575
uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a #v4.2.0
7676
with:
@@ -101,7 +101,7 @@ jobs:
101101
# remove it also in pyproject.toml 'requires-python'
102102
group: [ 1 ]
103103
steps:
104-
- uses: actions/checkout@v5
104+
- uses: actions/checkout@v6
105105
- uses: julia-actions/setup-julia@5c9647d97b78a5debe5164e9eec09d653d29bd71 #v2
106106
with:
107107
version: ${{ matrix.julia-version }}
@@ -141,9 +141,9 @@ jobs:
141141
needs: build
142142
steps:
143143
- name: Checkout
144-
uses: actions/checkout@v4
144+
uses: actions/checkout@v6
145145
- name: Download artifacts
146-
uses: actions/download-artifact@v4
146+
uses: actions/download-artifact@v8
147147
with:
148148
path: .
149149
pattern: coverage-*
@@ -177,7 +177,7 @@ jobs:
177177
python-version: ['3.14']
178178
group: [ 1, 2 ]
179179
steps:
180-
- uses: actions/checkout@v4
180+
- uses: actions/checkout@v6
181181
- name: Install uv
182182
uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a #v4.2.0
183183
with:
@@ -201,7 +201,7 @@ jobs:
201201
matrix:
202202
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
203203
steps:
204-
- uses: actions/checkout@v4
204+
- uses: actions/checkout@v6
205205
- name: Install uv
206206
uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a #v4.2.0
207207
with:
@@ -238,7 +238,7 @@ jobs:
238238
matrix:
239239
python-version: ['3.10']
240240
steps:
241-
- uses: actions/checkout@v4
241+
- uses: actions/checkout@v6
242242
- name: Install uv
243243
uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a #v4.2.0
244244
with:
@@ -301,7 +301,7 @@ jobs:
301301
echo "::error::psql version mismatch - server=$SERVER_MAJOR vs client=$CLIENT_MAJOR"
302302
exit 1
303303
fi
304-
- uses: actions/checkout@v4
304+
- uses: actions/checkout@v6
305305
- name: Install uv
306306
uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a #v4.2.0
307307
with:
@@ -330,9 +330,12 @@ jobs:
330330
tutorial_tests:
331331
needs: build
332332
runs-on: ubuntu-latest
333+
strategy:
334+
matrix:
335+
group: [ 1, 2, 3 ]
333336
steps:
334337
# UV does not work for julia, do not add it here!
335-
- uses: actions/checkout@v4
338+
- uses: actions/checkout@v6
336339
- name: Install dependencies
337340
run: |
338341
python -m pip install -e .[all,tutorials,test]
@@ -342,14 +345,14 @@ jobs:
342345
- name: Test with pytest
343346
# Careful when copying this command. The PYTHONPATH setup is Linux specific syntax.
344347
run: |
345-
pytest --nbmake --nbmake-timeout=900 --timeout=900 "./tutorials"
348+
pytest --splits 3 --group ${{ matrix.group }} --nbmake --nbmake-timeout=900 --timeout=900 "./tutorials"
346349
347350
tutorial_warnings_tests:
348351
needs: build
349352
runs-on: ubuntu-latest
350353
steps:
351354
# UV does not work for julia, do not add it here!
352-
- uses: actions/checkout@v4
355+
- uses: actions/checkout@v6
353356
- name: Install dependencies
354357
run: |
355358
python -m pip install -e .[all,tutorials,test]
@@ -365,7 +368,7 @@ jobs:
365368
name: Sphinx docs check
366369
runs-on: ubuntu-latest
367370
steps:
368-
- uses: actions/checkout@v4
371+
- uses: actions/checkout@v6
369372
- name: Check sphinx build
370373
uses: ammaraskar/sphinx-action@54e52bfb642e9b60ea5b6bcb05fe3f74b40d290a #8.2.3
371374
with:
@@ -382,7 +385,7 @@ jobs:
382385
# Reminder: when removing the support of an old python version here, then don't forget to
383386
# remove it also in pyproject.toml 'requires-python'
384387
steps:
385-
- uses: actions/checkout@v4
388+
- uses: actions/checkout@v6
386389
- name: Install uv
387390
uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a #v4.2.0
388391
with:

.github/workflows/test_release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323

2424
steps:
2525
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
26-
- uses: actions/checkout@v4
26+
- uses: actions/checkout@v6
2727

2828
- name: Install uv
2929
uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a #v4.2.0

.github/workflows/upload_release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ jobs:
2929
# Steps represent a sequence of tasks that will be executed as part of the job
3030
steps:
3131
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
32-
- uses: actions/checkout@v4
32+
- uses: actions/checkout@v6
3333

3434
# Sets up python3
35-
- uses: actions/setup-python@v5
35+
- uses: actions/setup-python@v6
3636
with:
3737
python-version: '3.10'
3838

CHANGELOG.rst

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,20 @@ Change Log
33

44
[upcoming release] - 2026-..-..
55
-------------------------------
6+
- [FIXED] runopp(init="results") now preserves the warm-start vector in the PIPS-backed AC OPF solver
7+
- [ADDED] added more functions to diagnostic
8+
- [ADDED] check to check if vkr_percent values are reasonable (see issue #786).
9+
- [FIXED] cim2pp shift_lv_degree was translated from wrong entry
10+
- [FIXED] UnboundLocalError in _from_ppc_branch when creating impedance elements
11+
- [ADDED] LTDS support
12+
- [FIXED] ucte2pp: voltage setpoints from gens connected to the same busbar are now averaged
13+
- [FIXED] ucte2pp: small X values are clipped to 0.05 Ohm (according to UCTE-DEF) to increase convergence
14+
- [FIXED] ucte2pp: symmetrical tap changers are now handled as symmetrical tap changers in pandapower (not ideal phase shifters)
15+
- [FIXED] ucte2pp: prevent nan values for impedances and transformers for B/G/P_fe/i0
16+
- [FIXED] cim2pp: CimConverter backwards-compatible (default value for cin_version)
17+
- [FIXED] jao converter: calculation of trafo parameters is based on primary side (hv) now
18+
- [ADDED] toolbox: :code:`get_all_elements` returns all elements of a pp.pandapowerNet as a DataFrame
19+
- [ADDED] highlighting feature and hovering functionality to :code:`simple_plot()`
620

721
[3.4.0] - 2026-02-09
822
-------------------------------
@@ -17,6 +31,8 @@ Change Log
1731
- [ADDED] rundcpp: Added DC elements to DC powerflow
1832
- [ADDED] python: support for version 3.14 added to the test pipelines
1933
- [FIXED] renamed b2b_vsc to vsc_stacked
34+
- [ADDED] Station Controller support for power factor control and tangens control
35+
- [CHANGED] attribute voltage_ctrl in Station Controller to control_modus to select new control modi. Changed the type from boolean to enum class
2036

2137
[3.3.2] - 2026-01-13
2238
-------------------------------
@@ -796,7 +812,7 @@ Change Log
796812

797813
[1.6.0] - 2018-09-18
798814
----------------------
799-
- [CHANGED] Cost definition changed for optimal powerflow, see OPF documentation (http://pandapower.readthedocs.io/en/v1.6.0/powerflow/opf.html) and opf_changes-may18.ipynb
815+
- [CHANGED] Cost definition changed for optimal powerflow, see OPF documentation (https://pandapower.readthedocs.io/en/v1.6.0/powerflow/opf.html) and opf_changes-may18.ipynb
800816
- [ADDED] OPF data (controllable, max_loading, costs, min_p_kw, ...) in Power System Test Cases
801817
- [ADDED] case_ieee30, case5, case_illinois200
802818
- [FIXED] 1 additional Trafo in case39, vn_kv change in case118, sgen indices in polynomial_cost in case 1888rte, case2848rte

LICENSE

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
Copyright (c) 2016-2026 by University of Kassel and Fraunhofer Institute for Energy Economics
2-
and Energy System Technology (IEE) Kassel and individual contributors (see AUTHORS file for details).
3-
All rights reserved.
1+
BSD 3-Clause License
2+
3+
Copyright (c)
4+
2016-2026 University of Kassel
5+
2016-2026 Fraunhofer Institute for Energy Economics
6+
2016-2026 Energy System Technology (IEE) Kassel
7+
2016-2026 individual contributors (see AUTHORS file for details)
8+
All rights reserved.
49

510
Redistribution and use in source and binary forms, with or without modification, are permitted
611
provided that the following conditions are met:

README.rst

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
:alt: versions
1515

1616
.. image:: https://readthedocs.org/projects/pandapower/badge/
17-
:target: http://pandapower.readthedocs.io/
17+
:target: https://pandapower.readthedocs.io/
1818
:alt: docs
1919

2020
.. image:: https://codecov.io/github/e2nIEE/pandapower/coverage.svg?branch=master
@@ -42,10 +42,12 @@
4242

4343

4444
pandapower is an easy to use network calculation program aimed to automate the analysis and optimization of power
45-
systems. It uses the data analysis library `pandas <http://pandas.pydata.org>`_ and is compatible with the commonly
45+
systems. It uses the data analysis library `pandas <https://pandas.pydata.org>`_ and is compatible with the commonly
4646
used MATPOWER / PYPOWER case format. pandapower allows using different solvers including an improved Newton-Raphson
47-
power flow implementation, all `PYPOWER <https://pypi.python.org/pypi/PYPOWER>`_ solvers, the C++ library solvers for fast steady-state distribution power system analysis of `PowerGridModel <https://github.com/PowerGridModel/power-grid-model>`_, the Newton-Raphson power flow solvers in the C++ library `lightsim2grid <https://github.com/BDonnot/lightsim2grid/>`_, and the
48-
`PowerModels.jl <https://github.com/lanl-ansi/PowerModels.jl/>`_ library.
47+
power flow implementation, all `PYPOWER <https://pypi.python.org/pypi/PYPOWER>`_ solvers, the C++ library solvers for
48+
fast steady-state distribution power system analysis of `PowerGridModel <https://github.com/PowerGridModel/power-grid-model>`_,
49+
the Newton-Raphson power flow solvers in the C++ library `lightsim2grid <https://github.com/BDonnot/lightsim2grid/>`_,
50+
and the `PowerModels.jl <https://github.com/lanl-ansi/PowerModels.jl/>`_ library.
4951

5052
More information about pandapower can be found on `www.pandapower.org <https://www.pandapower.org/>`_:
5153

@@ -78,14 +80,15 @@ be used in pandapower, have a look at the *SimBench* `project website <https://w
7880
:alt: pandapipes_logo
7981

8082
If you want to model pipe networks (heat, gas or water) as well, we recommend
81-
pandapower's sibling project *pandapipes* (`website <https://www.pandapipes.org>`_, `GitHub repository <https://github.com/e2nIEE/pandapipes>`_).
83+
pandapower's sibling project *pandapipes*. `pandapipes.org <https://www.pandapipes.org>`__,
84+
`GitHub repository <https://github.com/e2nIEE/pandapipes>`__.
8285

8386
|
8487
8588
pandapower is a joint development of the research group of the Department for Sustainable Electrical Energy Systems (e2n), University of Kassel and the Department for Distribution System
8689
Operation at the Fraunhofer Institute for Energy Economics and Energy System Technology (IEE), Kassel.
8790

88-
.. image:: http://www.pandapower.org/images/contact/Logo_e2n.png
91+
.. image:: https://www.pandapower.org/images/contact/Logo_e2n.png
8992
:target: https://www.uni-kassel.de/eecs/en/sections/energiemanagement-und-betrieb-elektrischer-netze/home
9093
:width: 500
9194

@@ -97,4 +100,5 @@ Operation at the Fraunhofer Institute for Energy Economics and Energy System Tec
97100

98101
|
99102
100-
We welcome contributions to pandapower of any kind - if you want to contribute, please check out the `pandapower contribution guidelines <https://github.com/e2nIEE/pandapower/blob/develop/CONTRIBUTING.rst>`_.
103+
We welcome contributions to pandapower of any kind - if you want to contribute, please check out the
104+
`contribution guidelines <https://github.com/e2nIEE/pandapower/blob/develop/CONTRIBUTING.rst>`__.

doc/about.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
About pandapower
33
##########################
44

5-
pandapower combines the data analysis library `pandas <http://pandas.pydata.org>`_ and the power flow solver `PYPOWER <https:/pypi.python.org/pypi/PYPOWER>`_ to create an easy to use network calculation program
5+
pandapower combines the data analysis library `pandas <https://pandas.pydata.org>`_ and the power flow solver
6+
`PYPOWER <https://pypi.org/project/PYPOWER/>`_ to create an easy to use network calculation program
67
aimed at automation of analysis and optimization in power systems.
78

89
.. image:: /pics/pp.svg

doc/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
# If your documentation needs a minimal Sphinx version, state it here.
2525
#needs_sphinx = '1.0'
2626

27-
sys.path.append(os.path.abspath(".."))
27+
sys.path.insert(0, os.path.abspath(".."))
2828
sys.path.append(os.path.abspath(".\\_themes"))
2929
sys.path.append(os.path.abspath("..\\tests"))
3030
sys.path.append(os.path.abspath("..\\network_generator"))

doc/elements/motor_par.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ cos_phi *;float;:math:`0...1`;cosine phi at current operating point
66
cos_phi_n *;float;:math:`0...1`;cosine phi at rated power of the motor for short-circuit calculation
77
efficiency_percent *;float;:math:`0..100`; Efficiency in percent at current operating point[%]
88
efficiency_n_percent *;float;:math:`0..100`; Efficiency in percent at rated power for short-circuit calculation [%]
9-
loading_percent *;float;:math:`0..100`; Efficiency in percent at rated power for short-circuit calculation [%] [%]
9+
loading_percent *;float;:math:`0..100`; The mechanical loading in percentage of the rated mechanical power [%]
1010
scaling *;float;:math:`\geq 0`;scaling factor for active and reactive power
1111
lrc_pu *;float;:math:`\geq 0`; locked rotor current in relation to the rated motor current [pu]
1212
rx *;float;:math:`\geq 0`;R/X ratio of the motor for short-circuit calculation.

doc/index.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
pandapower
33
############################
44

5-
pandapower combines the data analysis library `pandas <http://pandas.pydata.org>`_ and the power flow solver `PYPOWER <https://pypi.python.org/pypi/PYPOWER>`_ to create an easy to use network calculation program
5+
pandapower combines the data analysis library `pandas <https://pandas.pydata.org>`_ and the power flow solver
6+
`PYPOWER <https://pypi.org/project/PYPOWER/>`_ to create an easy to use network calculation program
67
aimed at automation of analysis and optimization in power systems.
78

89
.. image:: /pics/pp.svg

0 commit comments

Comments
 (0)