Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
55b0319
updated test test_asymmetric_load_elements.
lezneew Apr 17, 2026
b23ad50
updated test_pandera_asymmetric_sgen_elements. fixed nullable tests
lezneew Apr 17, 2026
3fda68a
updated test_pandera_bus and test_pandera_bus_dc with nullable case t…
lezneew Apr 27, 2026
35274a6
updated test_pandera_dcline_elements.py to test nullables.
lezneew Apr 27, 2026
d47f0e1
updated test_pandera_ext_grid_elements.py to test nullables.
lezneew Apr 27, 2026
c03c2b6
updated test_pandera_gen_elements.py to test nullables. Discovered ne…
lezneew May 6, 2026
eb1f57b
updated test_pandera_impedance_elements.py to test nullables.
lezneew May 6, 2026
47de4ca
fix
lezneew May 6, 2026
feea566
updated test_pandera_line_dc_elements.py to test nullable values
lezneew May 6, 2026
734c5ab
updated test_pandera_line_elements.py to test nullable values
lezneew May 7, 2026
a7efa5a
updated test_pandera_load_dc_elements.py to test nullable values
lezneew May 7, 2026
6c36bf9
updated test_pandera_load_elements.py to test nullable values
lezneew May 7, 2026
25944f7
updated test_pandera_motor_elements.py to test nullable values
lezneew May 11, 2026
6d3e619
updated test_pandera_sgen_elements.py to test nullable values
lezneew May 11, 2026
5d89670
updated test_pandera_source_dc_elements.py to test nullable values
lezneew May 13, 2026
1589b6e
updated test_pandera_source_dc_elements.py to test nullable values
lezneew May 13, 2026
3d287d7
updated test_pandera_ssc_elements.py to test nullable values
lezneew May 13, 2026
61dc83a
updated test_pandera_switch_elements.py to test nullable values
lezneew May 19, 2026
e6709ed
updated test_pandera_svc_elements.py to test nullable values
lezneew May 19, 2026
468d0ae
updated test_pandera_tcsc_elements.py to test nullable values
lezneew May 19, 2026
f2331a1
fixed bus index validation causing weird bugs
lezneew May 19, 2026
1296dc5
updated test_pandera_trafo_elements.py to test nullable values. bette…
lezneew May 27, 2026
8b21505
updated test_pandera_storage_elements.py to test nullable values.
lezneew May 27, 2026
afa3bb1
added TODO, removed qcc check
lezneew May 27, 2026
3af875e
removed type constraint from schema
lezneew May 27, 2026
16b60f7
removed opf check
lezneew May 27, 2026
abcdbb2
removed sc and 3ph checks due to problems with test nets
lezneew May 27, 2026
4d55314
Merge branch 'release/v4.0.0' into structure_dict_extension
lezneew Jun 10, 2026
4959b9f
updated test_pandera_trafo3w_elements.py to test nullable values.
lezneew Jun 10, 2026
9ff001a
updated test_pandera_vsc_bipolar_elements.py to test nullable values.
lezneew Jun 10, 2026
8adf35e
updated test_pandera_vsc_elements.py to test nullable values.
lezneew Jun 10, 2026
9a04a3d
updated test_pandera_ward_elements.py to test nullable values.
lezneew Jun 10, 2026
9247de1
updated test_pandera_xward_elements.py to test nullable values.
lezneew Jun 10, 2026
282dac7
fixed many a warning (#3032)
KS-HTK Jun 16, 2026
5e7b61c
save_std_types.py as sphinx ext (#3034)
KS-HTK Jun 17, 2026
5893928
-updated foreign key tests
lezneew Jun 17, 2026
a3f0ff8
merged develop into feature/v4.0.0 (#3041)
KS-HTK Jun 25, 2026
344ba5b
Feature/merge dev to 4 (#3054)
KS-HTK Jul 6, 2026
f2fe5e8
-max_vm_pu now has to be lower 2
lezneew Jul 23, 2026
ad1087e
updated test test_asymmetric_load_elements.
lezneew Apr 17, 2026
22017dd
updated test_pandera_asymmetric_sgen_elements. fixed nullable tests
lezneew Apr 17, 2026
368d684
updated test_pandera_bus and test_pandera_bus_dc with nullable case t…
lezneew Apr 27, 2026
6963d49
updated test_pandera_dcline_elements.py to test nullables.
lezneew Apr 27, 2026
ede0f11
updated test_pandera_ext_grid_elements.py to test nullables.
lezneew Apr 27, 2026
0b32d19
updated test_pandera_gen_elements.py to test nullables. Discovered ne…
lezneew May 6, 2026
faf0e65
updated test_pandera_impedance_elements.py to test nullables.
lezneew May 6, 2026
370abe2
fix
lezneew May 6, 2026
e2d326f
updated test_pandera_line_dc_elements.py to test nullable values
lezneew May 6, 2026
3e185e0
updated test_pandera_line_elements.py to test nullable values
lezneew May 7, 2026
d78ee89
updated test_pandera_load_dc_elements.py to test nullable values
lezneew May 7, 2026
481f748
updated test_pandera_load_elements.py to test nullable values
lezneew May 7, 2026
9e65a4f
updated test_pandera_motor_elements.py to test nullable values
lezneew May 11, 2026
b23a68c
updated test_pandera_sgen_elements.py to test nullable values
lezneew May 11, 2026
bbabe43
updated test_pandera_source_dc_elements.py to test nullable values
lezneew May 13, 2026
6700121
updated test_pandera_source_dc_elements.py to test nullable values
lezneew May 13, 2026
709751d
updated test_pandera_ssc_elements.py to test nullable values
lezneew May 13, 2026
26e2efe
updated test_pandera_switch_elements.py to test nullable values
lezneew May 19, 2026
3288a3d
updated test_pandera_svc_elements.py to test nullable values
lezneew May 19, 2026
7b6e797
updated test_pandera_tcsc_elements.py to test nullable values
lezneew May 19, 2026
bf658b7
fixed bus index validation causing weird bugs
lezneew May 19, 2026
7276cb6
updated test_pandera_trafo_elements.py to test nullable values. bette…
lezneew May 27, 2026
a5f83b4
updated test_pandera_storage_elements.py to test nullable values.
lezneew May 27, 2026
3a3df6f
added TODO, removed qcc check
lezneew May 27, 2026
5c186fd
removed type constraint from schema
lezneew May 27, 2026
6ce02a5
removed opf check
lezneew May 27, 2026
2d4fe21
removed sc and 3ph checks due to problems with test nets
lezneew May 27, 2026
0a43c4a
updated test_pandera_trafo3w_elements.py to test nullable values.
lezneew Jun 10, 2026
9e9518d
updated test_pandera_vsc_bipolar_elements.py to test nullable values.
lezneew Jun 10, 2026
7a1ee53
updated test_pandera_vsc_elements.py to test nullable values.
lezneew Jun 10, 2026
f6582b0
updated test_pandera_ward_elements.py to test nullable values.
lezneew Jun 10, 2026
584f963
updated test_pandera_xward_elements.py to test nullable values.
lezneew Jun 10, 2026
6c4205c
-updated foreign key tests
lezneew Jun 17, 2026
72a4f30
-max_vm_pu now has to be lower 2
lezneew Jul 23, 2026
562087d
-rebased onto release 4.0, changed empty network initialization
lezneew Jul 23, 2026
a3abf9e
Merge remote-tracking branch 'pp_fork/structure_dict_extension' into …
lezneew Jul 23, 2026
e924e12
Merge develop to release/v4.0.0 (#3076)
KS-HTK Aug 6, 2026
71a2fc1
Merge develop to release/v4.0.0 (#3076) (#3060)
Ehsanpoly Aug 10, 2026
f673ec7
feature/add tag group function (#3092)
KS-HTK Aug 11, 2026
b0cb7b0
Feature/improved tag group validation (#3097)
KS-HTK Aug 13, 2026
c1376de
Feature/improved add tag group (#3098)
KS-HTK Aug 14, 2026
0e40f2d
Merged develop to release/v4.0.0 (#3107)
KS-HTK Aug 21, 2026
de1f76f
docs: add LV Schutterwald network (#3111) (#3113)
KS-HTK Aug 24, 2026
bc7c948
Cherry picks from develop for feature/v4.0.0 (#3115)
KS-HTK Aug 25, 2026
5577b2c
updated test test_asymmetric_load_elements.
lezneew Apr 17, 2026
d139d26
updated test_pandera_asymmetric_sgen_elements. fixed nullable tests
lezneew Apr 17, 2026
53959be
updated test_pandera_bus and test_pandera_bus_dc with nullable case t…
lezneew Apr 27, 2026
edf47f1
updated test_pandera_dcline_elements.py to test nullables.
lezneew Apr 27, 2026
82dbbf4
updated test_pandera_ext_grid_elements.py to test nullables.
lezneew Apr 27, 2026
95ffb09
updated test_pandera_gen_elements.py
lezneew May 6, 2026
b09c7f9
updated test_pandera_impedance_elements.py to test nullables.
lezneew May 6, 2026
bc52503
fix
lezneew May 6, 2026
174128a
updated test_pandera_line_dc_elements.py to test nullable values
lezneew May 6, 2026
f7b8073
updated test_pandera_line_elements.py to test nullable values
lezneew May 7, 2026
c636f3a
updated test_pandera_load_dc_elements.py to test nullable values
lezneew May 7, 2026
cad26f6
updated test_pandera_load_elements.py to test nullable values
lezneew May 7, 2026
c7841f8
updated test_pandera_motor_elements.py to test nullable values
lezneew May 11, 2026
4b13aa6
updated test_pandera_sgen_elements.py to test nullable values
lezneew May 11, 2026
898c9f7
updated test_pandera_source_dc_elements.py to test nullable values
lezneew May 13, 2026
b7eb4d7
updated test_pandera_source_dc_elements.py to test nullable values
lezneew May 13, 2026
5061da9
updated test_pandera_ssc_elements.py to test nullable values
lezneew May 13, 2026
f96f127
updated test_pandera_switch_elements.py to test nullable values
lezneew May 19, 2026
af4cc0f
updated test_pandera_svc_elements.py to test nullable values
lezneew May 19, 2026
f0ce338
updated test_pandera_tcsc_elements.py to test nullable values
lezneew May 19, 2026
a0421b0
fixed bus index validation causing weird bugs
lezneew May 19, 2026
b6e5f06
updated test_pandera_trafo_elements.py to test nullable values. bette…
lezneew May 27, 2026
22aad73
updated test_pandera_storage_elements.py to test nullable values.
lezneew May 27, 2026
10e90ef
added TODO, removed qcc check
lezneew May 27, 2026
fd0cfc3
removed type constraint from schema
lezneew May 27, 2026
9770827
removed sc and 3ph checks
lezneew May 27, 2026
624b83b
updated test_pandera_trafo3w_elements.py to test nullable values.
lezneew Jun 10, 2026
bee9eac
updated test_pandera_vsc_bipolar_elements.py to test nullable values.
lezneew Jun 10, 2026
e7ffa70
updated test_pandera_vsc_elements.py to test nullable values.
lezneew Jun 10, 2026
6a87be0
updated test_pandera_ward_elements.py to test nullable values.
lezneew Jun 10, 2026
c1d621b
updated test_pandera_xward_elements.py to test nullable values.
lezneew Jun 10, 2026
b07c764
-updated foreign key tests
lezneew Jun 17, 2026
5bc2b7c
-max_vm_pu now has to be lower 2
lezneew Jul 23, 2026
d6149cb
-rebased onto release 4.0, changed empty network initialization
lezneew Jul 23, 2026
c411c4b
updated test_pandera_asymmetric_sgen_elements
lezneew Apr 17, 2026
b63fd74
updated test_pandera_bus and test_pandera_bus_dc with nullable case t…
lezneew Apr 27, 2026
3b04fdb
updated test_pandera_dcline_elements.py to test nullables.
lezneew Apr 27, 2026
489c40c
updated test_pandera_gen_elements.py to test nullables. Discovered ne…
lezneew May 6, 2026
4fba76e
updated test_pandera_line_dc_elements.py to test nullable values
lezneew May 6, 2026
31bbca7
updated test_pandera_line_elements.py to test nullable values
lezneew May 7, 2026
8536e86
updated test_pandera_motor_elements.py to test nullable values
lezneew May 11, 2026
7519250
updated test_pandera_source_dc_elements.py to test nullable values
lezneew May 13, 2026
f2071a9
updated test_pandera_switch_elements.py to test nullable values
lezneew May 19, 2026
464d7ac
updated test_pandera_tcsc_elements.py to test nullable values
lezneew May 19, 2026
887186b
updated test_pandera_storage_elements.py to test nullable values.
lezneew May 27, 2026
1de320c
updated test_pandera_trafo3w_elements.py to test nullable values.
lezneew Jun 10, 2026
d4d7286
-updated foreign key tests
lezneew Jun 17, 2026
11c6814
-added tests for Group dependency, Cross-field constraint, Boundary v…
lezneew Jul 23, 2026
9589741
-added bus tests for Group dependency, but create_bus function genera…
lezneew Jul 23, 2026
69f961f
Merge remote-tracking branch 'pp_fork/structure_dict_extension' into …
lezneew Aug 25, 2026
4372b16
-added test_pandera_group_dependency instead of handeling dependencie…
lezneew Sep 1, 2026
ccf6c2d
ssc: reactance should be positive not negative. updated schema and te…
lezneew Sep 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/01-bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ body:
- type: checkboxes
id: checks
attributes:
label: Bug report checklis
label: Bug report checklist
options:
- label: >
Searched the [issues page](https://github.com/e2nIEE/pandapower/issues) for similar reports
Expand Down Expand Up @@ -48,9 +48,9 @@ body:
Please follow [this guide](https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) on how to
provide a minimal, copy-pastable example.
placeholder: >
from pandapower.create import create_empty_network
from pandapower.network import pandapowerNet

net = create_empty_network()
net = pandapowerNet(name="Bug Report")

...
render: python
Expand Down
42 changes: 23 additions & 19 deletions .github/workflows/github_test_action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
timeout-minutes: 20
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
python-version: [ '3.11', '3.12', '3.13', '3.14' ]
# Reminder: when removing the support of an old python version here, then don't forget to
# remove it also in pyproject.toml 'requires-python' and the release pipelines
group: [ 1, 2 ]
Expand All @@ -41,13 +41,13 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
if: ${{ (matrix.python-version != '3.10') && (matrix.python-version != '3.11') }}
if: ${{matrix.python-version != '3.11'}}
run: |
uv sync --extra all --extra test --extra pandamodels --extra pgm
uv pip install pytest-split
uv pip uninstall juliacall
- name: Install dependencies
if: ${{ (matrix.python-version == '3.10') || (matrix.python-version == '3.11') }}
- name: Install dependencies # Test without pgm
if: ${{matrix.python-version == '3.11'}}
run: |
uv sync --extra all --extra test --extra pandamodels
uv pip install pytest-split
Expand Down Expand Up @@ -78,7 +78,7 @@ jobs:
timeout-minutes: 30
strategy:
matrix:
#python-version: ['3.10', '3.14']
#python-version: ['3.11', '3.14']
# Reminder: when removing the support of an old python version here, then don't forget to
# remove it also in pyproject.toml 'requires-python' and the release pipelines
group: [ 1, 2, 3, 4 ]
Expand Down Expand Up @@ -241,7 +241,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
python-version: [ '3.11', '3.12', '3.13', '3.14' ]
steps:
- uses: actions/checkout@v6
- name: Install uv
Expand All @@ -251,11 +251,10 @@ jobs:
- name: Install dependencies
run: |
uv sync --extra test
uv pip install setuptools
if [ -f requirements.txt ]; then uv pip install -r requirements.txt; fi
uv pip install setuptools
uv pip install matplotlib
uv pip install lxml
if ${{ matrix.python-version != '3.10' }}; then uv pip install numba; fi
if ${{ matrix.python-version != '3.11' }}; then uv pip install numba; fi
- name: Install pandapipes and simbench
run: |
uv pip install git+https://github.com/e2nIEE/pandapipes@develop#egg=pandapipes
Expand All @@ -278,7 +277,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ['3.10']
python-version: [ '3.11' ]
steps:
- uses: actions/checkout@v6
- name: Install uv
Expand Down Expand Up @@ -354,20 +353,25 @@ jobs:
- name: List of installed packages
run: |
uv pip list
- name: Create test_schema in sandbox database
- name: Test postgresql available
# Test that will fail the pipeline if the tests would be skipped. Prevents pipeline success if psycopg import fails
env:
PGPASSWORD: secret
DSN: 'postgresql://test_user:secret@localhost:55432/sandbox'
SCHEMA: 'test_schema'
run: |
psql -h localhost -U test_user -d sandbox -c "CREATE SCHEMA test_schema AUTHORIZATION test_user"
psql -h localhost -U test_user --list sandbox
uv run python -c "import sys; from pandapower.test.api.test_sql_io import POSTGRESQL_AVAILABLE; sys.exit(not POSTGRESQL_AVAILABLE);"
- name: Test pandapower File I/O
env:
DSN: 'postgresql://test_user:secret@localhost/sandbox'
SCHEMA: 'test_schema'
run: |
uv run python -c "import os; import json; from pandapower import pp_dir; conn_data={'host': 'localhost', 'user': 'test_user', 'database': 'sandbox', 'password': 'secret', 'schema': 'test_schema'}; fp = open(os.path.join(pp_dir, 'test', 'test_files', 'postgresql_connect_data.json'), 'w'); json.dump(conn_data, fp); fp.close()"
uv run python -c "from pandapower import pp_dir; import pytest; import sys; import os; ec = pytest.main([os.path.join(pp_dir,'test','api','test_sql_io.py')]); sys.exit(ec)"
uv run pytest pandapower/test/api/test_sql_io.py
- name: Test pandapower File I/O against alternative port
env:
DSN: 'postgresql://test_user:secret@localhost:55432/sandbox'
SCHEMA: 'test_schema'
run: |
uv run python -c "import os; import json; from pandapower import pp_dir; conn_data={'host': 'localhost', 'user': 'test_user', 'database': 'sandbox', 'password': 'secret', 'schema': 'test_schema', 'port': 55432}; fp = open(os.path.join(pp_dir, 'test', 'test_files', 'postgresql_connect_data.json'), 'w'); json.dump(conn_data, fp); fp.close()"
uv run python -c "from pandapower import pp_dir; import pytest; import sys; import os; ec = pytest.main([os.path.join(pp_dir,'test','api','test_sql_io.py')]); sys.exit(ec)"
uv run pytest pandapower/test/api/test_sql_io.py

tutorial_tests:
needs: build
Expand Down Expand Up @@ -417,7 +421,7 @@ jobs:
- name: Check sphinx build
uses: ammaraskar/sphinx-action@54e52bfb642e9b60ea5b6bcb05fe3f74b40d290a #8.2.3
with:
pre-build-command: "python -m pip install uv && uv pip install .[dev] --system --link-mode=copy"
pre-build-command: "python -m pip install uv && uv pip install .[docs] --system --link-mode=copy"
build-command: "sphinx-build -b html . _build -W"
docs-folder: "doc/"

Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/test_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
python-version: [ '3.11', '3.12', '3.13', '3.14' ]
os: [ ubuntu-latest, windows-latest ]
group: [ 1, 2, 3, 4 ]

Expand All @@ -41,16 +41,16 @@ jobs:
- name: Install specific dependencies (Windows)
if: matrix.os == 'windows-latest'
run: |
if ( '${{ matrix.python-version }}' -eq '3.10' ) { uv pip install pypower }
if ( '${{ matrix.python-version }}' -ne '3.10' ) { uv pip install numba }
if ( '${{ matrix.python-version }}' -eq '3.11' ) { uv pip install lightsim2grid }
if ( '${{ matrix.python-version }}' -eq '3.11' ) { uv pip install pypower }
if ( '${{ matrix.python-version }}' -ne '3.11' ) { uv pip install numba }
if ( '${{ matrix.python-version }}' -eq '3.12' ) { uv pip install lightsim2grid }

- name: Install specific dependencies (Ubuntu)
if: matrix.os == 'ubuntu-latest'
run: |
if ${{ matrix.python-version == '3.10' }}; then uv pip install pypower; fi
if ${{ matrix.python-version != '3.10' }}; then uv pip install numba; fi
if ${{ matrix.python-version == '3.11' }}; then uv pip install lightsim2grid; fi
if ${{ matrix.python-version == '3.11' }}; then uv pip install pypower; fi
if ${{ matrix.python-version != '3.11' }}; then uv pip install numba; fi
if ${{ matrix.python-version == '3.12' }}; then uv pip install lightsim2grid; fi

- name: List all installed packages
run: |
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/upload_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ jobs:
permissions:
id-token: write

environment:
name: pypi
url: https://pypi.org/p/pandapower/

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
Expand All @@ -38,7 +42,7 @@ jobs:
# Sets up python3
- uses: actions/setup-python@v6
with:
python-version: '3.10'
python-version: '3.11'

# Installs and upgrades pip, installs other dependencies and installs the package
- name: Install dependencies
Expand Down Expand Up @@ -70,8 +74,8 @@ jobs:
- name: Build and Upload to PyPI
if: ${{ inputs.upload_server == 'pypi' }}
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e #release/v1
with:
repository-url: https://upload.pypi.org/legacy/
#with:
# repository-url: https://upload.pypi.org/legacy/
#run: |
# python3 -m build
# python3 -m twine check dist/* --strict
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
*~
build/
.pytest_cache/
.mypy_cache/
dist/
.cache/
.idea
Expand All @@ -12,6 +13,7 @@ doc/api/
doc/.build/*
doc/_build/*
doc/elements/table_structures/
doc/std_types/tables/
*.ipynb_checkpoints
.cache
*__pycache__*
Expand All @@ -31,7 +33,7 @@ pandapower/timeseries/logs/*
/.vscode/
pandapower/test/opf/buffer_file.json
pandapower/test/buffer_file.json
/pandapower/test/test_files/postgresql_connect_data.json
sonar-project.properties
.scannerwork/
uv.lock
*.code-workspace
52 changes: 51 additions & 1 deletion CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,55 @@ Change Log
[upcoming 4.0.0] - 2026-..-..
-------------------------------
- [ADDED] pandera network validation
- [CHANGED] removed deprecated trafo support characteristics table (replaced by trafo_characteristc_table)
- [ADDED] create function for trafo characteristic entries
- [ADDED] converter for trafo characteristics
- [FIXED] create_gen and create_gens now use connected bus voltage limits as generator voltage-limit defaults.

[upcoming release] - 2026-..-..
-------------------------------
- [FIXED] speedup dump_to_geojson_node_branch
- [FIXED] added the LV Schutterwald network to the network documentation.
- [FIXED] restored ``OpenDSSDirect.py`` to the ``all``/``dev`` extras so the OpenDSS converter is exercised (and its coverage reported) in CI again; it was dropped in #3062 because installing it alongside ``pytest~=9.1`` crashed the pytest process on Windows. Root cause (see `dss-extensions/OpenDSSDirect.py#148 <https://github.com/dss-extensions/OpenDSSDirect.py/issues/148>`_): pytest enables Python's ``faulthandler`` by default, which intercepts a first-chance Windows structured exception that OpenDSSDirect.py's native backend raises -- and normally handles itself -- during import, and misreports it as fatal. Bracketing the import with ``faulthandler.disable()``/``.enable()`` avoids the false crash while leaving ``faulthandler`` protecting the rest of the test run; the converter now runs on Windows instead of merely skipping there.
- [ADDED] OpenDSS converter: series (bus-to-bus) ``Reactor`` elements are now imported as a fixed-impedance ``line``, the pattern some feeder libraries (e.g. EPRI's Ckt5/Ckt7) use to model the substation's Thevenin-equivalent source impedance instead of a ``Transformer``.
- [FIXED] impedance element docs: the ``z_tf`` equation used ``rft_pu`` instead of ``rtf_pu``, and the ``gt_pu``/``bt_pu``/``gt0_pu``/``bt0_pu`` shunt parameters were described as being at the ``from_bus`` instead of the ``to_bus``.
- [FIXED] fixed tutorial for plotting with pyqt

[3.5.4] - 2026-07-08
-------------------------------
- [UPDATED] versions of dependent libraries
- [FIXED] improved from_json even further

[3.5.3] - 2026-07-07
-------------------------------
- [FIXED] moved a misleading logger.warning message

[3.5.2] - 2026-07-06
-------------------------------
- [REMOVED] direct dependency to helmpy, if you want to use it, you have to install it manually or uncomment the line in pyproject.toml. Otherwise pypi.org rejects the package.

[3.5.1] - 2026-07-06
-------------------------------
- [FIXED] upload pipeline

[3.5.0] - 2026-07-06
-------------------------------
- [ADDED] toolbox: :code:`compute_switch_flows` computes power flow through zero-impedance bus-bus switches via nodal balance
- [ADDED] Redispatch optimizer based on a custom formulation in pandamodels.jl, supports cost based and power based redispatch.
- [ADDED] OpenDSS converter: ``from_opendss`` imports an OpenDSS feeder into a balanced positive-sequence pandapower net (revisits #1442).
- [FIXED] OPF: fixed generalized cost Hessian evaluation in ``opf_costfcn``.
- [FIXED] kwargs handling in pandamodels functions
- [ADDED] added optional init_pq parameter to the PandaModels opf runpm wrappers for active/reactive power starts
- [ADDED] zigzag earthing transformer vector groups (`ZNyn`, `ZNd`, `ZNy`, `ZN`) in the zero-sequence short-circuit model. Per the YNzn zero-sequence model (IEC / transformer references), the zigzag winding completely decouples the primary and secondary zero sequences, presenting a low-impedance shunt-to-ground at its terminal: the HV-winding leakage portion (`si0_hv_partial`) in series with the neutral earthing impedance `3·(rn_ohm + j·xn_ohm)` at the star point. An earthed-wye secondary (`ZNyn`) gets its own decoupled zero-sequence path to ground (LV leakage portion + zero-sequence magnetising); a delta / unearthed secondary (`ZNd`/`ZNy`) has none. Enables single-phase earth-fault studies on delta-fed systems earthed via a zigzag transformer.
- [ADDED] `rn_ohm` (resistive neutral earthing impedance) for two-winding transformers; the neutral earthing impedance `(rn_ohm + j*xn_ohm)` is now applied as `3*Z_N` to the zero sequence of all earthed-star vector groups in the short-circuit calculation (previously `xn_ohm` was only considered for power station unit transformers, and only as a reactance). Enables modelling neutral earthing resistors (NER/NGR) for single-phase earth-fault studies.
- [FIXED] gen for 3ph load flow, so load flow is run without errors.
- [ADDED] hardening of from_json function with a white list
- [FIXED] (Log)SplineCharacteristic now have their own de-/serializer
- [ADDED] HELMpy as an additional solver
- [CHANGED] sql_io now requires single dsn string for database connection instead of separate host, user, etc. keywords.
- [FIXED] sql_io not working with version of psycopg installed
- [FIXED] cim2pp add GeographicalRegion from eqbd profile
- [FIXED] behavior of PowerFactory2pp-converter if coordinates are saved at cpSubstat.
- [CHANGED] differing behavior for :code:`in_service=False` depending on `voltage_depend_loads` has been fixed. Out of Service elements for res_bus now always contain `nan` as result.
- [FIXED] `DiscreteTapControl` to work with `negative tap_step_percent`.
- [CHANGED] updated the contributing file and documentation
Expand All @@ -17,17 +63,21 @@ Change Log
- [ADDED] check to check if vkr_percent values are reasonable (see issue #786).
- [FIXED] cim2pp shift_lv_degree was translated from wrong entry
- [FIXED] UnboundLocalError in _from_ppc_branch when creating impedance elements
- [FIXED] incompatible network versions (i.e. networks with newer format versions than the currently installed pandapower version) are identified in convert_format and raise an error
- [ADDED] LTDS support
- [FIXED] ucte2pp: voltage setpoints from gens connected to the same busbar are now averaged
- [FIXED] ucte2pp: small X values are clipped to 0.05 Ohm (according to UCTE-DEF) to increase convergence
- [FIXED] ucte2pp: symmetrical tap changers are now handled as symmetrical tap changers in pandapower (not ideal phase shifters)
- [FIXED] ucte2pp: prevent nan values for impedances and transformers for B/G/P_fe/i0
- [FIXED] cim2pp: CimConverter backwards-compatible (default value for cin_version)
- [FIXED] cim2pp: CimConverter backwards-compatible (default value for cim_version)
- [FIXED] jao converter: calculation of trafo parameters is based on primary side (hv) now
- [ADDED] toolbox: :code:`get_all_elements` returns all elements of a pp.pandapowerNet as a DataFrame
- [ADDED] plotting: highlighting feature and hovering functionality to :code:`simple_plot()`
- [FIXED] pf2pp: :code:`app.GetActiveScenario().loc_name` can be :code:`None`
- [FIXED] pf2pp: static generator without a bus does not cause import errors (it is ignored)
- [ADDED] plotting: added a toggleable colormap feature to :code:`simple_plot`
- [ADDED] introducing pypowsybl to pandapower converter
- [ADDED] cim2pp: mapping SV data to the assets with flag use_sv_data_for_assets=True

[3.4.0] - 2026-02-09
-------------------------------
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ tests for the toolbox functions. You then add a new test function to this file:
```python
def test_double_rated_power():
init_sn_mva = 100
net = create_empty_network(sn_mva=init_sn_mva)
net = pandapowerNet(name="test_double_rated_power", sn_mva=init_sn_mva)
assert net.sn_mva == init_sn_mva
double_rated_power(net)
assert net.sn_mva == init_sn_mva*2
Expand Down
8 changes: 4 additions & 4 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -87,17 +87,17 @@ pandapower's sibling project *pandapipes*. `pandapipes.org <https://www.pandapip
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
Operation at the Fraunhofer Institute for Energy Economics and Energy System Technology (IEE), Kassel.

.. image:: https://www.pandapower.org/images/contact/Logo_e2n.png
:target: https://www.uni-kassel.de/eecs/en/sections/energiemanagement-und-betrieb-elektrischer-netze/home
.. image:: https://www.pandapower.org/images/contact/Logo_e2n_Originalfarben.svg
:target: https://www.uni-kassel.de/eecs/e2n/startseite.html
:width: 500

|

.. image:: https://www.pandapower.org/images/contact/Logo_Fraunhofer_IEE.png
.. image:: https://www.pandapower.org/images/contact/Logo_Fraunhofer_IEE.svg
:target: https://www.iee.fraunhofer.de/en.html
:width: 500

|

We welcome contributions to pandapower of any kind - if you want to contribute, please check out the
`contribution guidelines <https://github.com/e2nIEE/pandapower/blob/develop/CONTRIBUTING.rst>`__.
`contribution guidelines <https://github.com/e2nIEE/pandapower?tab=contributing-ov-file>`__.
File renamed without changes.
42 changes: 42 additions & 0 deletions doc/_exts/save_std_types.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
"""
Created on Fri Jul 1 13:40:07 2016

@author: thurner
"""
import os
import shutil

from pandapower.std_types import available_std_types
from pandapower.network import pandapowerNet
from pandapower.network_structure import get_structure_dict

file_path = os.path.dirname(os.path.realpath(__file__))


def save_std_types(_):
path = os.path.join(file_path, '..', 'std_types', 'tables')
if os.path.isdir(path):
shutil.rmtree(path)
os.makedirs(path)
print("Generating std_types csv files")

structure_dict = get_structure_dict(required_only=False)
net = pandapowerNet(name="save_pp_std_types")

for type_ in net.std_types.keys():
types = available_std_types(net, type_)
if type_ in structure_dict:
columns = [c for c in types.columns if structure_dict[type_]]
else:
columns = types.columns # fuse is not contained in structure dict
types = types.reindex(columns, axis=1)
types.to_csv(os.path.join(path, f"{type_}_std_types.csv"), sep=";")


def setup(app):
app.connect('builder-inited', save_std_types)
return {'version': '0.1'}


if __name__ == '__main__':
save_std_types(None)
6 changes: 3 additions & 3 deletions doc/conf.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-
#
# jsonpy documentation build configuration file, created by
# sphinx-quickstart on Fri May 03 17:30:42 2013.
#
Expand Down Expand Up @@ -37,7 +35,9 @@
'sphinx.ext.napoleon',
'sphinxcontrib.imagesvg',
'numpydoc',
'gen_csv',
# custom extensions:
'save_element_tables',
'save_std_types'
]
# sphinx.ext.mathjax and sphinx.ext.imgmath don't comply with each other any more.

Expand Down
1 change: 1 addition & 0 deletions doc/converter.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,5 @@ These tools are:
converter/cgmes
converter/ucte
converter/jao
converter/opendss

Loading
Loading