simbench 1.4.0__zip → 1.5.1__zip

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.
Files changed (148) hide show
  1. simbench-1.5.1/.github/workflows/github_test_action.yml +130 -0
  2. simbench-1.5.1/.github/workflows/test_release.yml +58 -0
  3. simbench-1.5.1/.github/workflows/upload_release.yml +51 -0
  4. {simbench-1.4.0 → simbench-1.5.1}/CHANGELOG.rst +11 -1
  5. {simbench-1.4.0 → simbench-1.5.1}/PKG-INFO +54 -9
  6. {simbench-1.4.0 → simbench-1.5.1}/README.rst +0 -2
  7. simbench-1.5.1/pyproject.toml +75 -0
  8. {simbench-1.4.0 → simbench-1.5.1}/setup.cfg +0 -3
  9. simbench-1.5.1/setup.py +3 -0
  10. {simbench-1.4.0 → simbench-1.5.1}/simbench/converter/auxiliary.py +27 -10
  11. {simbench-1.4.0 → simbench-1.5.1}/simbench/converter/csv_data_manipulation.py +7 -7
  12. {simbench-1.4.0 → simbench-1.5.1}/simbench/converter/csv_pp_converter.py +49 -37
  13. {simbench-1.4.0 → simbench-1.5.1}/simbench/converter/format_information.py +1 -1
  14. {simbench-1.4.0 → simbench-1.5.1}/simbench/converter/pp_net_manipulation.py +64 -52
  15. {simbench-1.4.0 → simbench-1.5.1}/simbench/converter/read_and_write.py +4 -4
  16. {simbench-1.4.0 → simbench-1.5.1}/simbench/converter/voltLvl.py +1 -1
  17. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/extract_simbench_grids_from_csv.py +30 -23
  18. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/profiles.py +23 -29
  19. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/simbench_code.py +12 -11
  20. {simbench-1.4.0 → simbench-1.5.1/simbench}/simbench.egg-info/PKG-INFO +54 -9
  21. {simbench-1.4.0 → simbench-1.5.1/simbench}/simbench.egg-info/SOURCES.txt +8 -8
  22. simbench-1.5.1/simbench/simbench.egg-info/requires.txt +43 -0
  23. simbench-1.5.1/simbench/simbench.egg-info/top_level.txt +3 -0
  24. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_auxiliary.py +12 -10
  25. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_csv_pp_converter.py +9 -5
  26. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_pp_net_manipulation.py +5 -1
  27. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_voltLvl.py +3 -3
  28. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/networks/test_extract_grids_from_csv.py +3 -3
  29. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/networks/test_profiles.py +4 -4
  30. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/networks/test_simbench_code.py +2 -2
  31. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/networks/test_simbench_loadcases.py +1 -1
  32. simbench-1.4.0/.github/workflows/github_test_action.yml +0 -53
  33. simbench-1.4.0/.github/workflows/release.yml +0 -112
  34. simbench-1.4.0/setup.py +0 -55
  35. simbench-1.4.0/simbench/__init__.py +0 -12
  36. simbench-1.4.0/simbench.egg-info/requires.txt +0 -18
  37. simbench-1.4.0/simbench.egg-info/top_level.txt +0 -1
  38. {simbench-1.4.0 → simbench-1.5.1}/AUTHORS +0 -0
  39. {simbench-1.4.0 → simbench-1.5.1}/LICENSE +0 -0
  40. {simbench-1.4.0 → simbench-1.5.1}/MANIFEST.in +0 -0
  41. {simbench-1.4.0 → simbench-1.5.1}/requirements.txt +0 -0
  42. {simbench-1.4.0 → simbench-1.5.1}/simbench/converter/__init__.py +0 -0
  43. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/Coordinates.csv +0 -0
  44. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/ExternalNet.csv +0 -0
  45. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/Line.csv +0 -0
  46. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/LineType.csv +0 -0
  47. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/Load.csv +0 -0
  48. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/LoadProfile.csv +0 -0
  49. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/Measurement.csv +0 -0
  50. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/Node.csv +0 -0
  51. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/PowerPlant.csv +0 -0
  52. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/PowerPlantProfile.csv +0 -0
  53. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/RES.csv +0 -0
  54. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/RESProfile.csv +0 -0
  55. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/StudyCases.csv +0 -0
  56. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/Substation.csv +0 -0
  57. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/Switch.csv +0 -0
  58. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/Transformer.csv +0 -0
  59. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-0-sw/TransformerType.csv +0 -0
  60. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/Coordinates.csv +0 -0
  61. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/DCLineType.csv +0 -0
  62. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/ExternalNet.csv +0 -0
  63. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/Line.csv +0 -0
  64. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/LineType.csv +0 -0
  65. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/Load.csv +0 -0
  66. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/LoadProfile.csv +0 -0
  67. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/Measurement.csv +0 -0
  68. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/Node.csv +0 -0
  69. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/PowerPlant.csv +0 -0
  70. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/PowerPlantProfile.csv +0 -0
  71. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/RES.csv +0 -0
  72. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/RESProfile.csv +0 -0
  73. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/Storage.csv +0 -0
  74. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/StorageProfile.csv +0 -0
  75. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/StudyCases.csv +0 -0
  76. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/Substation.csv +0 -0
  77. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/Switch.csv +0 -0
  78. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/Transformer.csv +0 -0
  79. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-1-sw/TransformerType.csv +0 -0
  80. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/Coordinates.csv +0 -0
  81. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/DCLineType.csv +0 -0
  82. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/ExternalNet.csv +0 -0
  83. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/Line.csv +0 -0
  84. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/LineType.csv +0 -0
  85. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/Load.csv +0 -0
  86. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/LoadProfile.csv +0 -0
  87. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/Measurement.csv +0 -0
  88. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/Node.csv +0 -0
  89. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/PowerPlant.csv +0 -0
  90. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/PowerPlantProfile.csv +0 -0
  91. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/RES.csv +0 -0
  92. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/RESProfile.csv +0 -0
  93. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/Storage.csv +0 -0
  94. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/StorageProfile.csv +0 -0
  95. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/StudyCases.csv +0 -0
  96. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/Substation.csv +0 -0
  97. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/Switch.csv +0 -0
  98. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/Transformer.csv +0 -0
  99. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/1-complete_data-mixed-all-2-sw/TransformerType.csv +0 -0
  100. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/__init__.py +0 -0
  101. {simbench-1.4.0 → simbench-1.5.1}/simbench/networks/loadcases.py +0 -0
  102. {simbench-1.4.0 → simbench-1.5.1/simbench}/simbench.egg-info/dependency_links.txt +0 -0
  103. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/__init__.py +0 -0
  104. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/__init__.py +0 -0
  105. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/Coordinates.csv +0 -0
  106. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/DCLineType.csv +0 -0
  107. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/ExternalNet.csv +0 -0
  108. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/Line.csv +0 -0
  109. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/LineType.csv +0 -0
  110. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/Load.csv +0 -0
  111. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/LoadProfile.csv +0 -0
  112. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/Measurement.csv +0 -0
  113. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/Node.csv +0 -0
  114. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/PowerPlant.csv +0 -0
  115. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/PowerPlantProfile.csv +0 -0
  116. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/RES.csv +0 -0
  117. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/RESProfile.csv +0 -0
  118. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/Shunt.csv +0 -0
  119. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/Storage.csv +0 -0
  120. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/StorageProfile.csv +0 -0
  121. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/StudyCases.csv +0 -0
  122. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/Substation.csv +0 -0
  123. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/Switch.csv +0 -0
  124. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/Transformer.csv +0 -0
  125. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network/TransformerType.csv +0 -0
  126. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/Coordinates.csv +0 -0
  127. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/DCLineType.csv +0 -0
  128. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/ExternalNet.csv +0 -0
  129. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/Line.csv +0 -0
  130. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/LineType.csv +0 -0
  131. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/Load.csv +0 -0
  132. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/LoadProfile.csv +0 -0
  133. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/Measurement.csv +0 -0
  134. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/Node.csv +0 -0
  135. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/PowerPlant.csv +0 -0
  136. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/PowerPlantProfile.csv +0 -0
  137. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/RES.csv +0 -0
  138. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/RESProfile.csv +0 -0
  139. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/Shunt.csv +0 -0
  140. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/Storage.csv +0 -0
  141. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/StorageProfile.csv +0 -0
  142. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/StudyCases.csv +0 -0
  143. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/Substation.csv +0 -0
  144. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/Switch.csv +0 -0
  145. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/Transformer.csv +0 -0
  146. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/converter/test_network_output_folder/TransformerType.csv +0 -0
  147. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/networks/__init__.py +0 -0
  148. {simbench-1.4.0 → simbench-1.5.1}/simbench/test/run_tests.py +0 -0
@@ -232,7 +232,7 @@ def _extract_csv_table_by_subnet(csv_table, tablename, relevant_subnets, bus_bus
232
232
 
233
233
  # --- determine indices to drop and examine dropping
234
234
  drop_idx = (set(csv_table.index) - hv_elms - lv_elms) | hv_lv_elms | lv_hv_elms
235
- csv_table.drop(drop_idx, inplace=True)
235
+ csv_table = csv_table.drop(drop_idx)
236
236
  no_extraction = False
237
237
  else:
238
238
  no_extraction = "Profile" not in tablename and "Type" not in tablename and \
@@ -315,7 +315,7 @@ def generate_no_sw_variant(net):
315
315
  already_considered |= to_fuse[bus1]
316
316
 
317
317
  # drop all closed switches (which now also includes all bus-bus switches (see above))
318
- net.switch.drop(net.switch.index[net.switch.closed], inplace=True)
318
+ net.switch = net.switch.drop(net.switch.index[net.switch.closed])
319
319
 
320
320
  # fuse buses which are connected via bus-bus switches
321
321
  for b1, b2 in to_fuse.items():
@@ -325,33 +325,40 @@ def generate_no_sw_variant(net):
325
325
  aux_buses = net.bus.index[net.bus.type == "auxiliary"]
326
326
  buses_at_sw = pd.concat([net.switch.bus, net.switch.element.loc[net.switch.et == "b"]])
327
327
  aux_buses_to_change_type = aux_buses[~aux_buses.isin(buses_at_sw)]
328
- net.bus.type.loc[aux_buses_to_change_type] = "b"
328
+ net.bus.loc[aux_buses_to_change_type, "type"] = "b"
329
329
 
330
330
 
331
- def get_simbench_net(sb_code_info, input_path=None):
332
- """
333
- Returns the simbench net, requested by a given SimBench code information. Please have a look
331
+ def get_simbench_net(sb_code_info:str, input_path:str=None):
332
+ """Returns the simbench net, requested by a given SimBench code information. Please have a look
334
333
  into jupyter notebook tutorials to learn more about simbench grids and the meaning of SimBench
335
334
  codes.
336
335
 
337
- INPUT:
338
- **sb_code_info** (str or list) - simbench code which defines which simbench grid is
339
- requested, e.g. '1-MVLV-urban-all-0-sw' requests a grid with the urban MV grid and all
340
- connected LV grids, both of SimBench version 1, scenario zero and with full switch
336
+ Parameters
337
+ ----------
338
+ sb_code_info : str or list
339
+ simbench code information which defines which simbench grid is requested.
340
+ For example, e.g. :code:`'1-MVLV-urban-all-0-sw'` requests a grid with the urban MV grid and
341
+ all connected LV grids, both of SimBench version 1, scenario zero and with full switch
341
342
  representation.
342
-
343
- OPTIONAL:
344
- **input_path** (path) - option to change the path to all simbench grid csv files. However,
345
- a change should not be necessary.
346
-
347
- OUTPUT:
348
- net (pandapowerNet)
349
-
350
- EXAMPLE:
351
-
352
- import simbench as sb
353
-
354
- net = sb.get_simbench_net('1-MVLV-urban-all-0-sw')
343
+ As an alternative :code:`[1, "MV", "LV", "urban", "all", 0, "sw"]` can be passed.
344
+ input_path : str, optional
345
+ option to change the path to all simbench grid csv files. However, a change should not be
346
+ necessary and is only for cases of applying the function to data from alternative location,
347
+ by default None
348
+
349
+ Returns
350
+ -------
351
+ pandapowerNet
352
+ requsted simbench grid
353
+
354
+ Examples
355
+ --------
356
+ >>> import simbench as sb
357
+ >>> net = sb.get_simbench_net('1-MVLV-urban-all-0-sw')
358
+
359
+ >>> import pandapower as pp
360
+ >>> pp.toolbox.nets_equal(net, sb.get_simbench_net([1, "MV", "LV", "urban", "all", 0, "sw"]))
361
+ True
355
362
  """
356
363
  # --- get relevant subnets
357
364
  sb_code, sb_code_parameters = get_simbench_code_and_parameters(sb_code_info)
@@ -139,7 +139,7 @@ def filter_unapplied_profiles(csv_data):
139
139
  applied_profiles.append("time")
140
140
  unapplied_profiles = csv_data[prof_tab].columns.difference(applied_profiles)
141
141
  logger.debug("These %ss are dropped: " % prof_tab + str(unapplied_profiles))
142
- csv_data[prof_tab].drop(unapplied_profiles, axis=1, inplace=True)
142
+ csv_data[prof_tab] = csv_data[prof_tab].drop(unapplied_profiles, axis=1)
143
143
 
144
144
 
145
145
  def filter_unapplied_profiles_pp(net, named_profiles: bool):
@@ -148,7 +148,7 @@ def filter_unapplied_profiles_pp(net, named_profiles: bool):
148
148
  if named_profiles:
149
149
  for key in net["profiles"].keys():
150
150
  unused = get_unused_profiles(net, key)
151
- net.profiles[key].drop(columns=unused, inplace=True)
151
+ net.profiles[key] = net.profiles[key].drop(columns=unused)
152
152
  else:
153
153
  for key in net.profiles.keys():
154
154
  if isinstance(key, tuple):
@@ -158,8 +158,8 @@ def filter_unapplied_profiles_pp(net, named_profiles: bool):
158
158
  else:
159
159
  raise NotImplementedError("The keys of net.profiles are expected as " +
160
160
  "tuple(element, column) or as str, e.g. 'gen.vm_pu'.")
161
- net.profiles[key].drop(columns=net.profiles[key].columns[~net.profiles[
162
- key].columns.isin(net[elm].index)], inplace=True)
161
+ net.profiles[key] = net.profiles[key].drop(columns=net.profiles[key].columns[
162
+ ~net.profiles[key].columns.isin(net[elm].index)])
163
163
 
164
164
 
165
165
  def get_absolute_profiles_from_relative_profiles(
@@ -215,52 +215,46 @@ def get_absolute_profiles_from_relative_profiles(
215
215
 
216
216
  # --- set index
217
217
  index = relative_profiles["time"] if time_as_index else relative_profiles.index
218
- if "time" in relative_profiles:
219
- del relative_profiles["time"]
220
218
 
221
219
  # --- do profile_suffix assumptions if profile_suffix is None
222
220
  if profile_suffix is None:
221
+ profile_suffix = ""
223
222
  if element == "load":
224
223
  if multiplying_column == "p_mw":
225
224
  profile_suffix = "_pload"
226
225
  elif multiplying_column == "q_mvar":
227
226
  profile_suffix = "_qload"
228
- profile_suffix = "" if profile_suffix is None else profile_suffix
229
227
 
230
- # --- get relative profiles with respect to each element index
228
+ # --- get relative profiles
229
+ relative_profiles_vals = np.ones((len(index), len(net[element])))
231
230
  if profile_column in net[element].columns:
232
231
  applied_profiles = net[element][profile_column] + profile_suffix
233
- else: # missing profile column
232
+
233
+ missing = list(applied_profiles[~applied_profiles.isin(relative_profiles.columns)])
234
+ if len(missing):
235
+ raise ValueError("These profiles are set to be applied but are missing in the profiles "
236
+ "data: " + str(missings))
237
+ isna = applied_profiles.isnull()
238
+ is_not_na_pos = np.arange(len(isna), dtype=int)[~isna.values]
239
+ relative_profiles_vals[:, is_not_na_pos] = \
240
+ relative_profiles[list(applied_profiles[~isna])].values
241
+
242
+ else: # warning and assumptions in case of missing profile column
234
243
  logger.warning("In %s table, profile column '%s' is missing. Scalings of 1 are assumed." % (
235
244
  element, profile_column))
236
- missing_col_handling = "missing_col_handling"
237
- applied_profiles = pd.Series([missing_col_handling]*net[element].shape[0],
238
- index=net[element].index, dtype=object)
239
- relative_profiles[missing_col_handling] = 1
240
-
241
- # nan profile handling
242
- if applied_profiles.isnull().any():
243
- logger.debug("There are nan profiles. Scalings of 1 are assumed.")
244
- nan_profile_handling = "nan_profile_scaling"
245
- assert nan_profile_handling not in relative_profiles.columns
246
- applied_profiles.loc[applied_profiles.isnull()] = nan_profile_handling
247
- relative_profiles[nan_profile_handling] = 1
248
-
249
- relative_output_profiles = relative_profiles.values[:, idx_in_2nd_array(
250
- applied_profiles.values, np.array(relative_profiles.columns))]
251
245
 
252
246
  # --- get factor to multiply with (consider additional feature of 'multiplying_column')
253
247
  if isinstance(multiplying_column, str):
254
248
  if multiplying_column in net[element].columns:
255
249
  factor = net[element][multiplying_column].values.reshape(1, -1)
256
250
  else:
257
- raise ValueError("'multiplying_column' %s is not net[%s].columns." % (
251
+ raise ValueError("'multiplying_column' %s is not in net[%s].columns." % (
258
252
  multiplying_column, element))
259
253
  else:
260
254
  factor = multiplying_column
261
255
 
262
256
  # --- multiply relative profiles with factor and return results
263
- output_profiles = pd.DataFrame(relative_output_profiles*factor, index=index,
257
+ output_profiles = pd.DataFrame(relative_profiles_vals*factor, index=index,
264
258
  columns=net[element].index)
265
259
  return output_profiles
266
260
 
@@ -319,9 +313,9 @@ def get_absolute_values(net, profiles_instead_of_study_cases, **kwargs):
319
313
  Idx_pv = net.sgen.index[net.sgen.type.str.contains("PV").fillna(False)]
320
314
  Idx_sgen = net.sgen.index.difference(Idx_wind.union(Idx_pv))
321
315
  net.sgen["loadcase_type"] = ""
322
- net.sgen['loadcase_type'].loc[Idx_wind] = loadcase_type[0]
323
- net.sgen['loadcase_type'].loc[Idx_pv] = loadcase_type[1]
324
- net.sgen['loadcase_type'].loc[Idx_sgen] = loadcase_type[2]
316
+ net.sgen.loc[Idx_wind, 'loadcase_type'] = loadcase_type[0]
317
+ net.sgen.loc[Idx_pv, 'loadcase_type'] = loadcase_type[1]
318
+ net.sgen.loc[Idx_sgen, 'loadcase_type'] = loadcase_type[2]
325
319
  else:
326
320
  net[elm_col[0]]["loadcase_type"] = loadcase_type
327
321
 
@@ -21,23 +21,24 @@ def collect_all_simbench_codes(version=1, hv_level=None, lv_level=None, hv_type=
21
21
  **kwargs):
22
22
  """
23
23
  Returns a list of all possible SimBench Codes, considering given fixed sb_code_parameters.
24
- **kwargs are ignored.
24
+ kwargs are ignored.
25
25
 
26
- EXAMPLE:
27
- all_codes = collect_all_simbench_codes()
26
+ Examples
27
+ --------
28
+ >>> all_codes = collect_all_simbench_codes()
28
29
 
29
- single_zone_codes = collect_all_simbench_codes(lv_level="", all_data=False)
30
+ >>> single_zone_codes = collect_all_simbench_codes(lv_level="", all_data=False)
30
31
 
31
- all_data_codes = collect_all_simbench_codes(hv_level="")
32
+ >>> all_data_codes = collect_all_simbench_codes(hv_level="")
32
33
 
33
- mv_grids_without_switch_and_lv = collect_all_simbench_codes(
34
- hv_level="MV", lv_level="", breaker_rep=False)
34
+ >>> mv_grids_without_switch_and_lv = collect_all_simbench_codes(
35
+ ... hv_level="MV", lv_level="", breaker_rep=False)
35
36
 
36
- urban_hv_grid_scenario1_codes = collect_all_simbench_codes(
37
- hv_level="HV", hv_type="urban", scenario=1)
37
+ >>> urban_hv_grid_scenario1_codes = collect_all_simbench_codes(
38
+ ... hv_level="HV", hv_type="urban", scenario=1)
38
39
 
39
- rural_and_urban_mv_grid_scenario1_codes = sb.collect_all_simbench_codes(
40
- hv_level="MV", lv_level="", hv_type=["rural", "urban"], scenario=1, all_data=False)
40
+ >>> rural_and_urban_mv_grid_scenario1_codes = sb.collect_all_simbench_codes(
41
+ ... hv_level="MV", lv_level="", hv_type=["rural", "urban"], scenario=1, all_data=False)
41
42
  """
42
43
  pos_hv_level = ["EHV", "HV", "MV", "LV"]
43
44
  pos_lv_level = ["HV", "MV", "LV", ""]
@@ -1,38 +1,83 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: simbench
3
- Version: 1.4.0
4
- Summary: Electrical Power System Benchmark Models
5
- Home-page: http://www.simbench.de/en
6
- Author: Steffen Meinecke
7
- Author-email: steffen.meinecke@uni-kassel.de
8
- License: odbl
3
+ Version: 1.5.1
4
+ Summary: Electrical Power System Benchmark Models.
5
+ Author-email: Steffen Meinecke <steffen.meinecke@uni-kassel.de>
6
+ Maintainer-email: simbench Developers <simbench@uni-kassel.de>
7
+ License: Copyright (c) 2019-2021 by University of Kassel, TU Dortmund, RWTH Aachen University and Fraunhofer Institute for Energy Economics and Energy System Technology (IEE) Kassel and individual contributors (see AUTHORS file for details).
8
+ All rights reserved.
9
+
10
+
11
+ The database called SimBench is made available under the Open Database
12
+ License: http://opendatacommons.org/licenses/odbl/1.0/.
13
+ Any rights in individual contents of the database are licensed under
14
+ the Database Contents License: http://opendatacommons.org/licenses/dbcl/1.0/
15
+
16
+
17
+ The code of this repository "simbench" is published under the following 3-clause BSD license:
18
+
19
+ Redistribution and use in source and binary forms, with or without modification, are permitted
20
+ provided that the following conditions are met:
21
+
22
+ 1. Redistributions of source code must retain the above copyright notice, this list of conditions
23
+ and the following disclaimer.
24
+
25
+ 2. Redistributions in binary form must reproduce the above copyright notice, this list of
26
+ conditions and the following disclaimer in the documentation and/or other materials provided
27
+ with the distribution.
28
+
29
+ 3. Neither the name of the copyright holder nor the names of its contributors may be used to
30
+ endorse or promote products derived from this software without specific prior written permission.
31
+
32
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
33
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
34
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
35
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
37
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
38
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
39
+ WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40
+
41
+ Project-URL: Homepage, https://www.simbench.net
42
+ Project-URL: Documentation, https://simbench.readthedocs.io
43
+ Project-URL: Source, https://www.github.com/e2nIEE/simbench
44
+ Project-URL: Repository, https://www.github.com/e2nIEE/simbench.git
45
+ Project-URL: Issues, https://www.github.com/e2nIEE/simbench/issues
46
+ Project-URL: Download, https://pypi.org/project/simbench/#files
47
+ Project-URL: Changelog, https://github.com/e2nIEE/simbench/blob/develop/CHANGELOG.rst
48
+ Keywords: benchmark grid,power system,network,grid planning,grid operation,grid generation methodology,comparability,reproducibility,electricity,energy,engineering,simulation,simbench,time series,future scenarios
9
49
  Classifier: Development Status :: 5 - Production/Stable
10
50
  Classifier: Environment :: Console
11
51
  Classifier: Intended Audience :: Developers
12
52
  Classifier: Intended Audience :: Education
13
53
  Classifier: Intended Audience :: Science/Research
54
+ Classifier: License :: OSI Approved :: BSD License
14
55
  Classifier: Natural Language :: English
15
56
  Classifier: Operating System :: OS Independent
16
57
  Classifier: Programming Language :: Python
17
58
  Classifier: Programming Language :: Python :: 3
18
59
  Classifier: Programming Language :: Python :: 3.8
19
- Classifier: Programming Language :: Python :: 3.1
20
60
  Classifier: Programming Language :: Python :: 3.9
61
+ Classifier: Programming Language :: Python :: 3.10
62
+ Classifier: Programming Language :: Python :: 3.11
63
+ Classifier: Programming Language :: Python :: 3.12
21
64
  Requires-Python: >=3.8
22
65
  Description-Content-Type: text/x-rst
23
66
  Provides-Extra: docs
24
67
  Provides-Extra: plotting
68
+ Provides-Extra: test
69
+ Provides-Extra: performance
70
+ Provides-Extra: fileio
25
71
  Provides-Extra: tutorials
26
72
  Provides-Extra: all
27
73
  License-File: LICENSE
74
+ License-File: AUTHORS
28
75
 
29
76
 
30
77
  .. image:: https://simbench.de/wp-content/uploads/2019/01/logo.png
31
78
  :target: https://www.simbench.net
32
79
  :alt: SimBench logo
33
80
 
34
- |
35
-
36
81
  .. image:: https://badge.fury.io/py/simbench.svg
37
82
  :target: https://pypi.python.org/pypi/simbench
38
83
  :alt: PyPI
@@ -3,17 +3,12 @@ CHANGELOG.rst
3
3
  LICENSE
4
4
  MANIFEST.in
5
5
  README.rst
6
+ pyproject.toml
6
7
  requirements.txt
7
- setup.cfg
8
8
  setup.py
9
9
  .github/workflows/github_test_action.yml
10
- .github/workflows/release.yml
11
- simbench/__init__.py
12
- simbench.egg-info/PKG-INFO
13
- simbench.egg-info/SOURCES.txt
14
- simbench.egg-info/dependency_links.txt
15
- simbench.egg-info/requires.txt
16
- simbench.egg-info/top_level.txt
10
+ .github/workflows/test_release.yml
11
+ .github/workflows/upload_release.yml
17
12
  simbench/converter/__init__.py
18
13
  simbench/converter/auxiliary.py
19
14
  simbench/converter/csv_data_manipulation.py
@@ -84,6 +79,11 @@ simbench/networks/1-complete_data-mixed-all-2-sw/Substation.csv
84
79
  simbench/networks/1-complete_data-mixed-all-2-sw/Switch.csv
85
80
  simbench/networks/1-complete_data-mixed-all-2-sw/Transformer.csv
86
81
  simbench/networks/1-complete_data-mixed-all-2-sw/TransformerType.csv
82
+ simbench/simbench.egg-info/PKG-INFO
83
+ simbench/simbench.egg-info/SOURCES.txt
84
+ simbench/simbench.egg-info/dependency_links.txt
85
+ simbench/simbench.egg-info/requires.txt
86
+ simbench/simbench.egg-info/top_level.txt
87
87
  simbench/test/__init__.py
88
88
  simbench/test/run_tests.py
89
89
  simbench/test/converter/__init__.py
@@ -0,0 +1,43 @@
1
+ pandapower>=2.12.1
2
+
3
+ [all]
4
+ plotly>=3.1.1
5
+ matplotlib
6
+ igraph
7
+ geopandas
8
+ geojson
9
+ pytest~=8.1
10
+ pytest-xdist
11
+ nbmake
12
+ ortools
13
+ numba>=0.25
14
+ lightsim2grid>=0.8.1
15
+
16
+ [docs]
17
+ numpydoc
18
+ sphinx
19
+ sphinx_rtd_theme
20
+ sphinx-pyproject
21
+
22
+ [fileio]
23
+ geopandas
24
+
25
+ [performance]
26
+ ortools
27
+ numba>=0.25
28
+ lightsim2grid>=0.8.1
29
+
30
+ [plotting]
31
+ plotly>=3.1.1
32
+ matplotlib
33
+ igraph
34
+ geopandas
35
+ geojson
36
+
37
+ [test]
38
+ pytest~=8.1
39
+ pytest-xdist
40
+ nbmake
41
+
42
+ [tutorials]
43
+ matplotlib
@@ -0,0 +1,3 @@
1
+ converter
2
+ networks
3
+ test
@@ -62,23 +62,25 @@ def test_column_indices():
62
62
 
63
63
  def test_get_unique_duplicated_dict():
64
64
  # --- with numeric data
65
- A = pd.DataFrame([[8.0, 2, 1, 2.0, 3],
66
- [4.0, 3, 2, 5.0, 2],
67
- [6.0, 4, 2, 3.0, 4],
68
- [8.0, 3, 1, 2.0, 3],
65
+ A = pd.DataFrame([[8.0, 2, 1, 2.0, 3],
66
+ [4.0, 3, 2, 5.0, 2],
67
+ [6.0, 4, 2, 3.0, 4],
68
+ [8.0, 3, 1, 2.0, 3],
69
69
  [np.nan, 7, 5, np.nan, 2],
70
- [6.0, 4, 2, 3.0, 4],
71
- [8.0, 3, 1, 2.0, 3],
70
+ [6.0, 4, 2, 3.0, 4],
71
+ [8.0, 3, 1, 2.0, 3],
72
72
  [np.nan, 7, 5, np.nan, 2],
73
- [8.0, 2, 1, 2.0, 3],
74
- [8.0, 2, 1, 2.0, 3]])
73
+ [8.0, 2, 1, 2.0, 3],
74
+ [8.0, 2, 1, 2.0, 3]])
75
75
  dict_ = sb.get_unique_duplicated_dict(A)
76
76
  assert dict_ == {0: [8, 9], 1: [], 2: [5], 3: [6], 4: [7]}
77
77
  dict_ = sb.get_unique_duplicated_dict(A, subset=[0, 2, 3, 4])
78
78
  assert dict_ == {0: [3, 6, 8, 9], 1: [], 2: [5], 4: [7]}
79
79
 
80
80
  # with strings
81
+ A[2] = A[2].astype(object)
81
82
  A.loc[[2, 5], 2] = "fd"
83
+ A[4] = A[4].astype(object)
82
84
  A.loc[9, 4] = "kl"
83
85
  dict_ = sb.get_unique_duplicated_dict(A)
84
86
  assert dict_ == {0: [8], 1: [], 2: [5], 3: [6], 4: [7], 9: []}
@@ -211,7 +213,7 @@ def test_merge_dataframes():
211
213
  assert pp.dataframes_equal(return6, res6)
212
214
 
213
215
  # beware idx order, df1 with precedence, no extra index
214
- return7 = sb.merge_dataframes([df1, df2], keep="first", sort=False)
216
+ return7 = sb.merge_dataframes([df1, df2], keep="first", sort_index=False, sort_column=False)
215
217
  try:
216
218
  res7 = deepcopy(res5).reindex(unsorted_index, columns=unsorted_columns)
217
219
  except TypeError: # legacy for pandas <0.21
@@ -220,7 +222,7 @@ def test_merge_dataframes():
220
222
  assert pp.dataframes_equal(return7, res7)
221
223
 
222
224
  # beware idx order, df1 with precedence, no extra index
223
- return8 = sb.merge_dataframes([df1, df2], keep="last", sort=False)
225
+ return8 = sb.merge_dataframes([df1, df2], keep="last", sort_index=False, sort_column=False)
224
226
  try:
225
227
  res8 = deepcopy(res6).reindex(unsorted_index, columns=unsorted_columns)
226
228
  except TypeError: # legacy for pandas <0.21
@@ -14,7 +14,8 @@ from pandapower.networks import example_simple
14
14
  from simbench import sb_dir
15
15
  from simbench.converter import csv2pp, csv_data2pp, pp2csv, pp2csv_data, \
16
16
  convert_parallel_branches, read_csv_data, ensure_full_column_data_existence, \
17
- avoid_duplicates_in_column, merge_busbar_coordinates
17
+ avoid_duplicates_in_column, merge_busbar_coordinates, to_numeric_ignored_errors, \
18
+ repl_nans_in_obj_cols_to_empty_str
18
19
 
19
20
  try:
20
21
  import pandaplan.core.pplog as logging
@@ -141,7 +142,7 @@ def test_convert_parallel_branches():
141
142
  assert net.switch.shape[0] == 11
142
143
 
143
144
  net1 = deepcopy(net)
144
- net1.switch.closed.loc[4] = False
145
+ net1.switch.loc[4, "closed"] = False
145
146
  convert_parallel_branches(net, multiple_entries=False)
146
147
  convert_parallel_branches(net1, multiple_entries=False)
147
148
  # test sum up of parallels
@@ -238,14 +239,14 @@ def test_example_simple():
238
239
  # compare std_types as dataframes
239
240
  for netx in [net, net_from_csv_data]:
240
241
  for key, vals in netx["std_types"].items():
241
- netx[f"std_types|{key}"] = pd.DataFrame(vals).T.apply(pd.to_numeric, errors='ignore')
242
+ netx[f"std_types|{key}"] = to_numeric_ignored_errors(pd.DataFrame(vals).T)
242
243
 
243
244
  for key in net.keys():
244
245
  if isinstance(net[key], pd.DataFrame):
245
246
  # drop unequal columns
246
247
  dummy_columns = net[key].columns
247
248
  extra_columns = net_from_csv_data[key].columns.difference(dummy_columns)
248
- net_from_csv_data[key].drop(columns=extra_columns, inplace=True)
249
+ net_from_csv_data[key] = net_from_csv_data[key].drop(columns=extra_columns)
249
250
  # adjust dtypes
250
251
  if net[key].shape[0]:
251
252
  try:
@@ -256,10 +257,13 @@ def test_example_simple():
256
257
  # drop result table rows
257
258
  if pp_is_27lower and "res_" in key:
258
259
  if not key == "res_bus":
259
- net[key].drop(net[key].index, inplace=True)
260
+ net[key] = net[key].iloc[0:0]
260
261
  else:
261
262
  net[key].loc[:, ["p_mw", "q_mvar"]] = np.nan
262
263
 
264
+ repl_nans_in_obj_cols_to_empty_str(net)
265
+ repl_nans_in_obj_cols_to_empty_str(net_from_csv_data)
266
+
263
267
  # --- for pp2.7.1 and newer
264
268
  if not pp_is_27lower:
265
269
  name_selection = [key for key in net.keys() if key.startswith("std_types|")]
@@ -8,7 +8,8 @@ from packaging import version
8
8
  import pandas as pd
9
9
  import pandapower as pp
10
10
  from pandapower.auxiliary import _preserve_dtypes
11
- from simbench.converter import replace_branch_switches, create_branch_switches
11
+ from simbench.converter import replace_branch_switches, create_branch_switches, \
12
+ repl_nans_in_obj_cols_to_empty_str
12
13
 
13
14
  try:
14
15
  import pandaplan.core.pplog as logging
@@ -81,6 +82,9 @@ def test_branch_switch_changes():
81
82
  for elm in ["line", "trafo"]:
82
83
  _preserve_dtypes(net2[elm], net_orig[elm].dtypes)
83
84
 
85
+ repl_nans_in_obj_cols_to_empty_str(net_orig)
86
+ repl_nans_in_obj_cols_to_empty_str(net2)
87
+
84
88
  if version.parse(pp.__version__) <= version.parse("2.7.0"):
85
89
  assert pp.nets_equal(net_orig, net2, tol=1e-7)
86
90
  else:
@@ -100,8 +100,8 @@ if __name__ == "__main__":
100
100
  if 0:
101
101
  pytest.main(["test_voltLvl.py", "-xs"])
102
102
  else:
103
- # test_convert_voltlvl_names()
104
- # test_voltlvl_idx()
105
- # test_get_voltlvl()
103
+ # test_convert_voltlvl_names()
104
+ # test_voltlvl_idx()
105
+ # test_get_voltlvl()
106
106
  test_all_voltlvl_idx()
107
107
  pass
@@ -53,7 +53,7 @@ def test_get_bus_bus_switch_indices_from_csv():
53
53
  bool_ = True
54
54
  assert bool_
55
55
 
56
- switch_table.drop(switch_table.index[-1], inplace=True)
56
+ switch_table = switch_table.drop(switch_table.index[-1])
57
57
  try:
58
58
  sb.get_bus_bus_switch_indices_from_csv(switch_table, node_table)
59
59
  bool_ = False
@@ -61,7 +61,7 @@ def test_get_bus_bus_switch_indices_from_csv():
61
61
  bool_ = True
62
62
  assert bool_
63
63
 
64
- switch_table.drop(switch_table.index[-1], inplace=True)
64
+ switch_table = switch_table.drop(switch_table.index[-1])
65
65
  assert sb.get_bus_bus_switch_indices_from_csv(switch_table, node_table) == [0, 5]
66
66
 
67
67
 
@@ -443,7 +443,7 @@ def _test_net_validity(net, sb_code_params, shortened, input_path=None):
443
443
  try:
444
444
  pp.runpp(net)
445
445
  converged = net.converged
446
- except:
446
+ except pp.LoadflowNotConverged:
447
447
  sb_code = sb.get_simbench_code_from_parameters(sb_code_params)
448
448
  logger.error("Loadflow not converged with %s" % sb_code)
449
449
  converged = False
@@ -47,7 +47,7 @@ def _testnet_with_profiles():
47
47
  ["lPV", 0.1, 0.122543, 0.85, 0.95, 1, 1.015]],
48
48
  columns=["Study Case", "pload", "qload", "Wind_p", "PV_p",
49
49
  "RES_p", "Slack_vm"])
50
- net["loadcases"].set_index("Study Case", inplace=True)
50
+ net["loadcases"] = net["loadcases"].set_index("Study Case")
51
51
  return net, deepcopy(in_net_profiles)
52
52
 
53
53
 
@@ -122,7 +122,7 @@ if __name__ == '__main__':
122
122
  if 0:
123
123
  pytest.main(["test_profiles.py", "-xs"])
124
124
  else:
125
- # test_dismantle_dict_values()
126
- # test_missing_profiles()
127
- # test_get_absolute_profiles_from_relative_profiles()
125
+ test_dismantle_dict_values()
126
+ test_missing_profiles()
127
+ test_get_absolute_profiles_from_relative_profiles()
128
128
  pass
@@ -69,6 +69,6 @@ if __name__ == '__main__':
69
69
  if 0:
70
70
  pytest.main(["test_simbench_code.py", "-xs"])
71
71
  else:
72
- # test_simbench_code_occurance()
73
- # test_simbench_code_conversion()
72
+ test_simbench_code_occurance()
73
+ test_simbench_code_conversion()
74
74
  pass
@@ -24,5 +24,5 @@ if __name__ == "__main__":
24
24
  if 0:
25
25
  pytest.main(["test_simbench_loadcases.py", "-xs"])
26
26
  else:
27
- # test_filter_loadcases()
27
+ test_filter_loadcases()
28
28
  pass
@@ -1,53 +0,0 @@
1
- # This workflow will install Python dependencies, run tests and lint with a variety of Python versions
2
- # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
3
-
4
- name: simbench
5
-
6
- on:
7
- push:
8
- branches: '*'
9
- paths-ignore:
10
- - 'CHANGELOG.rst'
11
- pull_request:
12
- branches: '*'
13
- paths-ignore:
14
- - 'CHANGELOG.rst'
15
-
16
- jobs:
17
- build:
18
-
19
- runs-on: ubuntu-latest
20
- strategy:
21
- matrix:
22
- python-version: ['3.8', '3.9', '3.10', '3.11']
23
-
24
- steps:
25
- - uses: actions/checkout@v2
26
- #- uses: julia-actions/setup-julia@v1.5
27
- - name: Set up Python ${{ matrix.python-version }}
28
- uses: actions/setup-python@v2
29
- with:
30
- python-version: ${{ matrix.python-version }}
31
- - name: Install dependencies
32
- run: |
33
- python -m pip install --upgrade pip
34
- python -m pip install pytest
35
- pip install -r requirements.txt
36
- pip install .["all"]
37
- - name: List of installed packages
38
- run: |
39
- pip list
40
- - name: Test with pytest
41
- if: ${{ matrix.python-version != '3.8' }}
42
- run: |
43
- pytest
44
- - name: Test with pytest and Codecov
45
- if: ${{ matrix.python-version == '3.8' }}
46
- run: |
47
- pip install pytest-cov
48
- pytest --cov=./ --cov-report=xml
49
- - name: Upload coverage to Codecov
50
- if: ${{ matrix.python-version == '3.8' }}
51
- uses: codecov/codecov-action@v1
52
- with:
53
- verbose: true