GridCal 5.1.28__tar.gz → 5.1.30__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/MainWindow.py +26 -16
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Model/objects.py +10 -10
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Model/time_events.py +1 -1
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/base_gui.py +32 -32
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/io.py +2 -2
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/simulations.py +57 -81
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/__version__.py +1 -1
- {GridCal-5.1.28 → GridCal-5.1.30}/PKG-INFO +1 -1
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ExecuteGridCal.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Analysis/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Analysis/gui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ConsoleWidget.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/blue_marble.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/cartodb.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/gmt_local.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/mapbox.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/mapquest.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/open_street_map.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_toner.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_transport.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_watercolor.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/map_events.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/new_line_dialogue.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/node_widget.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/base_diagram_widget.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/GeneralDialogues.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/GuiFunctions.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Scripting/python_highlighter.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/object_select_window.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/ConsoleWidget.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/gui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/test_.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Visualization/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Visualization/visualization.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Widgets/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/associations_model.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/messages.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/object_model.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/pandas_model.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/plot_config.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/plugins.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/profiles_model.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/table_view_header_wrap.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/themes.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/update_gui_all.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/update_gui_common.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/LICENSE.txt +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Session/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Session/export_results_driver.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Session/file_handler.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Session/results_model.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Session/server_driver.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Session/session.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Session/synchronization_driver.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/data/__init__.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/data/cables.csv +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/data/sequence_lines.csv +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/data/transformers.csv +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/data/wires.csv +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/templates.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/GridCal/update.py +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/setup.cfg +0 -0
- {GridCal-5.1.28 → GridCal-5.1.30}/setup.py +0 -0
@@ -31,7 +31,7 @@ class Ui_mainWindow(object):
|
|
31
31
|
def setupUi(self, mainWindow):
|
32
32
|
if not mainWindow.objectName():
|
33
33
|
mainWindow.setObjectName(u"mainWindow")
|
34
|
-
mainWindow.resize(
|
34
|
+
mainWindow.resize(1249, 820)
|
35
35
|
mainWindow.setBaseSize(QSize(0, 0))
|
36
36
|
font = QFont()
|
37
37
|
font.setPointSize(10)
|
@@ -3326,38 +3326,48 @@ class Ui_mainWindow(object):
|
|
3326
3326
|
self.frame_34.setObjectName(u"frame_34")
|
3327
3327
|
self.frame_34.setFrameShape(QFrame.NoFrame)
|
3328
3328
|
self.frame_34.setFrameShadow(QFrame.Raised)
|
3329
|
-
self.
|
3330
|
-
self.
|
3329
|
+
self.gridLayout_9 = QGridLayout(self.frame_34)
|
3330
|
+
self.gridLayout_9.setObjectName(u"gridLayout_9")
|
3331
3331
|
self.label_41 = QLabel(self.frame_34)
|
3332
3332
|
self.label_41.setObjectName(u"label_41")
|
3333
3333
|
self.label_41.setFont(font1)
|
3334
3334
|
|
3335
|
-
self.
|
3335
|
+
self.gridLayout_9.addWidget(self.label_41, 0, 0, 1, 1)
|
3336
3336
|
|
3337
|
-
self.
|
3338
|
-
self.
|
3339
|
-
self.areaFromListView.setFont(font1)
|
3337
|
+
self.fromComboBox = QComboBox(self.frame_34)
|
3338
|
+
self.fromComboBox.setObjectName(u"fromComboBox")
|
3340
3339
|
|
3341
|
-
self.
|
3340
|
+
self.gridLayout_9.addWidget(self.fromComboBox, 0, 1, 1, 1)
|
3341
|
+
|
3342
|
+
self.fromListView = QListView(self.frame_34)
|
3343
|
+
self.fromListView.setObjectName(u"fromListView")
|
3344
|
+
self.fromListView.setFont(font1)
|
3345
|
+
|
3346
|
+
self.gridLayout_9.addWidget(self.fromListView, 1, 0, 1, 2)
|
3342
3347
|
|
3343
3348
|
self.splitter_2.addWidget(self.frame_34)
|
3344
3349
|
self.frame_35 = QFrame(self.splitter_2)
|
3345
3350
|
self.frame_35.setObjectName(u"frame_35")
|
3346
3351
|
self.frame_35.setFrameShape(QFrame.NoFrame)
|
3347
3352
|
self.frame_35.setFrameShadow(QFrame.Raised)
|
3348
|
-
self.
|
3349
|
-
self.
|
3353
|
+
self.gridLayout_30 = QGridLayout(self.frame_35)
|
3354
|
+
self.gridLayout_30.setObjectName(u"gridLayout_30")
|
3350
3355
|
self.label_21 = QLabel(self.frame_35)
|
3351
3356
|
self.label_21.setObjectName(u"label_21")
|
3352
3357
|
self.label_21.setFont(font1)
|
3353
3358
|
|
3354
|
-
self.
|
3359
|
+
self.gridLayout_30.addWidget(self.label_21, 0, 0, 1, 1)
|
3360
|
+
|
3361
|
+
self.toComboBox = QComboBox(self.frame_35)
|
3362
|
+
self.toComboBox.setObjectName(u"toComboBox")
|
3363
|
+
|
3364
|
+
self.gridLayout_30.addWidget(self.toComboBox, 0, 1, 1, 1)
|
3355
3365
|
|
3356
|
-
self.
|
3357
|
-
self.
|
3358
|
-
self.
|
3366
|
+
self.toListView = QListView(self.frame_35)
|
3367
|
+
self.toListView.setObjectName(u"toListView")
|
3368
|
+
self.toListView.setFont(font1)
|
3359
3369
|
|
3360
|
-
self.
|
3370
|
+
self.gridLayout_30.addWidget(self.toListView, 1, 0, 1, 2)
|
3361
3371
|
|
3362
3372
|
self.splitter_2.addWidget(self.frame_35)
|
3363
3373
|
|
@@ -4427,7 +4437,7 @@ class Ui_mainWindow(object):
|
|
4427
4437
|
mainWindow.setCentralWidget(self.centralwidget)
|
4428
4438
|
self.menuBar = QMenuBar(mainWindow)
|
4429
4439
|
self.menuBar.setObjectName(u"menuBar")
|
4430
|
-
self.menuBar.setGeometry(QRect(0, 0,
|
4440
|
+
self.menuBar.setGeometry(QRect(0, 0, 1249, 21))
|
4431
4441
|
self.menuBar.setFont(font)
|
4432
4442
|
self.menuProject = QMenu(self.menuBar)
|
4433
4443
|
self.menuProject.setObjectName(u"menuProject")
|
@@ -527,7 +527,7 @@ class ObjectsTableMain(DiagramsMain):
|
|
527
527
|
|
528
528
|
# update the view
|
529
529
|
self.view_objects_data()
|
530
|
-
self.
|
530
|
+
self.update_from_to_list_views()
|
531
531
|
self.update_date_dependent_combos()
|
532
532
|
|
533
533
|
def add_objects_to_current_diagram(self):
|
@@ -573,45 +573,45 @@ class ObjectsTableMain(DiagramsMain):
|
|
573
573
|
|
574
574
|
if elm_type == DeviceType.SubstationDevice.value:
|
575
575
|
self.circuit.add_substation(dev.Substation(name=f'SE {self.circuit.get_substation_number() + 1}'))
|
576
|
-
self.
|
576
|
+
self.update_from_to_list_views()
|
577
577
|
|
578
578
|
elif elm_type == DeviceType.VoltageLevelDevice.value:
|
579
579
|
self.circuit.add_voltage_level(dev.VoltageLevel(
|
580
580
|
name=f'VL {self.circuit.get_voltage_levels_number() + 1}')
|
581
581
|
)
|
582
|
-
self.
|
582
|
+
self.update_from_to_list_views()
|
583
583
|
|
584
584
|
elif elm_type == DeviceType.BusBarDevice.value:
|
585
585
|
self.circuit.add_bus_bar(dev.BusBar(name=f'BB {self.circuit.get_bus_bars_number() + 1}'))
|
586
|
-
self.
|
586
|
+
self.update_from_to_list_views()
|
587
587
|
|
588
588
|
elif elm_type == DeviceType.ZoneDevice.value:
|
589
589
|
self.circuit.add_zone(dev.Zone(name=f'Zone {self.circuit.get_zone_number() + 1}'))
|
590
|
-
self.
|
590
|
+
self.update_from_to_list_views()
|
591
591
|
|
592
592
|
elif elm_type == DeviceType.AreaDevice.value:
|
593
593
|
self.circuit.add_area(dev.Area(name=f'Area {self.circuit.get_area_number() + 1}'))
|
594
|
-
self.
|
594
|
+
self.update_from_to_list_views()
|
595
595
|
|
596
596
|
elif elm_type == DeviceType.CountryDevice.value:
|
597
597
|
self.circuit.add_country(dev.Country(name=f'Country {self.circuit.get_country_number() + 1}'))
|
598
|
-
self.
|
598
|
+
self.update_from_to_list_views()
|
599
599
|
|
600
600
|
elif elm_type == DeviceType.CommunityDevice.value:
|
601
601
|
self.circuit.add_community(dev.Community(
|
602
602
|
name=f'Community {self.circuit.get_communities_number() + 1}')
|
603
603
|
)
|
604
|
-
self.
|
604
|
+
self.update_from_to_list_views()
|
605
605
|
|
606
606
|
elif elm_type == DeviceType.RegionDevice.value:
|
607
607
|
self.circuit.add_region(dev.Region(name=f'Region {self.circuit.get_regions_number() + 1}'))
|
608
|
-
self.
|
608
|
+
self.update_from_to_list_views()
|
609
609
|
|
610
610
|
elif elm_type == DeviceType.MunicipalityDevice.value:
|
611
611
|
self.circuit.add_municipality(dev.Municipality(
|
612
612
|
name=f'Municipalities {self.circuit.get_municipalities_number() + 1}')
|
613
613
|
)
|
614
|
-
self.
|
614
|
+
self.update_from_to_list_views()
|
615
615
|
|
616
616
|
elif elm_type == DeviceType.BusDevice.value:
|
617
617
|
self.circuit.add_bus(dev.Bus(name=f'Bus {self.circuit.get_bus_number() + 1}'))
|
@@ -115,7 +115,7 @@ class TimeEventsMain(ObjectsTableMain):
|
|
115
115
|
self.circuit.delete_profiles()
|
116
116
|
self.ui.profiles_tableView.setModel(None)
|
117
117
|
self.update_date_dependent_combos()
|
118
|
-
self.
|
118
|
+
self.update_from_to_list_views()
|
119
119
|
else:
|
120
120
|
pass
|
121
121
|
else:
|
@@ -34,7 +34,7 @@ from PySide6 import QtGui, QtWidgets, QtCore
|
|
34
34
|
# Engine imports
|
35
35
|
from GridCalEngine.Devices.multi_circuit import MultiCircuit
|
36
36
|
import GridCalEngine.Simulations as sim
|
37
|
-
from GridCalEngine.enumerations import EngineType
|
37
|
+
from GridCalEngine.enumerations import EngineType, DeviceType
|
38
38
|
from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit, compile_numerical_circuit_at
|
39
39
|
|
40
40
|
from GridCalEngine.Compilers.circuit_to_bentayga import BENTAYGA_AVAILABLE
|
@@ -149,7 +149,7 @@ class BaseMainGui(QMainWindow):
|
|
149
149
|
|
150
150
|
self.current_boundary_set: str = ""
|
151
151
|
|
152
|
-
# threads
|
152
|
+
# threads ------------------------------------------------------------------------------------------------------
|
153
153
|
self.painter = None
|
154
154
|
self.open_file_thread_object = None
|
155
155
|
self.save_file_thread_object = None
|
@@ -164,7 +164,7 @@ class BaseMainGui(QMainWindow):
|
|
164
164
|
self.simulation_start_index: int = -1
|
165
165
|
self.simulation_end_index: int = -1
|
166
166
|
|
167
|
-
# window pointers
|
167
|
+
# window pointers ----------------------------------------------------------------------------------------------
|
168
168
|
self.file_sync_window: Union[SyncDialogueWindow, None] = None
|
169
169
|
self.sigma_dialogue: Union[SigmaAnalysisGUI, None] = None
|
170
170
|
self.grid_generator_dialogue: Union[GridGeneratorGUI, None] = None
|
@@ -181,7 +181,7 @@ class BaseMainGui(QMainWindow):
|
|
181
181
|
self.contingency_checks_diag: Union[CheckListDialogue, None] = None
|
182
182
|
self.start_end_dialogue_window: Union[StartEndSelectionDialogue, None] = None
|
183
183
|
|
184
|
-
# available engines
|
184
|
+
# available engines --------------------------------------------------------------------------------------------
|
185
185
|
engine_lst = [EngineType.GridCal]
|
186
186
|
if NEWTON_PA_AVAILABLE:
|
187
187
|
engine_lst.append(EngineType.NewtonPA)
|
@@ -194,10 +194,19 @@ class BaseMainGui(QMainWindow):
|
|
194
194
|
self.ui.engineComboBox.setCurrentIndex(0)
|
195
195
|
self.engine_dict = {x.value: x for x in engine_lst}
|
196
196
|
|
197
|
-
#
|
197
|
+
# available engines --------------------------------------------------------------------------------------------
|
198
|
+
exchange_places = [DeviceType.AreaDevice, DeviceType.CountryDevice]
|
199
|
+
exchange_places_mdl = gf.get_list_model([x.value for x in exchange_places])
|
200
|
+
self.ui.fromComboBox.setModel(exchange_places_mdl)
|
201
|
+
self.ui.fromComboBox.setCurrentIndex(0)
|
202
|
+
self.ui.toComboBox.setModel(exchange_places_mdl)
|
203
|
+
self.ui.toComboBox.setCurrentIndex(0)
|
204
|
+
self.exchange_places_dict = {x.value: x for x in exchange_places}
|
205
|
+
|
206
|
+
# dark mode detection ------------------------------------------------------------------------------------------
|
198
207
|
self.ui.dark_mode_checkBox.setChecked(IS_DARK)
|
199
208
|
|
200
|
-
# Console
|
209
|
+
# Console ------------------------------------------------------------------------------------------------------
|
201
210
|
self.console: Union[ConsoleWidget, None] = None
|
202
211
|
try:
|
203
212
|
self.create_console()
|
@@ -206,7 +215,7 @@ class BaseMainGui(QMainWindow):
|
|
206
215
|
|
207
216
|
self.calculation_inputs_to_display = None
|
208
217
|
|
209
|
-
#
|
218
|
+
# --------------------------------------------------------------------------------------------------------------
|
210
219
|
self.ui.actionClear_stuff_running_right_now.triggered.connect(self.clear_stuff_running)
|
211
220
|
self.ui.actionAbout.triggered.connect(self.about_box)
|
212
221
|
self.ui.actionAuto_rate_branches.triggered.connect(self.auto_rate_branches)
|
@@ -230,21 +239,9 @@ class BaseMainGui(QMainWindow):
|
|
230
239
|
|
231
240
|
self.ui.grid_name_line_edit.textChanged.connect(self.change_circuit_name)
|
232
241
|
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
if self.catalogue_dialogue.ui.checkBox.isChecked():
|
238
|
-
# or self.catalogue_dialogue.ui.checkBox_5.isChecked()
|
239
|
-
transformers = self.catalogue_dialogue.get_transformer_catalogue(df)
|
240
|
-
self.circuit.transformer_types += transformers
|
241
|
-
|
242
|
-
elif self.catalogue_dialogue.ui.checkBox_2.isChecked():
|
243
|
-
self.circuit.underground_cable_types += self.catalogue_dialogue.get_cables_catalogue(df)
|
244
|
-
|
245
|
-
elif self.catalogue_dialogue.ui.checkBox_3.isChecked():
|
246
|
-
# or self.catalogue_dialogue.ui.checkBox_6.isChecked()
|
247
|
-
self.circuit.sequence_line_types += self.catalogue_dialogue.get_sequence_lines_catalogue(df)
|
242
|
+
# comboboxes
|
243
|
+
self.ui.fromComboBox.currentTextChanged.connect(self.update_from_to_list_views)
|
244
|
+
self.ui.toComboBox.currentTextChanged.connect(self.update_from_to_list_views)
|
248
245
|
|
249
246
|
def LOCK(self, val: bool = True) -> None:
|
250
247
|
"""
|
@@ -591,20 +588,23 @@ class BaseMainGui(QMainWindow):
|
|
591
588
|
self.ui.vs_target_comboBox.setModel(mdl)
|
592
589
|
self.setup_time_sliders()
|
593
590
|
|
594
|
-
def
|
591
|
+
def update_from_to_list_views(self):
|
595
592
|
"""
|
596
|
-
Update the area dependent combos
|
593
|
+
Update the exchange area, countries, etc... dependent combos
|
597
594
|
"""
|
598
|
-
|
599
|
-
|
600
|
-
|
595
|
+
same_type = self.ui.fromComboBox.currentText() == self.ui.toComboBox.currentText()
|
596
|
+
|
597
|
+
devs_from = self.circuit.get_elements_by_type(self.exchange_places_dict[self.ui.fromComboBox.currentText()])
|
598
|
+
mdl1 = gf.get_list_model([str(elm) for elm in devs_from], checks=True)
|
599
|
+
self.ui.fromListView.setModel(mdl1)
|
601
600
|
|
602
|
-
self.ui.
|
603
|
-
|
601
|
+
devs_to = self.circuit.get_elements_by_type(self.exchange_places_dict[self.ui.toComboBox.currentText()])
|
602
|
+
mdl2 = gf.get_list_model([str(elm) for elm in devs_to], checks=True)
|
603
|
+
self.ui.toListView.setModel(mdl2)
|
604
604
|
|
605
|
-
if
|
606
|
-
self.ui.
|
607
|
-
self.ui.
|
605
|
+
if len(devs_from) > 1 and same_type:
|
606
|
+
self.ui.fromListView.model().item(0).setCheckState(QtCore.Qt.CheckState.Checked)
|
607
|
+
self.ui.toListView.model().item(1).setCheckState(QtCore.Qt.CheckState.Checked)
|
608
608
|
|
609
609
|
def fix_generators_active_based_on_the_power(self, ask_before=True):
|
610
610
|
"""
|
@@ -376,7 +376,7 @@ class IoMain(ConfigurationMain):
|
|
376
376
|
|
377
377
|
# update the drop-down menus that display dates
|
378
378
|
self.update_date_dependent_combos()
|
379
|
-
self.
|
379
|
+
self.update_from_to_list_views()
|
380
380
|
|
381
381
|
# get the session tree structure
|
382
382
|
session_data_dict = self.open_file_thread_object.get_session_tree()
|
@@ -793,7 +793,7 @@ class IoMain(ConfigurationMain):
|
|
793
793
|
|
794
794
|
# update the drop down menus that display dates
|
795
795
|
self.update_date_dependent_combos()
|
796
|
-
self.
|
796
|
+
self.update_from_to_list_views()
|
797
797
|
|
798
798
|
# clear the results
|
799
799
|
self.clear_results()
|
@@ -27,6 +27,7 @@ from PySide6 import QtGui, QtWidgets
|
|
27
27
|
from matplotlib.colors import LinearSegmentedColormap
|
28
28
|
import GridCal.Gui.GuiFunctions as gf
|
29
29
|
import GridCal.Gui.Visualization.visualization as viz
|
30
|
+
from GridCal.Gui.GeneralDialogues import LogsDialogue
|
30
31
|
from GridCal.Gui.Diagrams.SchematicWidget.schematic_widget import SchematicWidget
|
31
32
|
from GridCal.Gui.Diagrams.MapWidget.grid_map_widget import MapWidget
|
32
33
|
from GridCal.Gui.messages import yes_no_question, error_msg, warning_msg, info_msg
|
@@ -43,6 +44,7 @@ from GridCalEngine.IO.file_system import get_create_gridcal_folder
|
|
43
44
|
from GridCalEngine.IO.gridcal.remote import RemoteInstruction
|
44
45
|
from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at
|
45
46
|
from GridCalEngine.Simulations.types import DRIVER_OBJECTS
|
47
|
+
from GridCalEngine.basic_structures import Logger
|
46
48
|
from GridCalEngine.enumerations import (DeviceType, AvailableTransferMode, SolverType, MIPSolvers, TimeGrouping,
|
47
49
|
ZonalGrouping, ContingencyMethod, InvestmentEvaluationMethod, EngineType,
|
48
50
|
BranchImpedanceMode, ResultTypes, SimulationTypes, NodalCapacityMethod,
|
@@ -583,44 +585,31 @@ class SimulationsMain(TimeEventsMain):
|
|
583
585
|
self.ui.resultsTableView.setModel(None)
|
584
586
|
self.ui.resultsLogsTreeView.setModel(None)
|
585
587
|
|
586
|
-
def
|
587
|
-
bool,
|
588
|
-
List[Tuple[int, dev.Bus]],
|
589
|
-
List[Tuple[int, dev.Bus]],
|
590
|
-
List[Tuple[int, object, float]],
|
591
|
-
List[Tuple[int, object, float]],
|
592
|
-
List[dev.Area], List[dev.Area]]:
|
588
|
+
def get_compatible_from_to_buses_and_inter_branches(self) -> dev.InterAggregationInfo:
|
593
589
|
"""
|
594
590
|
Get the lists that help defining the inter area objects
|
595
|
-
:return:
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
return False, [], [], [], [], [], []
|
618
|
-
|
619
|
-
lst_from = self.circuit.get_areas_buses(areas_from)
|
620
|
-
lst_to = self.circuit.get_areas_buses(areas_to)
|
621
|
-
lst_br = self.circuit.get_inter_areas_branches(areas_from, areas_to)
|
622
|
-
lst_br_hvdc = self.circuit.get_inter_areas_hvdc_branches(areas_from, areas_to)
|
623
|
-
return True, lst_from, lst_to, lst_br, lst_br_hvdc, areas_from, areas_to
|
591
|
+
:return: InterAggregationInfo
|
592
|
+
"""
|
593
|
+
dev_tpe_from = self.exchange_places_dict[self.ui.fromComboBox.currentText()]
|
594
|
+
devs_from = self.circuit.get_elements_by_type(dev_tpe_from)
|
595
|
+
from_idx = gf.get_checked_indices(self.ui.fromListView.model())
|
596
|
+
objects_from = [devs_from[i] for i in from_idx]
|
597
|
+
|
598
|
+
dev_tpe_to = self.exchange_places_dict[self.ui.toComboBox.currentText()]
|
599
|
+
devs_to = self.circuit.get_elements_by_type(dev_tpe_to)
|
600
|
+
to_idx = gf.get_checked_indices(self.ui.toListView.model())
|
601
|
+
objects_to = [devs_to[i] for i in to_idx]
|
602
|
+
|
603
|
+
info: dev.InterAggregationInfo = self.circuit.get_inter_aggregation_info(objects_from=objects_from,
|
604
|
+
objects_to=objects_to)
|
605
|
+
|
606
|
+
if info.logger.has_logs():
|
607
|
+
# Show dialogue
|
608
|
+
dlg = LogsDialogue(name="Add selected DB objects to current diagram", logger=info.logger)
|
609
|
+
dlg.setModal(True)
|
610
|
+
dlg.exec()
|
611
|
+
|
612
|
+
return info
|
624
613
|
|
625
614
|
def get_selected_power_flow_options(self) -> sim.PowerFlowOptions:
|
626
615
|
"""
|
@@ -1271,20 +1260,19 @@ class SimulationsMain(TimeEventsMain):
|
|
1271
1260
|
threshold = self.ui.atcThresholdSpinBox.value()
|
1272
1261
|
max_report_elements = 5 # TODO: self.ui.ntcReportLimitingElementsSpinBox.value()
|
1273
1262
|
# available transfer capacity inter areas
|
1274
|
-
|
1275
|
-
lst_hvdc_br, areas_from, areas_to) = self.get_compatible_areas_from_to()
|
1263
|
+
info: dev.InterAggregationInfo = self.get_compatible_from_to_buses_and_inter_branches()
|
1276
1264
|
|
1277
|
-
if not
|
1265
|
+
if not info.valid:
|
1278
1266
|
return
|
1279
1267
|
|
1280
|
-
idx_from =
|
1281
|
-
idx_to =
|
1282
|
-
idx_br =
|
1283
|
-
sense_br =
|
1268
|
+
idx_from = info.idx_bus_from
|
1269
|
+
idx_to = info.idx_bus_to
|
1270
|
+
idx_br = info.idx_branches
|
1271
|
+
sense_br = info.sense_branches
|
1284
1272
|
|
1285
1273
|
# HVDC
|
1286
|
-
idx_hvdc_br =
|
1287
|
-
sense_hvdc_br =
|
1274
|
+
idx_hvdc_br = info.idx_hvdc
|
1275
|
+
sense_hvdc_br = info.sense_hvdc
|
1288
1276
|
|
1289
1277
|
if self.ui.usePfValuesForAtcCheckBox.isChecked():
|
1290
1278
|
pf_results = self.session.power_flow
|
@@ -1386,21 +1374,19 @@ class SimulationsMain(TimeEventsMain):
|
|
1386
1374
|
max_report_elements = 5 # TODO: self.ui.ntcReportLimitingElementsSpinBox.value()
|
1387
1375
|
|
1388
1376
|
# available transfer capacity inter areas
|
1389
|
-
(
|
1390
|
-
lst_from, lst_to, lst_br,
|
1391
|
-
lst_hvdc_br, areas_from, areas_to) = self.get_compatible_areas_from_to()
|
1377
|
+
info: dev.InterAggregationInfo = self.get_compatible_from_to_buses_and_inter_branches()
|
1392
1378
|
|
1393
|
-
if not
|
1379
|
+
if not info.valid:
|
1394
1380
|
return
|
1395
1381
|
|
1396
|
-
idx_from =
|
1397
|
-
idx_to =
|
1398
|
-
idx_br =
|
1399
|
-
sense_br =
|
1382
|
+
idx_from = info.idx_bus_from
|
1383
|
+
idx_to = info.idx_bus_to
|
1384
|
+
idx_br = info.idx_branches
|
1385
|
+
sense_br = info.sense_branches
|
1400
1386
|
|
1401
1387
|
# HVDC
|
1402
|
-
idx_hvdc_br =
|
1403
|
-
sense_hvdc_br =
|
1388
|
+
idx_hvdc_br = info.idx_hvdc
|
1389
|
+
sense_hvdc_br = info.sense_hvdc
|
1404
1390
|
|
1405
1391
|
if self.ui.usePfValuesForAtcCheckBox.isChecked():
|
1406
1392
|
pf_results = self.session.power_flow_ts
|
@@ -1520,19 +1506,19 @@ class SimulationsMain(TimeEventsMain):
|
|
1520
1506
|
|
1521
1507
|
if self.ui.atcRadioButton.isChecked():
|
1522
1508
|
use_alpha = True
|
1523
|
-
|
1509
|
+
info: dev.InterAggregationInfo = self.get_compatible_from_to_buses_and_inter_branches()
|
1524
1510
|
|
1525
|
-
if
|
1526
|
-
idx_from =
|
1527
|
-
idx_to =
|
1511
|
+
if info.valid:
|
1512
|
+
idx_from = info.idx_bus_from
|
1513
|
+
idx_to = info.idx_bus_to
|
1528
1514
|
|
1529
1515
|
alpha_vec[idx_from] *= 2
|
1530
1516
|
alpha_vec[idx_to] *= -2
|
1531
1517
|
sel_bus_idx = np.zeros(0, dtype=int) # for completeness
|
1532
1518
|
|
1533
1519
|
# HVDC
|
1534
|
-
idx_hvdc_br =
|
1535
|
-
sense_hvdc_br =
|
1520
|
+
idx_hvdc_br = info.idx_hvdc
|
1521
|
+
sense_hvdc_br = info.sense_hvdc
|
1536
1522
|
else:
|
1537
1523
|
sel_bus_idx = np.zeros(0, dtype=int) # for completeness
|
1538
1524
|
# incompatible areas...exit
|
@@ -1882,23 +1868,17 @@ class SimulationsMain(TimeEventsMain):
|
|
1882
1868
|
|
1883
1869
|
# available transfer capacity inter areas
|
1884
1870
|
if maximize_flows:
|
1885
|
-
|
1886
|
-
lst_br, lst_hvdc_br, areas_from, areas_to) = self.get_compatible_areas_from_to()
|
1887
|
-
idx_from = np.array([i for i, bus in lst_from])
|
1888
|
-
idx_to = np.array([i for i, bus in lst_to])
|
1871
|
+
inter_aggregation_info: dev.InterAggregationInfo = self.get_compatible_from_to_buses_and_inter_branches()
|
1889
1872
|
|
1890
|
-
if len(
|
1873
|
+
if len(inter_aggregation_info.lst_from) == 0:
|
1891
1874
|
error_msg('The area "from" has no buses!')
|
1892
1875
|
return None
|
1893
1876
|
|
1894
|
-
if len(
|
1877
|
+
if len(inter_aggregation_info.lst_to) == 0:
|
1895
1878
|
error_msg('The area "to" has no buses!')
|
1896
1879
|
return None
|
1897
1880
|
else:
|
1898
|
-
|
1899
|
-
idx_to = None
|
1900
|
-
areas_from = None
|
1901
|
-
areas_to = None
|
1881
|
+
inter_aggregation_info = None
|
1902
1882
|
|
1903
1883
|
ips_method = self.ips_solvers_dict[self.ui.ips_method_comboBox.currentText()]
|
1904
1884
|
ips_tolerance = 1.0 / (10.0 ** self.ui.ips_tolerance_spinBox.value())
|
@@ -1917,10 +1897,7 @@ class SimulationsMain(TimeEventsMain):
|
|
1917
1897
|
skip_generation_limits=skip_generation_limits,
|
1918
1898
|
lodf_tolerance=lodf_tolerance,
|
1919
1899
|
maximize_flows=maximize_flows,
|
1920
|
-
|
1921
|
-
area_to_bus_idx=idx_to,
|
1922
|
-
areas_from=areas_from,
|
1923
|
-
areas_to=areas_to,
|
1900
|
+
inter_aggregation_info=inter_aggregation_info,
|
1924
1901
|
unit_commitment=unit_commitment,
|
1925
1902
|
export_model_fname=export_model_fname,
|
1926
1903
|
generate_report=generate_report,
|
@@ -2097,16 +2074,15 @@ class SimulationsMain(TimeEventsMain):
|
|
2097
2074
|
"""
|
2098
2075
|
|
2099
2076
|
# available transfer capacity inter areas
|
2100
|
-
|
2101
|
-
lst_hvdc_br, areas_from, areas_to) = self.get_compatible_areas_from_to()
|
2077
|
+
info: dev.InterAggregationInfo = self.get_compatible_from_to_buses_and_inter_branches()
|
2102
2078
|
|
2103
|
-
if not
|
2079
|
+
if not info.valid:
|
2104
2080
|
error_msg('There are no compatible areas')
|
2105
2081
|
return None
|
2106
2082
|
|
2107
|
-
idx_from =
|
2108
|
-
idx_to =
|
2109
|
-
idx_br =
|
2083
|
+
idx_from = info.idx_bus_from
|
2084
|
+
idx_to = info.idx_bus_to
|
2085
|
+
idx_br = info.idx_branches
|
2110
2086
|
|
2111
2087
|
if len(idx_from) == 0:
|
2112
2088
|
error_msg('The area "from" has no buses!')
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py
RENAMED
File without changes
|
{GridCal-5.1.28 → GridCal-5.1.30}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py
RENAMED
File without changes
|