GridCal 5.3.51__tar.gz → 5.3.53__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 (297) hide show
  1. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +25 -24
  2. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +22 -20
  3. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +22 -19
  4. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/simulations.py +17 -9
  5. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/icons_rc.py +2 -2
  6. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/__version__.py +1 -1
  7. {gridcal-5.3.51 → gridcal-5.3.53}/PKG-INFO +1 -1
  8. gridcal-5.3.51/GridCal/adequacy_output.csv +0 -955
  9. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ExecuteGridCal.py +0 -0
  10. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
  11. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
  12. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/AboutDialogue/gui.py +0 -0
  13. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
  14. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
  15. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
  16. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Analysis/__init__.py +0 -0
  17. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Analysis/gui.py +0 -0
  18. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Analysis/icons_rc.py +0 -0
  19. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
  20. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
  21. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
  22. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
  23. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/CascadingSteps/gui.py +0 -0
  24. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
  25. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
  26. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
  27. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
  28. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
  29. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
  30. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
  31. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
  32. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
  33. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
  34. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
  35. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/Editors/__init__.py +0 -0
  36. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/Editors/controllable_shunt_editor.py +0 -0
  37. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/Editors/generator_editor.py +0 -0
  38. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/Editors/line_editor.py +0 -0
  39. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/Editors/new_line_dialogue.py +0 -0
  40. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/Editors/transformer3w_editor.py +0 -0
  41. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/Editors/transformer_editor.py +0 -0
  42. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/Editors/transformer_taps_editor.py +0 -0
  43. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
  44. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +0 -0
  45. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
  46. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
  47. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
  48. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
  49. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
  50. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
  51. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
  52. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
  53. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +0 -0
  54. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
  55. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
  56. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
  57. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
  58. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
  59. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
  60. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
  61. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
  62. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
  63. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
  64. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
  65. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
  66. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +0 -0
  67. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
  68. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
  69. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
  70. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
  71. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
  72. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
  73. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
  74. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
  75. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
  76. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
  77. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
  78. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
  79. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
  80. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
  81. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
  82. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
  83. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
  84. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
  85. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
  86. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
  87. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
  88. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
  89. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
  90. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
  91. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
  92. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
  93. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
  94. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
  95. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
  96. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
  97. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
  98. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
  99. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +0 -0
  100. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
  101. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/__init__.py +0 -0
  102. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/base_diagram_widget.py +0 -0
  103. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
  104. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
  105. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
  106. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridGenerator/__init__.py +0 -0
  107. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
  108. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridGenerator/gui.py +0 -0
  109. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
  110. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
  111. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridMerge/__init__.py +0 -0
  112. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridMerge/build_diff_tree.py +0 -0
  113. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridMerge/demo_code.py +0 -0
  114. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridMerge/demo_code2.py +0 -0
  115. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridMerge/demo_code3.py +0 -0
  116. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridMerge/demo_code4.py +0 -0
  117. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridMerge/grid_diff.py +0 -0
  118. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridMerge/grid_diff_gui.py +0 -0
  119. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridMerge/grid_merge.py +0 -0
  120. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridMerge/grid_merge_gui.py +0 -0
  121. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/GridMerge/update_gui_file.py +0 -0
  122. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
  123. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
  124. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
  125. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
  126. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
  127. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
  128. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
  129. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
  130. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
  131. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
  132. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/ConsoleLog.py +0 -0
  133. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
  134. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/GridCalMain.py +0 -0
  135. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/MainWindow.py +0 -0
  136. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
  137. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
  138. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +0 -0
  139. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
  140. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
  141. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
  142. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
  143. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
  144. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
  145. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
  146. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
  147. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
  148. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
  149. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
  150. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
  151. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
  152. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/SubClasses/io.py +0 -0
  153. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/__init__.py +0 -0
  154. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/object_select_window.py +0 -0
  155. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Main/update_gui_file.py +0 -0
  156. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
  157. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
  158. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
  159. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
  160. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
  161. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
  162. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
  163. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
  164. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
  165. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
  166. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
  167. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
  168. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
  169. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
  170. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
  171. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
  172. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
  173. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
  174. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
  175. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
  176. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
  177. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
  178. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
  179. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
  180. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
  181. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SubstationDesigner/__init__.py +0 -0
  182. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SubstationDesigner/substation_designer.py +0 -0
  183. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
  184. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SubstationDesigner/update_gui_file.py +0 -0
  185. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
  186. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SyncDialogue/gui.py +0 -0
  187. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
  188. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
  189. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
  190. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SystemScaler/__init__.py +0 -0
  191. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
  192. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
  193. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
  194. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
  195. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
  196. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
  197. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
  198. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
  199. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/TowerBuilder/tower_builder.py +0 -0
  200. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
  201. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
  202. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
  203. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
  204. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
  205. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
  206. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Visualization/__init__.py +0 -0
  207. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Visualization/visualization.py +0 -0
  208. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Widgets/__init__.py +0 -0
  209. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
  210. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
  211. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
  212. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
  213. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
  214. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
  215. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
  216. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/__init__.py +0 -0
  217. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/associations_model.py +0 -0
  218. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/general_dialogues.py +0 -0
  219. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/gui_functions.py +0 -0
  220. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/messages.py +0 -0
  221. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/object_model.py +0 -0
  222. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/pandas_model.py +0 -0
  223. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/plot_config.py +0 -0
  224. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/profiles_model.py +0 -0
  225. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/python_console.py +0 -0
  226. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/python_highlighter.py +0 -0
  227. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/results_model.py +0 -0
  228. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/table_view_header_wrap.py +0 -0
  229. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/themes.py +0 -0
  230. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/toast_widget.py +0 -0
  231. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/update_gui_all.py +0 -0
  232. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/update_gui_common.py +0 -0
  233. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Gui/wrappable_table_model.py +0 -0
  234. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/LICENSE.txt +0 -0
  235. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Session/__init__.py +0 -0
  236. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Session/export_results_driver.py +0 -0
  237. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Session/file_handler.py +0 -0
  238. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Session/server_driver.py +0 -0
  239. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Session/session.py +0 -0
  240. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/Session/synchronization_driver.py +0 -0
  241. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/__init__.py +0 -0
  242. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/darkdetect/__init__.py +0 -0
  243. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/darkdetect/_dummy.py +0 -0
  244. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/darkdetect/_linux_detect.py +0 -0
  245. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/darkdetect/_mac_detect.py +0 -0
  246. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/darkdetect/_windows_detect.py +0 -0
  247. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
  248. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
  249. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
  250. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
  251. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
  252. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
  253. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
  254. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
  255. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
  256. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
  257. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
  258. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
  259. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
  260. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
  261. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
  262. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
  263. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
  264. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
  265. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
  266. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
  267. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
  268. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
  269. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
  270. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
  271. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
  272. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
  273. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
  274. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
  275. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
  276. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
  277. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
  278. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
  279. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
  280. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
  281. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
  282. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
  283. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
  284. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
  285. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/__init__.py +0 -0
  286. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/data/GridCal.ico +0 -0
  287. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/data/GridCal.svg +0 -0
  288. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/data/__init__.py +0 -0
  289. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/data/cables.csv +0 -0
  290. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/data/sequence_lines.csv +0 -0
  291. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/data/transformers.csv +0 -0
  292. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/data/wires.csv +0 -0
  293. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/plugins.py +0 -0
  294. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/templates.py +0 -0
  295. {gridcal-5.3.51 → gridcal-5.3.53}/GridCal/update.py +0 -0
  296. {gridcal-5.3.51 → gridcal-5.3.53}/setup.cfg +0 -0
  297. {gridcal-5.3.51 → gridcal-5.3.53}/setup.py +0 -0
@@ -39,7 +39,7 @@ from GridCalEngine.Devices.Substation import Bus
39
39
  if TYPE_CHECKING: # Only imports the below statements during type checking
40
40
  from GridCal.Gui.Diagrams.SchematicWidget.schematic_widget import SchematicWidget
41
41
 
42
- SHUNT_GRAPHICS = Union[
42
+ INJECTION_GRAPHICS = Union[
43
43
  BatteryGraphicItem,
44
44
  ShuntGraphicItem,
45
45
  ExternalGridGraphicItem,
@@ -117,7 +117,7 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
117
117
  self.r = r
118
118
 
119
119
  # loads, shunts, generators, etc...
120
- self._child_graphics: List[SHUNT_GRAPHICS] = list()
120
+ self._child_graphics: List[INJECTION_GRAPHICS] = list()
121
121
 
122
122
  # Enabled for short circuit
123
123
  self.sc_enabled = [False, False, False, False]
@@ -173,16 +173,16 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
173
173
  Get a list of all associated branch graphics
174
174
  :return:
175
175
  """
176
- conn: List[GenericDiagramWidget | SHUNT_GRAPHICS] = self._terminal.get_hosted_graphics()
176
+ conn: List[GenericDiagramWidget | INJECTION_GRAPHICS] = self._terminal.get_hosted_graphics()
177
177
 
178
178
  return conn
179
179
 
180
- def get_associated_widgets(self) -> List[GenericDiagramWidget | SHUNT_GRAPHICS]:
180
+ def get_associated_widgets(self) -> List[GenericDiagramWidget | INJECTION_GRAPHICS]:
181
181
  """
182
182
  Get a list of all associated graphics
183
183
  :return:
184
184
  """
185
- conn: List[GenericDiagramWidget | SHUNT_GRAPHICS] = self.get_associated_branch_graphics()
185
+ conn: List[GenericDiagramWidget | INJECTION_GRAPHICS] = self.get_associated_branch_graphics()
186
186
 
187
187
  for graphics in self._child_graphics:
188
188
  conn.append(graphics)
@@ -562,7 +562,7 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
562
562
  if deleted:
563
563
  self._terminal.clear()
564
564
 
565
- def delete_child(self, obj: SHUNT_GRAPHICS | InjectionTemplateGraphicItem):
565
+ def delete_child(self, obj: INJECTION_GRAPHICS | InjectionTemplateGraphicItem):
566
566
  """
567
567
  Delete a child object
568
568
  :param obj:
@@ -773,6 +773,17 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
773
773
  else:
774
774
  raise Exception("Cannot add device of type {}".format(api_obj.device_type.value))
775
775
 
776
+ def add_child_graphic(self, elm: INJECTION_DEVICE_TYPES, graphic: INJECTION_GRAPHICS):
777
+ """
778
+ Add a api object and its graphic to this bus graphics domain
779
+ :param elm:
780
+ :param graphic:
781
+ :return:
782
+ """
783
+ self._child_graphics.append(graphic)
784
+ self.arrange_children()
785
+ self.editor.graphics_manager.add_device(elm=elm, graphic=graphic)
786
+
776
787
  def add_load(self, api_obj: Union[Load, None] = None):
777
788
  """
778
789
  Add load object to bus
@@ -783,8 +794,7 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
783
794
  api_obj = self._editor.circuit.add_load(bus=self._api_object)
784
795
 
785
796
  _grph = LoadGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
786
- self._child_graphics.append(_grph)
787
- self.arrange_children()
797
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
788
798
  return _grph
789
799
 
790
800
  def add_shunt(self, api_obj: Union[Shunt, None] = None):
@@ -796,8 +806,7 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
796
806
  api_obj = self._editor.circuit.add_shunt(bus=self._api_object)
797
807
 
798
808
  _grph = ShuntGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
799
- self._child_graphics.append(_grph)
800
- self.arrange_children()
809
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
801
810
  return _grph
802
811
 
803
812
  def add_generator(self, api_obj: Union[Generator, None] = None):
@@ -809,8 +818,7 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
809
818
  api_obj = self._editor.circuit.add_generator(bus=self._api_object)
810
819
 
811
820
  _grph = GeneratorGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
812
- self._child_graphics.append(_grph)
813
- self.arrange_children()
821
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
814
822
  return _grph
815
823
 
816
824
  def add_static_generator(self, api_obj: Union[StaticGenerator, None] = None):
@@ -823,8 +831,7 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
823
831
  api_obj = self._editor.circuit.add_static_generator(bus=self._api_object)
824
832
 
825
833
  _grph = StaticGeneratorGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
826
- self._child_graphics.append(_grph)
827
- self.arrange_children()
834
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
828
835
 
829
836
  return _grph
830
837
 
@@ -838,8 +845,7 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
838
845
  api_obj = self._editor.circuit.add_battery(bus=self._api_object)
839
846
 
840
847
  _grph = BatteryGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
841
- self._child_graphics.append(_grph)
842
- self.arrange_children()
848
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
843
849
 
844
850
  return _grph
845
851
 
@@ -853,9 +859,7 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
853
859
  api_obj = self._editor.circuit.add_external_grid(bus=self._api_object)
854
860
 
855
861
  _grph = ExternalGridGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
856
- self._child_graphics.append(_grph)
857
- self.arrange_children()
858
-
862
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
859
863
  return _grph
860
864
 
861
865
  def add_current_injection(self, api_obj: Union[CurrentInjection, None] = None):
@@ -868,9 +872,7 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
868
872
  api_obj = self._editor.circuit.add_current_injection(bus=self._api_object)
869
873
 
870
874
  _grph = CurrentInjectionGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
871
- self._child_graphics.append(_grph)
872
- self.arrange_children()
873
-
875
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
874
876
  return _grph
875
877
 
876
878
  def add_controllable_shunt(self, api_obj: Union[ControllableShunt, None] = None):
@@ -883,8 +885,7 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
883
885
  api_obj = self._editor.circuit.add_controllable_shunt(bus=self._api_object)
884
886
 
885
887
  _grph = ControllableShuntGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
886
- self._child_graphics.append(_grph)
887
- self.arrange_children()
888
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
888
889
 
889
890
  return _grph
890
891
 
@@ -11,7 +11,7 @@ from PySide6.QtGui import QPen, QCursor, QIcon, QPixmap, QBrush, QColor
11
11
  from PySide6.QtWidgets import QMenu, QGraphicsSceneMouseEvent
12
12
 
13
13
  from GridCal.Gui.Diagrams.SchematicWidget.Injections.injections_template_graphics import InjectionTemplateGraphicItem
14
- from GridCal.Gui.Diagrams.SchematicWidget.Substation.bus_graphics import SHUNT_GRAPHICS
14
+ from GridCal.Gui.Diagrams.SchematicWidget.Substation.bus_graphics import INJECTION_GRAPHICS
15
15
  from GridCal.Gui.messages import yes_no_question
16
16
  from GridCal.Gui.gui_functions import add_menu_entry
17
17
  from GridCal.Gui.Diagrams.generic_graphics import (GenericDiagramWidget, ACTIVE, DEACTIVATED,
@@ -82,7 +82,7 @@ class BusBarGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
82
82
  self.w = w if w >= self.min_w else self.min_w
83
83
 
84
84
  # loads, shunts, generators, etc...
85
- self._child_graphics: List[SHUNT_GRAPHICS] = list()
85
+ self._child_graphics: List[INJECTION_GRAPHICS] = list()
86
86
 
87
87
  # Enabled for short circuit
88
88
  self.sc_enabled = [False, False, False, False]
@@ -509,7 +509,7 @@ class BusBarGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
509
509
  if ok:
510
510
  self._editor.remove_element(device=self.api_object, graphic_object=self)
511
511
 
512
- def delete_child(self, obj: SHUNT_GRAPHICS | InjectionTemplateGraphicItem):
512
+ def delete_child(self, obj: INJECTION_GRAPHICS | InjectionTemplateGraphicItem):
513
513
  """
514
514
  Delete a child object
515
515
  :param obj:
@@ -661,6 +661,17 @@ class BusBarGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
661
661
  else:
662
662
  raise Exception("Cannot add device of type {}".format(api_obj.device_type.value))
663
663
 
664
+ def add_child_graphic(self, elm: INJECTION_DEVICE_TYPES, graphic: INJECTION_GRAPHICS):
665
+ """
666
+ Add a api object and its graphic to this bus graphics domain
667
+ :param elm:
668
+ :param graphic:
669
+ :return:
670
+ """
671
+ self._child_graphics.append(graphic)
672
+ self.arrange_children()
673
+ self._editor.graphics_manager.add_device(elm=elm, graphic=graphic)
674
+
664
675
  def add_load(self, api_obj: Union[Load, None] = None) -> LoadGraphicItem:
665
676
  """
666
677
  Add load object to bus
@@ -671,8 +682,7 @@ class BusBarGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
671
682
  api_obj = self._editor.circuit.add_load(cn=self._api_object.cn)
672
683
 
673
684
  _grph = LoadGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
674
- self._child_graphics.append(_grph)
675
- self.arrange_children()
685
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
676
686
  return _grph
677
687
 
678
688
  def add_shunt(self, api_obj: Union[Shunt, None] = None) -> ShuntGraphicItem:
@@ -684,8 +694,7 @@ class BusBarGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
684
694
  api_obj = self._editor.circuit.add_shunt(cn=self._api_object.cn)
685
695
 
686
696
  _grph = ShuntGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
687
- self._child_graphics.append(_grph)
688
- self.arrange_children()
697
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
689
698
  return _grph
690
699
 
691
700
  def add_generator(self, api_obj: Union[Generator, None] = None) -> GeneratorGraphicItem:
@@ -697,8 +706,7 @@ class BusBarGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
697
706
  api_obj = self._editor.circuit.add_generator(cn=self._api_object.cn)
698
707
 
699
708
  _grph = GeneratorGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
700
- self._child_graphics.append(_grph)
701
- self.arrange_children()
709
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
702
710
  return _grph
703
711
 
704
712
  def add_static_generator(self, api_obj: Union[StaticGenerator, None] = None) -> StaticGeneratorGraphicItem:
@@ -711,9 +719,7 @@ class BusBarGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
711
719
  api_obj = self._editor.circuit.add_static_generator(cn=self._api_object.cn)
712
720
 
713
721
  _grph = StaticGeneratorGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
714
- self._child_graphics.append(_grph)
715
- self.arrange_children()
716
-
722
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
717
723
  return _grph
718
724
 
719
725
  def add_battery(self, api_obj: Union[Battery, None] = None) -> BatteryGraphicItem:
@@ -726,8 +732,7 @@ class BusBarGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
726
732
  api_obj = self._editor.circuit.add_battery(cn=self._api_object.cn)
727
733
 
728
734
  _grph = BatteryGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
729
- self._child_graphics.append(_grph)
730
- self.arrange_children()
735
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
731
736
 
732
737
  return _grph
733
738
 
@@ -741,8 +746,7 @@ class BusBarGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
741
746
  api_obj = self._editor.circuit.add_external_grid(cn=self._api_object.cn)
742
747
 
743
748
  _grph = ExternalGridGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
744
- self._child_graphics.append(_grph)
745
- self.arrange_children()
749
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
746
750
 
747
751
  return _grph
748
752
 
@@ -756,8 +760,7 @@ class BusBarGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
756
760
  api_obj = self._editor.circuit.add_current_injection(cn=self._api_object.cn)
757
761
 
758
762
  _grph = CurrentInjectionGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
759
- self._child_graphics.append(_grph)
760
- self.arrange_children()
763
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
761
764
 
762
765
  return _grph
763
766
 
@@ -771,8 +774,7 @@ class BusBarGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
771
774
  api_obj = self._editor.circuit.add_controllable_shunt(cn=self._api_object.cn)
772
775
 
773
776
  _grph = ControllableShuntGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
774
- self._child_graphics.append(_grph)
775
- self.arrange_children()
777
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
776
778
 
777
779
  return _grph
778
780
 
@@ -11,7 +11,7 @@ from PySide6.QtGui import QPen, QCursor, QIcon, QPixmap
11
11
  from PySide6.QtWidgets import QMenu, QGraphicsSceneMouseEvent
12
12
 
13
13
  from GridCal.Gui.Diagrams.SchematicWidget.Injections.injections_template_graphics import InjectionTemplateGraphicItem
14
- from GridCal.Gui.Diagrams.SchematicWidget.Substation.bus_graphics import SHUNT_GRAPHICS
14
+ from GridCal.Gui.Diagrams.SchematicWidget.Substation.bus_graphics import INJECTION_GRAPHICS
15
15
  from GridCal.Gui.messages import yes_no_question
16
16
  from GridCal.Gui.gui_functions import add_menu_entry
17
17
  from GridCal.Gui.Diagrams.generic_graphics import (GenericDiagramWidget, ACTIVE, FONT_SCALE)
@@ -79,7 +79,7 @@ class CnGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
79
79
  self.w = w if w >= self.min_w else self.min_w
80
80
 
81
81
  # loads, shunts, generators, etc...
82
- self._child_graphics: List[SHUNT_GRAPHICS] = list()
82
+ self._child_graphics: List[INJECTION_GRAPHICS] = list()
83
83
 
84
84
  # Enabled for short circuit
85
85
  self.sc_enabled = [False, False, False, False]
@@ -367,7 +367,7 @@ class CnGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
367
367
 
368
368
  self._editor.remove_element(device=self._api_object, graphic_object=self)
369
369
 
370
- def delete_child(self, obj: SHUNT_GRAPHICS | InjectionTemplateGraphicItem):
370
+ def delete_child(self, obj: INJECTION_GRAPHICS | InjectionTemplateGraphicItem):
371
371
  """
372
372
  Delete a child object
373
373
  :param obj:
@@ -453,6 +453,17 @@ class CnGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
453
453
  else:
454
454
  raise Exception("Cannot add device of type {}".format(api_obj.device_type.value))
455
455
 
456
+ def add_child_graphic(self, elm: INJECTION_DEVICE_TYPES, graphic: INJECTION_GRAPHICS):
457
+ """
458
+ Add a api object and its graphic to this bus graphics domain
459
+ :param elm:
460
+ :param graphic:
461
+ :return:
462
+ """
463
+ self._child_graphics.append(graphic)
464
+ self.arrange_children()
465
+ self._editor.graphics_manager.add_device(elm=elm, graphic=graphic)
466
+
456
467
  def add_load(self, api_obj: Union[Load, None] = None) -> LoadGraphicItem:
457
468
  """
458
469
  Add load object to bus
@@ -463,8 +474,7 @@ class CnGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
463
474
  api_obj = self._editor.circuit.add_load(cn=self._api_object)
464
475
 
465
476
  _grph = LoadGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
466
- self._child_graphics.append(_grph)
467
- self.arrange_children()
477
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
468
478
  return _grph
469
479
 
470
480
  def add_shunt(self, api_obj: Union[Shunt, None] = None) -> ShuntGraphicItem:
@@ -477,8 +487,7 @@ class CnGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
477
487
  api_obj = self._editor.circuit.add_shunt(cn=self._api_object)
478
488
 
479
489
  _grph = ShuntGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
480
- self._child_graphics.append(_grph)
481
- self.arrange_children()
490
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
482
491
  return _grph
483
492
 
484
493
  def add_generator(self, api_obj: Union[Generator, None] = None) -> GeneratorGraphicItem:
@@ -491,8 +500,7 @@ class CnGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
491
500
  api_obj = self._editor.circuit.add_generator(cn=self._api_object)
492
501
 
493
502
  _grph = GeneratorGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
494
- self._child_graphics.append(_grph)
495
- self.arrange_children()
503
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
496
504
  return _grph
497
505
 
498
506
  def add_static_generator(self, api_obj: Union[StaticGenerator, None] = None) -> StaticGeneratorGraphicItem:
@@ -505,8 +513,7 @@ class CnGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
505
513
  api_obj = self._editor.circuit.add_static_generator(cn=self._api_object)
506
514
 
507
515
  _grph = StaticGeneratorGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
508
- self._child_graphics.append(_grph)
509
- self.arrange_children()
516
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
510
517
 
511
518
  return _grph
512
519
 
@@ -520,8 +527,7 @@ class CnGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
520
527
  api_obj = self._editor.circuit.add_battery(cn=self._api_object)
521
528
 
522
529
  _grph = BatteryGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
523
- self._child_graphics.append(_grph)
524
- self.arrange_children()
530
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
525
531
 
526
532
  return _grph
527
533
 
@@ -535,8 +541,7 @@ class CnGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
535
541
  api_obj = self._editor.circuit.add_external_grid(cn=self._api_object)
536
542
 
537
543
  _grph = ExternalGridGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
538
- self._child_graphics.append(_grph)
539
- self.arrange_children()
544
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
540
545
 
541
546
  return _grph
542
547
 
@@ -550,8 +555,7 @@ class CnGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
550
555
  api_obj = self._editor.circuit.add_current_injection(cn=self._api_object)
551
556
 
552
557
  _grph = CurrentInjectionGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
553
- self._child_graphics.append(_grph)
554
- self.arrange_children()
558
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
555
559
 
556
560
  return _grph
557
561
 
@@ -565,8 +569,7 @@ class CnGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
565
569
  api_obj = self._editor.circuit.add_controllable_shunt(cn=self._api_object)
566
570
 
567
571
  _grph = ControllableShuntGraphicItem(parent=self, api_obj=api_obj, editor=self._editor)
568
- self._child_graphics.append(_grph)
569
- self.arrange_children()
572
+ self.add_child_graphic(elm=api_obj, graphic=_grph)
570
573
 
571
574
  return _grph
572
575
 
@@ -687,15 +687,23 @@ class SimulationsMain(TimeEventsMain):
687
687
  Get the lists that help defining the inter area objects
688
688
  :return: InterAggregationInfo
689
689
  """
690
- dev_tpe_from = self.exchange_places_dict[self.ui.fromComboBox.currentText()]
691
- devs_from = self.circuit.get_elements_by_type(dev_tpe_from)
692
- from_idx = gf.get_checked_indices(self.ui.fromListView.model())
693
- objects_from = [devs_from[i] for i in from_idx]
694
-
695
- dev_tpe_to = self.exchange_places_dict[self.ui.toComboBox.currentText()]
696
- devs_to = self.circuit.get_elements_by_type(dev_tpe_to)
697
- to_idx = gf.get_checked_indices(self.ui.toListView.model())
698
- objects_to = [devs_to[i] for i in to_idx]
690
+ if self.ui.fromListView.model() is not None:
691
+ dev_tpe_from = self.exchange_places_dict[self.ui.fromComboBox.currentText()]
692
+ devs_from = self.circuit.get_elements_by_type(dev_tpe_from)
693
+ from_idx = gf.get_checked_indices(self.ui.fromListView.model())
694
+ objects_from = [devs_from[i] for i in from_idx]
695
+ else:
696
+ objects_from = []
697
+ self.show_error_toast("No from areas!")
698
+
699
+ if self.ui.toListView.model() is not None:
700
+ dev_tpe_to = self.exchange_places_dict[self.ui.toComboBox.currentText()]
701
+ devs_to = self.circuit.get_elements_by_type(dev_tpe_to)
702
+ to_idx = gf.get_checked_indices(self.ui.toListView.model())
703
+ objects_to = [devs_to[i] for i in to_idx]
704
+ else:
705
+ objects_to = []
706
+ self.show_error_toast("No to areas!")
699
707
 
700
708
  info: dev.InterAggregationInfo = self.circuit.get_inter_aggregation_info(objects_from=objects_from,
701
709
  objects_to=objects_to)
@@ -38475,7 +38475,7 @@ qt_resource_struct = b"\
38475
38475
  \x00\x00\x06b\x00\x01\x00\x00\x00\x01\x00\x02X+\
38476
38476
  \x00\x00\x01\x8b\xd7}+~\
38477
38477
  \x00\x00\x00\x9c\x00\x01\x00\x00\x00\x01\x00\x00&x\
38478
- \x00\x00\x01\x97/]\x1f\xdc\
38478
+ \x00\x00\x01\x97[F|\x06\
38479
38479
  \x00\x00\x0d\x90\x00\x00\x00\x00\x00\x01\x00\x04\xc7%\
38480
38480
  \x00\x00\x01\x88\xae\xf9[-\
38481
38481
  \x00\x00\x0c&\x00\x00\x00\x00\x00\x01\x00\x04Cm\
@@ -38691,7 +38691,7 @@ qt_resource_struct = b"\
38691
38691
  \x00\x00\x14\xdc\x00\x01\x00\x00\x00\x01\x00\x07k\x1a\
38692
38692
  \x00\x00\x01\x88\xae\xf9[)\
38693
38693
  \x00\x00\x0a\x80\x00\x00\x00\x00\x00\x01\x00\x03\xbc\xc3\
38694
- \x00\x00\x01\x88\xae\xf9[)\
38694
+ \x00\x00\x01\x97Z\x9e\xcd\x1a\
38695
38695
  \x00\x00\x12$\x00\x00\x00\x00\x00\x01\x00\x06\x8bJ\
38696
38696
  \x00\x00\x01\x88\xae\xf9[-\
38697
38697
  \x00\x00\x03\x9c\x00\x00\x00\x00\x00\x01\x00\x01W%\
@@ -6,7 +6,7 @@ import datetime
6
6
  _current_year_ = datetime.datetime.now().year
7
7
 
8
8
  # remember to keep a three-number version!!!
9
- __GridCal_VERSION__ = "5.3.51"
9
+ __GridCal_VERSION__ = "5.3.53"
10
10
 
11
11
  url = 'https://github.com/SanPen/GridCal'
12
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: GridCal
3
- Version: 5.3.51
3
+ Version: 5.3.53
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.