GridCal 5.1.41__tar.gz → 5.1.43__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 (281) hide show
  1. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +19 -16
  2. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +33 -31
  3. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/base_diagram_widget.py +220 -144
  4. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +144 -33
  5. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/io.py +7 -3
  6. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/simulations.py +1 -0
  7. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/profiles_model.py +8 -7
  8. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/table_view_header_wrap.py +3 -1
  9. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Session/server_driver.py +6 -3
  10. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Session/session.py +47 -19
  11. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/__version__.py +1 -1
  12. {GridCal-5.1.41 → GridCal-5.1.43}/PKG-INFO +1 -1
  13. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ExecuteGridCal.py +0 -0
  14. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
  15. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
  16. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/AboutDialogue/gui.py +0 -0
  17. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
  18. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
  19. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
  20. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Analysis/__init__.py +0 -0
  21. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Analysis/gui.py +0 -0
  22. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Analysis/icons_rc.py +0 -0
  23. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
  24. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
  25. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
  26. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
  27. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CascadingSteps/gui.py +0 -0
  28. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
  29. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
  30. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
  31. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
  32. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
  33. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
  34. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
  35. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
  36. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
  37. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
  38. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
  39. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
  40. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
  41. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
  42. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
  43. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
  44. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
  45. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
  46. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/new_line_dialogue.py +0 -0
  47. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
  48. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py +0 -0
  49. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
  50. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +0 -0
  51. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
  52. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
  53. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
  54. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
  55. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/gmt_local.py +0 -0
  56. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapbox.py +0 -0
  57. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapquest.py +0 -0
  58. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/open_street_map.py +0 -0
  59. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_toner.py +0 -0
  60. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_transport.py +0 -0
  61. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_watercolor.py +0 -0
  62. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
  63. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
  64. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
  65. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
  66. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
  67. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
  68. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
  69. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
  70. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
  71. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
  72. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
  73. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
  74. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +0 -0
  75. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
  76. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
  77. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
  78. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
  79. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
  80. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
  81. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
  82. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
  83. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
  84. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
  85. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
  86. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
  87. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
  88. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
  89. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
  90. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
  91. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
  92. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
  93. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
  94. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +0 -0
  95. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
  96. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
  97. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
  98. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
  99. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
  100. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
  101. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
  102. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
  103. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
  104. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
  105. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
  106. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
  107. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
  108. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
  109. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
  110. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
  111. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/__init__.py +0 -0
  112. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
  113. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
  114. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
  115. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/GridGenerator/__init__.py +0 -0
  116. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
  117. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/GridGenerator/gui.py +0 -0
  118. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
  119. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
  120. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
  121. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
  122. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
  123. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
  124. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
  125. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
  126. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
  127. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
  128. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
  129. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
  130. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/ConsoleLog.py +0 -0
  131. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
  132. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/GridCalMain.py +0 -0
  133. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/MainWindow.py +0 -0
  134. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
  135. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
  136. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
  137. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
  138. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
  139. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
  140. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
  141. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
  142. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Scripting/python_highlighter.py +0 -0
  143. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
  144. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
  145. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
  146. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
  147. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
  148. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
  149. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
  150. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/__init__.py +0 -0
  151. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/icons_rc.py +0 -0
  152. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/object_select_window.py +0 -0
  153. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/update_gui_file.py +0 -0
  154. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
  155. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
  156. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
  157. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
  158. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
  159. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
  160. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
  161. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
  162. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
  163. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
  164. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/ConsoleWidget.py +0 -0
  165. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
  166. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
  167. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
  168. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
  169. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
  170. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
  171. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
  172. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
  173. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
  174. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
  175. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
  176. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
  177. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
  178. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
  179. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
  180. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
  181. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
  182. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SyncDialogue/gui.py +0 -0
  183. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
  184. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
  185. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
  186. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SystemScaler/__init__.py +0 -0
  187. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
  188. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
  189. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
  190. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
  191. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
  192. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
  193. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/gui.py +0 -0
  194. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
  195. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
  196. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/test_.py +0 -0
  197. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
  198. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
  199. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
  200. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
  201. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
  202. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
  203. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Visualization/__init__.py +0 -0
  204. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Visualization/visualization.py +0 -0
  205. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Widgets/__init__.py +0 -0
  206. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
  207. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
  208. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
  209. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
  210. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
  211. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
  212. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
  213. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/__init__.py +0 -0
  214. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/associations_model.py +0 -0
  215. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/console_widget.py +0 -0
  216. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/general_dialogues.py +0 -0
  217. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/gui_functions.py +0 -0
  218. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/messages.py +0 -0
  219. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/object_model.py +0 -0
  220. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/pandas_model.py +0 -0
  221. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/plot_config.py +0 -0
  222. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/results_model.py +0 -0
  223. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/themes.py +0 -0
  224. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/update_gui_all.py +0 -0
  225. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/update_gui_common.py +0 -0
  226. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/wrappable_table_model.py +0 -0
  227. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/LICENSE.txt +0 -0
  228. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Session/__init__.py +0 -0
  229. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Session/export_results_driver.py +0 -0
  230. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Session/file_handler.py +0 -0
  231. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Session/synchronization_driver.py +0 -0
  232. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/__init__.py +0 -0
  233. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
  234. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
  235. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
  236. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
  237. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
  238. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
  239. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
  240. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
  241. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
  242. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
  243. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
  244. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
  245. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
  246. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
  247. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
  248. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
  249. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
  250. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
  251. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
  252. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
  253. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
  254. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
  255. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
  256. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
  257. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
  258. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
  259. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
  260. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
  261. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
  262. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
  263. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
  264. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
  265. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
  266. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
  267. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
  268. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
  269. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
  270. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
  271. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/__init__.py +0 -0
  272. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/data/__init__.py +0 -0
  273. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/data/cables.csv +0 -0
  274. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/data/sequence_lines.csv +0 -0
  275. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/data/transformers.csv +0 -0
  276. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/data/wires.csv +0 -0
  277. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/plugins.py +0 -0
  278. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/templates.py +0 -0
  279. {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/update.py +0 -0
  280. {GridCal-5.1.41 → GridCal-5.1.43}/setup.cfg +0 -0
  281. {GridCal-5.1.41 → GridCal-5.1.43}/setup.py +0 -0
@@ -14,8 +14,9 @@
14
14
  # You should have received a copy of the GNU Lesser General Public License
15
15
  # along with this program; if not, write to the Free Software Foundation,
16
16
  # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
+ from __future__ import annotations
17
18
  import os
18
- from typing import Union, List, Tuple, Dict
19
+ from typing import Union, List, Tuple, Dict, TYPE_CHECKING
19
20
  import json
20
21
  import numpy as np
21
22
  import math
@@ -56,9 +57,12 @@ import GridCal.Gui.Visualization.visualization as viz
56
57
  import GridCalEngine.Devices.Diagrams.palettes as palettes
57
58
  from GridCal.Gui.Diagrams.graphics_manager import ALL_MAP_GRAPHICS
58
59
  from GridCal.Gui.Diagrams.MapWidget.Tiles.tiles import Tiles
59
- from GridCal.Gui.Diagrams.base_diagram_widget import BaseDiagramWidget
60
+ from GridCal.Gui.Diagrams.base_diagram_widget import BaseDiagramWidget, qimage_to_cv
60
61
  from GridCal.Gui.messages import error_msg
61
62
 
63
+ if TYPE_CHECKING:
64
+ from GridCal.Gui.Main.SubClasses.Model.diagrams import DiagramsMain
65
+
62
66
  MAP_BRANCH_GRAPHIC_TYPES = Union[
63
67
  MapAcLine, MapDcLine, MapHvdcLine, MapFluidPathLine
64
68
  ]
@@ -203,6 +207,7 @@ class GridMapWidget(BaseDiagramWidget):
203
207
  """
204
208
 
205
209
  def __init__(self,
210
+ gui: DiagramsMain,
206
211
  tile_src: Tiles,
207
212
  start_level: int,
208
213
  longitude: float,
@@ -226,6 +231,7 @@ class GridMapWidget(BaseDiagramWidget):
226
231
  """
227
232
 
228
233
  BaseDiagramWidget.__init__(self,
234
+ gui=gui,
229
235
  circuit=circuit,
230
236
  diagram=MapDiagram(name=name,
231
237
  tile_source=tile_src.TilesetName,
@@ -1141,25 +1147,14 @@ class GridMapWidget(BaseDiagramWidget):
1141
1147
 
1142
1148
  graphic_object.set_colour(color=color, w=weight, style=style, tool_tip=tooltip)
1143
1149
 
1144
- def get_image(self, transparent: bool = False) -> Tuple[QImage, int, int]:
1150
+ def get_image(self, transparent: bool = False) -> QImage:
1145
1151
  """
1146
1152
  get the current picture
1147
1153
  :return: QImage, width, height
1148
1154
  """
1149
- w = self.width()
1150
- h = self.height()
1151
-
1152
- # image = QImage(w, h, QImage.Format_RGB32)
1153
- # image.fill(Qt.white)
1154
- #
1155
- # painter = QPainter(image)
1156
- # painter.setRenderHint(QPainter.Antialiasing)
1157
- # self.map.view.render(painter) # self.view stores the grid widgets
1158
- # # self.render(painter)
1159
- # painter.end()
1160
1155
  image = self.map.grab().toImage()
1161
1156
 
1162
- return image, w, h
1157
+ return image
1163
1158
 
1164
1159
  def take_picture(self, filename: str):
1165
1160
  """
@@ -1168,7 +1163,7 @@ class GridMapWidget(BaseDiagramWidget):
1168
1163
  name, extension = os.path.splitext(filename.lower())
1169
1164
 
1170
1165
  if extension == '.png':
1171
- image, _, _ = self.get_image()
1166
+ image = self.get_image()
1172
1167
  image.save(filename)
1173
1168
 
1174
1169
  elif extension == '.svg':
@@ -1187,6 +1182,14 @@ class GridMapWidget(BaseDiagramWidget):
1187
1182
  else:
1188
1183
  raise Exception('Extension ' + str(extension) + ' not supported :(')
1189
1184
 
1185
+ # def capture_video_frame(self):
1186
+ # """
1187
+ # Save video frame
1188
+ # """
1189
+ # image, w, h = self.get_image()
1190
+ # cv2_image = qimage_to_cv(image)
1191
+ # self._video.write(cv2_image)
1192
+
1190
1193
  def new_substation_diagram(self, substation: Substation):
1191
1194
  """
1192
1195
 
@@ -14,12 +14,13 @@
14
14
  # You should have received a copy of the GNU Lesser General Public License
15
15
  # along with this program; if not, write to the Free Software Foundation,
16
16
  # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
+ from __future__ import annotations
17
18
  import sys
18
19
  import os
19
20
  import json
20
21
  import numpy as np
21
22
  import pandas as pd
22
- from typing import List, Dict, Union, Tuple
23
+ from typing import List, Dict, Union, Tuple, TYPE_CHECKING
23
24
  from collections.abc import Callable
24
25
  from warnings import warn
25
26
  import networkx as nx
@@ -34,7 +35,6 @@ from PySide6.QtGui import (QIcon, QPixmap, QImage, QPainter, QStandardItemModel,
34
35
  from PySide6.QtWidgets import (QGraphicsView, QMessageBox, QGraphicsScene, QGraphicsSceneMouseEvent, QGraphicsItem)
35
36
  from PySide6.QtSvg import QSvgGenerator
36
37
 
37
- from GridCal.Gui.Diagrams.graphics_manager import ALL_GRAPHICS
38
38
  from GridCalEngine.Devices.types import ALL_DEV_TYPES, INJECTION_DEVICE_TYPES, FLUID_TYPES, BRANCH_TYPES
39
39
  from GridCalEngine.Devices.multi_circuit import MultiCircuit
40
40
  from GridCalEngine.Devices.Substation.bus import Bus
@@ -53,7 +53,8 @@ from GridCalEngine.Devices.Injections.generator import Generator
53
53
  from GridCalEngine.Devices.Fluid import FluidNode, FluidPath
54
54
  from GridCalEngine.Devices.Diagrams.schematic_diagram import SchematicDiagram
55
55
  from GridCalEngine.Devices.Diagrams.graphic_location import GraphicLocation
56
- from GridCalEngine.enumerations import DeviceType, SimulationTypes
56
+ from GridCalEngine.Simulations import PowerFlowTimeSeriesResults
57
+ from GridCalEngine.enumerations import DeviceType, ResultTypes
57
58
  from GridCalEngine.basic_structures import Vec, CxVec, IntVec, Logger
58
59
 
59
60
  from GridCal.Gui.Diagrams.SchematicWidget.terminal_item import BarTerminalItem, RoundTerminalItem
@@ -81,6 +82,9 @@ import GridCal.Gui.Visualization.visualization as viz
81
82
  import GridCalEngine.Devices.Diagrams.palettes as palettes
82
83
  from GridCal.Gui.messages import info_msg, error_msg, warning_msg, yes_no_question
83
84
 
85
+ if TYPE_CHECKING:
86
+ from GridCal.Gui.Main.SubClasses.Model.diagrams import DiagramsMain
87
+
84
88
  BRANCH_GRAPHICS = Union[
85
89
  LineGraphicItem,
86
90
  WindingGraphicItem,
@@ -213,7 +217,7 @@ class SchematicLibraryModel(QStandardItemModel):
213
217
  :param index:
214
218
  :return:
215
219
  """
216
- return Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemFlag.ItemIsDragEnabled
220
+ return Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsDragEnabled
217
221
 
218
222
 
219
223
  class SchematicScene(QGraphicsScene):
@@ -293,7 +297,7 @@ class CustomGraphicsView(QGraphicsView):
293
297
  """
294
298
 
295
299
  # By pressing ctrl while dragging, we can move the grid
296
- if event.modifiers() & Qt.ControlModifier:
300
+ if event.modifiers() & Qt.KeyboardModifier.ControlModifier:
297
301
  self.drag_mode = QGraphicsView.DragMode.ScrollHandDrag
298
302
  else:
299
303
  self.drag_mode = QGraphicsView.DragMode.RubberBandDrag
@@ -335,6 +339,7 @@ class SchematicWidget(BaseDiagramWidget):
335
339
  """
336
340
 
337
341
  def __init__(self,
342
+ gui: DiagramsMain,
338
343
  circuit: MultiCircuit,
339
344
  diagram: Union[SchematicDiagram, None],
340
345
  default_bus_voltage: float = 10.0,
@@ -351,6 +356,7 @@ class SchematicWidget(BaseDiagramWidget):
351
356
  """
352
357
 
353
358
  BaseDiagramWidget.__init__(self,
359
+ gui=gui,
354
360
  circuit=circuit,
355
361
  diagram=diagram,
356
362
  library_model=SchematicLibraryModel(),
@@ -434,7 +440,7 @@ class SchematicWidget(BaseDiagramWidget):
434
440
  if event.mimeData().hasFormat('component/name'):
435
441
  obj_type = event.mimeData().data('component/name')
436
442
 
437
- point0 = self.editor_graphics_view.mapToScene(event.position().x(), event.position().y())
443
+ point0 = self.editor_graphics_view.mapToScene(int(event.position().x()), int(event.position().y()))
438
444
  x0 = point0.x()
439
445
  y0 = point0.y()
440
446
 
@@ -1938,7 +1944,7 @@ class SchematicWidget(BaseDiagramWidget):
1938
1944
  bus.y = y[i]
1939
1945
  i += 1
1940
1946
 
1941
- def get_image(self, transparent: bool = False) -> Tuple[QImage, int, int]:
1947
+ def get_image(self, transparent: bool = False) -> QImage:
1942
1948
  """
1943
1949
  get the current picture
1944
1950
  :param transparent: Set a transparent background
@@ -1960,7 +1966,7 @@ class SchematicWidget(BaseDiagramWidget):
1960
1966
  painter.end()
1961
1967
  # image = self.editor_graphics_view.grab().toImage()
1962
1968
 
1963
- return image, w, h
1969
+ return image
1964
1970
 
1965
1971
  def take_picture(self, filename: str):
1966
1972
  """
@@ -1969,7 +1975,7 @@ class SchematicWidget(BaseDiagramWidget):
1969
1975
  name, extension = os.path.splitext(filename.lower())
1970
1976
 
1971
1977
  if extension == '.png':
1972
- image, _, _ = self.get_image(transparent=False)
1978
+ image = self.get_image(transparent=False)
1973
1979
  image.save(filename)
1974
1980
 
1975
1981
  elif extension == '.svg':
@@ -3700,15 +3706,21 @@ class SchematicWidget(BaseDiagramWidget):
3700
3706
 
3701
3707
  return min_x, max_x, min_y, max_y
3702
3708
 
3703
- def plot_bus(self, i, api_object: Bus):
3709
+ def plot_bus(self, i: int, api_object: Bus):
3704
3710
  """
3705
3711
  Plot branch results
3706
- :param i: branch index (not counting HVDC lines because those are not real Branches)
3712
+ :param i: bus index
3707
3713
  :param api_object: Bus API object
3708
3714
  :return:
3709
3715
  """
3710
3716
  fig = plt.figure(figsize=(12, 8))
3711
3717
  ax_1 = fig.add_subplot(211)
3718
+ ax_1.set_title('Power', fontsize=14)
3719
+ ax_1.set_ylabel('Injections [MW]', fontsize=11)
3720
+
3721
+ ax_2 = fig.add_subplot(212, sharex=ax_1)
3722
+ ax_2.set_title('Time', fontsize=14)
3723
+ ax_2.set_ylabel('Voltage [p.u]', fontsize=11)
3712
3724
 
3713
3725
  # set time
3714
3726
  x = self.circuit.get_time_array()
@@ -3719,18 +3731,16 @@ class SchematicWidget(BaseDiagramWidget):
3719
3731
  # Get all devices grouped by bus
3720
3732
  all_data = self.circuit.get_injection_devices_grouped_by_bus()
3721
3733
 
3722
- # filter injections by bus
3723
- bus_devices = all_data.get(api_object, None)
3724
-
3725
- voltage = dict()
3726
-
3727
- for key, driver in self.results_dictionary.items():
3728
- if hasattr(driver, 'results'):
3729
- if driver.results is not None:
3730
- if key == SimulationTypes.PowerFlowTimeSeries_run:
3731
- voltage[key] = np.abs(driver.results.voltage[:, i])
3734
+ # search drivers for voltage data
3735
+ for driver, results in self.gui.session.drivers_results_iter():
3736
+ if results is not None:
3737
+ if isinstance(results, PowerFlowTimeSeriesResults):
3738
+ table = results.mdl(result_type=ResultTypes.BusVoltageModule)
3739
+ table.plot(ax=ax_2, selected_col_idx=[i])
3732
3740
 
3733
3741
  # Injections
3742
+ # filter injections by bus
3743
+ bus_devices = all_data.get(api_object, None)
3734
3744
  if bus_devices:
3735
3745
 
3736
3746
  power_data = dict()
@@ -3752,8 +3762,7 @@ class SchematicWidget(BaseDiagramWidget):
3752
3762
  raise Exception("Missing shunt device for plotting")
3753
3763
 
3754
3764
  df = pd.DataFrame(data=power_data, index=x)
3755
- ax_1.set_title('Power', fontsize=14)
3756
- ax_1.set_ylabel('Injections [MW]', fontsize=11)
3765
+
3757
3766
  try:
3758
3767
  # yt area plots
3759
3768
  df.plot.area(ax=ax_1)
@@ -3761,14 +3770,6 @@ class SchematicWidget(BaseDiagramWidget):
3761
3770
  # use regular plots
3762
3771
  df.plot(ax=ax_1)
3763
3772
 
3764
- # voltage
3765
- if len(voltage.keys()):
3766
- ax_2 = fig.add_subplot(212, sharex=ax_1)
3767
- df = pd.DataFrame(data=voltage, index=x)
3768
- ax_2.set_title('Time', fontsize=14)
3769
- ax_2.set_ylabel('Voltage [p.u]', fontsize=11)
3770
- df.plot(ax=ax_2)
3771
-
3772
3773
  plt.legend()
3773
3774
  fig.suptitle(api_object.name, fontsize=20)
3774
3775
 
@@ -4115,6 +4116,7 @@ class SchematicWidget(BaseDiagramWidget):
4115
4116
  logger=self.logger)
4116
4117
 
4117
4118
  return SchematicWidget(
4119
+ gui=self.gui,
4118
4120
  circuit=self.circuit,
4119
4121
  diagram=self.diagram,
4120
4122
  default_bus_voltage=self.default_bus_voltage,