GridCal 5.1.34__tar.gz → 5.1.35__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.34 → GridCal-5.1.35}/GridCal/Gui/Analysis/object_plot_analysis.py +26 -2
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py +3 -3
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +3 -3
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +46 -167
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/io.py +39 -22
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/__version__.py +1 -1
- {GridCal-5.1.34 → GridCal-5.1.35}/PKG-INFO +1 -1
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ExecuteGridCal.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Analysis/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Analysis/gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Branches/new_line_dialogue.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/gmt_local.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapbox.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapquest.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/open_street_map.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_toner.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_transport.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_watercolor.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/base_diagram_widget.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/MainWindow.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Scripting/python_highlighter.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/SubClasses/simulations.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/object_select_window.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/RosetaExplorer/ConsoleWidget.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/TowerBuilder/gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/TowerBuilder/test_.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Visualization/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Visualization/visualization.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Widgets/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/associations_model.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/console_widget.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/general_dialogues.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/gui_functions.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/messages.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/object_model.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/pandas_model.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/plot_config.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/profiles_model.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/table_view_header_wrap.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/themes.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/update_gui_all.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/update_gui_common.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/wrappable_table_model.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/LICENSE.txt +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Session/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Session/export_results_driver.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Session/file_handler.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Session/results_model.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Session/server_driver.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Session/session.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Session/synchronization_driver.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/data/__init__.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/data/cables.csv +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/data/sequence_lines.csv +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/data/transformers.csv +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/data/wires.csv +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/plugins.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/templates.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/GridCal/update.py +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/setup.cfg +0 -0
- {GridCal-5.1.34 → GridCal-5.1.35}/setup.py +0 -0
@@ -100,6 +100,22 @@ class GridErrorLog:
|
|
100
100
|
"""
|
101
101
|
self.logs.clear()
|
102
102
|
|
103
|
+
def add_normal_logger(self, logger: Logger):
|
104
|
+
"""
|
105
|
+
Add normal logger
|
106
|
+
:param logger: Logger
|
107
|
+
"""
|
108
|
+
for l in logger.entries:
|
109
|
+
self.add(object_type=l.device_class,
|
110
|
+
element_name=l.device,
|
111
|
+
element_index=0,
|
112
|
+
severity=l.severity,
|
113
|
+
propty=l.device_property,
|
114
|
+
message=l.msg,
|
115
|
+
val=l.value,
|
116
|
+
lower=l.expected_object_value,
|
117
|
+
upper=l.expected_value)
|
118
|
+
|
103
119
|
def get_model(self) -> "QtGui.QStandardItemModel":
|
104
120
|
"""
|
105
121
|
Get TreeView Model
|
@@ -1043,7 +1059,7 @@ def analyze_batteries(elements: List[Battery],
|
|
1043
1059
|
|
1044
1060
|
def analyze_static_gen(elements: List[StaticGenerator],
|
1045
1061
|
time_profile,
|
1046
|
-
logger: GridErrorLog,):
|
1062
|
+
logger: GridErrorLog, ):
|
1047
1063
|
"""
|
1048
1064
|
|
1049
1065
|
:param elements:
|
@@ -1076,7 +1092,7 @@ def analyze_static_gen(elements: List[StaticGenerator],
|
|
1076
1092
|
|
1077
1093
|
def analyze_load(elements: List[Load],
|
1078
1094
|
time_profile,
|
1079
|
-
logger: GridErrorLog,):
|
1095
|
+
logger: GridErrorLog, ):
|
1080
1096
|
"""
|
1081
1097
|
|
1082
1098
|
:param elements:
|
@@ -1137,6 +1153,12 @@ def grid_analysis(circuit: MultiCircuit,
|
|
1137
1153
|
:param eps_min: Min epsylon value for comparison
|
1138
1154
|
:return: list of fixable error objects
|
1139
1155
|
"""
|
1156
|
+
|
1157
|
+
# check for duplicated uuid's
|
1158
|
+
duplicates_logger = Logger()
|
1159
|
+
_, ok_dict = circuit.get_all_elements_dict(logger=duplicates_logger)
|
1160
|
+
logger.add_normal_logger(duplicates_logger)
|
1161
|
+
|
1140
1162
|
if circuit.time_profile is not None:
|
1141
1163
|
nt = len(circuit.time_profile)
|
1142
1164
|
else:
|
@@ -1288,6 +1310,8 @@ def grid_analysis(circuit: MultiCircuit,
|
|
1288
1310
|
val=Ql_prof[t],
|
1289
1311
|
upper=str(Qmax))
|
1290
1312
|
|
1313
|
+
|
1314
|
+
|
1291
1315
|
return fixable_errors
|
1292
1316
|
|
1293
1317
|
|
{GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py
RENAMED
@@ -176,7 +176,7 @@ class NodeGraphicItem(QtWidgets.QGraphicsRectItem, NodeTemplate):
|
|
176
176
|
if len(selected_items) < 2:
|
177
177
|
self.setSelected(True)
|
178
178
|
if self.enabled:
|
179
|
-
self.editor.map.view.
|
179
|
+
self.editor.map.view.disable_move = True
|
180
180
|
if event.button() == Qt.RightButton:
|
181
181
|
pass
|
182
182
|
|
@@ -197,7 +197,7 @@ class NodeGraphicItem(QtWidgets.QGraphicsRectItem, NodeTemplate):
|
|
197
197
|
"""
|
198
198
|
Event handler for when the mouse enters the item.
|
199
199
|
"""
|
200
|
-
self.editor.map.view.
|
200
|
+
# self.editor.map.view.in_item = True
|
201
201
|
self.hovered = True
|
202
202
|
self.setNodeColor(QColor(Qt.red), QColor(Qt.red))
|
203
203
|
QApplication.instance().setOverrideCursor(Qt.PointingHandCursor)
|
@@ -206,7 +206,7 @@ class NodeGraphicItem(QtWidgets.QGraphicsRectItem, NodeTemplate):
|
|
206
206
|
"""
|
207
207
|
Event handler for when the mouse leaves the item.
|
208
208
|
"""
|
209
|
-
self.editor.map.view.
|
209
|
+
# self.editor.map.view.in_item = False
|
210
210
|
self.hovered = False
|
211
211
|
self.setDefaultColor()
|
212
212
|
QApplication.instance().restoreOverrideCursor()
|
@@ -190,7 +190,7 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
190
190
|
self.setSelected(True)
|
191
191
|
|
192
192
|
event.setAccepted(True)
|
193
|
-
self.editor.map.view.
|
193
|
+
self.editor.map.view.disable_move = True
|
194
194
|
|
195
195
|
if self.api_object is not None:
|
196
196
|
self.editor.set_editor_model(api_object=self.api_object)
|
@@ -208,7 +208,7 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
208
208
|
"""
|
209
209
|
Event handler for when the mouse enters the item.
|
210
210
|
"""
|
211
|
-
self.editor.map.view.
|
211
|
+
# self.editor.map.view.in_item = True
|
212
212
|
self.setNodeColor(QColor(Qt.red), QColor(Qt.red))
|
213
213
|
self.hovered = True
|
214
214
|
QApplication.instance().setOverrideCursor(Qt.PointingHandCursor)
|
@@ -217,7 +217,7 @@ class SubstationGraphicItem(QGraphicsRectItem, NodeTemplate):
|
|
217
217
|
"""
|
218
218
|
Event handler for when the mouse leaves the item.
|
219
219
|
"""
|
220
|
-
self.editor.map.view.
|
220
|
+
# self.editor.map.view.in_item = False
|
221
221
|
self.hovered = False
|
222
222
|
self.setDefaultColor()
|
223
223
|
QApplication.instance().restoreOverrideCursor()
|
@@ -116,16 +116,20 @@ class MapView(QGraphicsView):
|
|
116
116
|
|
117
117
|
# Create a QLabel
|
118
118
|
self.label = QLabel("Bottom Left Label")
|
119
|
-
self.label.setStyleSheet("background-color: rgba(
|
119
|
+
self.label.setStyleSheet("background-color: rgba(0, 0, 0, 0);"
|
120
|
+
"color: rgba(150, 150, 150, 180);"
|
121
|
+
"font-size:9pt") # Semi-transparent yellow
|
120
122
|
|
121
123
|
# Create a QGraphicsProxyWidget for the QLabel
|
122
|
-
self.
|
123
|
-
self.
|
124
|
+
self.label_proxy_widget = QGraphicsProxyWidget()
|
125
|
+
self.label_proxy_widget.setWidget(self.label)
|
126
|
+
|
124
127
|
# Position the QLabel within the scene
|
125
|
-
self.
|
128
|
+
self.label_proxy_widget.setPos(0, scene.sceneRect().height() - self.label.height()) # Bottom-left position
|
129
|
+
self.label_proxy_widget.setFlag(QGraphicsItem.ItemIgnoresTransformations)
|
126
130
|
|
127
131
|
# Add the proxy widget to the scene
|
128
|
-
self._scene.addItem(self.
|
132
|
+
self._scene.addItem(self.label_proxy_widget)
|
129
133
|
|
130
134
|
self.mouse_x = None
|
131
135
|
self.mouse_y = None
|
@@ -133,9 +137,9 @@ class MapView(QGraphicsView):
|
|
133
137
|
self.diagram_w = 25000
|
134
138
|
self.diagram_H = 25000
|
135
139
|
|
136
|
-
self.
|
140
|
+
# self.in_item = False # looks that it is written but never used
|
137
141
|
self.pressed = False
|
138
|
-
self.
|
142
|
+
self.disable_move = False
|
139
143
|
|
140
144
|
# updated later
|
141
145
|
self.view_width = self.width()
|
@@ -147,6 +151,14 @@ class MapView(QGraphicsView):
|
|
147
151
|
|
148
152
|
self.scale(initial_zoom_factor, initial_zoom_factor)
|
149
153
|
|
154
|
+
def set_notice(self, val: str):
|
155
|
+
"""
|
156
|
+
|
157
|
+
:param val:
|
158
|
+
:return:
|
159
|
+
"""
|
160
|
+
self.label.setText(val)
|
161
|
+
|
150
162
|
def selected_items(self) -> List[QGraphicsItem]:
|
151
163
|
"""
|
152
164
|
Get the selected items
|
@@ -162,7 +174,7 @@ class MapView(QGraphicsView):
|
|
162
174
|
"""
|
163
175
|
self.map_widget.mousePressEvent(event)
|
164
176
|
self.pressed = True
|
165
|
-
self.
|
177
|
+
self.disable_move = False
|
166
178
|
|
167
179
|
super().mousePressEvent(event)
|
168
180
|
|
@@ -174,7 +186,7 @@ class MapView(QGraphicsView):
|
|
174
186
|
"""
|
175
187
|
self.map_widget.mouseReleaseEvent(event)
|
176
188
|
self.pressed = False
|
177
|
-
self.
|
189
|
+
self.disable_move = True
|
178
190
|
super().mouseReleaseEvent(event)
|
179
191
|
|
180
192
|
def mouseDoubleClickEvent(self, event: QMouseEvent):
|
@@ -192,11 +204,12 @@ class MapView(QGraphicsView):
|
|
192
204
|
:param event:
|
193
205
|
:return:
|
194
206
|
"""
|
195
|
-
if not self.
|
207
|
+
if not self.disable_move:
|
196
208
|
self.map_widget.mouseMoveEvent(event)
|
197
|
-
self.
|
209
|
+
self.center_schema()
|
198
210
|
|
199
211
|
super().mouseMoveEvent(event)
|
212
|
+
self.update_label_position()
|
200
213
|
|
201
214
|
def keyPressEvent(self, event: QKeyEvent):
|
202
215
|
"""
|
@@ -247,7 +260,8 @@ class MapView(QGraphicsView):
|
|
247
260
|
|
248
261
|
self.map_widget.wheelEvent(event)
|
249
262
|
|
250
|
-
self.
|
263
|
+
self.center_schema()
|
264
|
+
self.update_label_position()
|
251
265
|
|
252
266
|
def dragEnterEvent(self, event: QDragEnterEvent):
|
253
267
|
"""
|
@@ -280,21 +294,29 @@ class MapView(QGraphicsView):
|
|
280
294
|
Widget resized, recompute some state.
|
281
295
|
"""
|
282
296
|
|
297
|
+
super().resizeEvent(event)
|
283
298
|
self.map_widget.resizeEvent(event=event)
|
284
299
|
|
285
|
-
|
300
|
+
def update_label_position(self):
|
301
|
+
"""
|
302
|
+
Updates the position of the label to the bottom-left corner of the viewport.
|
303
|
+
"""
|
304
|
+
view_width = self.viewport().width()
|
305
|
+
view_height = self.viewport().height()
|
306
|
+
|
307
|
+
# Set position relative to the bottom-left corner of the viewport
|
308
|
+
self.label_proxy_widget.setPos(self.mapToScene(0, view_height - self.label.height()))
|
286
309
|
|
287
|
-
def
|
310
|
+
def set_size_diagram(self) -> None:
|
288
311
|
"""
|
289
312
|
|
290
313
|
:return:
|
291
314
|
"""
|
292
315
|
# new widget size
|
293
|
-
# TODO: These vars must be declared in init
|
294
316
|
self.view_width = self.width()
|
295
317
|
self.view_height = self.height()
|
296
318
|
|
297
|
-
def
|
319
|
+
def set_scene_rect_diagram(self) -> None:
|
298
320
|
"""
|
299
321
|
|
300
322
|
:return:
|
@@ -306,12 +328,9 @@ class MapView(QGraphicsView):
|
|
306
328
|
yToDiagram = -(used_height / 2)
|
307
329
|
|
308
330
|
# Adjust the scene rect if needed
|
309
|
-
self.setSceneRect(xToDiagram,
|
310
|
-
yToDiagram,
|
311
|
-
used_width,
|
312
|
-
used_height)
|
331
|
+
self.setSceneRect(xToDiagram, yToDiagram, used_width, used_height)
|
313
332
|
|
314
|
-
self.
|
333
|
+
self.center_schema()
|
315
334
|
|
316
335
|
def to_lat_lon(self, x: float, y: float) -> Tuple[float, float]:
|
317
336
|
"""
|
@@ -347,7 +366,7 @@ class MapView(QGraphicsView):
|
|
347
366
|
|
348
367
|
return x, y
|
349
368
|
|
350
|
-
def
|
369
|
+
def center_schema(self) -> None:
|
351
370
|
"""
|
352
371
|
This function centers the schema relative to the map according to lat. and long.
|
353
372
|
"""
|
@@ -364,142 +383,6 @@ class MapView(QGraphicsView):
|
|
364
383
|
self.map_widget.view.centerOn(point)
|
365
384
|
|
366
385
|
|
367
|
-
class NoticeWidget(QWidget):
|
368
|
-
"""
|
369
|
-
MapView
|
370
|
-
"""
|
371
|
-
|
372
|
-
def __init__(self, map_widget: "MapWidget"):
|
373
|
-
"""
|
374
|
-
|
375
|
-
:param map_widget:
|
376
|
-
"""
|
377
|
-
QWidget.__init__(self)
|
378
|
-
|
379
|
-
# Enable drop functionality
|
380
|
-
self.setAcceptDrops(True)
|
381
|
-
|
382
|
-
self.map_widget = map_widget
|
383
|
-
|
384
|
-
# add a label to display copyright stuff
|
385
|
-
self.notice_label = QLabel("some notice")
|
386
|
-
self.notice_label.setAlignment(Qt.AlignLeft | Qt.AlignBottom)
|
387
|
-
self.notice_label.setStyleSheet("background-color: rgba(255, 255, 255, 0);"
|
388
|
-
"font-size: 8pt;"
|
389
|
-
"color: rgba(100, 100, 100, 255);")
|
390
|
-
|
391
|
-
# Create a container for the label and position it at the bottom-left
|
392
|
-
self.label_container = QWidget()
|
393
|
-
self.label_layout = QVBoxLayout(self.label_container)
|
394
|
-
self.label_layout.addWidget(self.notice_label)
|
395
|
-
self.label_layout.setAlignment(Qt.AlignLeft | Qt.AlignBottom)
|
396
|
-
self.label_layout.setContentsMargins(1, 1, 1, 1) # Optional margin
|
397
|
-
|
398
|
-
self.setLayout(self.label_layout)
|
399
|
-
|
400
|
-
def set_notice(self, val: str) -> None:
|
401
|
-
"""
|
402
|
-
Set the notification text
|
403
|
-
:param val: some text
|
404
|
-
"""
|
405
|
-
self.notice_label.setText(val)
|
406
|
-
|
407
|
-
def mousePressEvent(self, event: QMouseEvent):
|
408
|
-
"""
|
409
|
-
|
410
|
-
:param event:
|
411
|
-
:return:
|
412
|
-
"""
|
413
|
-
self.map_widget.view.mousePressEvent(event)
|
414
|
-
super().mousePressEvent(event)
|
415
|
-
|
416
|
-
def mouseReleaseEvent(self, event: QMouseEvent):
|
417
|
-
"""
|
418
|
-
|
419
|
-
:param event:
|
420
|
-
:return:
|
421
|
-
"""
|
422
|
-
self.map_widget.view.mouseReleaseEvent(event)
|
423
|
-
super().mouseReleaseEvent(event)
|
424
|
-
|
425
|
-
def mouseDoubleClickEvent(self, event: QMouseEvent):
|
426
|
-
"""
|
427
|
-
|
428
|
-
:param event:
|
429
|
-
:return:
|
430
|
-
"""
|
431
|
-
self.map_widget.view.mouseDoubleClickEvent(event)
|
432
|
-
super().mouseDoubleClickEvent(event)
|
433
|
-
|
434
|
-
def mouseMoveEvent(self, event: QMouseEvent):
|
435
|
-
"""
|
436
|
-
|
437
|
-
:param event:
|
438
|
-
:return:
|
439
|
-
"""
|
440
|
-
self.map_widget.view.mouseMoveEvent(event)
|
441
|
-
super().mouseMoveEvent(event)
|
442
|
-
|
443
|
-
def keyPressEvent(self, event: QKeyEvent):
|
444
|
-
"""
|
445
|
-
|
446
|
-
:param event:
|
447
|
-
:return:
|
448
|
-
"""
|
449
|
-
self.map_widget.view.keyPressEvent(event)
|
450
|
-
|
451
|
-
def keyReleaseEvent(self, event: QKeyEvent):
|
452
|
-
"""
|
453
|
-
|
454
|
-
:param event:
|
455
|
-
:return:
|
456
|
-
"""
|
457
|
-
self.map_widget.view.keyReleaseEvent(event)
|
458
|
-
|
459
|
-
def wheelEvent(self, event: QWheelEvent):
|
460
|
-
"""
|
461
|
-
|
462
|
-
:param event:
|
463
|
-
:return:
|
464
|
-
"""
|
465
|
-
super().wheelEvent(event)
|
466
|
-
self.map_widget.view.wheelEvent(event)
|
467
|
-
|
468
|
-
def dragEnterEvent(self, event: QDragEnterEvent):
|
469
|
-
"""
|
470
|
-
|
471
|
-
:param event:
|
472
|
-
:return:
|
473
|
-
"""
|
474
|
-
if event.mimeData().hasFormat('component/name'):
|
475
|
-
event.accept()
|
476
|
-
|
477
|
-
def dragMoveEvent(self, event: QDragMoveEvent):
|
478
|
-
"""
|
479
|
-
|
480
|
-
:param event:
|
481
|
-
:return:
|
482
|
-
"""
|
483
|
-
super().dragMoveEvent(event)
|
484
|
-
self.map_widget.view.dragMoveEvent(event)
|
485
|
-
|
486
|
-
def dropEvent(self, event: QDropEvent):
|
487
|
-
"""
|
488
|
-
|
489
|
-
:param event:
|
490
|
-
:return:
|
491
|
-
"""
|
492
|
-
super().dropEvent(event)
|
493
|
-
self.map_widget.view.dropEvent(event)
|
494
|
-
|
495
|
-
def resizeEvent(self, event: QResizeEvent = None):
|
496
|
-
"""
|
497
|
-
Widget resized, recompute some state.
|
498
|
-
"""
|
499
|
-
super().resizeEvent(event)
|
500
|
-
self.map_widget.view.resizeEvent(event=event)
|
501
|
-
|
502
|
-
|
503
386
|
class MapWidget(QWidget):
|
504
387
|
"""
|
505
388
|
Map widget
|
@@ -541,16 +424,13 @@ class MapWidget(QWidget):
|
|
541
424
|
self.view = MapView(scene=self.diagram_scene, map_widget=self)
|
542
425
|
self.view.setBackgroundBrush(Qt.transparent)
|
543
426
|
|
544
|
-
# notification widget
|
545
|
-
self.notice_widget = NoticeWidget(map_widget=self)
|
546
|
-
|
547
427
|
# -------------------------------------------------------------------------
|
548
428
|
# Internal vars
|
549
429
|
# -------------------------------------------------------------------------
|
550
430
|
# remember the tile source object
|
551
431
|
self._tile_src: Tiles = tile_src
|
552
432
|
self._tile_src.setCallback(self.on_tile_available)
|
553
|
-
self.
|
433
|
+
self.view.set_notice(val=self._tile_src.attribution_string)
|
554
434
|
|
555
435
|
# the tile coordinates
|
556
436
|
self.level: int = start_level
|
@@ -635,11 +515,11 @@ class MapWidget(QWidget):
|
|
635
515
|
if tile_src.TilesetName != self._tile_src.TilesetName: # avoid changing tilesets to themselves
|
636
516
|
self._tile_src: Tiles = tile_src
|
637
517
|
self._tile_src.setCallback(self.on_tile_available)
|
638
|
-
self.
|
518
|
+
self.view.set_notice(val=self._tile_src.attribution_string)
|
639
519
|
|
640
520
|
if self.GotoLevel(level):
|
641
521
|
self.GotoLevelAndPosition(level=level, longitude=longitude, latitude=latitude)
|
642
|
-
self.view.
|
522
|
+
self.view.center_schema()
|
643
523
|
else:
|
644
524
|
while abs(self.view.schema_zoom - 0.015625) > 0.00001:
|
645
525
|
self.view.schema_zoom = self.view.schema_zoom / self.view.map_widget.zoom_factor
|
@@ -928,14 +808,13 @@ class MapWidget(QWidget):
|
|
928
808
|
Widget resized, recompute some state.
|
929
809
|
"""
|
930
810
|
if updateDiagram:
|
931
|
-
self.view.
|
811
|
+
self.view.set_size_diagram()
|
932
812
|
|
933
813
|
# recalculate the "key" tile stuff
|
934
814
|
self.rectify_key_tile()
|
935
815
|
|
936
816
|
if updateDiagram:
|
937
|
-
self.view.
|
938
|
-
|
817
|
+
self.view.set_scene_rect_diagram()
|
939
818
|
|
940
819
|
def enterEvent(self, event: QEnterEvent):
|
941
820
|
"""
|
@@ -23,7 +23,7 @@ from PySide6 import QtWidgets
|
|
23
23
|
import GridCal.Gui.gui_functions as gf
|
24
24
|
import GridCal.Session.export_results_driver as exprtdrv
|
25
25
|
import GridCal.Session.file_handler as filedrv
|
26
|
-
|
26
|
+
|
27
27
|
from GridCal.Gui.CoordinatesInput.coordinates_dialogue import CoordinatesInputGUI
|
28
28
|
from GridCal.Gui.general_dialogues import LogsDialogue, CustomQuestionDialogue
|
29
29
|
from GridCal.Gui.Diagrams.SchematicWidget.schematic_widget import SchematicWidget
|
@@ -32,10 +32,12 @@ from GridCal.Gui.GridGenerator.grid_generator_dialogue import GridGeneratorGUI
|
|
32
32
|
from GridCal.Gui.RosetaExplorer.RosetaExplorer import RosetaExplorerGUI
|
33
33
|
from GridCal.Gui.Main.SubClasses.Settings.configuration import ConfigurationMain
|
34
34
|
|
35
|
+
from GridCalEngine.Devices.multi_circuit import MultiCircuit
|
35
36
|
from GridCalEngine.Compilers.circuit_to_newton_pa import NEWTON_PA_AVAILABLE
|
36
37
|
from GridCalEngine.Compilers.circuit_to_pgm import PGM_AVAILABLE
|
37
38
|
from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at
|
38
39
|
from GridCalEngine.enumerations import CGMESVersions, SimulationTypes
|
40
|
+
from GridCalEngine.basic_structures import Logger
|
39
41
|
from GridCalEngine.IO.gridcal.contingency_parser import import_contingencies_from_json, export_contingencies_json_file
|
40
42
|
from GridCalEngine.IO.cim.cgmes.cgmes_enums import cgmesProfile
|
41
43
|
from GridCalEngine.IO.gridcal.remote import RemoteInstruction
|
@@ -521,9 +523,17 @@ class IoMain(ConfigurationMain):
|
|
521
523
|
"""
|
522
524
|
Prompt to add another circuit
|
523
525
|
"""
|
524
|
-
|
525
|
-
|
526
|
-
|
526
|
+
# check that this circuit is ok
|
527
|
+
logger = Logger()
|
528
|
+
_, ok = self.circuit.get_all_elements_dict(logger=logger)
|
529
|
+
|
530
|
+
if ok:
|
531
|
+
self.open_file_threaded(post_function=self.post_create_circuit_differential,
|
532
|
+
allow_diff_file_format=True,
|
533
|
+
title="Load base grid to compare...")
|
534
|
+
else:
|
535
|
+
dlg = LogsDialogue('This circuit has duplicated idtags :(', logger)
|
536
|
+
dlg.exec_()
|
527
537
|
|
528
538
|
def post_create_circuit_differential(self):
|
529
539
|
"""
|
@@ -548,30 +558,37 @@ class IoMain(ConfigurationMain):
|
|
548
558
|
# diff the circuit
|
549
559
|
new_circuit = self.open_file_thread_object.circuit
|
550
560
|
|
551
|
-
|
552
|
-
|
561
|
+
dict_logger = Logger()
|
562
|
+
_, dict_ok = new_circuit.get_all_elements_dict(logger=dict_logger)
|
553
563
|
|
554
|
-
if
|
555
|
-
|
556
|
-
|
564
|
+
if dict_ok:
|
565
|
+
# create the differential
|
566
|
+
ok, diff_logger, dgrid = self.circuit.differentiate_circuits(new_circuit)
|
557
567
|
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
"GridCal diff (*.dgridcal)")
|
568
|
+
if diff_logger.has_logs():
|
569
|
+
dlg = LogsDialogue('Grid differences', diff_logger)
|
570
|
+
dlg.exec_()
|
562
571
|
|
563
|
-
|
572
|
+
# select the file to save
|
573
|
+
filename, type_selected = QtWidgets.QFileDialog.getSaveFileName(self, 'Save file',
|
574
|
+
dgrid.name,
|
575
|
+
"GridCal diff (*.dgridcal)")
|
564
576
|
|
565
|
-
|
566
|
-
name, file_extension = os.path.splitext(filename)
|
577
|
+
if filename != '':
|
567
578
|
|
568
|
-
|
569
|
-
|
579
|
+
# if the user did not enter the extension, add it automatically
|
580
|
+
name, file_extension = os.path.splitext(filename)
|
570
581
|
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
582
|
+
if file_extension == '':
|
583
|
+
filename = name + ".dgridcal"
|
584
|
+
|
585
|
+
# we were able to compose the file correctly, now save it
|
586
|
+
self.save_file_now(filename=filename,
|
587
|
+
type_selected=type_selected,
|
588
|
+
grid=dgrid)
|
589
|
+
else:
|
590
|
+
dlg = LogsDialogue('The base circuit has duplicated idtags :(', dict_logger)
|
591
|
+
dlg.exec()
|
575
592
|
|
576
593
|
def save_file_as(self):
|
577
594
|
"""
|
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.34 → GridCal-5.1.35}/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.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py
RENAMED
File without changes
|
{GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py
RENAMED
File without changes
|
{GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Branches/new_line_dialogue.py
RENAMED
File without changes
|
File without changes
|
{GridCal-5.1.34 → GridCal-5.1.35}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py
RENAMED
File without changes
|