GridCal 5.1.29__tar.gz → 5.1.30__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.
Files changed (282) hide show
  1. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/simulations.py +39 -78
  2. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/__version__.py +1 -1
  3. {GridCal-5.1.29 → GridCal-5.1.30}/PKG-INFO +1 -1
  4. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ExecuteGridCal.py +0 -0
  5. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
  6. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
  7. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/AboutDialogue/gui.py +0 -0
  8. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
  9. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
  10. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
  11. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Analysis/__init__.py +0 -0
  12. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Analysis/gui.py +0 -0
  13. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Analysis/icons_rc.py +0 -0
  14. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
  15. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
  16. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
  17. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
  18. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/CascadingSteps/gui.py +0 -0
  19. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
  20. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ConsoleWidget.py +0 -0
  21. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
  22. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
  23. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
  24. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
  25. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
  26. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
  27. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
  28. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
  29. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
  30. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
  31. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
  32. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
  33. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
  34. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
  35. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
  36. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
  37. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
  38. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
  39. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py +0 -0
  40. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
  41. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +0 -0
  42. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
  43. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/__init__.py +0 -0
  44. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/blue_marble.py +0 -0
  45. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/cartodb.py +0 -0
  46. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/gmt_local.py +0 -0
  47. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/mapbox.py +0 -0
  48. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/mapquest.py +0 -0
  49. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/open_street_map.py +0 -0
  50. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_toner.py +0 -0
  51. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_transport.py +0 -0
  52. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_watercolor.py +0 -0
  53. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
  54. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
  55. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
  56. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
  57. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
  58. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
  59. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
  60. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
  61. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +0 -0
  62. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/map_events.py +0 -0
  63. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
  64. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/new_line_dialogue.py +0 -0
  65. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/node_widget.py +0 -0
  66. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
  67. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
  68. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
  69. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +0 -0
  70. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
  71. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
  72. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
  73. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
  74. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
  75. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
  76. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
  77. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
  78. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
  79. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
  80. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
  81. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
  82. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
  83. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
  84. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
  85. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
  86. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
  87. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
  88. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
  89. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +0 -0
  90. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
  91. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
  92. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
  93. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
  94. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
  95. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
  96. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
  97. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
  98. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
  99. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
  100. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
  101. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
  102. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
  103. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
  104. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
  105. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +0 -0
  106. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
  107. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/__init__.py +0 -0
  108. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/base_diagram_widget.py +0 -0
  109. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
  110. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
  111. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
  112. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/GeneralDialogues.py +0 -0
  113. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/GridGenerator/__init__.py +0 -0
  114. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
  115. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/GridGenerator/gui.py +0 -0
  116. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
  117. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
  118. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/GuiFunctions.py +0 -0
  119. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
  120. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
  121. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
  122. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
  123. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
  124. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
  125. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
  126. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
  127. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
  128. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
  129. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/ConsoleLog.py +0 -0
  130. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
  131. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/GridCalMain.py +0 -0
  132. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/MainWindow.py +0 -0
  133. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
  134. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
  135. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +0 -0
  136. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
  137. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
  138. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
  139. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
  140. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
  141. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
  142. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Scripting/python_highlighter.py +0 -0
  143. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
  144. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
  145. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
  146. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
  147. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
  148. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
  149. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
  150. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/io.py +0 -0
  151. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/__init__.py +0 -0
  152. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/icons_rc.py +0 -0
  153. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/object_select_window.py +0 -0
  154. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Main/update_gui_file.py +0 -0
  155. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
  156. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
  157. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
  158. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
  159. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
  160. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
  161. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
  162. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
  163. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
  164. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
  165. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/ConsoleWidget.py +0 -0
  166. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
  167. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
  168. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
  169. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
  170. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
  171. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
  172. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
  173. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
  174. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
  175. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
  176. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
  177. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
  178. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
  179. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
  180. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
  181. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
  182. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
  183. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SyncDialogue/gui.py +0 -0
  184. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
  185. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
  186. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
  187. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SystemScaler/__init__.py +0 -0
  188. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
  189. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
  190. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
  191. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
  192. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
  193. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
  194. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/gui.py +0 -0
  195. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
  196. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
  197. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/test_.py +0 -0
  198. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
  199. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
  200. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
  201. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
  202. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
  203. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
  204. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Visualization/__init__.py +0 -0
  205. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Visualization/visualization.py +0 -0
  206. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Widgets/__init__.py +0 -0
  207. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
  208. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
  209. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
  210. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
  211. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
  212. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
  213. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
  214. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/__init__.py +0 -0
  215. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/associations_model.py +0 -0
  216. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/messages.py +0 -0
  217. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/object_model.py +0 -0
  218. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/pandas_model.py +0 -0
  219. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/plot_config.py +0 -0
  220. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/plugins.py +0 -0
  221. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/profiles_model.py +0 -0
  222. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/table_view_header_wrap.py +0 -0
  223. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/themes.py +0 -0
  224. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/update_gui_all.py +0 -0
  225. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Gui/update_gui_common.py +0 -0
  226. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/LICENSE.txt +0 -0
  227. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Session/__init__.py +0 -0
  228. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Session/export_results_driver.py +0 -0
  229. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Session/file_handler.py +0 -0
  230. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Session/results_model.py +0 -0
  231. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Session/server_driver.py +0 -0
  232. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Session/session.py +0 -0
  233. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/Session/synchronization_driver.py +0 -0
  234. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/__init__.py +0 -0
  235. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
  236. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
  237. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
  238. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
  239. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
  240. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
  241. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
  242. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
  243. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
  244. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
  245. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
  246. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
  247. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
  248. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
  249. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
  250. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
  251. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
  252. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
  253. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
  254. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
  255. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
  256. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
  257. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
  258. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
  259. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
  260. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
  261. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
  262. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
  263. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
  264. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
  265. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
  266. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
  267. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
  268. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
  269. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
  270. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
  271. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
  272. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
  273. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/__init__.py +0 -0
  274. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/data/__init__.py +0 -0
  275. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/data/cables.csv +0 -0
  276. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/data/sequence_lines.csv +0 -0
  277. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/data/transformers.csv +0 -0
  278. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/data/wires.csv +0 -0
  279. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/templates.py +0 -0
  280. {GridCal-5.1.29 → GridCal-5.1.30}/GridCal/update.py +0 -0
  281. {GridCal-5.1.29 → GridCal-5.1.30}/setup.cfg +0 -0
  282. {GridCal-5.1.29 → GridCal-5.1.30}/setup.py +0 -0
@@ -585,57 +585,31 @@ class SimulationsMain(TimeEventsMain):
585
585
  self.ui.resultsTableView.setModel(None)
586
586
  self.ui.resultsLogsTreeView.setModel(None)
587
587
 
588
- def get_compatible_from_to_buses_and_inter_branches(self) -> Tuple[
589
- bool,
590
- List[Tuple[int, dev.Bus]],
591
- List[Tuple[int, dev.Bus]],
592
- List[Tuple[int, object, float]],
593
- List[Tuple[int, object, float]],
594
- List[dev.Area | dev.Zone | dev.Country], List[dev.Area | dev.Zone | dev.Country]]:
588
+ def get_compatible_from_to_buses_and_inter_branches(self) -> dev.InterAggregationInfo:
595
589
  """
596
590
  Get the lists that help defining the inter area objects
597
- :return: success?,
598
- list of tuples bus idx, Bus in the areas from,
599
- list of tuples bus idx, Bus in the areas to,
600
- List of inter area Branches (branch index, branch object, flow sense w.r.t the area exchange),
601
- List of inter area HVDC (branch index, branch object, flow sense w.r.t the area exchange),
602
- List of areas from,
603
- List of areas to
591
+ :return: InterAggregationInfo
604
592
  """
605
593
  dev_tpe_from = self.exchange_places_dict[self.ui.fromComboBox.currentText()]
606
594
  devs_from = self.circuit.get_elements_by_type(dev_tpe_from)
607
595
  from_idx = gf.get_checked_indices(self.ui.fromListView.model())
608
596
  objects_from = [devs_from[i] for i in from_idx]
609
- lst_from = self.circuit.get_aggregation_buses(objects_from)
610
- buses_from_set = {x[1] for x in lst_from}
611
597
 
612
598
  dev_tpe_to = self.exchange_places_dict[self.ui.toComboBox.currentText()]
613
599
  devs_to = self.circuit.get_elements_by_type(dev_tpe_to)
614
600
  to_idx = gf.get_checked_indices(self.ui.toListView.model())
615
601
  objects_to = [devs_to[i] for i in to_idx]
616
- lst_to = self.circuit.get_aggregation_buses(objects_to)
617
- buses_to_set = {x[1] for x in lst_to}
618
602
 
619
- buses_intersection = buses_from_set & buses_to_set
620
-
621
- if len(buses_intersection) > 0:
622
- logger = Logger()
623
- for bus in buses_intersection:
624
- logger.add_error(msg=f'Bus in both selected {dev_tpe_from.value} to {dev_tpe_to.value}',
625
- device_class=bus.device_type.value,
626
- device=bus.name)
603
+ info: dev.InterAggregationInfo = self.circuit.get_inter_aggregation_info(objects_from=objects_from,
604
+ objects_to=objects_to)
627
605
 
606
+ if info.logger.has_logs():
628
607
  # Show dialogue
629
- dlg = LogsDialogue(name="Add selected DB objects to current diagram", logger=logger)
608
+ dlg = LogsDialogue(name="Add selected DB objects to current diagram", logger=info.logger)
630
609
  dlg.setModal(True)
631
610
  dlg.exec()
632
611
 
633
- return False, [], [], [], [], [], []
634
-
635
- lst_br = self.circuit.get_inter_buses_branches(buses_from_set, buses_to_set)
636
- lst_br_hvdc = self.circuit.get_inter_buses_hvdc_branches(buses_from_set, buses_to_set)
637
-
638
- return True, lst_from, lst_to, lst_br, lst_br_hvdc, objects_from, objects_to
612
+ return info
639
613
 
640
614
  def get_selected_power_flow_options(self) -> sim.PowerFlowOptions:
641
615
  """
@@ -1286,20 +1260,19 @@ class SimulationsMain(TimeEventsMain):
1286
1260
  threshold = self.ui.atcThresholdSpinBox.value()
1287
1261
  max_report_elements = 5 # TODO: self.ui.ntcReportLimitingElementsSpinBox.value()
1288
1262
  # available transfer capacity inter areas
1289
- (compatible_areas, lst_from, lst_to, lst_br,
1290
- lst_hvdc_br, areas_from, areas_to) = self.get_compatible_from_to_buses_and_inter_branches()
1263
+ info: dev.InterAggregationInfo = self.get_compatible_from_to_buses_and_inter_branches()
1291
1264
 
1292
- if not compatible_areas:
1265
+ if not info.valid:
1293
1266
  return
1294
1267
 
1295
- idx_from = np.array([i for i, bus in lst_from])
1296
- idx_to = np.array([i for i, bus in lst_to])
1297
- idx_br = np.array([i for i, bus, sense in lst_br])
1298
- sense_br = np.array([sense for i, bus, sense in lst_br])
1268
+ idx_from = info.idx_bus_from
1269
+ idx_to = info.idx_bus_to
1270
+ idx_br = info.idx_branches
1271
+ sense_br = info.sense_branches
1299
1272
 
1300
1273
  # HVDC
1301
- idx_hvdc_br = np.array([i for i, bus, sense in lst_hvdc_br])
1302
- sense_hvdc_br = np.array([sense for i, bus, sense in lst_hvdc_br])
1274
+ idx_hvdc_br = info.idx_hvdc
1275
+ sense_hvdc_br = info.sense_hvdc
1303
1276
 
1304
1277
  if self.ui.usePfValuesForAtcCheckBox.isChecked():
1305
1278
  pf_results = self.session.power_flow
@@ -1401,21 +1374,19 @@ class SimulationsMain(TimeEventsMain):
1401
1374
  max_report_elements = 5 # TODO: self.ui.ntcReportLimitingElementsSpinBox.value()
1402
1375
 
1403
1376
  # available transfer capacity inter areas
1404
- (compatible_areas,
1405
- lst_from, lst_to, lst_br,
1406
- lst_hvdc_br, areas_from, areas_to) = self.get_compatible_from_to_buses_and_inter_branches()
1377
+ info: dev.InterAggregationInfo = self.get_compatible_from_to_buses_and_inter_branches()
1407
1378
 
1408
- if not compatible_areas:
1379
+ if not info.valid:
1409
1380
  return
1410
1381
 
1411
- idx_from = np.array([i for i, bus in lst_from])
1412
- idx_to = np.array([i for i, bus in lst_to])
1413
- idx_br = np.array([i for i, bus, sense in lst_br])
1414
- sense_br = np.array([sense for i, bus, sense in lst_br])
1382
+ idx_from = info.idx_bus_from
1383
+ idx_to = info.idx_bus_to
1384
+ idx_br = info.idx_branches
1385
+ sense_br = info.sense_branches
1415
1386
 
1416
1387
  # HVDC
1417
- idx_hvdc_br = np.array([i for i, bus, sense in lst_hvdc_br])
1418
- sense_hvdc_br = np.array([sense for i, bus, sense in lst_hvdc_br])
1388
+ idx_hvdc_br = info.idx_hvdc
1389
+ sense_hvdc_br = info.sense_hvdc
1419
1390
 
1420
1391
  if self.ui.usePfValuesForAtcCheckBox.isChecked():
1421
1392
  pf_results = self.session.power_flow_ts
@@ -1535,19 +1506,19 @@ class SimulationsMain(TimeEventsMain):
1535
1506
 
1536
1507
  if self.ui.atcRadioButton.isChecked():
1537
1508
  use_alpha = True
1538
- compatible_areas, lst_from, lst_to, lst_br, lst_hvdc_br, areas_from, areas_to = self.get_compatible_from_to_buses_and_inter_branches()
1509
+ info: dev.InterAggregationInfo = self.get_compatible_from_to_buses_and_inter_branches()
1539
1510
 
1540
- if compatible_areas:
1541
- idx_from = [i for i, bus in lst_from]
1542
- idx_to = [i for i, bus in lst_to]
1511
+ if info.valid:
1512
+ idx_from = info.idx_bus_from
1513
+ idx_to = info.idx_bus_to
1543
1514
 
1544
1515
  alpha_vec[idx_from] *= 2
1545
1516
  alpha_vec[idx_to] *= -2
1546
1517
  sel_bus_idx = np.zeros(0, dtype=int) # for completeness
1547
1518
 
1548
1519
  # HVDC
1549
- idx_hvdc_br = np.array([i for i, bus, sense in lst_hvdc_br])
1550
- sense_hvdc_br = np.array([sense for i, bus, sense in lst_hvdc_br])
1520
+ idx_hvdc_br = info.idx_hvdc
1521
+ sense_hvdc_br = info.sense_hvdc
1551
1522
  else:
1552
1523
  sel_bus_idx = np.zeros(0, dtype=int) # for completeness
1553
1524
  # incompatible areas...exit
@@ -1897,23 +1868,17 @@ class SimulationsMain(TimeEventsMain):
1897
1868
 
1898
1869
  # available transfer capacity inter areas
1899
1870
  if maximize_flows:
1900
- (compatible_areas, lst_from, lst_to,
1901
- lst_br, lst_hvdc_br, areas_from, areas_to) = self.get_compatible_from_to_buses_and_inter_branches()
1902
- idx_from = np.array([i for i, bus in lst_from])
1903
- idx_to = np.array([i for i, bus in lst_to])
1871
+ inter_aggregation_info: dev.InterAggregationInfo = self.get_compatible_from_to_buses_and_inter_branches()
1904
1872
 
1905
- if len(idx_from) == 0:
1873
+ if len(inter_aggregation_info.lst_from) == 0:
1906
1874
  error_msg('The area "from" has no buses!')
1907
1875
  return None
1908
1876
 
1909
- if len(idx_to) == 0:
1877
+ if len(inter_aggregation_info.lst_to) == 0:
1910
1878
  error_msg('The area "to" has no buses!')
1911
1879
  return None
1912
1880
  else:
1913
- idx_from = None
1914
- idx_to = None
1915
- areas_from = None
1916
- areas_to = None
1881
+ inter_aggregation_info = None
1917
1882
 
1918
1883
  ips_method = self.ips_solvers_dict[self.ui.ips_method_comboBox.currentText()]
1919
1884
  ips_tolerance = 1.0 / (10.0 ** self.ui.ips_tolerance_spinBox.value())
@@ -1932,10 +1897,7 @@ class SimulationsMain(TimeEventsMain):
1932
1897
  skip_generation_limits=skip_generation_limits,
1933
1898
  lodf_tolerance=lodf_tolerance,
1934
1899
  maximize_flows=maximize_flows,
1935
- area_from_bus_idx=idx_from,
1936
- area_to_bus_idx=idx_to,
1937
- areas_from=areas_from,
1938
- areas_to=areas_to,
1900
+ inter_aggregation_info=inter_aggregation_info,
1939
1901
  unit_commitment=unit_commitment,
1940
1902
  export_model_fname=export_model_fname,
1941
1903
  generate_report=generate_report,
@@ -2112,16 +2074,15 @@ class SimulationsMain(TimeEventsMain):
2112
2074
  """
2113
2075
 
2114
2076
  # available transfer capacity inter areas
2115
- (compatible_areas, lst_from, lst_to, lst_br,
2116
- lst_hvdc_br, areas_from, areas_to) = self.get_compatible_from_to_buses_and_inter_branches()
2077
+ info: dev.InterAggregationInfo = self.get_compatible_from_to_buses_and_inter_branches()
2117
2078
 
2118
- if not compatible_areas:
2079
+ if not info.valid:
2119
2080
  error_msg('There are no compatible areas')
2120
2081
  return None
2121
2082
 
2122
- idx_from = np.array([i for i, bus in lst_from])
2123
- idx_to = np.array([i for i, bus in lst_to])
2124
- idx_br = np.array([i for i, bus, sense in lst_br])
2083
+ idx_from = info.idx_bus_from
2084
+ idx_to = info.idx_bus_to
2085
+ idx_br = info.idx_branches
2125
2086
 
2126
2087
  if len(idx_from) == 0:
2127
2088
  error_msg('The area "from" has no buses!')
@@ -16,7 +16,7 @@ import datetime
16
16
  _current_year_ = datetime.datetime.now().year
17
17
 
18
18
  # do not forget to keep a three-number version!!!
19
- __GridCal_VERSION__ = "5.1.29"
19
+ __GridCal_VERSION__ = "5.1.30"
20
20
 
21
21
  url = 'https://github.com/SanPen/GridCal'
22
22
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: GridCal
3
- Version: 5.1.29
3
+ Version: 5.1.30
4
4
  Summary: GridCal is a Power Systems simulation program intended for professional use and research
5
5
  Home-page: https://github.com/SanPen/GridCal
6
6
  Author: Santiago Peñate Vera et. Al.