GridCal 5.3.14__tar.gz → 5.3.16__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.3.14 → gridcal-5.3.16}/GridCal/Gui/AboutDialogue/about_dialogue.py +30 -13
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -1
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +7 -1
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +54 -33
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +12 -4
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +21 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +1 -1
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +53 -3
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/MainWindow.py +6 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +44 -13
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/base_gui.py +3 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/io.py +1 -1
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/simulations.py +82 -8
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Session/server_driver.py +93 -6
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Session/session.py +126 -102
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/__version__.py +1 -1
- {gridcal-5.3.14 → gridcal-5.3.16}/PKG-INFO +1 -1
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ExecuteGridCal.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Analysis/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Analysis/gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Branches/new_line_dialogue.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_editor.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/base_diagram_widget.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/object_select_window.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SubstationDesigner/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SubstationDesigner/substation_designer.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SubstationDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/TowerBuilder/gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Visualization/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Visualization/visualization.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Widgets/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/associations_model.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/general_dialogues.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/gui_functions.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/messages.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/object_model.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/pandas_model.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/plot_config.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/profiles_model.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/python_console.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/python_highlighter.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/results_model.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/table_view_header_wrap.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/themes.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/update_gui_all.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/update_gui_common.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/wrappable_table_model.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/LICENSE.txt +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Session/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Session/export_results_driver.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Session/file_handler.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Session/synchronization_driver.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/data/GridCal.ico +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/data/GridCal.svg +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/data/__init__.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/data/cables.csv +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/data/sequence_lines.csv +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/data/transformers.csv +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/data/wires.csv +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/plugins.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/templates.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/GridCal/update.py +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/setup.cfg +0 -0
- {gridcal-5.3.14 → gridcal-5.3.16}/setup.py +0 -0
@@ -12,6 +12,9 @@ from GridCal.Gui.AboutDialogue.gui import Ui_AboutDialog
|
|
12
12
|
from GridCal.__version__ import __GridCal_VERSION__
|
13
13
|
from GridCal.update import check_version, get_upgrade_command
|
14
14
|
from GridCalEngine.__version__ import __GridCalEngine_VERSION__, copyright_msg, contributors_msg
|
15
|
+
from GridCalEngine.Compilers.circuit_to_gslv import (GSLV_AVAILABLE,
|
16
|
+
GSLV_RECOMMENDED_VERSION,
|
17
|
+
GSLV_VERSION)
|
15
18
|
from GridCalEngine.Compilers.circuit_to_newton_pa import (NEWTON_PA_AVAILABLE,
|
16
19
|
NEWTON_PA_RECOMMENDED_VERSION,
|
17
20
|
NEWTON_PA_VERSION)
|
@@ -27,6 +30,7 @@ class AboutDialogueGuiGUI(QtWidgets.QDialog):
|
|
27
30
|
"""
|
28
31
|
AboutDialogueGuiGUI
|
29
32
|
"""
|
33
|
+
|
30
34
|
def __init__(self, parent=None):
|
31
35
|
"""
|
32
36
|
|
@@ -39,7 +43,7 @@ class AboutDialogueGuiGUI(QtWidgets.QDialog):
|
|
39
43
|
self.setAcceptDrops(True)
|
40
44
|
|
41
45
|
self.ui.librariesTableWidget.setColumnCount(4)
|
42
|
-
self.ui.librariesTableWidget.setRowCount(
|
46
|
+
self.ui.librariesTableWidget.setRowCount(5)
|
43
47
|
self.ui.librariesTableWidget.setHorizontalHeaderLabels(["Name", "version", "supported version", "licensed"])
|
44
48
|
|
45
49
|
self.ui.librariesTableWidget.setItem(0, 0, QtWidgets.QTableWidgetItem("GridCal"))
|
@@ -47,26 +51,39 @@ class AboutDialogueGuiGUI(QtWidgets.QDialog):
|
|
47
51
|
self.ui.librariesTableWidget.setItem(0, 2, QtWidgets.QTableWidgetItem(__GridCalEngine_VERSION__))
|
48
52
|
self.ui.librariesTableWidget.setItem(0, 3, QtWidgets.QTableWidgetItem("True"))
|
49
53
|
|
50
|
-
|
51
|
-
self.ui.librariesTableWidget.setItem(1,
|
54
|
+
# GSLV
|
55
|
+
self.ui.librariesTableWidget.setItem(1, 0, QtWidgets.QTableWidgetItem("GSLV"))
|
56
|
+
self.ui.librariesTableWidget.setItem(1, 1, QtWidgets.QTableWidgetItem(GSLV_VERSION
|
57
|
+
if GSLV_AVAILABLE else
|
58
|
+
"Not installed"))
|
59
|
+
|
60
|
+
self.ui.librariesTableWidget.setItem(1, 2, QtWidgets.QTableWidgetItem(GSLV_RECOMMENDED_VERSION))
|
61
|
+
self.ui.librariesTableWidget.setItem(1, 3, QtWidgets.QTableWidgetItem(str(GSLV_AVAILABLE)))
|
62
|
+
|
63
|
+
# Newton
|
64
|
+
self.ui.librariesTableWidget.setItem(2, 0, QtWidgets.QTableWidgetItem("NewtonPa"))
|
65
|
+
self.ui.librariesTableWidget.setItem(2, 1, QtWidgets.QTableWidgetItem(NEWTON_PA_VERSION
|
52
66
|
if NEWTON_PA_AVAILABLE else
|
53
67
|
"Not installed"))
|
54
|
-
self.ui.librariesTableWidget.setItem(1, 2, QtWidgets.QTableWidgetItem(NEWTON_PA_RECOMMENDED_VERSION))
|
55
|
-
self.ui.librariesTableWidget.setItem(1, 3, QtWidgets.QTableWidgetItem(str(NEWTON_PA_AVAILABLE)))
|
56
68
|
|
57
|
-
self.ui.librariesTableWidget.setItem(2,
|
58
|
-
self.ui.librariesTableWidget.setItem(2,
|
69
|
+
self.ui.librariesTableWidget.setItem(2, 2, QtWidgets.QTableWidgetItem(NEWTON_PA_RECOMMENDED_VERSION))
|
70
|
+
self.ui.librariesTableWidget.setItem(2, 3, QtWidgets.QTableWidgetItem(str(NEWTON_PA_AVAILABLE)))
|
71
|
+
|
72
|
+
# Bentayga
|
73
|
+
self.ui.librariesTableWidget.setItem(3, 0, QtWidgets.QTableWidgetItem("Bentayga"))
|
74
|
+
self.ui.librariesTableWidget.setItem(3, 1, QtWidgets.QTableWidgetItem(BENTAYGA_VERSION
|
59
75
|
if BENTAYGA_AVAILABLE else
|
60
76
|
"Not installed"))
|
61
|
-
self.ui.librariesTableWidget.setItem(
|
62
|
-
self.ui.librariesTableWidget.setItem(
|
77
|
+
self.ui.librariesTableWidget.setItem(3, 2, QtWidgets.QTableWidgetItem(BENTAYGA_RECOMMENDED_VERSION))
|
78
|
+
self.ui.librariesTableWidget.setItem(3, 3, QtWidgets.QTableWidgetItem(str(BENTAYGA_AVAILABLE)))
|
63
79
|
|
64
|
-
|
65
|
-
self.ui.librariesTableWidget.setItem(
|
80
|
+
# PGM
|
81
|
+
self.ui.librariesTableWidget.setItem(4, 0, QtWidgets.QTableWidgetItem("power-grid-model"))
|
82
|
+
self.ui.librariesTableWidget.setItem(4, 1, QtWidgets.QTableWidgetItem(PGM_VERSION
|
66
83
|
if PGM_AVAILABLE else
|
67
84
|
"Not installed"))
|
68
|
-
self.ui.librariesTableWidget.setItem(
|
69
|
-
self.ui.librariesTableWidget.setItem(
|
85
|
+
self.ui.librariesTableWidget.setItem(4, 2, QtWidgets.QTableWidgetItem(PGM_RECOMMENDED_VERSION))
|
86
|
+
self.ui.librariesTableWidget.setItem(4, 3, QtWidgets.QTableWidgetItem(str(PGM_AVAILABLE)))
|
70
87
|
|
71
88
|
# check the version in pypi
|
72
89
|
version_code, latest_version = check_version()
|
{gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py
RENAMED
@@ -41,7 +41,13 @@ class MapLineSegment(QGraphicsLineItem):
|
|
41
41
|
self.draw_labels = True
|
42
42
|
|
43
43
|
self.style = Qt.PenStyle.SolidLine
|
44
|
-
self.color = QColor(115, 115, 115, 200) # translucent gray
|
44
|
+
# self.color = QColor(115, 115, 115, 200) # translucent gray
|
45
|
+
|
46
|
+
self.color = QColor(self.api_object.color)
|
47
|
+
self.color.setAlpha(128)
|
48
|
+
self.hoover_color = QColor(self.api_object.color)
|
49
|
+
self.hoover_color.setAlpha(180)
|
50
|
+
|
45
51
|
self.width = 0.1
|
46
52
|
|
47
53
|
self.pos1: QPointF = self.first.get_center_pos()
|
@@ -14,10 +14,8 @@ from matplotlib import pyplot as plt
|
|
14
14
|
|
15
15
|
from PySide6.QtWidgets import QGraphicsItem
|
16
16
|
from collections.abc import Callable
|
17
|
-
from PySide6.
|
18
|
-
from PySide6.
|
19
|
-
QRunnable, QThreadPool)
|
20
|
-
from PySide6.QtGui import (QIcon, QPixmap, QImage, QPainter, QStandardItemModel, QStandardItem, QColor, QDropEvent)
|
17
|
+
from PySide6.QtCore import (Qt, QMimeData, QIODevice, QByteArray, QDataStream, QModelIndex, QRunnable, QThreadPool)
|
18
|
+
from PySide6.QtGui import (QIcon, QPixmap, QImage, QStandardItemModel, QStandardItem, QColor, QDropEvent)
|
21
19
|
|
22
20
|
from GridCal.Gui.Diagrams.MapWidget.Branches.map_line_container import MapLineContainer
|
23
21
|
from GridCal.Gui.SubstationDesigner.substation_designer import SubstationDesigner
|
@@ -38,6 +36,7 @@ from GridCalEngine.Devices.types import ALL_DEV_TYPES
|
|
38
36
|
from GridCalEngine.basic_structures import Logger
|
39
37
|
from GridCalEngine.Simulations.OPF.opf_ts_results import OptimalPowerFlowTimeSeriesResults
|
40
38
|
from GridCalEngine.Simulations.PowerFlow.power_flow_ts_results import PowerFlowTimeSeriesResults
|
39
|
+
from GridCalEngine.enumerations import Colormaps
|
41
40
|
|
42
41
|
from GridCal.Gui.Diagrams.MapWidget.Branches.map_ac_line import MapAcLine
|
43
42
|
from GridCal.Gui.Diagrams.MapWidget.Branches.map_dc_line import MapDcLine
|
@@ -144,7 +143,7 @@ class MapLibraryModel(QStandardItemModel):
|
|
144
143
|
@param idxs:
|
145
144
|
@return:
|
146
145
|
"""
|
147
|
-
|
146
|
+
mime_data = QMimeData()
|
148
147
|
for idx in idxs:
|
149
148
|
if idx.isValid():
|
150
149
|
txt = self.data(idx, Qt.ItemDataRole.DisplayRole)
|
@@ -153,8 +152,8 @@ class MapLibraryModel(QStandardItemModel):
|
|
153
152
|
stream = QDataStream(data, QIODevice.WriteOnly)
|
154
153
|
stream.writeQString(txt)
|
155
154
|
|
156
|
-
|
157
|
-
return
|
155
|
+
mime_data.setData('component/name', data)
|
156
|
+
return mime_data
|
158
157
|
|
159
158
|
def flags(self, index: QModelIndex) -> Qt.ItemFlag:
|
160
159
|
"""
|
@@ -323,7 +322,6 @@ class GridMapWidget(BaseDiagramWidget):
|
|
323
322
|
if self.map.level - 1 >= self.map.min_level:
|
324
323
|
self.map.zoom_level(level=self.map.level - 1)
|
325
324
|
|
326
|
-
|
327
325
|
def to_lat_lon(self, x: float, y: float) -> Tuple[float, float]:
|
328
326
|
"""
|
329
327
|
Convert x, y position in the map to latitude and longitude
|
@@ -550,9 +548,15 @@ class GridMapWidget(BaseDiagramWidget):
|
|
550
548
|
:param lon:
|
551
549
|
:return:
|
552
550
|
"""
|
553
|
-
graphic_object = SubstationGraphicItem(editor=self,
|
551
|
+
graphic_object = SubstationGraphicItem(editor=self,
|
552
|
+
api_object=api_object,
|
553
|
+
lat=lat,
|
554
|
+
lon=lon,
|
554
555
|
r=self.diagram.min_bus_width)
|
555
|
-
|
556
|
+
|
557
|
+
self.graphics_manager.add_device(elm=api_object,
|
558
|
+
graphic=graphic_object)
|
559
|
+
|
556
560
|
self.add_to_scene(graphic_object=graphic_object)
|
557
561
|
|
558
562
|
return graphic_object
|
@@ -1232,16 +1236,26 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1232
1236
|
info_msg("There are no time series, so nothing to plot :/")
|
1233
1237
|
|
1234
1238
|
|
1235
|
-
def generate_map_diagram(
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
1239
|
-
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
1243
|
-
|
1244
|
-
|
1239
|
+
def generate_map_diagram(
|
1240
|
+
substations: List[Substation],
|
1241
|
+
voltage_levels: List[VoltageLevel],
|
1242
|
+
lines: List[Line],
|
1243
|
+
dc_lines: List[DcLine],
|
1244
|
+
hvdc_lines: List[HvdcLine],
|
1245
|
+
fluid_nodes: List[FluidNode],
|
1246
|
+
fluid_paths: List[FluidPath],
|
1247
|
+
prog_func: Union[Callable, None] = None,
|
1248
|
+
text_func: Union[Callable, None] = None,
|
1249
|
+
name='Map diagram',
|
1250
|
+
use_flow_based_width: bool = False,
|
1251
|
+
min_branch_width: int = 1.0,
|
1252
|
+
max_branch_width=5,
|
1253
|
+
min_bus_width=1.0,
|
1254
|
+
max_bus_width=20,
|
1255
|
+
arrow_size=20,
|
1256
|
+
palette: Colormaps = Colormaps.GridCal,
|
1257
|
+
default_bus_voltage: float = 10
|
1258
|
+
) -> MapDiagram:
|
1245
1259
|
"""
|
1246
1260
|
Add a elements to the schematic scene
|
1247
1261
|
:param substations: list of Substation objects
|
@@ -1254,9 +1268,27 @@ def generate_map_diagram(substations: List[Substation],
|
|
1254
1268
|
:param prog_func: progress report function
|
1255
1269
|
:param text_func: Text report function
|
1256
1270
|
:param name: name of the diagram
|
1271
|
+
:param use_flow_based_width: use flow based width
|
1272
|
+
:param min_branch_width: minimum branch width
|
1273
|
+
:param max_branch_width: maximum branch width
|
1274
|
+
:param min_bus_width:
|
1275
|
+
:param max_bus_width: maximum bus width
|
1276
|
+
:param arrow_size: arrow size
|
1277
|
+
:param palette: Colormaps
|
1278
|
+
:param default_bus_voltage: default bus voltage
|
1257
1279
|
"""
|
1258
1280
|
|
1259
|
-
diagram = MapDiagram(
|
1281
|
+
diagram = MapDiagram(
|
1282
|
+
name=name,
|
1283
|
+
use_flow_based_width=use_flow_based_width,
|
1284
|
+
min_branch_width=min_branch_width,
|
1285
|
+
max_branch_width=max_branch_width,
|
1286
|
+
min_bus_width=min_bus_width,
|
1287
|
+
max_bus_width=max_bus_width,
|
1288
|
+
arrow_size=arrow_size,
|
1289
|
+
palette=palette,
|
1290
|
+
default_bus_voltage=default_bus_voltage
|
1291
|
+
)
|
1260
1292
|
|
1261
1293
|
# first create the buses
|
1262
1294
|
if text_func is not None:
|
@@ -1311,21 +1343,11 @@ def generate_map_diagram(substations: List[Substation],
|
|
1311
1343
|
diagram.set_point(device=branch, location=MapLocation())
|
1312
1344
|
|
1313
1345
|
# register all the line locations
|
1314
|
-
# if branch.bus_from is not None:
|
1315
|
-
# diagram.set_point(device=branch.bus_from, location=MapLocation(latitude=branch.bus_from.latitude,
|
1316
|
-
# longitude=branch.bus_from.longitude,
|
1317
|
-
# altitude=0))
|
1318
|
-
|
1319
1346
|
for loc in branch.locations.get_locations():
|
1320
1347
|
diagram.set_point(device=loc, location=MapLocation(latitude=loc.lat,
|
1321
1348
|
longitude=loc.long,
|
1322
1349
|
altitude=loc.alt))
|
1323
1350
|
|
1324
|
-
# if branch.bus_to is not None:
|
1325
|
-
# diagram.set_point(device=branch.bus_to, location=MapLocation(latitude=branch.bus_to.latitude,
|
1326
|
-
# longitude=branch.bus_to.longitude,
|
1327
|
-
# altitude=0))
|
1328
|
-
|
1329
1351
|
# --------------------------------------------------------------------------------------------------------------
|
1330
1352
|
if text_func is not None:
|
1331
1353
|
text_func('Creating schematic line devices')
|
@@ -1374,7 +1396,6 @@ def generate_map_diagram(substations: List[Substation],
|
|
1374
1396
|
if prog_func is not None:
|
1375
1397
|
prog_func((i + 1) / nn * 100.0)
|
1376
1398
|
|
1377
|
-
# branch.graphic_obj = self.add_api_upfc(branch)
|
1378
1399
|
diagram.set_point(device=elm, location=MapLocation())
|
1379
1400
|
|
1380
1401
|
# register all the line locations
|
@@ -1383,7 +1404,7 @@ def generate_map_diagram(substations: List[Substation],
|
|
1383
1404
|
longitude=loc.long,
|
1384
1405
|
altitude=loc.alt))
|
1385
1406
|
|
1386
|
-
# find the diagram
|
1407
|
+
# find the diagram centre and set it internally
|
1387
1408
|
diagram.set_center()
|
1388
1409
|
|
1389
1410
|
return diagram
|
@@ -134,10 +134,18 @@ class GeneratorGraphicItem(InjectionTemplateGraphicItem):
|
|
134
134
|
|
135
135
|
menu.addSeparator()
|
136
136
|
|
137
|
-
add_menu_entry(menu=menu,
|
138
|
-
|
139
|
-
|
140
|
-
|
137
|
+
# add_menu_entry(menu=menu,
|
138
|
+
# text="Delete",
|
139
|
+
# icon_path=":/Icons/icons/delete3.svg",
|
140
|
+
# function_ptr=self.remove)
|
141
|
+
|
142
|
+
add_menu_entry(menu, text='Remove from schematic and DB',
|
143
|
+
icon_path=":/Icons/icons/delete_db.svg",
|
144
|
+
function_ptr=lambda: self.remove_from_widget_and_db(ask=True, delete_from_db=True))
|
145
|
+
|
146
|
+
add_menu_entry(menu, text='Remove from schematic',
|
147
|
+
icon_path=":/Icons/icons/delete_schematic.svg",
|
148
|
+
function_ptr=lambda: self.remove_from_widget_and_db(ask=True, delete_from_db=False))
|
141
149
|
|
142
150
|
add_menu_entry(menu=menu,
|
143
151
|
text="Convert to battery",
|
@@ -100,6 +100,27 @@ class InjectionTemplateGraphicItem(GenericDiagramWidget, QGraphicsItemGroup):
|
|
100
100
|
self.editor.remove_from_scene(self.nexus)
|
101
101
|
self.editor.remove_element(device=self.api_object, graphic_object=self)
|
102
102
|
self.editor.remove_from_scene(self)
|
103
|
+
self.editor.delete_diagram_element(device=self.api_object)
|
104
|
+
|
105
|
+
def remove_from_widget_and_db(self, ask: bool = True, delete_from_db: bool = True) -> None:
|
106
|
+
"""
|
107
|
+
Remove this element
|
108
|
+
@return:
|
109
|
+
"""
|
110
|
+
if ask:
|
111
|
+
ok = yes_no_question('Are you sure that you want to remove this device',
|
112
|
+
'Remove bus from schematic and DB' if delete_from_db else "Remove bus from schematic")
|
113
|
+
else:
|
114
|
+
ok = True
|
115
|
+
|
116
|
+
if ok:
|
117
|
+
self.editor.remove_element(device=self.api_object,
|
118
|
+
graphic_object=self,
|
119
|
+
delete_from_db=delete_from_db)
|
120
|
+
|
121
|
+
self.editor.remove_from_scene(self.nexus)
|
122
|
+
self.editor.remove_from_scene(self)
|
123
|
+
# self.editor.delete_diagram_element(device=self.api_object)
|
103
124
|
|
104
125
|
def mousePressEvent(self, QGraphicsSceneMouseEvent):
|
105
126
|
"""
|
{gridcal-5.3.14 → gridcal-5.3.16}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py
RENAMED
@@ -532,7 +532,7 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
|
|
532
532
|
"""
|
533
533
|
if ask:
|
534
534
|
ok = yes_no_question('Are you sure that you want to remove this bus',
|
535
|
-
'Remove bus from
|
535
|
+
'Remove bus from schematic and DB' if delete_from_db else "Remove bus from schematic")
|
536
536
|
else:
|
537
537
|
ok = True
|
538
538
|
|
@@ -1116,6 +1116,9 @@ class SchematicWidget(BaseDiagramWidget):
|
|
1116
1116
|
# remove the buses (from the schematic and the circuit)
|
1117
1117
|
for bus, graphic_obj in selected:
|
1118
1118
|
self.remove_element(device=bus, graphic_object=graphic_obj, delete_from_db=False)
|
1119
|
+
self.remove_from_scene(graphic_obj)
|
1120
|
+
if hasattr(graphic_obj, 'nexus'):
|
1121
|
+
self.remove_from_scene(graphic_obj.nexus)
|
1119
1122
|
else:
|
1120
1123
|
pass
|
1121
1124
|
else:
|
@@ -1916,7 +1919,7 @@ class SchematicWidget(BaseDiagramWidget):
|
|
1916
1919
|
|
1917
1920
|
transformer = pyproj.Transformer.from_crs(4326, 25830, always_xy=True)
|
1918
1921
|
|
1919
|
-
# the longitude is more
|
1922
|
+
# the longitude is more related to x, the latitude is more related to y
|
1920
1923
|
y, x = transformer.transform(xx=lon, yy=lat)
|
1921
1924
|
x *= - factor
|
1922
1925
|
y *= - factor
|
@@ -1937,6 +1940,53 @@ class SchematicWidget(BaseDiagramWidget):
|
|
1937
1940
|
bus.y = y[i]
|
1938
1941
|
i += 1
|
1939
1942
|
|
1943
|
+
def rotate(self, angle_degrees):
|
1944
|
+
"""
|
1945
|
+
Rotates a list of points around a given pivot by a specified angle.
|
1946
|
+
|
1947
|
+
Parameters:
|
1948
|
+
angle_degrees (float): The rotation angle in degrees.
|
1949
|
+
|
1950
|
+
Returns:
|
1951
|
+
list of tuples: The rotated points.
|
1952
|
+
"""
|
1953
|
+
|
1954
|
+
# get the buses info
|
1955
|
+
buses_info_list = self.get_buses()
|
1956
|
+
|
1957
|
+
# gather the coordinates
|
1958
|
+
n = len(buses_info_list)
|
1959
|
+
X = np.zeros(n)
|
1960
|
+
Y = np.zeros(n)
|
1961
|
+
for i in range(n):
|
1962
|
+
idx, bus, graphic_object = buses_info_list[i]
|
1963
|
+
X[i] = graphic_object.pos().x()
|
1964
|
+
Y[i] = graphic_object.pos().y()
|
1965
|
+
|
1966
|
+
# compute the center
|
1967
|
+
cx = np.mean(X)
|
1968
|
+
cy = np.mean(Y)
|
1969
|
+
|
1970
|
+
# compute the sin and cos
|
1971
|
+
angle_rad = np.deg2rad(angle_degrees)
|
1972
|
+
cos_a = np.cos(angle_rad)
|
1973
|
+
sin_a = np.sin(angle_rad)
|
1974
|
+
for i in range(n):
|
1975
|
+
idx, bus, graphic_object = buses_info_list[i]
|
1976
|
+
|
1977
|
+
# Translate the point to the origin relative to the pivot
|
1978
|
+
x_rel = X[i] - cx
|
1979
|
+
y_rel = Y[i] - cy
|
1980
|
+
|
1981
|
+
# Rotate the point
|
1982
|
+
x_rot = x_rel * cos_a - y_rel * sin_a
|
1983
|
+
y_rot = x_rel * sin_a + y_rel * cos_a
|
1984
|
+
|
1985
|
+
# Translate back to the original coordinate system
|
1986
|
+
x_new = x_rot + cx
|
1987
|
+
y_new = y_rot + cy
|
1988
|
+
graphic_object.set_position(x_new, y_new)
|
1989
|
+
|
1940
1990
|
def get_image(self, transparent: bool = False) -> QImage:
|
1941
1991
|
"""
|
1942
1992
|
get the current picture
|
@@ -3423,7 +3473,7 @@ class SchematicWidget(BaseDiagramWidget):
|
|
3423
3473
|
Va=vang[i],
|
3424
3474
|
P=Sbus[i].real if Sbus is not None else None,
|
3425
3475
|
Q=Sbus[i].imag if Sbus is not None else None,
|
3426
|
-
tpe=bus_types[types[i]] if types is not None else None)
|
3476
|
+
tpe=bus_types[int(types[i])] if types is not None else None)
|
3427
3477
|
|
3428
3478
|
if use_flow_based_width:
|
3429
3479
|
graphic_object.change_size(w=graphic_object.w)
|
@@ -3729,7 +3779,7 @@ class SchematicWidget(BaseDiagramWidget):
|
|
3729
3779
|
Va=vang[i],
|
3730
3780
|
P=Sbus[i].real if Sbus is not None else None,
|
3731
3781
|
Q=Sbus[i].imag if Sbus is not None else None,
|
3732
|
-
tpe=bus_types[types[i]] if types is not None else None,
|
3782
|
+
tpe=bus_types[int(types[i])] if types is not None else None,
|
3733
3783
|
fluid_node_p2x_flow=fluid_node_p2x_flow[i] if fluid_node_p2x_flow is not None else None,
|
3734
3784
|
fluid_node_current_level=fluid_node_current_level[
|
3735
3785
|
i] if fluid_node_current_level is not None else None,
|
@@ -590,6 +590,10 @@ class Ui_mainWindow(object):
|
|
590
590
|
icon77 = QIcon()
|
591
591
|
icon77.addFile(u":/Icons/icons/powerplant.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
592
592
|
self.actionDetect_facilities.setIcon(icon77)
|
593
|
+
self.actionRotate = QAction(mainWindow)
|
594
|
+
self.actionRotate.setObjectName(u"actionRotate")
|
595
|
+
self.actionRotate.setIcon(icon26)
|
596
|
+
self.actionRotate.setFont(font)
|
593
597
|
self.centralwidget = QWidget(mainWindow)
|
594
598
|
self.centralwidget.setObjectName(u"centralwidget")
|
595
599
|
self.gridLayout_3 = QGridLayout(self.centralwidget)
|
@@ -4732,6 +4736,7 @@ class Ui_mainWindow(object):
|
|
4732
4736
|
self.menuDiagrams.addAction(self.actionSmaller_nodes)
|
4733
4737
|
self.menuDiagrams.addAction(self.actionAutoatic_layout)
|
4734
4738
|
self.menuDiagrams.addAction(self.actionTry_to_fix_buses_location)
|
4739
|
+
self.menuDiagrams.addAction(self.actionRotate)
|
4735
4740
|
self.menuDiagrams.addAction(self.actionDisable_all_results_tags)
|
4736
4741
|
self.menuDiagrams.addAction(self.actionEnable_all_results_tags)
|
4737
4742
|
self.menuDiagrams.addAction(self.actionSet_schematic_positions_from_GPS_coordinates)
|
@@ -5138,6 +5143,7 @@ class Ui_mainWindow(object):
|
|
5138
5143
|
self.actionAdd_selected_as_remedial_action.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p><span style=\" font-weight:700;\">Add remedial action</span></p><p>Create a new remedial action from the schematic selection</p></body></html>", None))
|
5139
5144
|
#endif // QT_CONFIG(tooltip)
|
5140
5145
|
self.actionDetect_facilities.setText(QCoreApplication.translate("mainWindow", u"Detect facilities", None))
|
5146
|
+
self.actionRotate.setText(QCoreApplication.translate("mainWindow", u"Rotate", None))
|
5141
5147
|
#if QT_CONFIG(tooltip)
|
5142
5148
|
self.diagramsListView.setToolTip(QCoreApplication.translate("mainWindow", u"List of available diagrams", None))
|
5143
5149
|
#endif // QT_CONFIG(tooltip)
|
@@ -255,6 +255,7 @@ class DiagramsMain(CompiledArraysMain):
|
|
255
255
|
self.ui.actionDisable_all_results_tags.triggered.connect(self.disable_all_results_tags)
|
256
256
|
self.ui.actionEnable_all_results_tags.triggered.connect(self.enable_all_results_tags)
|
257
257
|
self.ui.actionConsolidate_diagram_coordinates.triggered.connect(self.consolidate_diagram_coordinates)
|
258
|
+
self.ui.actionRotate.triggered.connect(self.rotate)
|
258
259
|
|
259
260
|
# Buttons
|
260
261
|
self.ui.colour_results_pushButton.clicked.connect(self.colour_diagrams)
|
@@ -1534,7 +1535,7 @@ class DiagramsMain(CompiledArraysMain):
|
|
1534
1535
|
|
1535
1536
|
def set_selected_diagram_on_click(self):
|
1536
1537
|
"""
|
1537
|
-
on list-view click, set the
|
1538
|
+
on list-view click, set the currently selected diagram widget
|
1538
1539
|
"""
|
1539
1540
|
diagram = self.get_selected_diagram_widget()
|
1540
1541
|
|
@@ -1814,16 +1815,29 @@ class DiagramsMain(CompiledArraysMain):
|
|
1814
1815
|
ok = True
|
1815
1816
|
|
1816
1817
|
if ok:
|
1817
|
-
|
1818
|
-
|
1819
|
-
|
1820
|
-
|
1821
|
-
|
1822
|
-
|
1823
|
-
|
1824
|
-
|
1825
|
-
|
1826
|
-
|
1818
|
+
cmap_text = self.ui.palette_comboBox.currentText()
|
1819
|
+
cmap = self.cmap_dict[cmap_text]
|
1820
|
+
|
1821
|
+
diagram = generate_map_diagram(
|
1822
|
+
substations=self.circuit.get_substations(),
|
1823
|
+
voltage_levels=self.circuit.get_voltage_levels(),
|
1824
|
+
lines=self.circuit.get_lines(),
|
1825
|
+
dc_lines=self.circuit.get_dc_lines(),
|
1826
|
+
hvdc_lines=self.circuit.get_hvdc(),
|
1827
|
+
fluid_nodes=self.circuit.get_fluid_nodes(),
|
1828
|
+
fluid_paths=self.circuit.get_fluid_paths(),
|
1829
|
+
prog_func=None,
|
1830
|
+
text_func=None,
|
1831
|
+
name='Map diagram',
|
1832
|
+
use_flow_based_width=self.ui.branch_width_based_on_flow_checkBox.isChecked(),
|
1833
|
+
min_branch_width=self.ui.min_branch_size_spinBox.value(),
|
1834
|
+
max_branch_width=self.ui.max_branch_size_spinBox.value(),
|
1835
|
+
min_bus_width=self.ui.min_node_size_spinBox.value(),
|
1836
|
+
max_bus_width=self.ui.max_node_size_spinBox.value(),
|
1837
|
+
arrow_size=self.ui.arrow_size_size_spinBox.value(),
|
1838
|
+
palette=cmap,
|
1839
|
+
default_bus_voltage=self.ui.defaultBusVoltageSpinBox.value()
|
1840
|
+
)
|
1827
1841
|
|
1828
1842
|
# set other default properties of the diagram
|
1829
1843
|
diagram.tile_source = self.ui.tile_provider_comboBox.currentText()
|
@@ -2614,6 +2628,23 @@ class DiagramsMain(CompiledArraysMain):
|
|
2614
2628
|
|
2615
2629
|
if diagram_widget is not None:
|
2616
2630
|
ok = yes_no_question(text="The diagram coordinates will be saved into the corresponding properties "
|
2617
|
-
"of the database,
|
2631
|
+
"of the database, overwriting the existing ones. Do you want to do this?",
|
2618
2632
|
title="Consolidate diagram coordinates into the DB")
|
2619
|
-
|
2633
|
+
if ok:
|
2634
|
+
diagram_widget.consolidate_coordinates()
|
2635
|
+
|
2636
|
+
def rotate(self):
|
2637
|
+
"""
|
2638
|
+
Rotate the selected diagram
|
2639
|
+
:return:
|
2640
|
+
"""
|
2641
|
+
diagram_widget = self.get_selected_diagram_widget()
|
2642
|
+
|
2643
|
+
if diagram_widget is not None:
|
2644
|
+
dlg = InputNumberDialogue(min_value=-180, max_value=180,
|
2645
|
+
default_value=-90, is_int=False,
|
2646
|
+
title='Rotate diagram',
|
2647
|
+
text=f'Rotation angle (degrees)')
|
2648
|
+
|
2649
|
+
if dlg.exec():
|
2650
|
+
diagram_widget.rotate(dlg.value)
|
@@ -29,6 +29,7 @@ from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit
|
|
29
29
|
|
30
30
|
from GridCalEngine.Compilers.circuit_to_bentayga import BENTAYGA_AVAILABLE
|
31
31
|
from GridCalEngine.Compilers.circuit_to_newton_pa import NEWTON_PA_AVAILABLE
|
32
|
+
from GridCalEngine.Compilers.circuit_to_gslv import GSLV_AVAILABLE
|
32
33
|
from GridCalEngine.Compilers.circuit_to_pgm import PGM_AVAILABLE
|
33
34
|
import GridCal.Gui.gui_functions as gf
|
34
35
|
import GridCal.Session.synchronization_driver as syncdrv
|
@@ -178,6 +179,8 @@ class BaseMainGui(QMainWindow):
|
|
178
179
|
|
179
180
|
# available engines --------------------------------------------------------------------------------------------
|
180
181
|
engine_lst = [EngineType.GridCal]
|
182
|
+
if GSLV_AVAILABLE:
|
183
|
+
engine_lst.append(EngineType.GSLV)
|
181
184
|
if NEWTON_PA_AVAILABLE:
|
182
185
|
engine_lst.append(EngineType.NewtonPA)
|
183
186
|
if BENTAYGA_AVAILABLE:
|
@@ -659,7 +659,7 @@ class IoMain(ConfigurationMain):
|
|
659
659
|
|
660
660
|
if self.server_driver.is_running():
|
661
661
|
instruction = RemoteInstruction(operation=SimulationTypes.NoSim)
|
662
|
-
self.server_driver.
|
662
|
+
self.server_driver.send_job(grid=self.circuit, instruction=instruction)
|
663
663
|
|
664
664
|
else:
|
665
665
|
# declare the allowed file types
|