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.
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +19 -16
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +33 -31
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/base_diagram_widget.py +220 -144
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +144 -33
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/io.py +7 -3
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/simulations.py +1 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/profiles_model.py +8 -7
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/table_view_header_wrap.py +3 -1
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Session/server_driver.py +6 -3
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Session/session.py +47 -19
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/__version__.py +1 -1
- {GridCal-5.1.41 → GridCal-5.1.43}/PKG-INFO +1 -1
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ExecuteGridCal.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Analysis/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Analysis/gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Branches/new_line_dialogue.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/gmt_local.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapbox.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapquest.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/open_street_map.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_toner.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_transport.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_watercolor.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/MainWindow.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Scripting/python_highlighter.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/object_select_window.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/ConsoleWidget.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/test_.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Visualization/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Visualization/visualization.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Widgets/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/associations_model.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/console_widget.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/general_dialogues.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/gui_functions.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/messages.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/object_model.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/pandas_model.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/plot_config.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/results_model.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/themes.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/update_gui_all.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/update_gui_common.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Gui/wrappable_table_model.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/LICENSE.txt +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Session/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Session/export_results_driver.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Session/file_handler.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/Session/synchronization_driver.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/data/__init__.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/data/cables.csv +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/data/sequence_lines.csv +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/data/transformers.csv +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/data/wires.csv +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/plugins.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/templates.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/GridCal/update.py +0 -0
- {GridCal-5.1.41 → GridCal-5.1.43}/setup.cfg +0 -0
- {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) ->
|
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
|
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
|
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.
|
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) ->
|
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
|
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
|
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:
|
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
|
-
#
|
3723
|
-
|
3724
|
-
|
3725
|
-
|
3726
|
-
|
3727
|
-
|
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
|
-
|
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,
|