GridCal 5.3.39__tar.gz → 5.3.41__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.39 → gridcal-5.3.41}/GridCal/ExecuteGridCal.py +5 -3
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/Editors/line_editor.py +0 -2
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +1 -1
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +4 -12
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +6 -24
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/io.py +24 -12
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/simulations.py +2 -2
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +5 -4
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/TowerBuilder/table_models.py +6 -2
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Session/session.py +1 -92
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/__version__.py +1 -1
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/update.py +30 -18
- {gridcal-5.3.39 → gridcal-5.3.41}/PKG-INFO +1 -1
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Analysis/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Analysis/gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/Editors/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/Editors/controllable_shunt_editor.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/Editors/generator_editor.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/Editors/new_line_dialogue.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/Editors/transformer3w_editor.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/Editors/transformer_editor.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/Editors/transformer_taps_editor.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/base_diagram_widget.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridMerge/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridMerge/build_diff_tree.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridMerge/demo_code.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridMerge/demo_code2.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridMerge/demo_code3.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridMerge/demo_code4.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridMerge/grid_diff.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridMerge/grid_diff_gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridMerge/grid_merge.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridMerge/grid_merge_gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/GridMerge/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/MainWindow.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/object_select_window.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SubstationDesigner/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SubstationDesigner/substation_designer.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SubstationDesigner/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/TowerBuilder/tower_builder.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Visualization/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Visualization/visualization.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Widgets/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/associations_model.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/general_dialogues.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/gui_functions.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/messages.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/object_model.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/pandas_model.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/plot_config.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/profiles_model.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/python_console.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/python_highlighter.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/results_model.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/table_view_header_wrap.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/themes.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/toast_widget.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/update_gui_all.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/update_gui_common.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/wrappable_table_model.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/LICENSE.txt +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Session/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Session/export_results_driver.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Session/file_handler.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Session/server_driver.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Session/synchronization_driver.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/data/GridCal.ico +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/data/GridCal.svg +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/data/__init__.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/data/cables.csv +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/data/sequence_lines.csv +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/data/transformers.csv +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/data/wires.csv +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/plugins.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/GridCal/templates.py +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/setup.cfg +0 -0
- {gridcal-5.3.39 → gridcal-5.3.41}/setup.py +0 -0
@@ -10,10 +10,13 @@ PACKAGE_PARENT = '..'
|
|
10
10
|
SCRIPT_DIR = os.path.dirname(os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__))))
|
11
11
|
sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, PACKAGE_PARENT)))
|
12
12
|
from GridCal.__version__ import about_msg
|
13
|
+
|
14
|
+
# NOTE: For some reason I cannot begin to comprehend, the activation fails on windows if called before the GUI...
|
15
|
+
import GridCalEngine.Utils.ThirdParty.gslv.gslv_activation
|
16
|
+
|
13
17
|
from GridCal.Gui.Main.GridCalMain import runGridCal
|
14
|
-
import platform
|
15
18
|
|
16
|
-
|
19
|
+
import platform
|
17
20
|
|
18
21
|
if platform.system() == 'Windows':
|
19
22
|
# this makes the icon display properly under windows
|
@@ -29,4 +32,3 @@ if __name__ == "__main__":
|
|
29
32
|
# os.environ["QT_QPA_PLATFORMTHEME"] = "qt5ct" # this forces QT-only menus and look and feel
|
30
33
|
|
31
34
|
runGridCal()
|
32
|
-
|
@@ -238,8 +238,6 @@ class LineEditor(QDialog):
|
|
238
238
|
self.line.set_length(val=length)
|
239
239
|
self.line.set_circuit_idx(val=int(self.circuit_idx.value()), obj=self.selected_template)
|
240
240
|
template = self.selected_template
|
241
|
-
if isinstance(template, OverheadLineType):
|
242
|
-
template.compute()
|
243
241
|
self.line.apply_template(obj=template, Sbase=self.Sbase, freq=self.frequency)
|
244
242
|
self.line.enable_auto_updates()
|
245
243
|
self.accept()
|
{gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py
RENAMED
@@ -317,7 +317,7 @@ class MapLineSegment(QGraphicsLineItem):
|
|
317
317
|
x, y = scene_pos.x(), scene_pos.y()
|
318
318
|
lat, lon = self.editor.to_lat_lon(x=x, y=y)
|
319
319
|
add_menu_entry(menu=menu,
|
320
|
-
text="Open in
|
320
|
+
text="Open in Street view",
|
321
321
|
function_ptr=lambda: open_street_view(lat, lon),
|
322
322
|
icon_path=":/Icons/icons/map.svg")
|
323
323
|
|
@@ -656,18 +656,10 @@ class SubstationGraphicItem(NodeTemplate, QGraphicsRectItem):
|
|
656
656
|
line.bus_to = recipient_buses[line.bus_to.Vnom]
|
657
657
|
line_graphic = self.editor.graphics_manager.query(elm=line)
|
658
658
|
line_graphic.calculate_total_length()
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
if gen.bus in removed_buses:
|
664
|
-
gen.bus = recipient_buses[gen.bus.Vnom]
|
665
|
-
for sh in self.editor.circuit.shunts:
|
666
|
-
if sh.bus in removed_buses:
|
667
|
-
sh.bus = recipient_buses[sh.bus.Vnom]
|
668
|
-
for csh in self.editor.circuit.controllable_shunts:
|
669
|
-
if csh.bus in removed_buses:
|
670
|
-
csh.bus = recipient_buses[csh.bus.Vnom]
|
659
|
+
|
660
|
+
for inj in self.editor.circuit.get_injection_devices_iter():
|
661
|
+
if inj.bus in removed_buses:
|
662
|
+
inj.bus = recipient_buses[inj.bus.Vnom]
|
671
663
|
|
672
664
|
for bus in removed_buses:
|
673
665
|
self.editor.circuit.delete_bus(obj=bus, delete_associated=False)
|
@@ -1807,7 +1807,7 @@ class GridMapWidget(BaseDiagramWidget):
|
|
1807
1807
|
bus_from=bus_from, bus_to=bus_to,
|
1808
1808
|
length=line1.length + line2.length, circuit_idx=circ_idx)
|
1809
1809
|
new_line.color = line1.color
|
1810
|
-
|
1810
|
+
|
1811
1811
|
new_line.apply_template(obj=line1.template, Sbase=self.circuit.Sbase, freq=self.circuit.fBase)
|
1812
1812
|
|
1813
1813
|
previous_coordinates = [0, 0]
|
@@ -2058,14 +2058,8 @@ class GridMapWidget(BaseDiagramWidget):
|
|
2058
2058
|
protection_rating_factor=line_api.protection_rating_factor,
|
2059
2059
|
circuit_idx=line_api.circuit_idx)
|
2060
2060
|
|
2061
|
-
|
2062
|
-
|
2063
|
-
template.compute()
|
2064
|
-
else:
|
2065
|
-
template = line_api.template
|
2066
|
-
|
2067
|
-
line1.apply_template(template, Sbase=self.circuit.Sbase, freq=self.circuit.fBase)
|
2068
|
-
line2.apply_template(template, Sbase=self.circuit.Sbase, freq=self.circuit.fBase)
|
2061
|
+
line1.apply_template(line_api.template, Sbase=self.circuit.Sbase, freq=self.circuit.fBase)
|
2062
|
+
line2.apply_template(line_api.template, Sbase=self.circuit.Sbase, freq=self.circuit.fBase)
|
2069
2063
|
|
2070
2064
|
# Copy other properties from the original line
|
2071
2065
|
if hasattr(line_api, 'color'):
|
@@ -2490,14 +2484,8 @@ class GridMapWidget(BaseDiagramWidget):
|
|
2490
2484
|
protection_rating_factor=line_api.protection_rating_factor,
|
2491
2485
|
circuit_idx=line_api.circuit_idx)
|
2492
2486
|
|
2493
|
-
|
2494
|
-
|
2495
|
-
template.compute()
|
2496
|
-
else:
|
2497
|
-
template=line_api.template
|
2498
|
-
|
2499
|
-
line1.apply_template(template, Sbase=self.circuit.Sbase, freq=self.circuit.fBase)
|
2500
|
-
line2.apply_template(template, Sbase=self.circuit.Sbase, freq=self.circuit.fBase)
|
2487
|
+
line1.apply_template(line_api.template, Sbase=self.circuit.Sbase, freq=self.circuit.fBase)
|
2488
|
+
line2.apply_template(line_api.template, Sbase=self.circuit.Sbase, freq=self.circuit.fBase)
|
2501
2489
|
|
2502
2490
|
# Copy other properties from the original line
|
2503
2491
|
if hasattr(line_api, 'color'):
|
@@ -2538,13 +2526,7 @@ class GridMapWidget(BaseDiagramWidget):
|
|
2538
2526
|
protection_rating_factor=line_api.protection_rating_factor,
|
2539
2527
|
circuit_idx=line_api.circuit_idx)
|
2540
2528
|
|
2541
|
-
|
2542
|
-
template = line_api.template
|
2543
|
-
template.compute()
|
2544
|
-
else:
|
2545
|
-
template = line_api.template
|
2546
|
-
|
2547
|
-
connection_line.apply_template(template, Sbase=self.circuit.Sbase, freq=self.circuit.fBase)
|
2529
|
+
connection_line.apply_template(line_api.template, Sbase=self.circuit.Sbase, freq=self.circuit.fBase)
|
2548
2530
|
|
2549
2531
|
# Copy other properties from the original line
|
2550
2532
|
if hasattr(line_api, 'color'):
|
@@ -26,6 +26,7 @@ from GridCalEngine.Devices.multi_circuit import MultiCircuit
|
|
26
26
|
from GridCalEngine.Compilers.circuit_to_newton_pa import NEWTON_PA_AVAILABLE
|
27
27
|
from GridCalEngine.Compilers.circuit_to_pgm import PGM_AVAILABLE
|
28
28
|
from GridCalEngine.Compilers.circuit_to_data import compile_numerical_circuit_at
|
29
|
+
from GridCalEngine.IO.cim.cgmes.cgmes_export import get_available_cgmes_profiles
|
29
30
|
from GridCalEngine.enumerations import CGMESVersions, SimulationTypes
|
30
31
|
from GridCalEngine.IO.gridcal.contingency_parser import import_contingencies_from_json, export_contingencies_json_file
|
31
32
|
from GridCalEngine.IO.cim.cgmes.cgmes_enums import cgmesProfile
|
@@ -61,15 +62,9 @@ class IoMain(ConfigurationMain):
|
|
61
62
|
CGMESVersions.v3_0_0]}
|
62
63
|
self.ui.cgmes_version_comboBox.setModel(gf.get_list_model(list(self.cgmes_version_dict.keys())))
|
63
64
|
|
64
|
-
self.cgmes_profiles_dict = {
|
65
|
-
|
66
|
-
|
67
|
-
cgmesProfile.TP,
|
68
|
-
cgmesProfile.SV,
|
69
|
-
cgmesProfile.SSH,
|
70
|
-
cgmesProfile.DY,
|
71
|
-
cgmesProfile.DL,
|
72
|
-
cgmesProfile.GL]}
|
65
|
+
self.cgmes_profiles_dict = {key: cgmesProfile(key) for key, val in
|
66
|
+
get_available_cgmes_profiles(cgmes_version=CGMESVersions.v2_4_15).items()}
|
67
|
+
|
73
68
|
self.ui.cgmes_profiles_listView.setModel(gf.get_list_model(list(self.cgmes_profiles_dict.keys()),
|
74
69
|
checks=True, check_value=True))
|
75
70
|
|
@@ -95,6 +90,9 @@ class IoMain(ConfigurationMain):
|
|
95
90
|
self.ui.exportSimulationDataButton.clicked.connect(self.export_simulation_data)
|
96
91
|
self.ui.loadResultFromDiskButton.clicked.connect(self.load_results_driver)
|
97
92
|
|
93
|
+
# change
|
94
|
+
self.ui.cgmes_version_comboBox.currentTextChanged.connect(self.cgmes_version_change)
|
95
|
+
|
98
96
|
def dragEnterEvent(self, event):
|
99
97
|
"""
|
100
98
|
|
@@ -410,6 +408,11 @@ class IoMain(ConfigurationMain):
|
|
410
408
|
self.rosetta_gui.set_logger(self.open_file_thread_object.cgmes_logger)
|
411
409
|
self.rosetta_gui.update_combo_boxes()
|
412
410
|
self.rosetta_gui.show()
|
411
|
+
else:
|
412
|
+
# else, show the logger if it is necessary
|
413
|
+
if len(self.open_file_thread_object.logger) > 0:
|
414
|
+
dlg = LogsDialogue('Open CGMES file logger', self.open_file_thread_object.logger)
|
415
|
+
dlg.exec()
|
413
416
|
|
414
417
|
else:
|
415
418
|
# else, show the logger if it is necessary
|
@@ -573,8 +576,6 @@ class IoMain(ConfigurationMain):
|
|
573
576
|
else:
|
574
577
|
return
|
575
578
|
|
576
|
-
|
577
|
-
|
578
579
|
def export_circuit_differential(self):
|
579
580
|
"""
|
580
581
|
Prompt to export a diff of this circuit and a base one
|
@@ -594,7 +595,6 @@ class IoMain(ConfigurationMain):
|
|
594
595
|
dlg = GridDiffDialogue(grid=self.circuit)
|
595
596
|
dlg.exec()
|
596
597
|
|
597
|
-
|
598
598
|
# def post_create_circuit_differential(self):
|
599
599
|
# """
|
600
600
|
#
|
@@ -1152,3 +1152,15 @@ class IoMain(ConfigurationMain):
|
|
1152
1152
|
self.setup_time_sliders()
|
1153
1153
|
self.get_circuit_snapshot_datetime()
|
1154
1154
|
self.change_theme_mode()
|
1155
|
+
|
1156
|
+
def cgmes_version_change(self):
|
1157
|
+
"""
|
1158
|
+
On GUI cgmes version change, display only the supported profiles
|
1159
|
+
"""
|
1160
|
+
cgmes_version = self.cgmes_version_dict[self.ui.cgmes_version_comboBox.currentText()]
|
1161
|
+
|
1162
|
+
self.cgmes_profiles_dict = {key: cgmesProfile(key) for key, val in
|
1163
|
+
get_available_cgmes_profiles(cgmes_version=cgmes_version).items()}
|
1164
|
+
|
1165
|
+
self.ui.cgmes_profiles_listView.setModel(gf.get_list_model(list(self.cgmes_profiles_dict.keys()),
|
1166
|
+
checks=True, check_value=True))
|
@@ -310,7 +310,7 @@ class SimulationsMain(TimeEventsMain):
|
|
310
310
|
self.ui.solver_comboBox.setModel(gf.get_list_model(list(self.solvers_dict.keys())))
|
311
311
|
self.ui.solver_comboBox.setCurrentIndex(0)
|
312
312
|
|
313
|
-
mip_solvers =
|
313
|
+
mip_solvers = get_available_mip_solvers()
|
314
314
|
self.ui.mip_solver_comboBox.setModel(gf.get_list_model(mip_solvers))
|
315
315
|
|
316
316
|
elif eng == EngineType.NewtonPA:
|
@@ -1946,7 +1946,7 @@ class SimulationsMain(TimeEventsMain):
|
|
1946
1946
|
"""
|
1947
1947
|
# get the power flow options from the GUI
|
1948
1948
|
solver = self.lp_solvers_dict[self.ui.lpf_solver_comboBox.currentText()]
|
1949
|
-
mip_solver = self.mip_solvers_dict
|
1949
|
+
mip_solver = self.mip_solvers_dict.get(self.ui.mip_solver_comboBox.currentText(), MIPSolvers.HIGHS.value)
|
1950
1950
|
time_grouping = self.opf_time_groups[self.ui.opf_time_grouping_comboBox.currentText()]
|
1951
1951
|
zonal_grouping = self.opf_zonal_groups[self.ui.opfZonalGroupByComboBox.currentText()]
|
1952
1952
|
pf_options = self.get_selected_power_flow_options()
|
@@ -36,6 +36,11 @@ class TowerBuilderGUI(QtWidgets.QDialog):
|
|
36
36
|
# create the tower driver
|
37
37
|
self.tower_driver = TowerModel(edit_callback=self.compute, tower=tower)
|
38
38
|
|
39
|
+
self.ui.name_lineEdit.setText(self.tower_driver.tower.name)
|
40
|
+
self.ui.rho_doubleSpinBox.setValue(self.tower_driver.tower.earth_resistivity)
|
41
|
+
self.ui.frequency_doubleSpinBox.setValue(self.tower_driver.tower.frequency)
|
42
|
+
self.ui.voltage_doubleSpinBox.setValue(self.tower_driver.tower.Vnom)
|
43
|
+
|
39
44
|
if wires_catalogue is not None:
|
40
45
|
for wire in wires_catalogue:
|
41
46
|
self.wires_table.add(wire)
|
@@ -49,10 +54,6 @@ class TowerBuilderGUI(QtWidgets.QDialog):
|
|
49
54
|
self.ui.matrixViewComboBox.addItem("Shunt admittance (no neutral) [μS/km]")
|
50
55
|
self.ui.matrixViewComboBox.addItem("Shunt admittance (sequence) [μS/km]")
|
51
56
|
|
52
|
-
self.ui.name_lineEdit.setText(self.tower_driver.tower.name)
|
53
|
-
self.ui.rho_doubleSpinBox.setValue(self.tower_driver.tower.earth_resistivity)
|
54
|
-
self.ui.frequency_doubleSpinBox.setValue(self.tower_driver.tower.frequency)
|
55
|
-
self.ui.voltage_doubleSpinBox.setValue(self.tower_driver.tower.Vnom)
|
56
57
|
|
57
58
|
# set models
|
58
59
|
self.ui.wires_tableView.setModel(self.wires_table)
|
@@ -267,9 +267,9 @@ class TowerModel(QtCore.QAbstractTableModel):
|
|
267
267
|
QtCore.QAbstractTableModel.__init__(self)
|
268
268
|
|
269
269
|
if tower is None:
|
270
|
-
self.
|
270
|
+
self._tower = OverheadLineType()
|
271
271
|
else:
|
272
|
-
self.
|
272
|
+
self._tower = tower
|
273
273
|
|
274
274
|
# other properties
|
275
275
|
self.edit_callback = edit_callback
|
@@ -280,6 +280,10 @@ class TowerModel(QtCore.QAbstractTableModel):
|
|
280
280
|
self.converter = {0: str, 1: float, 2: float, 3: int, 4: int, 5: str}
|
281
281
|
self.editable_wire = [False, True, True, True, False, False]
|
282
282
|
|
283
|
+
@property
|
284
|
+
def tower(self) -> OverheadLineType:
|
285
|
+
return self._tower
|
286
|
+
|
283
287
|
def __str__(self):
|
284
288
|
return self.tower.name
|
285
289
|
|
@@ -3,7 +3,6 @@
|
|
3
3
|
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
4
4
|
# SPDX-License-Identifier: MPL-2.0
|
5
5
|
from __future__ import annotations
|
6
|
-
import numpy as np
|
7
6
|
from uuid import uuid4
|
8
7
|
import pandas as pd
|
9
8
|
from PySide6.QtCore import QThread, Signal
|
@@ -11,10 +10,6 @@ from typing import Dict, Union, List, Tuple, Any, Generator
|
|
11
10
|
from collections.abc import Callable
|
12
11
|
from warnings import warn
|
13
12
|
|
14
|
-
from GridCalEngine.Simulations import (ContingencyAnalysisOptions, AvailableTransferCapacityOptions,
|
15
|
-
ContinuationPowerFlowOptions, ContinuationPowerFlowInput, PowerFlowOptions,
|
16
|
-
ClusteringAnalysisOptions,
|
17
|
-
InvestmentsEvaluationOptions)
|
18
13
|
from GridCalEngine.Simulations.ATC.available_transfer_capacity_driver import (AvailableTransferCapacityDriver,
|
19
14
|
AvailableTransferCapacityResults)
|
20
15
|
from GridCalEngine.Simulations.ATC.available_transfer_capacity_ts_driver import (
|
@@ -41,7 +36,7 @@ from GridCalEngine.Simulations.ShortCircuitStudies.short_circuit_driver import S
|
|
41
36
|
from GridCalEngine.Simulations.Stochastic.stochastic_power_flow_driver import (StochasticPowerFlowDriver,
|
42
37
|
StochasticPowerFlowResults)
|
43
38
|
from GridCalEngine.Simulations.Clustering.clustering_driver import ClusteringDriver, ClusteringResults
|
44
|
-
from GridCalEngine.Simulations.
|
39
|
+
from GridCalEngine.Simulations.Reliability.blackout_driver import CascadingResults, CascadingDriver
|
45
40
|
from GridCalEngine.Simulations.InputsAnalysis.inputs_analysis_driver import InputsAnalysisResults, InputsAnalysisDriver
|
46
41
|
from GridCalEngine.Simulations.InvestmentsEvaluation.investments_evaluation_driver import (InvestmentsEvaluationDriver,
|
47
42
|
InvestmentsEvaluationResults)
|
@@ -335,92 +330,6 @@ class SimulationSession:
|
|
335
330
|
|
336
331
|
time_indices = data_dict.get('time_indices', grid.get_all_time_indices())
|
337
332
|
|
338
|
-
# # get the results' object dictionary
|
339
|
-
# if study_name == AvailableTransferCapacityDriver.tpe.value:
|
340
|
-
# drv = AvailableTransferCapacityDriver(grid=grid,
|
341
|
-
# options=AvailableTransferCapacityOptions())
|
342
|
-
#
|
343
|
-
# elif study_name == AvailableTransferCapacityTimeSeriesDriver.tpe.value:
|
344
|
-
# drv = AvailableTransferCapacityTimeSeriesDriver(grid=grid,
|
345
|
-
# options=AvailableTransferCapacityOptions(),
|
346
|
-
# time_indices=time_indices,
|
347
|
-
# clustering_results=None)
|
348
|
-
#
|
349
|
-
# elif study_name == ContingencyAnalysisDriver.tpe.value:
|
350
|
-
# drv = ContingencyAnalysisDriver(grid=grid,
|
351
|
-
# options=ContingencyAnalysisOptions())
|
352
|
-
#
|
353
|
-
# elif study_name == ContingencyAnalysisTimeSeriesDriver.tpe.value:
|
354
|
-
# drv = ContingencyAnalysisTimeSeriesDriver(grid=grid,
|
355
|
-
# options=ContingencyAnalysisOptions(),
|
356
|
-
# time_indices=time_indices,
|
357
|
-
# clustering_results=None)
|
358
|
-
#
|
359
|
-
# elif study_name == ContinuationPowerFlowDriver.tpe.value:
|
360
|
-
# n = grid.get_bus_number()
|
361
|
-
# drv = ContinuationPowerFlowDriver(grid=grid,
|
362
|
-
# options=ContinuationPowerFlowOptions(),
|
363
|
-
# inputs=ContinuationPowerFlowInput(
|
364
|
-
# Sbase=np.zeros(n), Vbase=np.zeros(n), Starget=np.zeros(n)
|
365
|
-
# ),
|
366
|
-
# pf_options=PowerFlowOptions(),
|
367
|
-
# opf_results=None)
|
368
|
-
#
|
369
|
-
# elif study_name == LinearAnalysisDriver.tpe.value:
|
370
|
-
# drv = LinearAnalysisDriver(grid=grid, options=None)
|
371
|
-
#
|
372
|
-
# elif study_name == ContinuationPowerFlowDriver.tpe.value:
|
373
|
-
# drv = LinearAnalysisTimeSeriesDriver(grid=grid,
|
374
|
-
# options=None,
|
375
|
-
# time_indices=time_indices,
|
376
|
-
# clustering_results=None)
|
377
|
-
#
|
378
|
-
# elif study_name == OptimalPowerFlowDriver.tpe.value:
|
379
|
-
# drv = OptimalPowerFlowDriver(grid=grid, options=None)
|
380
|
-
#
|
381
|
-
# elif study_name == OptimalPowerFlowTimeSeriesDriver.tpe.value:
|
382
|
-
# drv = OptimalPowerFlowTimeSeriesDriver(grid=grid,
|
383
|
-
# options=None,
|
384
|
-
# time_indices=time_indices,
|
385
|
-
# clustering_results=None)
|
386
|
-
#
|
387
|
-
# elif study_name == NodalCapacityTimeSeriesDriver.tpe.value:
|
388
|
-
# drv = NodalCapacityTimeSeriesDriver(grid=grid,
|
389
|
-
# options=None,
|
390
|
-
# time_indices=time_indices,
|
391
|
-
# clustering_results=None)
|
392
|
-
#
|
393
|
-
# elif study_name == PowerFlowDriver.tpe.value:
|
394
|
-
# drv = PowerFlowDriver(grid=grid, options=PowerFlowOptions())
|
395
|
-
#
|
396
|
-
# elif study_name == PowerFlowTimeSeriesDriver.tpe.value:
|
397
|
-
# drv = PowerFlowTimeSeriesDriver(grid=grid,
|
398
|
-
# options=PowerFlowOptions(),
|
399
|
-
# time_indices=time_indices,
|
400
|
-
# clustering_results=None)
|
401
|
-
#
|
402
|
-
# elif study_name == ShortCircuitDriver.tpe.value:
|
403
|
-
# drv = ShortCircuitDriver(grid=grid,
|
404
|
-
# options=None,
|
405
|
-
# pf_options=None,
|
406
|
-
# pf_results=None,
|
407
|
-
# opf_results=None)
|
408
|
-
#
|
409
|
-
# elif study_name == StochasticPowerFlowDriver.tpe.value:
|
410
|
-
# drv = StochasticPowerFlowDriver(grid=grid, options=PowerFlowOptions())
|
411
|
-
#
|
412
|
-
# elif study_name == ClusteringDriver.tpe.value:
|
413
|
-
# drv = ClusteringDriver(grid=grid, options=ClusteringAnalysisOptions(0))
|
414
|
-
#
|
415
|
-
# elif study_name == InvestmentsEvaluationDriver.tpe.value:
|
416
|
-
# drv = InvestmentsEvaluationDriver(grid=grid,
|
417
|
-
# options=InvestmentsEvaluationOptions(max_eval=0,
|
418
|
-
# pf_options=PowerFlowOptions()), )
|
419
|
-
#
|
420
|
-
# else:
|
421
|
-
# warn(f"Session {study_name} not implemented for disk retrieval :/")
|
422
|
-
# return logger
|
423
|
-
|
424
333
|
driver_tpe = SimulationTypes(study_name)
|
425
334
|
|
426
335
|
drv: DRIVER_OBJECTS | None = create_driver(
|
@@ -5,30 +5,42 @@
|
|
5
5
|
from __future__ import annotations
|
6
6
|
from typing import Tuple
|
7
7
|
import subprocess
|
8
|
+
import requests
|
8
9
|
import sys
|
9
10
|
import packaging.version as pkg
|
10
11
|
from GridCal.__version__ import __GridCal_VERSION__
|
11
12
|
|
12
13
|
|
13
|
-
def find_latest_version(name: str = 'GridCal') -> str | None:
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
14
|
+
# def find_latest_version(name: str = 'GridCal') -> str | None:
|
15
|
+
# """
|
16
|
+
# Find the latest version of a package
|
17
|
+
# :param name: name of the Package
|
18
|
+
# :return: version string
|
19
|
+
# """
|
20
|
+
# latest_version = str(subprocess.run([sys.executable, '-m', 'pip',
|
21
|
+
# 'install', f'{name}==random',
|
22
|
+
# '--break-system-packages'],
|
23
|
+
# capture_output=True, text=True))
|
24
|
+
# latest_version = latest_version[latest_version.find('(from versions:') + 15:]
|
25
|
+
# latest_version = latest_version[:latest_version.find(')')]
|
26
|
+
# latest_version = latest_version.replace(' ', '').split(',')[-1]
|
27
|
+
#
|
28
|
+
# if latest_version == 'none':
|
29
|
+
# return None
|
30
|
+
#
|
31
|
+
# return latest_version
|
32
|
+
|
33
|
+
|
34
|
+
def find_latest_version(package_name: str = 'GridCal'):
|
35
|
+
try:
|
36
|
+
url = f"https://pypi.org/pypi/{package_name}/json"
|
37
|
+
response = requests.get(url, timeout=5)
|
38
|
+
response.raise_for_status()
|
39
|
+
data = response.json()
|
40
|
+
return data["info"]["version"]
|
41
|
+
except Exception:
|
28
42
|
return None
|
29
43
|
|
30
|
-
return latest_version
|
31
|
-
|
32
44
|
|
33
45
|
def check_version(name: str = 'GridCal') -> Tuple[int, str]:
|
34
46
|
"""
|
@@ -43,7 +55,7 @@ def check_version(name: str = 'GridCal') -> Tuple[int, str]:
|
|
43
55
|
+1: we are behind pipy, we can update
|
44
56
|
"""
|
45
57
|
|
46
|
-
latest_version = find_latest_version(
|
58
|
+
latest_version = find_latest_version(package_name=name)
|
47
59
|
|
48
60
|
# pipy_version = pkg_resources.parse_version(latest_version)
|
49
61
|
# gc_version = pkg_resources.parse_version(__GridCal_VERSION__)
|
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.39 → gridcal-5.3.41}/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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py
RENAMED
File without changes
|
File without changes
|
{gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py
RENAMED
File without changes
|
{gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py
RENAMED
File without changes
|
{gridcal-5.3.39 → gridcal-5.3.41}/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.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py
RENAMED
File without changes
|
{gridcal-5.3.39 → gridcal-5.3.41}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py
RENAMED
File without changes
|
File without changes
|