power-grid-model-io 1.3.22__tar.gz → 1.3.23__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of power-grid-model-io might be problematic. Click here for more details.

Files changed (151) hide show
  1. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/PKG-INFO +2 -1
  2. power_grid_model_io-1.3.23/PYPI_VERSION +1 -0
  3. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/pyproject.toml +1 -0
  4. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/converters/pandapower_converter.py +74 -37
  5. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io.egg-info/PKG-INFO +2 -1
  6. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io.egg-info/SOURCES.txt +13 -6
  7. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io.egg-info/requires.txt +1 -0
  8. power_grid_model_io-1.3.23/tests/data/pandapower/README.md +18 -0
  9. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/pandapower/pp_validation.py +122 -12
  10. power_grid_model_io-1.3.23/tests/data/pandapower/v3.2.0/pp_v2_net_3ph_output.json +3163 -0
  11. power_grid_model_io-1.3.23/tests/data/pandapower/v3.2.0/pp_v2_net_3ph_output_current_loading.json +3163 -0
  12. power_grid_model_io-1.3.23/tests/data/pandapower/v3.2.0/pp_v2_net_output.json +3156 -0
  13. power_grid_model_io-1.3.23/tests/data/vision/vision_validation.vnf.license +3 -0
  14. power_grid_model_io-1.3.23/tests/data/zip/foo-bar.zip.license +3 -0
  15. power_grid_model_io-1.3.23/tests/data/zip/foo.zip.license +3 -0
  16. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/converters/test_pandapower_converter_input.py +15 -4
  17. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/converters/test_pandapower_converter_output.py +15 -13
  18. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/validation/converters/test_pandapower_converter_output.py +75 -26
  19. power_grid_model_io-1.3.22/PYPI_VERSION +0 -1
  20. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/LICENSE +0 -0
  21. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/MANIFEST.in +0 -0
  22. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/README.md +0 -0
  23. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/VERSION +0 -0
  24. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/setup.cfg +0 -0
  25. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/setup.py +0 -0
  26. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/__init__.py +0 -0
  27. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/config/__init__.py +0 -0
  28. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/config/examples/__init__.py +0 -0
  29. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/config/examples/multipliers.yaml +0 -0
  30. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/config/excel/__init__.py +0 -0
  31. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/config/excel/vision_en.yaml +0 -0
  32. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/config/excel/vision_en_9_7.yaml +0 -0
  33. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/config/excel/vision_en_9_8.yaml +0 -0
  34. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/config/excel/vision_nl.yaml +0 -0
  35. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/converters/__init__.py +0 -0
  36. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/converters/base_converter.py +0 -0
  37. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/converters/pgm_json_converter.py +0 -0
  38. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/converters/tabular_converter.py +0 -0
  39. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/converters/vision_excel_converter.py +0 -0
  40. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/data_stores/__init__.py +0 -0
  41. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/data_stores/base_data_store.py +0 -0
  42. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/data_stores/csv_dir_store.py +0 -0
  43. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/data_stores/excel_file_store.py +0 -0
  44. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/data_stores/json_file_store.py +0 -0
  45. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/data_stores/vision_excel_file_store.py +0 -0
  46. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/data_types/__init__.py +0 -0
  47. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/data_types/_data_types.py +0 -0
  48. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/data_types/tabular_data.py +0 -0
  49. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/functions/__init__.py +0 -0
  50. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/functions/_functions.py +0 -0
  51. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/functions/filters.py +0 -0
  52. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/functions/phase_to_phase.py +0 -0
  53. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/mappings/__init__.py +0 -0
  54. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/mappings/field_mapping.py +0 -0
  55. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/mappings/multiplier_mapping.py +0 -0
  56. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/mappings/tabular_mapping.py +0 -0
  57. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/mappings/unit_mapping.py +0 -0
  58. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/mappings/value_mapping.py +0 -0
  59. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/py.typed +0 -0
  60. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/utils/__init__.py +0 -0
  61. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/utils/auto_id.py +0 -0
  62. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/utils/dict.py +0 -0
  63. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/utils/download.py +0 -0
  64. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/utils/excel_ambiguity_checker.py +0 -0
  65. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/utils/json.py +0 -0
  66. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/utils/modules.py +0 -0
  67. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/utils/parsing.py +0 -0
  68. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/utils/uuid_excel_cvtr.py +0 -0
  69. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io/utils/zip.py +0 -0
  70. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io.egg-info/dependency_links.txt +0 -0
  71. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/src/power_grid_model_io.egg-info/top_level.txt +0 -0
  72. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/__init__.py +0 -0
  73. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/conftest.py +0 -0
  74. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/config/dummy_mapping.yaml +0 -0
  75. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/config/mapping.yaml +0 -0
  76. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/pandapower/pgm_asym_output_data.json +0 -0
  77. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/pandapower/pgm_asym_output_data.json.license +0 -0
  78. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/pandapower/pgm_input_data.json +0 -0
  79. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/pandapower/pgm_input_data.json.license +0 -0
  80. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/pandapower/pgm_output_data.json +0 -0
  81. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/pandapower/pgm_output_data.json.license +0 -0
  82. {power_grid_model_io-1.3.22/tests/data/pandapower → power_grid_model_io-1.3.23/tests/data/pandapower/v3.1.2}/pp_v2_net_3ph_output.json +0 -0
  83. {power_grid_model_io-1.3.22/tests/data/pandapower → power_grid_model_io-1.3.23/tests/data/pandapower/v3.1.2}/pp_v2_net_3ph_output.json.license +0 -0
  84. {power_grid_model_io-1.3.22/tests/data/pandapower → power_grid_model_io-1.3.23/tests/data/pandapower/v3.1.2}/pp_v2_net_3ph_output_current_loading.json +0 -0
  85. {power_grid_model_io-1.3.22/tests/data/pandapower → power_grid_model_io-1.3.23/tests/data/pandapower/v3.1.2}/pp_v2_net_3ph_output_current_loading.json.license +0 -0
  86. {power_grid_model_io-1.3.22/tests/data/pandapower → power_grid_model_io-1.3.23/tests/data/pandapower/v3.1.2}/pp_v2_net_output.json +0 -0
  87. {power_grid_model_io-1.3.22/tests/data/pandapower → power_grid_model_io-1.3.23/tests/data/pandapower/v3.1.2}/pp_v2_net_output.json.license +0 -0
  88. /power_grid_model_io-1.3.22/tests/data/vision/excel_ambiguity_check_data.xlsx.license → /power_grid_model_io-1.3.23/tests/data/pandapower/v3.2.0/pp_v2_net_3ph_output.json.license +0 -0
  89. /power_grid_model_io-1.3.22/tests/data/vision/pgm_input_data_en.json.license → /power_grid_model_io-1.3.23/tests/data/pandapower/v3.2.0/pp_v2_net_3ph_output_current_loading.json.license +0 -0
  90. /power_grid_model_io-1.3.22/tests/data/vision/pgm_input_data_nl.json.license → /power_grid_model_io-1.3.23/tests/data/pandapower/v3.2.0/pp_v2_net_output.json.license +0 -0
  91. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/vision/excel_ambiguity_check_data.xlsx +0 -0
  92. /power_grid_model_io-1.3.22/tests/data/vision/vision_en.xlsx.license → /power_grid_model_io-1.3.23/tests/data/vision/excel_ambiguity_check_data.xlsx.license +0 -0
  93. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/vision/pgm_input_data_en.json +0 -0
  94. /power_grid_model_io-1.3.22/tests/data/vision/vision_en_9_7.xlsx.license → /power_grid_model_io-1.3.23/tests/data/vision/pgm_input_data_en.json.license +0 -0
  95. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/vision/pgm_input_data_nl.json +0 -0
  96. /power_grid_model_io-1.3.22/tests/data/vision/vision_nl.xlsx.license → /power_grid_model_io-1.3.23/tests/data/vision/pgm_input_data_nl.json.license +0 -0
  97. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/vision/vision_9_5_en.yaml +0 -0
  98. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/vision/vision_9_5_nl.yaml +0 -0
  99. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/vision/vision_en.xlsx +0 -0
  100. /power_grid_model_io-1.3.22/tests/data/vision/vision_validation.vnf.license → /power_grid_model_io-1.3.23/tests/data/vision/vision_en.xlsx.license +0 -0
  101. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/vision/vision_en_9_7.xlsx +0 -0
  102. /power_grid_model_io-1.3.22/tests/data/zip/foo-bar.zip.license → /power_grid_model_io-1.3.23/tests/data/vision/vision_en_9_7.xlsx.license +0 -0
  103. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/vision/vision_nl.xlsx +0 -0
  104. /power_grid_model_io-1.3.22/tests/data/zip/foo.zip.license → /power_grid_model_io-1.3.23/tests/data/vision/vision_nl.xlsx.license +0 -0
  105. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/vision/vision_validation.vnf +0 -0
  106. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/zip/foo-bar.zip +0 -0
  107. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/data/zip/foo.zip +0 -0
  108. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/test_utils.py +0 -0
  109. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/__init__.py +0 -0
  110. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/conftest.py +0 -0
  111. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/converters/__init__.py +0 -0
  112. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/converters/test_base_converter.py +0 -0
  113. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/converters/test_pgm_json_converter.py +0 -0
  114. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/converters/test_tabular_converter.py +0 -0
  115. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/converters/test_vision_excel_converter.py +0 -0
  116. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/data_stores/__init__.py +0 -0
  117. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/data_stores/test_base_data_store.py +0 -0
  118. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/data_stores/test_csv_dir_store.py +0 -0
  119. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/data_stores/test_excel_file_store.py +0 -0
  120. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/data_stores/test_json_file_store.py +0 -0
  121. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/data_stores/test_vision_excel_file_store.py +0 -0
  122. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/data_types/__init__.py +0 -0
  123. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/data_types/test_data_types.py +0 -0
  124. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/data_types/test_tabular_data.py +0 -0
  125. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/functions/__init__.py +0 -0
  126. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/functions/test_filters.py +0 -0
  127. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/functions/test_functions.py +0 -0
  128. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/functions/test_phase_to_phase.py +0 -0
  129. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/mappings/__init__.py +0 -0
  130. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/mappings/test_field_mapping.py +0 -0
  131. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/mappings/test_multiplier_mapping.py +0 -0
  132. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/mappings/test_tabular_mapping.py +0 -0
  133. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/mappings/test_unit_mapping.py +0 -0
  134. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/mappings/test_value_mapping.py +0 -0
  135. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/utils/__init__.py +0 -0
  136. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/utils/test_auto_id.py +0 -0
  137. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/utils/test_dict.py +0 -0
  138. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/utils/test_download.py +0 -0
  139. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/utils/test_json.py +0 -0
  140. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/utils/test_modules.py +0 -0
  141. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/utils/test_parsing.py +0 -0
  142. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/utils/test_uuid_excel_cvtr.py +0 -0
  143. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/unit/utils/test_zip.py +0 -0
  144. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/utils.py +0 -0
  145. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/validation/__init__.py +0 -0
  146. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/validation/conftest.py +0 -0
  147. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/validation/converters/__init__.py +0 -0
  148. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/validation/converters/test_pandapower_converter_input.py +0 -0
  149. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/validation/converters/test_vision_excel_converter.py +0 -0
  150. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/validation/test_test_utils.py +0 -0
  151. {power_grid_model_io-1.3.22 → power_grid_model_io-1.3.23}/tests/validation/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: power-grid-model-io
3
- Version: 1.3.22
3
+ Version: 1.3.23
4
4
  Summary: Power Grid Model Input/Output
5
5
  Author-email: Contributors to the Power Grid Model project <powergridmodel@lfenergy.org>
6
6
  License: MPL-2.0
@@ -36,6 +36,7 @@ Requires-Dist: pytest-cov; extra == "dev"
36
36
  Requires-Dist: ruff; extra == "dev"
37
37
  Requires-Dist: pydantic>2; extra == "dev"
38
38
  Requires-Dist: pandapower>2.11.1; extra == "dev"
39
+ Requires-Dist: lxml; extra == "dev"
39
40
  Provides-Extra: examples
40
41
  Requires-Dist: power-grid-model>1.9.80; extra == "examples"
41
42
  Requires-Dist: pandapower>2.11.1; extra == "examples"
@@ -0,0 +1 @@
1
+ 1.3.23
@@ -47,6 +47,7 @@ dev = [
47
47
  "ruff",
48
48
  "pydantic>2", # Used in unit tests
49
49
  "pandapower>2.11.1",
50
+ "lxml", # missing pandapower dependency
50
51
  ]
51
52
  examples = [
52
53
  "power-grid-model>1.9.80",
@@ -8,11 +8,13 @@ Panda Power Converter
8
8
 
9
9
  import logging
10
10
  from functools import lru_cache
11
+ from importlib.metadata import PackageNotFoundError, version
11
12
  from typing import Dict, List, MutableMapping, Optional, Tuple, Type
12
13
 
13
14
  import numpy as np
14
15
  import pandas as pd
15
16
  import structlog
17
+ from packaging.version import Version
16
18
  from power_grid_model import (
17
19
  Branch3Side,
18
20
  BranchSide,
@@ -34,6 +36,20 @@ PandaPowerData = MutableMapping[str, pd.DataFrame]
34
36
 
35
37
  logger = structlog.get_logger(__file__)
36
38
 
39
+ PP_COMPATIBILITY_VERSION_3_2_0 = Version("3.2.0")
40
+ try:
41
+ PP_CONVERSION_VERSION = Version(version("pandapower"))
42
+ except PackageNotFoundError:
43
+ PP_CONVERSION_VERSION = PP_COMPATIBILITY_VERSION_3_2_0 # assume latest compatible version by default
44
+
45
+
46
+ def get_loss_params_3ph():
47
+ if PP_CONVERSION_VERSION < PP_COMPATIBILITY_VERSION_3_2_0:
48
+ loss_params = ["p_a_l_mw", "q_a_l_mvar", "p_b_l_mw", "q_b_l_mvar", "p_c_l_mw", "q_c_l_mvar"]
49
+ else:
50
+ loss_params = ["pl_a_mw", "ql_a_mvar", "pl_b_mw", "ql_b_mvar", "pl_c_mw", "ql_c_mvar"]
51
+ return loss_params
52
+
37
53
 
38
54
  # pylint: disable=too-many-instance-attributes
39
55
  class PandaPowerConverter(BaseConverter[PandaPowerData]):
@@ -631,34 +647,53 @@ class PandaPowerConverter(BaseConverter[PandaPowerData]):
631
647
  data_type=DatasetType.input, component_type=ComponentType.sym_load, shape=3 * n_loads
632
648
  )
633
649
 
634
- const_i_multiplier = (
635
- self._get_pp_attr("load", "const_i_percent", expected_type="f8", default=0) * scaling * (1e-2 * 1e6)
636
- )
637
- const_z_multiplier = (
638
- self._get_pp_attr("load", "const_z_percent", expected_type="f8", default=0) * scaling * (1e-2 * 1e6)
639
- )
640
- const_p_multiplier = (1e6 - const_i_multiplier - const_z_multiplier) * scaling
650
+ if PP_CONVERSION_VERSION < PP_COMPATIBILITY_VERSION_3_2_0:
651
+ const_i_p_multiplier = (
652
+ self._get_pp_attr("load", "const_i_percent", expected_type="f8", default=0) * scaling * (1e-2 * 1e6)
653
+ )
654
+ const_z_p_multiplier = (
655
+ self._get_pp_attr("load", "const_z_percent", expected_type="f8", default=0) * scaling * (1e-2 * 1e6)
656
+ )
657
+ const_p_multiplier = (1e6 - const_i_p_multiplier - const_z_p_multiplier) * scaling
658
+ const_q_multiplier = const_p_multiplier
659
+ const_i_q_multiplier = const_i_p_multiplier
660
+ const_z_q_multiplier = const_z_p_multiplier
661
+ else:
662
+ const_i_p_multiplier = (
663
+ self._get_pp_attr("load", "const_i_p_percent", expected_type="f8", default=0) * scaling * (1e-2 * 1e6)
664
+ )
665
+ const_z_p_multiplier = (
666
+ self._get_pp_attr("load", "const_z_p_percent", expected_type="f8", default=0) * scaling * (1e-2 * 1e6)
667
+ )
668
+ const_p_multiplier = (1e6 - const_i_p_multiplier - const_z_p_multiplier) * scaling
669
+ const_i_q_multiplier = (
670
+ self._get_pp_attr("load", "const_i_q_percent", expected_type="f8", default=0) * scaling * (1e-2 * 1e6)
671
+ )
672
+ const_z_q_multiplier = (
673
+ self._get_pp_attr("load", "const_z_q_percent", expected_type="f8", default=0) * scaling * (1e-2 * 1e6)
674
+ )
675
+ const_q_multiplier = (1e6 - const_i_q_multiplier - const_z_q_multiplier) * scaling
641
676
 
642
677
  pgm_sym_loads["id"][:n_loads] = self._generate_ids("load", pp_loads.index, name="const_power")
643
678
  pgm_sym_loads["node"][:n_loads] = self._get_pgm_ids("bus", bus)
644
679
  pgm_sym_loads["status"][:n_loads] = in_service
645
680
  pgm_sym_loads["type"][:n_loads] = LoadGenType.const_power
646
681
  pgm_sym_loads["p_specified"][:n_loads] = const_p_multiplier * p_mw
647
- pgm_sym_loads["q_specified"][:n_loads] = const_p_multiplier * q_mvar
682
+ pgm_sym_loads["q_specified"][:n_loads] = const_q_multiplier * q_mvar
648
683
 
649
684
  pgm_sym_loads["id"][n_loads : 2 * n_loads] = self._generate_ids("load", pp_loads.index, name="const_impedance")
650
685
  pgm_sym_loads["node"][n_loads : 2 * n_loads] = self._get_pgm_ids("bus", bus)
651
686
  pgm_sym_loads["status"][n_loads : 2 * n_loads] = in_service
652
687
  pgm_sym_loads["type"][n_loads : 2 * n_loads] = LoadGenType.const_impedance
653
- pgm_sym_loads["p_specified"][n_loads : 2 * n_loads] = const_z_multiplier * p_mw
654
- pgm_sym_loads["q_specified"][n_loads : 2 * n_loads] = const_z_multiplier * q_mvar
688
+ pgm_sym_loads["p_specified"][n_loads : 2 * n_loads] = const_z_p_multiplier * p_mw
689
+ pgm_sym_loads["q_specified"][n_loads : 2 * n_loads] = const_z_q_multiplier * q_mvar
655
690
 
656
691
  pgm_sym_loads["id"][-n_loads:] = self._generate_ids("load", pp_loads.index, name="const_current")
657
692
  pgm_sym_loads["node"][-n_loads:] = self._get_pgm_ids("bus", bus)
658
693
  pgm_sym_loads["status"][-n_loads:] = in_service
659
694
  pgm_sym_loads["type"][-n_loads:] = LoadGenType.const_current
660
- pgm_sym_loads["p_specified"][-n_loads:] = const_i_multiplier * p_mw
661
- pgm_sym_loads["q_specified"][-n_loads:] = const_i_multiplier * q_mvar
695
+ pgm_sym_loads["p_specified"][-n_loads:] = const_i_p_multiplier * p_mw
696
+ pgm_sym_loads["q_specified"][-n_loads:] = const_i_q_multiplier * q_mvar
662
697
 
663
698
  assert ComponentType.sym_load not in self.pgm_input_data
664
699
  self.pgm_input_data[ComponentType.sym_load] = pgm_sym_loads
@@ -1846,6 +1881,7 @@ class PandaPowerConverter(BaseConverter[PandaPowerData]):
1846
1881
  i_from = (pgm_output_lines["p_from"] + 1j * pgm_output_lines["q_from"]) / u_complex.iloc[from_nodes, :]
1847
1882
  i_to = (pgm_output_lines["p_to"] + 1j * pgm_output_lines["q_to"]) / u_complex.iloc[to_nodes, :]
1848
1883
 
1884
+ loss_params = get_loss_params_3ph()
1849
1885
  pp_output_lines_3ph = pd.DataFrame(
1850
1886
  columns=[
1851
1887
  "p_a_from_mw",
@@ -1860,12 +1896,12 @@ class PandaPowerConverter(BaseConverter[PandaPowerData]):
1860
1896
  "q_b_to_mvar",
1861
1897
  "p_c_to_mw",
1862
1898
  "q_c_to_mvar",
1863
- "p_a_l_mw",
1864
- "q_a_l_mvar",
1865
- "p_b_l_mw",
1866
- "q_b_l_mvar",
1867
- "p_c_l_mw",
1868
- "q_c_l_mvar",
1899
+ loss_params[0],
1900
+ loss_params[1],
1901
+ loss_params[2],
1902
+ loss_params[3],
1903
+ loss_params[4],
1904
+ loss_params[5],
1869
1905
  "i_a_from_ka",
1870
1906
  "i_b_from_ka",
1871
1907
  "i_c_from_ka",
@@ -1898,12 +1934,12 @@ class PandaPowerConverter(BaseConverter[PandaPowerData]):
1898
1934
  pp_output_lines_3ph["q_b_to_mvar"] = pgm_output_lines["q_to"][:, 1] * 1e-6
1899
1935
  pp_output_lines_3ph["p_c_to_mw"] = pgm_output_lines["p_to"][:, 2] * 1e-6
1900
1936
  pp_output_lines_3ph["q_c_to_mvar"] = pgm_output_lines["q_to"][:, 2] * 1e-6
1901
- pp_output_lines_3ph["p_a_l_mw"] = (pgm_output_lines["p_from"][:, 0] + pgm_output_lines["p_to"][:, 0]) * 1e-6
1902
- pp_output_lines_3ph["q_a_l_mvar"] = (pgm_output_lines["q_from"][:, 0] + pgm_output_lines["q_to"][:, 0]) * 1e-6
1903
- pp_output_lines_3ph["p_b_l_mw"] = (pgm_output_lines["p_from"][:, 1] + pgm_output_lines["p_to"][:, 1]) * 1e-6
1904
- pp_output_lines_3ph["q_b_l_mvar"] = (pgm_output_lines["q_from"][:, 1] + pgm_output_lines["q_to"][:, 1]) * 1e-6
1905
- pp_output_lines_3ph["p_c_l_mw"] = (pgm_output_lines["p_from"][:, 2] + pgm_output_lines["p_to"][:, 2]) * 1e-6
1906
- pp_output_lines_3ph["q_c_l_mvar"] = (pgm_output_lines["q_from"][:, 2] + pgm_output_lines["q_to"][:, 2]) * 1e-6
1937
+ pp_output_lines_3ph[loss_params[0]] = (pgm_output_lines["p_from"][:, 0] + pgm_output_lines["p_to"][:, 0]) * 1e-6
1938
+ pp_output_lines_3ph[loss_params[1]] = (pgm_output_lines["q_from"][:, 0] + pgm_output_lines["q_to"][:, 0]) * 1e-6
1939
+ pp_output_lines_3ph[loss_params[2]] = (pgm_output_lines["p_from"][:, 1] + pgm_output_lines["p_to"][:, 1]) * 1e-6
1940
+ pp_output_lines_3ph[loss_params[3]] = (pgm_output_lines["q_from"][:, 1] + pgm_output_lines["q_to"][:, 1]) * 1e-6
1941
+ pp_output_lines_3ph[loss_params[4]] = (pgm_output_lines["p_from"][:, 2] + pgm_output_lines["p_to"][:, 2]) * 1e-6
1942
+ pp_output_lines_3ph[loss_params[5]] = (pgm_output_lines["q_from"][:, 2] + pgm_output_lines["q_to"][:, 2]) * 1e-6
1907
1943
  pp_output_lines_3ph["i_a_from_ka"] = pgm_output_lines["i_from"][:, 0] * 1e-3
1908
1944
  pp_output_lines_3ph["i_b_from_ka"] = pgm_output_lines["i_from"][:, 1] * 1e-3
1909
1945
  pp_output_lines_3ph["i_c_from_ka"] = pgm_output_lines["i_from"][:, 2] * 1e-3
@@ -2026,6 +2062,7 @@ class PandaPowerConverter(BaseConverter[PandaPowerData]):
2026
2062
 
2027
2063
  loading = np.maximum(np.maximum(loading_a_percent, loading_b_percent), loading_c_percent)
2028
2064
 
2065
+ loss_params = get_loss_params_3ph()
2029
2066
  pp_output_trafos_3ph = pd.DataFrame(
2030
2067
  columns=[
2031
2068
  "p_a_hv_mw",
@@ -2040,12 +2077,12 @@ class PandaPowerConverter(BaseConverter[PandaPowerData]):
2040
2077
  "q_b_lv_mvar",
2041
2078
  "p_c_lv_mw",
2042
2079
  "q_c_lv_mvar",
2043
- "p_a_l_mw",
2044
- "q_a_l_mvar",
2045
- "p_b_l_mw",
2046
- "q_b_l_mvar",
2047
- "p_c_l_mw",
2048
- "q_c_l_mvar",
2080
+ loss_params[0],
2081
+ loss_params[1],
2082
+ loss_params[2],
2083
+ loss_params[3],
2084
+ loss_params[4],
2085
+ loss_params[5],
2049
2086
  "i_a_hv_ka",
2050
2087
  "i_a_lv_ka",
2051
2088
  "i_b_hv_ka",
@@ -2071,22 +2108,22 @@ class PandaPowerConverter(BaseConverter[PandaPowerData]):
2071
2108
  pp_output_trafos_3ph["q_b_lv_mvar"] = pgm_output_transformers["q_to"][:, 1] * 1e-6
2072
2109
  pp_output_trafos_3ph["p_c_lv_mw"] = pgm_output_transformers["p_to"][:, 2] * 1e-6
2073
2110
  pp_output_trafos_3ph["q_c_lv_mvar"] = pgm_output_transformers["q_to"][:, 2] * 1e-6
2074
- pp_output_trafos_3ph["p_a_l_mw"] = (
2111
+ pp_output_trafos_3ph[loss_params[0]] = (
2075
2112
  pgm_output_transformers["p_from"][:, 0] + pgm_output_transformers["p_to"][:, 0]
2076
2113
  ) * 1e-6
2077
- pp_output_trafos_3ph["q_a_l_mvar"] = (
2114
+ pp_output_trafos_3ph[loss_params[1]] = (
2078
2115
  pgm_output_transformers["q_from"][:, 0] + pgm_output_transformers["q_to"][:, 0]
2079
2116
  ) * 1e-6
2080
- pp_output_trafos_3ph["p_b_l_mw"] = (
2117
+ pp_output_trafos_3ph[loss_params[2]] = (
2081
2118
  pgm_output_transformers["p_from"][:, 1] + pgm_output_transformers["p_to"][:, 1]
2082
2119
  ) * 1e-6
2083
- pp_output_trafos_3ph["q_b_l_mvar"] = (
2120
+ pp_output_trafos_3ph[loss_params[3]] = (
2084
2121
  pgm_output_transformers["q_from"][:, 1] + pgm_output_transformers["q_to"][:, 1]
2085
2122
  ) * 1e-6
2086
- pp_output_trafos_3ph["p_c_l_mw"] = (
2123
+ pp_output_trafos_3ph[loss_params[4]] = (
2087
2124
  pgm_output_transformers["p_from"][:, 2] + pgm_output_transformers["p_to"][:, 2]
2088
2125
  ) * 1e-6
2089
- pp_output_trafos_3ph["q_c_l_mvar"] = (
2126
+ pp_output_trafos_3ph[loss_params[5]] = (
2090
2127
  pgm_output_transformers["q_from"][:, 2] + pgm_output_transformers["q_to"][:, 2]
2091
2128
  ) * 1e-6
2092
2129
  pp_output_trafos_3ph["i_a_hv_ka"] = pgm_output_transformers["i_from"][:, 0] * 1e-3
@@ -2396,7 +2433,7 @@ class PandaPowerConverter(BaseConverter[PandaPowerData]):
2396
2433
  else:
2397
2434
  raise KeyError(f"Can't get switch states for {pp_table}")
2398
2435
 
2399
- component = self.pp_input_data[pp_table]
2436
+ component = self.pp_input_data[pp_table].copy()
2400
2437
  component["index"] = component.index
2401
2438
 
2402
2439
  # Select the appropriate switches and columns
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: power-grid-model-io
3
- Version: 1.3.22
3
+ Version: 1.3.23
4
4
  Summary: Power Grid Model Input/Output
5
5
  Author-email: Contributors to the Power Grid Model project <powergridmodel@lfenergy.org>
6
6
  License: MPL-2.0
@@ -36,6 +36,7 @@ Requires-Dist: pytest-cov; extra == "dev"
36
36
  Requires-Dist: ruff; extra == "dev"
37
37
  Requires-Dist: pydantic>2; extra == "dev"
38
38
  Requires-Dist: pandapower>2.11.1; extra == "dev"
39
+ Requires-Dist: lxml; extra == "dev"
39
40
  Provides-Extra: examples
40
41
  Requires-Dist: power-grid-model>1.9.80; extra == "examples"
41
42
  Requires-Dist: pandapower>2.11.1; extra == "examples"
@@ -61,19 +61,26 @@ tests/test_utils.py
61
61
  tests/utils.py
62
62
  tests/data/config/dummy_mapping.yaml
63
63
  tests/data/config/mapping.yaml
64
+ tests/data/pandapower/README.md
64
65
  tests/data/pandapower/pgm_asym_output_data.json
65
66
  tests/data/pandapower/pgm_asym_output_data.json.license
66
67
  tests/data/pandapower/pgm_input_data.json
67
68
  tests/data/pandapower/pgm_input_data.json.license
68
69
  tests/data/pandapower/pgm_output_data.json
69
70
  tests/data/pandapower/pgm_output_data.json.license
70
- tests/data/pandapower/pp_v2_net_3ph_output.json
71
- tests/data/pandapower/pp_v2_net_3ph_output.json.license
72
- tests/data/pandapower/pp_v2_net_3ph_output_current_loading.json
73
- tests/data/pandapower/pp_v2_net_3ph_output_current_loading.json.license
74
- tests/data/pandapower/pp_v2_net_output.json
75
- tests/data/pandapower/pp_v2_net_output.json.license
76
71
  tests/data/pandapower/pp_validation.py
72
+ tests/data/pandapower/v3.1.2/pp_v2_net_3ph_output.json
73
+ tests/data/pandapower/v3.1.2/pp_v2_net_3ph_output.json.license
74
+ tests/data/pandapower/v3.1.2/pp_v2_net_3ph_output_current_loading.json
75
+ tests/data/pandapower/v3.1.2/pp_v2_net_3ph_output_current_loading.json.license
76
+ tests/data/pandapower/v3.1.2/pp_v2_net_output.json
77
+ tests/data/pandapower/v3.1.2/pp_v2_net_output.json.license
78
+ tests/data/pandapower/v3.2.0/pp_v2_net_3ph_output.json
79
+ tests/data/pandapower/v3.2.0/pp_v2_net_3ph_output.json.license
80
+ tests/data/pandapower/v3.2.0/pp_v2_net_3ph_output_current_loading.json
81
+ tests/data/pandapower/v3.2.0/pp_v2_net_3ph_output_current_loading.json.license
82
+ tests/data/pandapower/v3.2.0/pp_v2_net_output.json
83
+ tests/data/pandapower/v3.2.0/pp_v2_net_output.json.license
77
84
  tests/data/vision/excel_ambiguity_check_data.xlsx
78
85
  tests/data/vision/excel_ambiguity_check_data.xlsx.license
79
86
  tests/data/vision/pgm_input_data_en.json
@@ -14,6 +14,7 @@ pytest-cov
14
14
  ruff
15
15
  pydantic>2
16
16
  pandapower>2.11.1
17
+ lxml
17
18
 
18
19
  [doc]
19
20
  sphinx
@@ -0,0 +1,18 @@
1
+ <!--
2
+ SPDX-FileCopyrightText: Contributors to the Power Grid Model project <powergridmodel@lfenergy.org>
3
+
4
+ SPDX-License-Identifier: MPL-2.0
5
+ -->
6
+ # Pandapower release 3.2.0
7
+
8
+ `pandapower` made following breaking changes to its release 3.2.0:
9
+
10
+ 1. `Load` attributes have been changed:
11
+ * `const_i_percent` replaced with `const_i_p_percent` and `const_i_q_percent`
12
+ * `const_z_percent` replaced with `const_z_p_percent` and `const_z_q_percent`
13
+ 2. loss attributes in 3ph load flow for `res_line_3ph` and `res_trafo_3ph` have been changed:
14
+ * `p_a_l_mw` changed to `pl_a_mw` and same for other phases
15
+ * `q_a_l_mvar` changed to `ql_a_mvar` and same for other phases
16
+
17
+ In order to maintain backward compatibility, data files compatible with both `pandapower` versions have been moved
18
+ to separate folders **v3.1.2** and **v3.2.0**.
@@ -6,6 +6,11 @@ from functools import lru_cache
6
6
 
7
7
  import pandapower as pp
8
8
 
9
+ from power_grid_model_io.converters.pandapower_converter import (
10
+ PP_COMPATIBILITY_VERSION_3_2_0,
11
+ PP_CONVERSION_VERSION,
12
+ )
13
+
9
14
 
10
15
  @lru_cache
11
16
  def pp_net() -> pp.pandapowerNet:
@@ -24,7 +29,15 @@ def pp_net() -> pp.pandapowerNet:
24
29
  pp.create_bus(net, index=105, vn_kv=60)
25
30
  pp.create_bus(net, index=106, vn_kv=110)
26
31
  pp.create_ext_grid(
27
- net, index=1, in_service=True, bus=101, vm_pu=1, s_sc_max_mva=1e10, rx_max=0, va_degree=0, r0x0_max=0
32
+ net,
33
+ index=1,
34
+ in_service=True,
35
+ bus=101,
36
+ vm_pu=1,
37
+ s_sc_max_mva=1e10,
38
+ rx_max=0,
39
+ va_degree=0,
40
+ r0x0_max=0,
28
41
  )
29
42
  pp.create_transformer_from_parameters(
30
43
  net,
@@ -49,25 +62,76 @@ def pp_net() -> pp.pandapowerNet:
49
62
  parallel=2,
50
63
  )
51
64
  pp.create_line(
52
- net, index=101, from_bus=103, to_bus=102, length_km=1.23, parallel=2, df=0.2, std_type="NAYY 4x150 SE"
53
- )
54
- pp.create_load(
55
- net, index=101, bus=103, p_mw=2.5, q_mvar=0.24, const_i_percent=26.0, const_z_percent=51.0, cos_phi=2
65
+ net,
66
+ index=101,
67
+ from_bus=103,
68
+ to_bus=102,
69
+ length_km=1.23,
70
+ parallel=2,
71
+ df=0.2,
72
+ std_type="NAYY 4x150 SE",
56
73
  )
74
+ if PP_CONVERSION_VERSION < PP_COMPATIBILITY_VERSION_3_2_0:
75
+ pp.create_load(
76
+ net,
77
+ index=101,
78
+ bus=103,
79
+ p_mw=2.5,
80
+ q_mvar=0.24,
81
+ const_i_percent=26.0,
82
+ const_z_percent=51.0,
83
+ cos_phi=2,
84
+ )
85
+ else:
86
+ pp.create_load(
87
+ net,
88
+ index=101,
89
+ bus=103,
90
+ p_mw=2.5,
91
+ q_mvar=0.24,
92
+ const_i_p_percent=26.0,
93
+ const_i_q_percent=26.0,
94
+ const_z_p_percent=51.0,
95
+ const_z_q_percent=51.0,
96
+ cos_phi=2,
97
+ )
57
98
  pp.create_switch(net, index=101, et="l", bus=103, element=101, closed=True)
58
99
  pp.create_switch(net, index=3021, et="b", bus=101, element=106, closed=True)
59
100
  pp.create_switch(net, index=321, et="t", bus=101, element=101, closed=True)
60
101
  pp.create_shunt(net, index=1201, in_service=True, bus=104, p_mw=0.1, q_mvar=0.55, step=3)
61
102
  pp.create_sgen(net, index=31, bus=105, p_mw=1.21, q_mvar=0.81)
62
103
  pp.create_asymmetric_sgen(
63
- net, index=32, bus=105, p_a_mw=0.1, p_b_mw=0.2, p_c_mw=3, q_a_mvar=0.01, q_b_mvar=0.01, q_c_mvar=0.01
104
+ net,
105
+ index=32,
106
+ bus=105,
107
+ p_a_mw=0.1,
108
+ p_b_mw=0.2,
109
+ p_c_mw=3,
110
+ q_a_mvar=0.01,
111
+ q_b_mvar=0.01,
112
+ q_c_mvar=0.01,
64
113
  )
65
114
  pp.create_asymmetric_load(
66
- net, index=33, bus=105, p_a_mw=0.1, p_b_mw=0.2, p_c_mw=3, q_a_mvar=0.01, q_b_mvar=0.01, q_c_mvar=0.01
115
+ net,
116
+ index=33,
117
+ bus=105,
118
+ p_a_mw=0.1,
119
+ p_b_mw=0.2,
120
+ p_c_mw=3,
121
+ q_a_mvar=0.01,
122
+ q_b_mvar=0.01,
123
+ q_c_mvar=0.01,
67
124
  )
68
125
  pp.create_ward(net, index=34, bus=105, ps_mw=0.1, qs_mvar=0.1, pz_mw=0.1, qz_mvar=0.1)
69
126
  pp.create_motor(
70
- net, bus=105, index=12, pn_mech_mw=0.1, cos_phi=0.9, loading_percent=80, efficiency_percent=90, scaling=0.8
127
+ net,
128
+ bus=105,
129
+ index=12,
130
+ pn_mech_mw=0.1,
131
+ cos_phi=0.9,
132
+ loading_percent=80,
133
+ efficiency_percent=90,
134
+ scaling=0.8,
71
135
  )
72
136
  pp.create_transformer3w_from_parameters(
73
137
  net,
@@ -127,7 +191,16 @@ def pp_net_3ph() -> pp.pandapowerNet:
127
191
  pp.create_bus(net, index=103, vn_kv=20)
128
192
  pp.create_bus(net, index=106, vn_kv=110)
129
193
  pp.create_ext_grid(
130
- net, index=0, in_service=True, bus=101, vm_pu=1, s_sc_max_mva=1e10, rx_max=0, va_degree=0, r0x0_max=0, x0x_max=1
194
+ net,
195
+ index=0,
196
+ in_service=True,
197
+ bus=101,
198
+ vm_pu=1,
199
+ s_sc_max_mva=1e10,
200
+ rx_max=0,
201
+ va_degree=0,
202
+ r0x0_max=0,
203
+ x0x_max=1,
131
204
  )
132
205
  pp.create_transformer_from_parameters(
133
206
  net,
@@ -173,16 +246,53 @@ def pp_net_3ph() -> pp.pandapowerNet:
173
246
  c0_nf_per_km=261.0,
174
247
  max_i_ka=0.27,
175
248
  )
176
- pp.create_load(net, index=101, bus=103, p_mw=2.5, q_mvar=0.24, const_i_percent=0.0, const_z_percent=0)
249
+ if PP_CONVERSION_VERSION < PP_COMPATIBILITY_VERSION_3_2_0:
250
+ pp.create_load(
251
+ net,
252
+ index=101,
253
+ bus=103,
254
+ p_mw=2.5,
255
+ q_mvar=0.24,
256
+ const_i_percent=0.0,
257
+ const_z_percent=0,
258
+ )
259
+ else:
260
+ pp.create_load(
261
+ net,
262
+ index=101,
263
+ bus=103,
264
+ p_mw=2.5,
265
+ q_mvar=0.24,
266
+ const_i_p_percent=0.0,
267
+ const_i_q_percent=0.0,
268
+ const_z_p_percent=0,
269
+ const_z_q_percnet=0,
270
+ )
177
271
  pp.create_switch(net, index=101, et="l", bus=103, element=101, closed=True)
178
272
  pp.create_switch(net, index=3021, et="b", bus=101, element=106, closed=True)
179
273
  pp.create_switch(net, index=321, et="t", bus=101, element=0, closed=True)
180
274
  pp.create_sgen(net, index=31, bus=103, p_mw=1.21, q_mvar=0.81)
181
275
  pp.create_asymmetric_sgen(
182
- net, index=32, bus=103, p_a_mw=0.1, p_b_mw=0.2, p_c_mw=3, q_a_mvar=0.01, q_b_mvar=0.01, q_c_mvar=0.01
276
+ net,
277
+ index=32,
278
+ bus=103,
279
+ p_a_mw=0.1,
280
+ p_b_mw=0.2,
281
+ p_c_mw=3,
282
+ q_a_mvar=0.01,
283
+ q_b_mvar=0.01,
284
+ q_c_mvar=0.01,
183
285
  )
184
286
  pp.create_asymmetric_load(
185
- net, index=33, bus=103, p_a_mw=0.4, p_b_mw=0.5, p_c_mw=1, q_a_mvar=0.01, q_b_mvar=0.01, q_c_mvar=0.01
287
+ net,
288
+ index=33,
289
+ bus=103,
290
+ p_a_mw=0.4,
291
+ p_b_mw=0.5,
292
+ p_c_mw=1,
293
+ q_a_mvar=0.01,
294
+ q_b_mvar=0.01,
295
+ q_c_mvar=0.01,
186
296
  )
187
297
  # TODO Shunt motor ward are not validated.
188
298
  # pp.create_shunt(net, index=1201, in_service=True, bus=103, p_mw=1, q_mvar=1, step=1)