33# SPDX-License-Identifier: MPL-2.0
44
55from importlib import metadata
6- from typing import Callable
6+ from typing import Callable , TypeAlias
77from unittest .mock import ANY , MagicMock , call , patch
88
99import numpy as np
10- import pandapower as pp
1110import pandas as pd
1211import pytest
1312from packaging import version
1413from power_grid_model import Branch3Side , BranchSide , LoadGenType , WindingType , initialize_array
1514
15+ pp = pytest .importorskip ("pandapower" , reason = "pandapower is not installed" )
16+ # we add this to enable python 3.13 testing even though pandapower 3.0 is not yet compatible with it
17+
1618from power_grid_model_io .converters .pandapower_converter import PandaPowerConverter
1719
1820from ...utils import MockDf , MockFn , assert_struct_array_equal
1921
22+ PandaPowerNet : TypeAlias = pp .pandapowerNet # type: ignore
23+
2024
2125def _generate_ids (* args , ** kwargs ):
2226 return MockFn ("_generate_ids" , * args , ** kwargs )
@@ -624,7 +628,7 @@ def test_create_pgm_input_sources(mock_init_array: MagicMock, two_pp_objs, conve
624628
625629@pytest .mark .parametrize ("kwargs" , [{"r0x0_max" : 0.5 , "rx_max" : 4 }, {"x0x_max" : 0.6 }])
626630def test_create_pgm_input_sources__zero_sequence (kwargs ) -> None :
627- pp_net : pp . pandapowerNet = pp .create_empty_network ()
631+ pp_net : PandaPowerNet = pp .create_empty_network ()
628632 pp .create_bus (net = pp_net , vn_kv = 1.0 )
629633 pp .create_ext_grid (pp_net , 0 , ** kwargs )
630634
@@ -723,7 +727,7 @@ def test_create_pgm_input_asym_loads(mock_init_array: MagicMock, two_pp_objs, co
723727
724728def test_create_pgm_input_sym_loads__delta () -> None :
725729 # Arrange
726- pp_net : pp . pandapowerNet = pp .create_empty_network ()
730+ pp_net : PandaPowerNet = pp .create_empty_network ()
727731 pp .create_bus (net = pp_net , vn_kv = 0.0 )
728732 pp .create_load (pp_net , 0 , 0 , type = "delta" )
729733
@@ -739,7 +743,7 @@ def test_create_pgm_input_sym_loads__delta() -> None:
739743
740744def test_create_pgm_input_asym_loads__delta () -> None :
741745 # Arrange
742- pp_net : pp . pandapowerNet = pp .create_empty_network ()
746+ pp_net : PandaPowerNet = pp .create_empty_network ()
743747 pp .create_bus (net = pp_net , vn_kv = 0.0 )
744748 pp .create_asymmetric_load (pp_net , 0 , type = "delta" )
745749
@@ -755,7 +759,7 @@ def test_create_pgm_input_asym_loads__delta() -> None:
755759
756760def test_create_pgm_input_transformers__tap_dependent_impedance () -> None :
757761 # Arrange
758- pp_net : pp . pandapowerNet = pp .create_empty_network ()
762+ pp_net : PandaPowerNet = pp .create_empty_network ()
759763 pp .create_bus (net = pp_net , vn_kv = 0.0 )
760764 args = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
761765
@@ -937,7 +941,7 @@ def test_create_pgm_input_transformers(mock_init_array: MagicMock, two_pp_objs,
937941)
938942def test_create_pgm_input_transformers__default () -> None :
939943 # Arrange
940- pp_net : pp . pandapowerNet = pp .create_empty_network ()
944+ pp_net : PandaPowerNet = pp .create_empty_network ()
941945 pp .create_bus (net = pp_net , vn_kv = 0.0 )
942946 args = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
943947 pp .create_transformer_from_parameters (
@@ -1066,7 +1070,7 @@ def test_create_pgm_input_sym_gens(mock_init_array: MagicMock, two_pp_objs, conv
10661070)
10671071def test_create_pgm_input_transformers__warnings (kwargs ) -> None :
10681072 # Arrange
1069- pp_net : pp . pandapowerNet = pp .create_empty_network ()
1073+ pp_net : PandaPowerNet = pp .create_empty_network ()
10701074 pp .create_bus (net = pp_net , vn_kv = 0.0 )
10711075 args = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
10721076 if "pfe_kw" in kwargs :
@@ -1291,7 +1295,7 @@ def test_create_pgm_input_three_winding_transformers(mock_init_array: MagicMock,
12911295)
12921296def test_create_pgm_input_transformers3w__default () -> None :
12931297 # Arrange
1294- pp_net : pp . pandapowerNet = pp .create_empty_network ()
1298+ pp_net : PandaPowerNet = pp .create_empty_network ()
12951299 pp .create_bus (net = pp_net , vn_kv = 0.0 )
12961300 args = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
12971301 pp .create_transformer3w_from_parameters (
@@ -1432,7 +1436,7 @@ def test_create_pgm_input_transformers3w__default() -> None:
14321436)
14331437def test_create_pgm_input_transformers3w__warnings (kwargs ) -> None :
14341438 # Arrange
1435- pp_net : pp . pandapowerNet = pp .create_empty_network ()
1439+ pp_net : PandaPowerNet = pp .create_empty_network ()
14361440 pp .create_bus (net = pp_net , vn_kv = 0.0 )
14371441 args = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
14381442 if "pfe_kw" in kwargs :
@@ -1451,7 +1455,7 @@ def test_create_pgm_input_transformers3w__warnings(kwargs) -> None:
14511455
14521456def test_create_pgm_input_three_winding_transformers__tap_at_star_point () -> None :
14531457 # Arrange
1454- pp_net : pp . pandapowerNet = pp .create_empty_network ()
1458+ pp_net : PandaPowerNet = pp .create_empty_network ()
14551459 pp .create_bus (net = pp_net , vn_kv = 0.0 )
14561460 args = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
14571461 pp .create_transformer3w_from_parameters (pp_net , * args , tap_at_star_point = True )
@@ -1466,7 +1470,7 @@ def test_create_pgm_input_three_winding_transformers__tap_at_star_point() -> Non
14661470
14671471def test_create_pgm_input_three_winding_transformers__tap_dependent_impedance () -> None :
14681472 # Arrange
1469- pp_net : pp . pandapowerNet = pp .create_empty_network ()
1473+ pp_net : PandaPowerNet = pp .create_empty_network ()
14701474 pp .create_bus (net = pp_net , vn_kv = 0.0 )
14711475 args = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
14721476
@@ -1590,7 +1594,7 @@ def test_create_pgm_input_wards__existing_loads() -> None:
15901594 converter = PandaPowerConverter ()
15911595 # Arrange
15921596
1593- pp_net : pp . pandapowerNet = pp .create_empty_network ()
1597+ pp_net : PandaPowerNet = pp .create_empty_network ()
15941598 pp .create_bus (net = pp_net , vn_kv = 0.0 )
15951599 pp .create_load (pp_net , 0 , 0 )
15961600 pp .create_ward (pp_net , 0 , 0 , 0 , 0 , 0 )
@@ -1692,7 +1696,7 @@ def test_create_pgm_input_motors__existing_loads() -> None:
16921696 converter = PandaPowerConverter ()
16931697 # Arrange
16941698
1695- pp_net : pp . pandapowerNet = pp .create_empty_network ()
1699+ pp_net : PandaPowerNet = pp .create_empty_network ()
16961700 pp .create_bus (net = pp_net , vn_kv = 0.0 )
16971701 pp .create_load (pp_net , 0 , 0 )
16981702 pp .create_motor (pp_net , 0 , 0 , 0 )
0 commit comments