GridCal 5.3.25__tar.gz → 5.3.27__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.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +8 -6
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +6 -8
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +5 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +20 -2
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/MainWindow.py +81 -58
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/simulations.py +21 -11
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/__version__.py +1 -1
- {gridcal-5.3.25 → gridcal-5.3.27}/PKG-INFO +1 -1
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ExecuteGridCal.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Analysis/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Analysis/gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Branches/new_line_dialogue.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_editor.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/base_diagram_widget.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridMerge/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridMerge/build_diff_tree.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridMerge/demo_code.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridMerge/demo_code2.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridMerge/demo_code3.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridMerge/grid_diff.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridMerge/grid_diff_gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridMerge/grid_merge.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridMerge/grid_merge_gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/GridMerge/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/SubClasses/io.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/object_select_window.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SubstationDesigner/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SubstationDesigner/substation_designer.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SubstationDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/TowerBuilder/tower_builder.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Visualization/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Visualization/visualization.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Widgets/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/associations_model.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/general_dialogues.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/gui_functions.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/messages.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/object_model.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/pandas_model.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/plot_config.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/profiles_model.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/python_console.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/python_highlighter.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/results_model.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/table_view_header_wrap.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/themes.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/toast_widget.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/update_gui_all.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/update_gui_common.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/wrappable_table_model.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/LICENSE.txt +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Session/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Session/export_results_driver.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Session/file_handler.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Session/server_driver.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Session/session.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Session/synchronization_driver.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/data/GridCal.ico +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/data/GridCal.svg +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/data/__init__.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/data/cables.csv +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/data/sequence_lines.csv +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/data/transformers.csv +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/data/wires.csv +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/plugins.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/templates.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/GridCal/update.py +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/setup.cfg +0 -0
- {gridcal-5.3.25 → gridcal-5.3.27}/setup.py +0 -0
{gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py
RENAMED
@@ -496,7 +496,8 @@ class MapLineContainer(GenericDiagramWidget, QGraphicsItemGroup):
|
|
496
496
|
def calculate_total_length(self) -> float:
|
497
497
|
"""
|
498
498
|
Calculate the total length of the line by summing the distances between all waypoints
|
499
|
-
using the haversine formula, and update the line's length property.
|
499
|
+
using the haversine formula, and update the line's length property. The coordiates used are the
|
500
|
+
ones from the api_object, not the graphic objects, in order to avoid undesired recalculations. Issue #23
|
500
501
|
|
501
502
|
:return: Total length in kilometers
|
502
503
|
"""
|
@@ -508,17 +509,18 @@ class MapLineContainer(GenericDiagramWidget, QGraphicsItemGroup):
|
|
508
509
|
# Add the substation from
|
509
510
|
substation_from = self.substation_from()
|
510
511
|
if substation_from is not None:
|
511
|
-
connection_points.append((substation_from.
|
512
|
-
|
512
|
+
connection_points.append((substation_from.api_object.latitude, substation_from.api_object.longitude))
|
513
|
+
|
513
514
|
# Add all intermediate points
|
514
515
|
for node in self.nodes_list:
|
515
|
-
connection_points.append((node.lat, node.
|
516
|
+
connection_points.append((node.api_object.lat, node.api_object.long))
|
516
517
|
|
517
518
|
# Add the substation to
|
518
519
|
substation_to = self.substation_to()
|
520
|
+
|
519
521
|
if substation_to is not None:
|
520
|
-
connection_points.append((substation_to.
|
521
|
-
|
522
|
+
connection_points.append((substation_to.api_object.latitude, substation_to.api_object.longitude))
|
523
|
+
|
522
524
|
# Calculate total length by summing distances between consecutive points
|
523
525
|
total_length = 0.0
|
524
526
|
for i in range(len(connection_points) - 1):
|
{gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py
RENAMED
@@ -282,7 +282,7 @@ class MapLineSegment(QGraphicsLineItem):
|
|
282
282
|
add_menu_entry(menu=menu,
|
283
283
|
text="Change substation connection of the line",
|
284
284
|
function_ptr=self.editor.change_line_connection,
|
285
|
-
icon_path=":/Icons/icons/
|
285
|
+
icon_path=":/Icons/icons/move_bus.svg")
|
286
286
|
else:
|
287
287
|
pass
|
288
288
|
|
@@ -509,10 +509,8 @@ class MapLineSegment(QGraphicsLineItem):
|
|
509
509
|
total_length = self.container.calculate_total_length()
|
510
510
|
|
511
511
|
# Show a message with the calculated length
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
msg.setWindowTitle("Length Calculation")
|
518
|
-
msg.exec()
|
512
|
+
self.editor.gui.show_info_toast(
|
513
|
+
message=f"Line length calculated: {total_length:.2f} km. The length property of line "
|
514
|
+
f"{self.api_object.name} has been updated.")
|
515
|
+
|
516
|
+
|
@@ -638,8 +638,13 @@ class SubstationGraphicItem(NodeTemplate, QGraphicsRectItem):
|
|
638
638
|
for line in self.editor.circuit.lines:
|
639
639
|
if line.bus_from in removed_buses:
|
640
640
|
line.bus_from = recipient_buses[line.bus_from.Vnom]
|
641
|
+
line_graphic = self.editor.graphics_manager.query(elm=line)
|
642
|
+
line_graphic.calculate_total_length()
|
643
|
+
|
641
644
|
if line.bus_to in removed_buses:
|
642
645
|
line.bus_to = recipient_buses[line.bus_to.Vnom]
|
646
|
+
line_graphic = self.editor.graphics_manager.query(elm=line)
|
647
|
+
line_graphic.calculate_total_length()
|
643
648
|
|
644
649
|
for bus in removed_buses:
|
645
650
|
self.editor.circuit.delete_bus(obj=bus, delete_associated=False)
|
@@ -55,7 +55,7 @@ from GridCal.Gui.Diagrams.graphics_manager import ALL_MAP_GRAPHICS
|
|
55
55
|
from GridCal.Gui.Diagrams.MapWidget.Tiles.tiles import Tiles
|
56
56
|
from GridCal.Gui.Diagrams.base_diagram_widget import BaseDiagramWidget
|
57
57
|
from GridCal.Gui.object_model import ObjectsModel
|
58
|
-
from GridCal.Gui.messages import error_msg, info_msg
|
58
|
+
from GridCal.Gui.messages import error_msg, info_msg, yes_no_question
|
59
59
|
|
60
60
|
if TYPE_CHECKING:
|
61
61
|
from GridCal.Gui.Main.SubClasses.Model.diagrams import DiagramsMain
|
@@ -1400,6 +1400,23 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1400
1400
|
gelm.api_object.lat = gelm.lat
|
1401
1401
|
gelm.api_object.long = gelm.lon
|
1402
1402
|
|
1403
|
+
ok = yes_no_question(title='Update lengths?',
|
1404
|
+
text='Do you want to update lengths of lines? \n'
|
1405
|
+
'IMPORTANT: This will take into account every movement of substation and line '
|
1406
|
+
'locations. If you are unsure of the effects of this updating, click no and perform '
|
1407
|
+
'the individual length update in a new map or in the specific line.')
|
1408
|
+
if ok:
|
1409
|
+
line_graphics_list = self.graphics_manager.graphic_dict[DeviceType.LineDevice]
|
1410
|
+
|
1411
|
+
for key, line_graphic in line_graphics_list.items():
|
1412
|
+
line_graphic.calculate_total_length()
|
1413
|
+
|
1414
|
+
self.gui.show_info_toast(message='Line lengths UPDATED')
|
1415
|
+
|
1416
|
+
|
1417
|
+
else:
|
1418
|
+
self.gui.show_info_toast(message='Line lengths NOT UPDATED')
|
1419
|
+
|
1403
1420
|
def plot_substation(self, i: int, api_object: Substation):
|
1404
1421
|
"""
|
1405
1422
|
Plot branch results
|
@@ -2264,7 +2281,8 @@ class GridMapWidget(BaseDiagramWidget):
|
|
2264
2281
|
# Remove past graphic item and add the new one
|
2265
2282
|
|
2266
2283
|
self.remove_branch_graphic(line=line_graphic, delete_from_db=False)
|
2267
|
-
self.add_api_line(api_object=line_api)
|
2284
|
+
line = self.add_api_line(api_object=line_api)
|
2285
|
+
line.calculate_total_length()
|
2268
2286
|
|
2269
2287
|
msg = QMessageBox()
|
2270
2288
|
msg.setIcon(QMessageBox.Icon.Information)
|
@@ -2590,6 +2590,12 @@ class Ui_mainWindow(object):
|
|
2590
2590
|
|
2591
2591
|
self.verticalLayout_4.addWidget(self.orthogonalize_pf_controls_checkBox)
|
2592
2592
|
|
2593
|
+
self.initialize_pf_angles_checkBox = QCheckBox(self.frame_36)
|
2594
|
+
self.initialize_pf_angles_checkBox.setObjectName(u"initialize_pf_angles_checkBox")
|
2595
|
+
self.initialize_pf_angles_checkBox.setFont(font1)
|
2596
|
+
|
2597
|
+
self.verticalLayout_4.addWidget(self.initialize_pf_angles_checkBox)
|
2598
|
+
|
2593
2599
|
self.label_54 = QLabel(self.frame_36)
|
2594
2600
|
self.label_54.setObjectName(u"label_54")
|
2595
2601
|
|
@@ -2909,11 +2915,23 @@ class Ui_mainWindow(object):
|
|
2909
2915
|
self.groupBox.setFont(font6)
|
2910
2916
|
self.gridLayout_18 = QGridLayout(self.groupBox)
|
2911
2917
|
self.gridLayout_18.setObjectName(u"gridLayout_18")
|
2912
|
-
self.
|
2913
|
-
self.
|
2914
|
-
self.
|
2918
|
+
self.label_10 = QLabel(self.groupBox)
|
2919
|
+
self.label_10.setObjectName(u"label_10")
|
2920
|
+
self.label_10.setFont(font7)
|
2915
2921
|
|
2916
|
-
self.gridLayout_18.addWidget(self.
|
2922
|
+
self.gridLayout_18.addWidget(self.label_10, 0, 0, 1, 1)
|
2923
|
+
|
2924
|
+
self.opfZonalGroupByComboBox = QComboBox(self.groupBox)
|
2925
|
+
self.opfZonalGroupByComboBox.setObjectName(u"opfZonalGroupByComboBox")
|
2926
|
+
self.opfZonalGroupByComboBox.setFont(font7)
|
2927
|
+
|
2928
|
+
self.gridLayout_18.addWidget(self.opfZonalGroupByComboBox, 2, 1, 1, 1)
|
2929
|
+
|
2930
|
+
self.opfUnitCommitmentCheckBox = QCheckBox(self.groupBox)
|
2931
|
+
self.opfUnitCommitmentCheckBox.setObjectName(u"opfUnitCommitmentCheckBox")
|
2932
|
+
self.opfUnitCommitmentCheckBox.setFont(font7)
|
2933
|
+
|
2934
|
+
self.gridLayout_18.addWidget(self.opfUnitCommitmentCheckBox, 5, 0, 1, 1)
|
2917
2935
|
|
2918
2936
|
self.label_132 = QLabel(self.groupBox)
|
2919
2937
|
self.label_132.setObjectName(u"label_132")
|
@@ -2926,48 +2944,39 @@ class Ui_mainWindow(object):
|
|
2926
2944
|
|
2927
2945
|
self.gridLayout_18.addWidget(self.opf_time_grouping_comboBox, 1, 1, 1, 1)
|
2928
2946
|
|
2929
|
-
self.
|
2930
|
-
self.
|
2931
|
-
self.
|
2947
|
+
self.mip_solver_comboBox = QComboBox(self.groupBox)
|
2948
|
+
self.mip_solver_comboBox.setObjectName(u"mip_solver_comboBox")
|
2949
|
+
self.mip_solver_comboBox.setFont(font7)
|
2932
2950
|
|
2933
|
-
self.gridLayout_18.addWidget(self.
|
2951
|
+
self.gridLayout_18.addWidget(self.mip_solver_comboBox, 0, 1, 1, 1)
|
2952
|
+
|
2953
|
+
self.fixOpfCheckBox = QCheckBox(self.groupBox)
|
2954
|
+
self.fixOpfCheckBox.setObjectName(u"fixOpfCheckBox")
|
2955
|
+
self.fixOpfCheckBox.setFont(font7)
|
2956
|
+
|
2957
|
+
self.gridLayout_18.addWidget(self.fixOpfCheckBox, 8, 0, 1, 2)
|
2934
2958
|
|
2935
2959
|
self.considerContingenciesOpfCheckBox = QCheckBox(self.groupBox)
|
2936
2960
|
self.considerContingenciesOpfCheckBox.setObjectName(u"considerContingenciesOpfCheckBox")
|
2937
2961
|
self.considerContingenciesOpfCheckBox.setFont(font7)
|
2938
2962
|
|
2939
|
-
self.gridLayout_18.addWidget(self.considerContingenciesOpfCheckBox,
|
2963
|
+
self.gridLayout_18.addWidget(self.considerContingenciesOpfCheckBox, 6, 0, 1, 2)
|
2940
2964
|
|
2941
|
-
self.
|
2942
|
-
self.
|
2943
|
-
self.
|
2965
|
+
self.label_4 = QLabel(self.groupBox)
|
2966
|
+
self.label_4.setObjectName(u"label_4")
|
2967
|
+
self.label_4.setFont(font7)
|
2944
2968
|
|
2945
|
-
self.gridLayout_18.addWidget(self.
|
2969
|
+
self.gridLayout_18.addWidget(self.label_4, 1, 0, 1, 1)
|
2946
2970
|
|
2947
|
-
self.
|
2948
|
-
self.
|
2949
|
-
self.
|
2950
|
-
self.opfContingencyToleranceSpinBox.setDecimals(4)
|
2951
|
-
self.opfContingencyToleranceSpinBox.setSingleStep(0.010000000000000)
|
2952
|
-
self.opfContingencyToleranceSpinBox.setValue(0.050000000000000)
|
2971
|
+
self.save_mip_checkBox = QCheckBox(self.groupBox)
|
2972
|
+
self.save_mip_checkBox.setObjectName(u"save_mip_checkBox")
|
2973
|
+
self.save_mip_checkBox.setFont(font7)
|
2953
2974
|
|
2954
|
-
self.gridLayout_18.addWidget(self.
|
2975
|
+
self.gridLayout_18.addWidget(self.save_mip_checkBox, 11, 0, 1, 2)
|
2955
2976
|
|
2956
2977
|
self.verticalSpacer_18 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
2957
2978
|
|
2958
|
-
self.gridLayout_18.addItem(self.verticalSpacer_18,
|
2959
|
-
|
2960
|
-
self.opfZonalGroupByComboBox = QComboBox(self.groupBox)
|
2961
|
-
self.opfZonalGroupByComboBox.setObjectName(u"opfZonalGroupByComboBox")
|
2962
|
-
self.opfZonalGroupByComboBox.setFont(font7)
|
2963
|
-
|
2964
|
-
self.gridLayout_18.addWidget(self.opfZonalGroupByComboBox, 2, 1, 1, 1)
|
2965
|
-
|
2966
|
-
self.mip_solver_comboBox = QComboBox(self.groupBox)
|
2967
|
-
self.mip_solver_comboBox.setObjectName(u"mip_solver_comboBox")
|
2968
|
-
self.mip_solver_comboBox.setFont(font7)
|
2969
|
-
|
2970
|
-
self.gridLayout_18.addWidget(self.mip_solver_comboBox, 0, 1, 1, 1)
|
2979
|
+
self.gridLayout_18.addItem(self.verticalSpacer_18, 12, 0, 1, 1)
|
2971
2980
|
|
2972
2981
|
self.label_104 = QLabel(self.groupBox)
|
2973
2982
|
self.label_104.setObjectName(u"label_104")
|
@@ -2975,17 +2984,26 @@ class Ui_mainWindow(object):
|
|
2975
2984
|
|
2976
2985
|
self.gridLayout_18.addWidget(self.label_104, 3, 0, 1, 1)
|
2977
2986
|
|
2978
|
-
self.
|
2979
|
-
self.
|
2980
|
-
self.
|
2987
|
+
self.label_103 = QLabel(self.groupBox)
|
2988
|
+
self.label_103.setObjectName(u"label_103")
|
2989
|
+
self.label_103.setFont(font7)
|
2981
2990
|
|
2982
|
-
self.gridLayout_18.addWidget(self.
|
2991
|
+
self.gridLayout_18.addWidget(self.label_103, 2, 0, 1, 1)
|
2983
2992
|
|
2984
|
-
self.
|
2985
|
-
self.
|
2986
|
-
self.
|
2993
|
+
self.opfContingencyToleranceSpinBox = QDoubleSpinBox(self.groupBox)
|
2994
|
+
self.opfContingencyToleranceSpinBox.setObjectName(u"opfContingencyToleranceSpinBox")
|
2995
|
+
self.opfContingencyToleranceSpinBox.setFont(font7)
|
2996
|
+
self.opfContingencyToleranceSpinBox.setDecimals(4)
|
2997
|
+
self.opfContingencyToleranceSpinBox.setSingleStep(0.010000000000000)
|
2998
|
+
self.opfContingencyToleranceSpinBox.setValue(0.050000000000000)
|
2987
2999
|
|
2988
|
-
self.gridLayout_18.addWidget(self.
|
3000
|
+
self.gridLayout_18.addWidget(self.opfContingencyToleranceSpinBox, 3, 1, 1, 1)
|
3001
|
+
|
3002
|
+
self.opfGEPCheckBox = QCheckBox(self.groupBox)
|
3003
|
+
self.opfGEPCheckBox.setObjectName(u"opfGEPCheckBox")
|
3004
|
+
self.opfGEPCheckBox.setFont(font7)
|
3005
|
+
|
3006
|
+
self.gridLayout_18.addWidget(self.opfGEPCheckBox, 7, 0, 1, 2)
|
2989
3007
|
|
2990
3008
|
|
2991
3009
|
self.gridLayout_10.addWidget(self.groupBox, 3, 3, 1, 1)
|
@@ -3065,12 +3083,6 @@ class Ui_mainWindow(object):
|
|
3065
3083
|
|
3066
3084
|
self.gridLayout_26.addWidget(self.opfMaximizeExcahngeCheckBox, 5, 0, 1, 2)
|
3067
3085
|
|
3068
|
-
self.opfUnitCommitmentCheckBox = QCheckBox(self.groupBox_2)
|
3069
|
-
self.opfUnitCommitmentCheckBox.setObjectName(u"opfUnitCommitmentCheckBox")
|
3070
|
-
self.opfUnitCommitmentCheckBox.setFont(font7)
|
3071
|
-
|
3072
|
-
self.gridLayout_26.addWidget(self.opfUnitCommitmentCheckBox, 4, 0, 1, 2)
|
3073
|
-
|
3074
3086
|
self.skipOpfGenerationLimitsCheckBox = QCheckBox(self.groupBox_2)
|
3075
3087
|
self.skipOpfGenerationLimitsCheckBox.setObjectName(u"skipOpfGenerationLimitsCheckBox")
|
3076
3088
|
self.skipOpfGenerationLimitsCheckBox.setFont(font7)
|
@@ -5624,6 +5636,10 @@ class Ui_mainWindow(object):
|
|
5624
5636
|
self.orthogonalize_pf_controls_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If checked, the controls are adjusted to their closest tap", None))
|
5625
5637
|
#endif // QT_CONFIG(tooltip)
|
5626
5638
|
self.orthogonalize_pf_controls_checkBox.setText(QCoreApplication.translate("mainWindow", u"Orthogonalize controls", None))
|
5639
|
+
#if QT_CONFIG(tooltip)
|
5640
|
+
self.initialize_pf_angles_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If checked, the power flow solution is initialized with a linear (so called DC) power flow first", None))
|
5641
|
+
#endif // QT_CONFIG(tooltip)
|
5642
|
+
self.initialize_pf_angles_checkBox.setText(QCoreApplication.translate("mainWindow", u"Initialize angles", None))
|
5627
5643
|
self.label_54.setText("")
|
5628
5644
|
#if QT_CONFIG(tooltip)
|
5629
5645
|
self.temperature_correction_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"Correct the branches resistance using the temperature", None))
|
@@ -5701,32 +5717,40 @@ class Ui_mainWindow(object):
|
|
5701
5717
|
#endif // QT_CONFIG(tooltip)
|
5702
5718
|
self.ips_control_Qlimits_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control Q limits", None))
|
5703
5719
|
self.groupBox.setTitle(QCoreApplication.translate("mainWindow", u"Linear settings", None))
|
5704
|
-
self.
|
5720
|
+
self.label_10.setText(QCoreApplication.translate("mainWindow", u"MIP solver", None))
|
5721
|
+
#if QT_CONFIG(tooltip)
|
5722
|
+
self.opfUnitCommitmentCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Apply unit commitment technique", None))
|
5723
|
+
#endif // QT_CONFIG(tooltip)
|
5724
|
+
self.opfUnitCommitmentCheckBox.setText(QCoreApplication.translate("mainWindow", u"Unit commitment", None))
|
5705
5725
|
self.label_132.setText("")
|
5706
5726
|
#if QT_CONFIG(tooltip)
|
5707
5727
|
self.opf_time_grouping_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p>Choose the time grouping to possibly shorten the solution time.</p><p>This splits the time series by week, month, etc. and the subproblems are solved sequentially.</p></body></html>", None))
|
5708
5728
|
#endif // QT_CONFIG(tooltip)
|
5709
|
-
self.label_4.setText(QCoreApplication.translate("mainWindow", u"Time grouping", None))
|
5710
5729
|
#if QT_CONFIG(tooltip)
|
5711
|
-
self.
|
5730
|
+
self.mip_solver_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"Choose the external mixed integer programming solver", None))
|
5712
5731
|
#endif // QT_CONFIG(tooltip)
|
5713
|
-
self.considerContingenciesOpfCheckBox.setText(QCoreApplication.translate("mainWindow", u"Consider contingencies", None))
|
5714
|
-
self.label_10.setText(QCoreApplication.translate("mainWindow", u"MIP solver", None))
|
5715
5732
|
#if QT_CONFIG(tooltip)
|
5716
|
-
self.
|
5733
|
+
self.fixOpfCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Fix infeasible problems and rey with the relaxed problem. Applies to OPF and NTC", None))
|
5717
5734
|
#endif // QT_CONFIG(tooltip)
|
5735
|
+
self.fixOpfCheckBox.setText(QCoreApplication.translate("mainWindow", u"Fix infeasibilities and retry", None))
|
5718
5736
|
#if QT_CONFIG(tooltip)
|
5719
|
-
self.
|
5737
|
+
self.considerContingenciesOpfCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Consider the contingencies when dispatching", None))
|
5720
5738
|
#endif // QT_CONFIG(tooltip)
|
5721
|
-
self.
|
5739
|
+
self.considerContingenciesOpfCheckBox.setText(QCoreApplication.translate("mainWindow", u"Compute contingencies", None))
|
5740
|
+
self.label_4.setText(QCoreApplication.translate("mainWindow", u"Time grouping", None))
|
5722
5741
|
#if QT_CONFIG(tooltip)
|
5723
5742
|
self.save_mip_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p>The program will save the MIP file in .lp format in the user GridCal folder before running a linear optimization study.</p></body></html>", None))
|
5724
5743
|
#endif // QT_CONFIG(tooltip)
|
5725
5744
|
self.save_mip_checkBox.setText(QCoreApplication.translate("mainWindow", u"Save MIP file", None))
|
5745
|
+
self.label_104.setText(QCoreApplication.translate("mainWindow", u"Contingency tolerance", None))
|
5746
|
+
self.label_103.setText(QCoreApplication.translate("mainWindow", u"Zone grouping", None))
|
5726
5747
|
#if QT_CONFIG(tooltip)
|
5727
|
-
self.
|
5748
|
+
self.opfContingencyToleranceSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"LODF matrix tolerance choosing contingencies", None))
|
5728
5749
|
#endif // QT_CONFIG(tooltip)
|
5729
|
-
|
5750
|
+
#if QT_CONFIG(tooltip)
|
5751
|
+
self.opfGEPCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Apply generation expansion planning", None))
|
5752
|
+
#endif // QT_CONFIG(tooltip)
|
5753
|
+
self.opfGEPCheckBox.setText(QCoreApplication.translate("mainWindow", u"Generation expansion planning", None))
|
5730
5754
|
self.label_73.setText(QCoreApplication.translate("mainWindow", u"Optimal Power Flow", None))
|
5731
5755
|
self.groupBox_2.setTitle(QCoreApplication.translate("mainWindow", u"General settings", None))
|
5732
5756
|
self.label_128.setText(QCoreApplication.translate("mainWindow", u"Verbose", None))
|
@@ -5743,7 +5767,6 @@ class Ui_mainWindow(object):
|
|
5743
5767
|
self.addOptimalPowerFlowReportCheckBox.setText(QCoreApplication.translate("mainWindow", u"Add report", None))
|
5744
5768
|
self.label_133.setText("")
|
5745
5769
|
self.opfMaximizeExcahngeCheckBox.setText(QCoreApplication.translate("mainWindow", u"Maximize area exchange", None))
|
5746
|
-
self.opfUnitCommitmentCheckBox.setText(QCoreApplication.translate("mainWindow", u"Unit commitment", None))
|
5747
5770
|
self.skipOpfGenerationLimitsCheckBox.setText(QCoreApplication.translate("mainWindow", u"Skip generation limits", None))
|
5748
5771
|
self.label_72.setText("")
|
5749
5772
|
self.settings_tabWidget.setTabText(self.settings_tabWidget.indexOf(self.opf_tab), QCoreApplication.translate("mainWindow", u"Opf", None))
|
@@ -13,6 +13,7 @@ from typing import List, Tuple, Dict, Union
|
|
13
13
|
# GUI imports
|
14
14
|
from PySide6 import QtGui, QtWidgets
|
15
15
|
from matplotlib.colors import LinearSegmentedColormap
|
16
|
+
|
16
17
|
import GridCal.Gui.gui_functions as gf
|
17
18
|
import GridCal.Gui.Visualization.visualization as viz
|
18
19
|
from GridCal.Gui.Diagrams.SchematicWidget.Substation.bus_graphics import BusGraphicItem
|
@@ -729,7 +730,6 @@ class SimulationsMain(TimeEventsMain):
|
|
729
730
|
verbose=self.ui.verbositySpinBox.value(),
|
730
731
|
tolerance=tolerance,
|
731
732
|
max_iter=self.ui.max_iterations_spinBox.value(),
|
732
|
-
max_outer_loop_iter=1000,
|
733
733
|
control_q=self.ui.control_q_checkBox.isChecked(),
|
734
734
|
control_taps_phase=self.ui.control_tap_phase_checkBox.isChecked(),
|
735
735
|
control_taps_modules=self.ui.control_tap_modules_checkBox.isChecked(),
|
@@ -741,6 +741,7 @@ class SimulationsMain(TimeEventsMain):
|
|
741
741
|
ignore_single_node_islands=self.ui.ignore_single_node_islands_checkBox.isChecked(),
|
742
742
|
trust_radius=self.ui.muSpinBox.value(),
|
743
743
|
use_stored_guess=self.ui.use_voltage_guess_checkBox.isChecked(),
|
744
|
+
initialize_angles=self.ui.initialize_pf_angles_checkBox.isChecked(),
|
744
745
|
generate_report=self.ui.addPowerFlowReportCheckBox.isChecked()
|
745
746
|
)
|
746
747
|
|
@@ -978,6 +979,11 @@ class SimulationsMain(TimeEventsMain):
|
|
978
979
|
self.update_available_results()
|
979
980
|
self.colour_diagrams()
|
980
981
|
|
982
|
+
if results.converged:
|
983
|
+
self.show_info_toast("Power flow converged :)")
|
984
|
+
else:
|
985
|
+
self.show_warning_toast("Power flow not converged :/")
|
986
|
+
|
981
987
|
else:
|
982
988
|
warning_msg('There are no power flow results.\nIs there any slack bus or generator?', 'Power flow')
|
983
989
|
|
@@ -1760,7 +1766,8 @@ class SimulationsMain(TimeEventsMain):
|
|
1760
1766
|
self.update_available_results()
|
1761
1767
|
self.colour_diagrams()
|
1762
1768
|
else:
|
1763
|
-
|
1769
|
+
self.show_warning_toast('The voltage stability did not converge.\n'
|
1770
|
+
'Is this case already at the collapse limit?', 5000)
|
1764
1771
|
else:
|
1765
1772
|
self.show_error_toast('Something went wrong, There are no voltage stability results.')
|
1766
1773
|
|
@@ -1951,6 +1958,7 @@ class SimulationsMain(TimeEventsMain):
|
|
1951
1958
|
unit_commitment = self.ui.opfUnitCommitmentCheckBox.isChecked()
|
1952
1959
|
generate_report = self.ui.addOptimalPowerFlowReportCheckBox.isChecked()
|
1953
1960
|
robust = self.ui.fixOpfCheckBox.isChecked()
|
1961
|
+
generation_expansion_planning = self.ui.opfGEPCheckBox.isChecked()
|
1954
1962
|
|
1955
1963
|
if self.ui.save_mip_checkBox.isChecked():
|
1956
1964
|
folder = opf_file_path()
|
@@ -1965,11 +1973,11 @@ class SimulationsMain(TimeEventsMain):
|
|
1965
1973
|
inter_aggregation_info: dev.InterAggregationInfo = self.get_compatible_from_to_buses_and_inter_branches()
|
1966
1974
|
|
1967
1975
|
if len(inter_aggregation_info.lst_from) == 0:
|
1968
|
-
|
1976
|
+
self.show_error_toast('The area "from" has no buses!', 5000)
|
1969
1977
|
return None
|
1970
1978
|
|
1971
1979
|
if len(inter_aggregation_info.lst_to) == 0:
|
1972
|
-
|
1980
|
+
self.show_error_toast('The area "to" has no buses!', 5000)
|
1973
1981
|
return None
|
1974
1982
|
else:
|
1975
1983
|
inter_aggregation_info = None
|
@@ -1995,6 +2003,7 @@ class SimulationsMain(TimeEventsMain):
|
|
1995
2003
|
maximize_flows=maximize_flows,
|
1996
2004
|
inter_aggregation_info=inter_aggregation_info,
|
1997
2005
|
unit_commitment=unit_commitment,
|
2006
|
+
generation_expansion_planning=generation_expansion_planning,
|
1998
2007
|
export_model_fname=export_model_fname,
|
1999
2008
|
generate_report=generate_report,
|
2000
2009
|
ips_method=ips_method,
|
@@ -2048,11 +2057,14 @@ class SimulationsMain(TimeEventsMain):
|
|
2048
2057
|
|
2049
2058
|
self.remove_simulation(SimulationTypes.OPF_run)
|
2050
2059
|
|
2051
|
-
if
|
2052
|
-
|
2053
|
-
|
2054
|
-
|
2055
|
-
|
2060
|
+
if results.converged:
|
2061
|
+
self.show_info_toast("Optimal power flow converged :)")
|
2062
|
+
else:
|
2063
|
+
self.show_warning_toast('Power flow not converged :/\n'
|
2064
|
+
'Check that all Branches have rating and \n'
|
2065
|
+
'that the generator bounds are ok.\n'
|
2066
|
+
'You may also use the diagnostic tool (F8)',
|
2067
|
+
duration=4000)
|
2056
2068
|
|
2057
2069
|
self.update_available_results()
|
2058
2070
|
|
@@ -2730,8 +2742,6 @@ class SimulationsMain(TimeEventsMain):
|
|
2730
2742
|
"""
|
2731
2743
|
|
2732
2744
|
self.remove_simulation(SimulationTypes.TopologyProcessor_run)
|
2733
|
-
# self.update_available_results()
|
2734
|
-
# self.colour_diagrams()
|
2735
2745
|
|
2736
2746
|
if not self.session.is_anything_running():
|
2737
2747
|
self.UNLOCK()
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.25 → gridcal-5.3.27}/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
|
File without changes
|
{gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Branches/new_line_dialogue.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py
RENAMED
File without changes
|
{gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py
RENAMED
File without changes
|
{gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.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
|
{gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py
RENAMED
File without changes
|
{gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.25 → gridcal-5.3.27}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|