VeraGrid 5.6.18__tar.gz → 5.6.20__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.
- {veragrid-5.6.18 → veragrid-5.6.20}/PKG-INFO +1 -1
- veragrid-5.6.20/VeraGrid/Gui/CGMESDialogue/cgmes_export.py +136 -0
- veragrid-5.6.20/VeraGrid/Gui/CGMESDialogue/cgmes_export_gui.py +177 -0
- veragrid-5.6.20/VeraGrid/Gui/CGMESDialogue/update_gui_file.py +12 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Injections/map_injections_template_graphics.py +8 -2
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Substation/node_template.py +18 -3
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +18 -8
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/grid_map_widget.py +31 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/schematic_widget.py +36 -16
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Icons/icons_rc.py +2962 -404
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/MainWindow.py +579 -683
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/Model/diagrams.py +2 -1
- veragrid-5.6.20/VeraGrid/Gui/Main/SubClasses/Scripting/scripting.py +281 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/Settings/configuration.py +7 -40
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/base_gui.py +8 -135
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/io.py +246 -89
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/ProfilesInput/models_dialogue.py +1 -1
- veragrid-5.6.20/VeraGrid/Gui/PsseExportDialogue/psse_export.py +75 -0
- veragrid-5.6.20/VeraGrid/Gui/PsseExportDialogue/psse_export_gui.py +72 -0
- veragrid-5.6.20/VeraGrid/Gui/PsseExportDialogue/update_gui_file.py +12 -0
- veragrid-5.6.20/VeraGrid/Gui/SolarPowerWizard/__init__.py +0 -0
- veragrid-5.6.20/VeraGrid/Gui/Widgets/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/python_script_editor.py +22 -7
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/__version__.py +1 -1
- veragrid-5.6.18/VeraGrid/Gui/Main/SubClasses/Scripting/scripting.py +0 -166
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ExecuteVeraGrid.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/AboutDialogue/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/AboutDialogue/about_dialogue.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/AboutDialogue/about_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/AboutDialogue/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Analysis/AnalysisDialogue.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Analysis/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Analysis/analysis_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Analysis/object_plot_analysis.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Analysis/update_gui_file.py +0 -0
- {veragrid-5.6.18/VeraGrid/Gui/Diagrams/Editors → veragrid-5.6.20/VeraGrid/Gui/CGMESDialogue}/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/ContingencyPlanner/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/ContingencyPlanner/contingency_planner_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/CoordinatesInput/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/CoordinatesInput/coordinates_input_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {veragrid-5.6.18/VeraGrid/Gui/Diagrams/MapWidget/Injections → veragrid-5.6.20/VeraGrid/Gui/Diagrams/Editors}/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/Editors/controllable_shunt_editor.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/Editors/generator_editor.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/Editors/line_editor.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/Editors/new_line_dialogue.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/Editors/transformer3w_editor.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/Editors/transformer_editor.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/Editors/transformer_taps_editor.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
- {veragrid-5.6.18/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid → veragrid-5.6.20/VeraGrid/Gui/Diagrams/MapWidget/Injections}/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Injections/map_battery_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Injections/map_external_grid_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Injections/map_generator_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Injections/map_load_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Injections/map_static_generator_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/map_widget.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics_3term.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {veragrid-5.6.18/VeraGrid/Gui/Diagrams/SchematicWidget/Injections → veragrid-5.6.20/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid}/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {veragrid-5.6.18/VeraGrid/Gui/Diagrams/SchematicWidget/Substation → veragrid-5.6.20/VeraGrid/Gui/Diagrams/SchematicWidget/Injections}/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {veragrid-5.6.18/VeraGrid/Gui/GridMerge → veragrid-5.6.20/VeraGrid/Gui/Diagrams/SchematicWidget/Substation}/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/diagram_bus_selection_dialogue.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/base_diagram_widget.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/diagrams_model.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/generic_graphics.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/graphics_manager.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/GridGenerator/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/GridGenerator/grid_generator_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/GridGenerator/update_gui_file.py +0 -0
- {veragrid-5.6.18/VeraGrid/Gui/GridReduce → veragrid-5.6.20/VeraGrid/Gui/GridMerge}/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/GridMerge/build_diff_tree.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/GridMerge/grid_diff.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/GridMerge/grid_diff_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/GridMerge/grid_merge.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/GridMerge/grid_merge_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/GridMerge/update_gui_file.py +0 -0
- {veragrid-5.6.18/VeraGrid/Gui/Icons → veragrid-5.6.20/VeraGrid/Gui/GridReduce}/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/GridReduce/grid_reduce.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/GridReduce/grid_reduce_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/GridReduce/update_gui_file.py +0 -0
- {veragrid-5.6.18/VeraGrid/Gui/ProfilesInput → veragrid-5.6.20/VeraGrid/Gui/Icons}/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Icons/update_icons_rc.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/LoadCatalogue/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/LoadDesigner/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/LoadDesigner/load_designer.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/LoadDesigner/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/Model/compiled_arrays_model.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/Model/data_base.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/README.txt +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/Results/results.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/Server/server.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/SubClasses/simulations.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/VeraGridMain.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/object_select_window.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Main/update_gui_file.py +0 -0
- {veragrid-5.6.18/VeraGrid/Gui/SolarPowerWizard → veragrid-5.6.20/VeraGrid/Gui/ProfilesInput}/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/ProfilesInput/excel_dialog.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/ProfilesInput/update_gui_file.py +0 -0
- {veragrid-5.6.18/VeraGrid/Gui/Widgets → veragrid-5.6.20/VeraGrid/Gui/PsseExportDialogue}/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/RmsModelEditor/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/RmsModelEditor/block_data_dialogue.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/RmsModelEditor/rms_model_editor.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/RmsModelEditor/rms_model_editor_engine.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/RmsModelEditor/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/RosetaExplorer/MainWindow.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/RosetaExplorer/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SigmaAnalysis/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SigmaAnalysis/sigma_analysis_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SolarPowerWizard/solar_power_wizard_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SubstationDesigner/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SubstationDesigner/substation_designer.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SubstationDesigner/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SubstationDesigner/voltage_level_conversion.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SyncDialogue/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SyncDialogue/sync_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SyncDialogue/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SystemScaler/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SystemScaler/system_scaler.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/SystemScaler/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/TowerBuilder/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/TowerBuilder/table_models.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/TowerBuilder/tower_builder.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/TowerBuilder/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/TreeModelViewer/MainWindow.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/TreeModelViewer/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Visualization/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Visualization/visualization.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Widgets/custom_qrangeslider.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Widgets/matplotlibwidget.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/WindPowerWizard/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/WindPowerWizard/wind_power_wizard_gui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/associations_model.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/correct_icons.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/font_config.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/general_dialogues.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/gui_functions.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/messages.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/object_model.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/object_proxy_model.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/pandas_model.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/plot_config.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/profiles_model.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/python_console.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/python_highlighter.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/results_model.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/rms_events_editor_dialog.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/rms_plot_variables_dialog.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/table_view_header_wrap.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/themes.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/toast_widget.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/update_gui_all.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/update_gui_common.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/wrappable_table_model.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/LICENSE.txt +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Session/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Session/export_results_driver.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Session/file_handler.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Session/server_driver.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Session/session.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Session/synchronization_driver.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/darkdetect/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/darkdetect/_dummy.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/darkdetect/_linux_detect.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/darkdetect/_mac_detect.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/darkdetect/_windows_detect.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_color.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_main.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/_util.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/data/VeraGrid.ico +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/data/VeraGrid.svg +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/data/__init__.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/data/cables.csv +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/data/sequence_lines.csv +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/data/transformers.csv +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/data/wires.csv +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/plugins.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/templates.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/update.py +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/setup.cfg +0 -0
- {veragrid-5.6.18 → veragrid-5.6.20}/setup.py +0 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
+
# SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import TYPE_CHECKING
|
|
8
|
+
import os
|
|
9
|
+
from PySide6 import QtWidgets
|
|
10
|
+
from VeraGrid.Gui.CGMESDialogue.cgmes_export_gui import Ui_CgmesExportDialog
|
|
11
|
+
import VeraGrid.Session.file_handler as filedrv
|
|
12
|
+
import VeraGrid.Gui.gui_functions as gf
|
|
13
|
+
from VeraGridEngine.enumerations import CGMESVersions
|
|
14
|
+
from VeraGridEngine.IO.cim.cgmes.cgmes_export import get_available_cgmes_profiles
|
|
15
|
+
from VeraGridEngine.IO.cim.cgmes.cgmes_enums import CgmesProfileType
|
|
16
|
+
|
|
17
|
+
if TYPE_CHECKING:
|
|
18
|
+
from VeraGrid.Gui.Main.SubClasses.io import IoMain
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class CgmesExportDialogue(QtWidgets.QDialog):
|
|
22
|
+
"""
|
|
23
|
+
GridMergeDialogue
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
def __init__(self, app: IoMain):
|
|
27
|
+
"""
|
|
28
|
+
GridMergeDialogue
|
|
29
|
+
:param app: VeraGridMainGUI
|
|
30
|
+
"""
|
|
31
|
+
QtWidgets.QDialog.__init__(self)
|
|
32
|
+
self.ui = Ui_CgmesExportDialog()
|
|
33
|
+
self.ui.setupUi(self)
|
|
34
|
+
self.setWindowTitle('CGMES export')
|
|
35
|
+
self.setModal(True)
|
|
36
|
+
|
|
37
|
+
self.grid = app.circuit
|
|
38
|
+
|
|
39
|
+
self.sessions_data = app.session
|
|
40
|
+
|
|
41
|
+
self.project_directory = app.project_directory
|
|
42
|
+
|
|
43
|
+
self.app: IoMain = app
|
|
44
|
+
|
|
45
|
+
self.current_boundary_set = ""
|
|
46
|
+
|
|
47
|
+
self.cgmes_version_dict = {x.value: x for x in [CGMESVersions.v2_4_15,
|
|
48
|
+
CGMESVersions.v3_0_0]}
|
|
49
|
+
self.ui.cgmes_version_comboBox.setModel(gf.get_list_model(list(self.cgmes_version_dict.keys())))
|
|
50
|
+
|
|
51
|
+
self.cgmes_profiles_dict = {key: CgmesProfileType(key) for key, val in
|
|
52
|
+
get_available_cgmes_profiles(cgmes_version=CGMESVersions.v2_4_15).items()}
|
|
53
|
+
|
|
54
|
+
self.ui.cgmes_profiles_listView.setModel(gf.get_list_model(list(self.cgmes_profiles_dict.keys()),
|
|
55
|
+
checks=True, check_value=True))
|
|
56
|
+
|
|
57
|
+
# Buttons
|
|
58
|
+
self.ui.selectCGMESBoundarySetButton.clicked.connect(self.select_cgmes_boundary_set)
|
|
59
|
+
self.ui.exportButton.clicked.connect(self.export)
|
|
60
|
+
|
|
61
|
+
# change
|
|
62
|
+
self.ui.cgmes_version_comboBox.currentTextChanged.connect(self.cgmes_version_change)
|
|
63
|
+
|
|
64
|
+
def cgmes_version_change(self):
|
|
65
|
+
"""
|
|
66
|
+
On GUI cgmes version change, display only the supported profiles
|
|
67
|
+
"""
|
|
68
|
+
cgmes_version = self.cgmes_version_dict[self.ui.cgmes_version_comboBox.currentText()]
|
|
69
|
+
|
|
70
|
+
self.cgmes_profiles_dict = {key: CgmesProfileType(key) for key, val in
|
|
71
|
+
get_available_cgmes_profiles(cgmes_version=cgmes_version).items()}
|
|
72
|
+
|
|
73
|
+
self.ui.cgmes_profiles_listView.setModel(gf.get_list_model(list(self.cgmes_profiles_dict.keys()),
|
|
74
|
+
checks=True, check_value=True))
|
|
75
|
+
|
|
76
|
+
def select_cgmes_boundary_set(self):
|
|
77
|
+
"""
|
|
78
|
+
Select the current boundary set
|
|
79
|
+
"""
|
|
80
|
+
files_types = "Boundary set (*.zip)"
|
|
81
|
+
|
|
82
|
+
dialogue = QtWidgets.QFileDialog(None,
|
|
83
|
+
caption='Select Boundary set file',
|
|
84
|
+
directory=self.project_directory,
|
|
85
|
+
filter=files_types)
|
|
86
|
+
if dialogue.exec():
|
|
87
|
+
filenames = dialogue.selectedFiles()
|
|
88
|
+
if len(filenames) > 0:
|
|
89
|
+
self.current_boundary_set = filenames[0]
|
|
90
|
+
self.ui.cgmes_boundary_set_label.setText(self.current_boundary_set)
|
|
91
|
+
|
|
92
|
+
def export(self) -> None:
|
|
93
|
+
"""
|
|
94
|
+
The elements of the grid will be added with new idtags.
|
|
95
|
+
This is useful in the case you want to compose a new grid from grids that are the same.
|
|
96
|
+
:return:
|
|
97
|
+
"""
|
|
98
|
+
cgmes_version = self.cgmes_version_dict[self.ui.cgmes_version_comboBox.currentText()]
|
|
99
|
+
cgmes_profiles_txt = gf.get_checked_values(mdl=self.ui.cgmes_profiles_listView.model())
|
|
100
|
+
cgmes_profiles = [self.cgmes_profiles_dict[e] for e in cgmes_profiles_txt]
|
|
101
|
+
cgmes_one_file_per_profile = self.ui.cgmes_single_profile_per_file_checkBox.isChecked()
|
|
102
|
+
cgmes_map_areas_like_raw = self.ui.cgmes_map_regions_like_raw_checkBox.isChecked()
|
|
103
|
+
|
|
104
|
+
options = filedrv.FileSavingOptions(cgmes_boundary_set=self.current_boundary_set,
|
|
105
|
+
sessions_data=self.sessions_data.get_save_data(),
|
|
106
|
+
dictionary_of_json_files=dict(),
|
|
107
|
+
cgmes_version=cgmes_version,
|
|
108
|
+
cgmes_profiles=cgmes_profiles,
|
|
109
|
+
cgmes_one_file_per_profile=cgmes_one_file_per_profile,
|
|
110
|
+
cgmes_map_areas_like_raw=cgmes_map_areas_like_raw)
|
|
111
|
+
|
|
112
|
+
# if the global file_name is empty, ask where to save
|
|
113
|
+
fname = os.path.join(self.project_directory, self.app.ui.grid_name_line_edit.text())
|
|
114
|
+
|
|
115
|
+
files_types = "CGMES (*.zip);;"
|
|
116
|
+
filename, type_selected = QtWidgets.QFileDialog.getSaveFileName(self,
|
|
117
|
+
'Export to CGMES',
|
|
118
|
+
fname,
|
|
119
|
+
files_types)
|
|
120
|
+
|
|
121
|
+
if filename != '':
|
|
122
|
+
|
|
123
|
+
# if the user did not enter the extension, add it automatically
|
|
124
|
+
name, file_extension = os.path.splitext(filename)
|
|
125
|
+
|
|
126
|
+
if file_extension == '':
|
|
127
|
+
filename = name + '.zip'
|
|
128
|
+
|
|
129
|
+
# we were able to compose the file correctly, now save it
|
|
130
|
+
self.app.save_file_now(filename=filename,
|
|
131
|
+
type_selected=type_selected,
|
|
132
|
+
options=options)
|
|
133
|
+
|
|
134
|
+
self.app.show_info_toast("CGMES export done!")
|
|
135
|
+
self.close()
|
|
136
|
+
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
################################################################################
|
|
4
|
+
## Form generated from reading UI file 'cgmes_export_gui.ui'
|
|
5
|
+
##
|
|
6
|
+
## Created by: Qt User Interface Compiler version 6.10.1
|
|
7
|
+
##
|
|
8
|
+
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
|
9
|
+
################################################################################
|
|
10
|
+
|
|
11
|
+
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
|
|
12
|
+
QMetaObject, QObject, QPoint, QRect,
|
|
13
|
+
QSize, QTime, QUrl, Qt)
|
|
14
|
+
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
|
|
15
|
+
QFont, QFontDatabase, QGradient, QIcon,
|
|
16
|
+
QImage, QKeySequence, QLinearGradient, QPainter,
|
|
17
|
+
QPalette, QPixmap, QRadialGradient, QTransform)
|
|
18
|
+
from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QDialog,
|
|
19
|
+
QFrame, QGridLayout, QLabel, QListView,
|
|
20
|
+
QPushButton, QSizePolicy, QVBoxLayout, QWidget)
|
|
21
|
+
from VeraGrid.Gui.Icons.icons_rc import *
|
|
22
|
+
|
|
23
|
+
class Ui_CgmesExportDialog(object):
|
|
24
|
+
def setupUi(self, CgmesExportDialog):
|
|
25
|
+
if not CgmesExportDialog.objectName():
|
|
26
|
+
CgmesExportDialog.setObjectName(u"CgmesExportDialog")
|
|
27
|
+
CgmesExportDialog.resize(425, 569)
|
|
28
|
+
self.verticalLayout_2 = QVBoxLayout(CgmesExportDialog)
|
|
29
|
+
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
|
|
30
|
+
self.frame_79 = QFrame(CgmesExportDialog)
|
|
31
|
+
self.frame_79.setObjectName(u"frame_79")
|
|
32
|
+
self.frame_79.setMinimumSize(QSize(300, 0))
|
|
33
|
+
self.frame_79.setFrameShape(QFrame.Shape.NoFrame)
|
|
34
|
+
self.frame_79.setFrameShadow(QFrame.Shadow.Raised)
|
|
35
|
+
self.gridLayout_5 = QGridLayout(self.frame_79)
|
|
36
|
+
self.gridLayout_5.setObjectName(u"gridLayout_5")
|
|
37
|
+
self.label_139 = QLabel(self.frame_79)
|
|
38
|
+
self.label_139.setObjectName(u"label_139")
|
|
39
|
+
|
|
40
|
+
self.gridLayout_5.addWidget(self.label_139, 11, 0, 1, 3)
|
|
41
|
+
|
|
42
|
+
self.cgmes_version_comboBox = QComboBox(self.frame_79)
|
|
43
|
+
self.cgmes_version_comboBox.setObjectName(u"cgmes_version_comboBox")
|
|
44
|
+
|
|
45
|
+
self.gridLayout_5.addWidget(self.cgmes_version_comboBox, 3, 0, 1, 3)
|
|
46
|
+
|
|
47
|
+
self.line_31 = QFrame(self.frame_79)
|
|
48
|
+
self.line_31.setObjectName(u"line_31")
|
|
49
|
+
palette = QPalette()
|
|
50
|
+
brush = QBrush(QColor(186, 189, 182, 255))
|
|
51
|
+
brush.setStyle(Qt.BrushStyle.SolidPattern)
|
|
52
|
+
palette.setBrush(QPalette.ColorGroup.Active, QPalette.ColorRole.WindowText, brush)
|
|
53
|
+
palette.setBrush(QPalette.ColorGroup.Inactive, QPalette.ColorRole.WindowText, brush)
|
|
54
|
+
brush1 = QBrush(QColor(190, 190, 190, 255))
|
|
55
|
+
brush1.setStyle(Qt.BrushStyle.SolidPattern)
|
|
56
|
+
palette.setBrush(QPalette.ColorGroup.Disabled, QPalette.ColorRole.WindowText, brush1)
|
|
57
|
+
self.line_31.setPalette(palette)
|
|
58
|
+
self.line_31.setFrameShadow(QFrame.Shadow.Plain)
|
|
59
|
+
self.line_31.setLineWidth(4)
|
|
60
|
+
self.line_31.setFrameShape(QFrame.Shape.HLine)
|
|
61
|
+
|
|
62
|
+
self.gridLayout_5.addWidget(self.line_31, 1, 0, 1, 3)
|
|
63
|
+
|
|
64
|
+
self.selectCGMESBoundarySetButton = QPushButton(self.frame_79)
|
|
65
|
+
self.selectCGMESBoundarySetButton.setObjectName(u"selectCGMESBoundarySetButton")
|
|
66
|
+
self.selectCGMESBoundarySetButton.setMaximumSize(QSize(80, 16777215))
|
|
67
|
+
|
|
68
|
+
self.gridLayout_5.addWidget(self.selectCGMESBoundarySetButton, 9, 2, 1, 1)
|
|
69
|
+
|
|
70
|
+
self.cgmes_map_regions_like_raw_checkBox = QCheckBox(self.frame_79)
|
|
71
|
+
self.cgmes_map_regions_like_raw_checkBox.setObjectName(u"cgmes_map_regions_like_raw_checkBox")
|
|
72
|
+
|
|
73
|
+
self.gridLayout_5.addWidget(self.cgmes_map_regions_like_raw_checkBox, 14, 0, 1, 3)
|
|
74
|
+
|
|
75
|
+
self.cgmes_single_profile_per_file_checkBox = QCheckBox(self.frame_79)
|
|
76
|
+
self.cgmes_single_profile_per_file_checkBox.setObjectName(u"cgmes_single_profile_per_file_checkBox")
|
|
77
|
+
|
|
78
|
+
self.gridLayout_5.addWidget(self.cgmes_single_profile_per_file_checkBox, 13, 0, 1, 3)
|
|
79
|
+
|
|
80
|
+
self.label_135 = QLabel(self.frame_79)
|
|
81
|
+
self.label_135.setObjectName(u"label_135")
|
|
82
|
+
|
|
83
|
+
self.gridLayout_5.addWidget(self.label_135, 2, 0, 1, 3)
|
|
84
|
+
|
|
85
|
+
self.label_102 = QLabel(self.frame_79)
|
|
86
|
+
self.label_102.setObjectName(u"label_102")
|
|
87
|
+
|
|
88
|
+
self.gridLayout_5.addWidget(self.label_102, 10, 0, 1, 1)
|
|
89
|
+
|
|
90
|
+
self.label_134 = QLabel(self.frame_79)
|
|
91
|
+
self.label_134.setObjectName(u"label_134")
|
|
92
|
+
palette1 = QPalette()
|
|
93
|
+
brush2 = QBrush(QColor(85, 87, 83, 255))
|
|
94
|
+
brush2.setStyle(Qt.BrushStyle.SolidPattern)
|
|
95
|
+
palette1.setBrush(QPalette.ColorGroup.Active, QPalette.ColorRole.WindowText, brush2)
|
|
96
|
+
brush3 = QBrush(QColor(0, 0, 0, 255))
|
|
97
|
+
brush3.setStyle(Qt.BrushStyle.SolidPattern)
|
|
98
|
+
palette1.setBrush(QPalette.ColorGroup.Inactive, QPalette.ColorRole.WindowText, brush3)
|
|
99
|
+
palette1.setBrush(QPalette.ColorGroup.Disabled, QPalette.ColorRole.WindowText, brush1)
|
|
100
|
+
self.label_134.setPalette(palette1)
|
|
101
|
+
font = QFont()
|
|
102
|
+
font.setPointSize(16)
|
|
103
|
+
self.label_134.setFont(font)
|
|
104
|
+
|
|
105
|
+
self.gridLayout_5.addWidget(self.label_134, 0, 1, 1, 2)
|
|
106
|
+
|
|
107
|
+
self.label_90 = QLabel(self.frame_79)
|
|
108
|
+
self.label_90.setObjectName(u"label_90")
|
|
109
|
+
|
|
110
|
+
self.gridLayout_5.addWidget(self.label_90, 8, 0, 1, 3)
|
|
111
|
+
|
|
112
|
+
self.cgmes_dc_as_hvdclines_checkBox = QCheckBox(self.frame_79)
|
|
113
|
+
self.cgmes_dc_as_hvdclines_checkBox.setObjectName(u"cgmes_dc_as_hvdclines_checkBox")
|
|
114
|
+
|
|
115
|
+
self.gridLayout_5.addWidget(self.cgmes_dc_as_hvdclines_checkBox, 15, 0, 1, 3)
|
|
116
|
+
|
|
117
|
+
self.label_137 = QLabel(self.frame_79)
|
|
118
|
+
self.label_137.setObjectName(u"label_137")
|
|
119
|
+
self.label_137.setMinimumSize(QSize(24, 24))
|
|
120
|
+
self.label_137.setMaximumSize(QSize(24, 24))
|
|
121
|
+
self.label_137.setPixmap(QPixmap(u":/Icons/icons/new2.png"))
|
|
122
|
+
self.label_137.setScaledContents(True)
|
|
123
|
+
|
|
124
|
+
self.gridLayout_5.addWidget(self.label_137, 0, 0, 1, 1)
|
|
125
|
+
|
|
126
|
+
self.cgmes_profiles_listView = QListView(self.frame_79)
|
|
127
|
+
self.cgmes_profiles_listView.setObjectName(u"cgmes_profiles_listView")
|
|
128
|
+
|
|
129
|
+
self.gridLayout_5.addWidget(self.cgmes_profiles_listView, 12, 0, 1, 3)
|
|
130
|
+
|
|
131
|
+
self.cgmes_boundary_set_label = QLabel(self.frame_79)
|
|
132
|
+
self.cgmes_boundary_set_label.setObjectName(u"cgmes_boundary_set_label")
|
|
133
|
+
|
|
134
|
+
self.gridLayout_5.addWidget(self.cgmes_boundary_set_label, 9, 0, 1, 2)
|
|
135
|
+
|
|
136
|
+
self.exportButton = QPushButton(self.frame_79)
|
|
137
|
+
self.exportButton.setObjectName(u"exportButton")
|
|
138
|
+
|
|
139
|
+
self.gridLayout_5.addWidget(self.exportButton, 16, 2, 1, 1)
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
self.verticalLayout_2.addWidget(self.frame_79)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
self.retranslateUi(CgmesExportDialog)
|
|
146
|
+
|
|
147
|
+
QMetaObject.connectSlotsByName(CgmesExportDialog)
|
|
148
|
+
# setupUi
|
|
149
|
+
|
|
150
|
+
def retranslateUi(self, CgmesExportDialog):
|
|
151
|
+
CgmesExportDialog.setWindowTitle(QCoreApplication.translate("CgmesExportDialog", u"CGMES Export", None))
|
|
152
|
+
self.label_139.setText(QCoreApplication.translate("CgmesExportDialog", u"Profiles to export", None))
|
|
153
|
+
#if QT_CONFIG(tooltip)
|
|
154
|
+
self.selectCGMESBoundarySetButton.setToolTip(QCoreApplication.translate("CgmesExportDialog", u"Select the CGMES boundary set (single zip file)", None))
|
|
155
|
+
#endif // QT_CONFIG(tooltip)
|
|
156
|
+
self.selectCGMESBoundarySetButton.setText(QCoreApplication.translate("CgmesExportDialog", u"Select", None))
|
|
157
|
+
#if QT_CONFIG(tooltip)
|
|
158
|
+
self.cgmes_map_regions_like_raw_checkBox.setToolTip(QCoreApplication.translate("CgmesExportDialog", u"<html><head/><body><p>If active the CGMEs mapping will be:</p><p>GeographicalRegion <-> Area</p><p>SubGeographicalRegion <-> Zone</p><p>Otherwise:</p><p>GeographicalRegion <-> Country</p><p>SubGeographicalRegion <-> Community</p><p><br/></p></body></html>", None))
|
|
159
|
+
#endif // QT_CONFIG(tooltip)
|
|
160
|
+
self.cgmes_map_regions_like_raw_checkBox.setText(QCoreApplication.translate("CgmesExportDialog", u"Map regions like raw files", None))
|
|
161
|
+
self.cgmes_single_profile_per_file_checkBox.setText(QCoreApplication.translate("CgmesExportDialog", u"One file per profile", None))
|
|
162
|
+
self.label_135.setText(QCoreApplication.translate("CgmesExportDialog", u"Export version", None))
|
|
163
|
+
self.label_102.setText("")
|
|
164
|
+
self.label_134.setText(QCoreApplication.translate("CgmesExportDialog", u"CGMES", None))
|
|
165
|
+
self.label_90.setText(QCoreApplication.translate("CgmesExportDialog", u"Boundary set", None))
|
|
166
|
+
#if QT_CONFIG(tooltip)
|
|
167
|
+
self.cgmes_dc_as_hvdclines_checkBox.setToolTip(QCoreApplication.translate("CgmesExportDialog", u"<html><head/><body><p>Converters and DC lines in CGMES are attempted to be converted to the simplified HvdcLine objects in VeraGrid</p></body></html>", None))
|
|
168
|
+
#endif // QT_CONFIG(tooltip)
|
|
169
|
+
self.cgmes_dc_as_hvdclines_checkBox.setText(QCoreApplication.translate("CgmesExportDialog", u"Treat DC equipement as HvdcLines", None))
|
|
170
|
+
self.label_137.setText("")
|
|
171
|
+
#if QT_CONFIG(tooltip)
|
|
172
|
+
self.cgmes_boundary_set_label.setToolTip(QCoreApplication.translate("CgmesExportDialog", u"Path of the CGMES default boundary set (single zip file)", None))
|
|
173
|
+
#endif // QT_CONFIG(tooltip)
|
|
174
|
+
self.cgmes_boundary_set_label.setText(QCoreApplication.translate("CgmesExportDialog", u"...", None))
|
|
175
|
+
self.exportButton.setText(QCoreApplication.translate("CgmesExportDialog", u"Export", None))
|
|
176
|
+
# retranslateUi
|
|
177
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
4
|
+
# SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
"""
|
|
6
|
+
Script to update correctly the main GUI (.py) file from the Qt design (.ui) file
|
|
7
|
+
"""
|
|
8
|
+
from VeraGrid.Gui.update_gui_common import convert_ui_file
|
|
9
|
+
|
|
10
|
+
if __name__ == '__main__':
|
|
11
|
+
for f in ['cgmes_export_gui.ui']:
|
|
12
|
+
convert_ui_file(source=f)
|
|
@@ -136,7 +136,7 @@ class MapInjectionTemplateGraphicItem(NodeTemplate, QGraphicsEllipseItem):
|
|
|
136
136
|
Updates the element position in the diagram (to save)
|
|
137
137
|
:return:
|
|
138
138
|
"""
|
|
139
|
-
lat, long = self.editor.to_lat_lon(self.
|
|
139
|
+
lat, long = self.editor.to_lat_lon(self.get_xc(), self.get_yc())
|
|
140
140
|
|
|
141
141
|
self.lat = lat
|
|
142
142
|
self.lon = long
|
|
@@ -253,11 +253,17 @@ class MapInjectionTemplateGraphicItem(NodeTemplate, QGraphicsEllipseItem):
|
|
|
253
253
|
menu = self.get_base_context_menu()
|
|
254
254
|
menu.exec(event.screenPos())
|
|
255
255
|
|
|
256
|
+
def get_xc(self) -> float:
|
|
257
|
+
return self.rect().x() + self.size/2
|
|
258
|
+
|
|
259
|
+
def get_yc(self) -> float:
|
|
260
|
+
return self.rect().y() + self.size/2
|
|
261
|
+
|
|
256
262
|
def consolidate_coordinates(self):
|
|
257
263
|
"""
|
|
258
264
|
Consolidate coordinates in to the DB
|
|
259
265
|
"""
|
|
260
|
-
lat, long = self.editor.to_lat_lon(self.
|
|
266
|
+
lat, long = self.editor.to_lat_lon(self.get_xc(), self.get_yc())
|
|
261
267
|
self.api_object.latitude = lat
|
|
262
268
|
self.api_object.longitude = long
|
|
263
269
|
self.editor.gui.show_info_toast("Coordinates consolidated!")
|
{veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/MapWidget/Substation/node_template.py
RENAMED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
from typing import Union, TYPE_CHECKING, Dict, Callable, List
|
|
7
7
|
from PySide6.QtCore import QPointF
|
|
8
|
-
from PySide6.QtGui import QBrush
|
|
9
8
|
|
|
10
9
|
from VeraGrid.Gui.Diagrams.MapWidget.Branches.map_line_segment import MapLineSegment
|
|
11
10
|
from VeraGrid.Gui.Diagrams.generic_graphics import GenericDiagramWidget
|
|
@@ -41,14 +40,30 @@ class NodeTemplate(GenericDiagramWidget):
|
|
|
41
40
|
editor=editor,
|
|
42
41
|
draw_labels=draw_labels)
|
|
43
42
|
|
|
44
|
-
self.
|
|
45
|
-
self.
|
|
43
|
+
self._lat = lat
|
|
44
|
+
self._lon = lon
|
|
46
45
|
|
|
47
46
|
self.hovered = False
|
|
48
47
|
self.needsUpdate = False
|
|
49
48
|
|
|
50
49
|
self._hosting_connections: Dict[MapLineSegment, Callable[[float, float], None]] = dict()
|
|
51
50
|
|
|
51
|
+
@property
|
|
52
|
+
def lat(self):
|
|
53
|
+
return self._lat
|
|
54
|
+
|
|
55
|
+
@lat.setter
|
|
56
|
+
def lat(self, val: float):
|
|
57
|
+
self._lat = val
|
|
58
|
+
|
|
59
|
+
@property
|
|
60
|
+
def lon(self):
|
|
61
|
+
return self._lon
|
|
62
|
+
|
|
63
|
+
@lon.setter
|
|
64
|
+
def lon(self, val: float):
|
|
65
|
+
self._lon = val
|
|
66
|
+
|
|
52
67
|
def add_position_change_callback(self, obj: MapLineSegment, fcn: Callable[[float, float], None]):
|
|
53
68
|
"""
|
|
54
69
|
Add callable function
|
|
@@ -9,13 +9,11 @@ from PySide6 import QtWidgets
|
|
|
9
9
|
from PySide6.QtWidgets import QMenu, QGraphicsSceneContextMenuEvent, QGraphicsSceneMouseEvent, QGraphicsRectItem
|
|
10
10
|
from PySide6.QtCore import Qt, QPointF
|
|
11
11
|
from PySide6.QtGui import QBrush, QColor
|
|
12
|
-
from VeraGrid.Gui.Diagrams.MapWidget.Injections.map_static_generator_graphics import (
|
|
13
|
-
|
|
14
|
-
from VeraGrid.Gui.Diagrams.MapWidget.Injections.
|
|
15
|
-
|
|
16
|
-
from VeraGrid.Gui.Diagrams.MapWidget.Injections.
|
|
17
|
-
from VeraGrid.Gui.Diagrams.MapWidget.Injections.map_generator_graphics import MapGeneratorGraphicItem, Generator
|
|
18
|
-
from VeraGrid.Gui.Diagrams.MapWidget.Injections.map_load_graphics import MapLoadGraphicItem, Load
|
|
12
|
+
from VeraGrid.Gui.Diagrams.MapWidget.Injections.map_static_generator_graphics import (StaticGenerator)
|
|
13
|
+
from VeraGrid.Gui.Diagrams.MapWidget.Injections.map_external_grid_graphics import (ExternalGrid)
|
|
14
|
+
from VeraGrid.Gui.Diagrams.MapWidget.Injections.map_battery_graphics import Battery
|
|
15
|
+
from VeraGrid.Gui.Diagrams.MapWidget.Injections.map_generator_graphics import Generator
|
|
16
|
+
from VeraGrid.Gui.Diagrams.MapWidget.Injections.map_load_graphics import Load
|
|
19
17
|
from VeraGrid.Gui.Diagrams.MapWidget.Branches.map_line_container import MapLineContainer
|
|
20
18
|
from VeraGrid.Gui.Diagrams.MapWidget.Substation.node_template import NodeTemplate
|
|
21
19
|
from VeraGrid.Gui.Diagrams.generic_graphics import GenericDiagramWidget
|
|
@@ -278,12 +276,24 @@ class SubstationGraphicItem(NodeTemplate, QGraphicsRectItem):
|
|
|
278
276
|
for i, vl_graphics in enumerate(sorted_objects):
|
|
279
277
|
vl_graphics.setZValue(i)
|
|
280
278
|
|
|
279
|
+
def get_xc(self) -> float:
|
|
280
|
+
return self.rect().x() + self.size/2
|
|
281
|
+
|
|
282
|
+
def get_yc(self) -> float:
|
|
283
|
+
return self.rect().y() + self.size/2
|
|
284
|
+
|
|
281
285
|
def update_position_at_the_diagram(self) -> None:
|
|
282
286
|
"""
|
|
283
287
|
Updates the element position in the diagram (to save)
|
|
284
288
|
:return:
|
|
285
289
|
"""
|
|
286
|
-
lat, long = self.editor.to_lat_lon(self.
|
|
290
|
+
lat, long = self.editor.to_lat_lon(self.get_xc(), self.get_yc())
|
|
291
|
+
|
|
292
|
+
# if abs(self.lat - lat) > 1e-8:
|
|
293
|
+
# print(f"LAT MOVED: {self.lat}, new: {lat}")
|
|
294
|
+
#
|
|
295
|
+
# if abs(self.lon - long) > 1e-8:
|
|
296
|
+
# print(f"LON MOVED: {self.lon}, new: {long}")
|
|
287
297
|
|
|
288
298
|
self.lat = lat
|
|
289
299
|
self.lon = long
|
|
@@ -2097,6 +2097,10 @@ class GridMapWidget(BaseDiagramWidget):
|
|
|
2097
2097
|
merging_substation.remove_function_from_schematic_and_db()
|
|
2098
2098
|
|
|
2099
2099
|
def consolidate_object_coordinates(self):
|
|
2100
|
+
"""
|
|
2101
|
+
|
|
2102
|
+
:return:
|
|
2103
|
+
"""
|
|
2100
2104
|
selected_lines = self.get_selected_line_segments_tup()
|
|
2101
2105
|
selected_substations = self.get_selected_substations_tup()
|
|
2102
2106
|
selected_generators = self.get_selected_generators_tup()
|
|
@@ -3128,3 +3132,30 @@ def generate_map_diagram(
|
|
|
3128
3132
|
|
|
3129
3133
|
return diagram
|
|
3130
3134
|
|
|
3135
|
+
|
|
3136
|
+
def generate_map_diagram2(circuit: MultiCircuit):
|
|
3137
|
+
return generate_map_diagram(
|
|
3138
|
+
substations=circuit.get_substations(),
|
|
3139
|
+
voltage_levels=circuit.get_voltage_levels(),
|
|
3140
|
+
lines=circuit.get_lines(),
|
|
3141
|
+
dc_lines=circuit.get_dc_lines(),
|
|
3142
|
+
hvdc_lines=circuit.get_hvdc(),
|
|
3143
|
+
fluid_nodes=circuit.get_fluid_nodes(),
|
|
3144
|
+
fluid_paths=circuit.get_fluid_paths(),
|
|
3145
|
+
external_grids=circuit.external_grids,
|
|
3146
|
+
static_generators=circuit.static_generators,
|
|
3147
|
+
loads=circuit.loads,
|
|
3148
|
+
batteries=circuit.batteries ,
|
|
3149
|
+
generators=circuit.generators,
|
|
3150
|
+
prog_func=None,
|
|
3151
|
+
text_func=None,
|
|
3152
|
+
name='Map diagram',
|
|
3153
|
+
use_flow_based_width=False,
|
|
3154
|
+
min_branch_width=0.01,
|
|
3155
|
+
max_branch_width=0.02,
|
|
3156
|
+
min_bus_width=0.1,
|
|
3157
|
+
max_bus_width=0.2,
|
|
3158
|
+
arrow_size=0.015,
|
|
3159
|
+
palette=Colormaps.VeraGrid,
|
|
3160
|
+
default_bus_voltage=20
|
|
3161
|
+
)
|
{veragrid-5.6.18 → veragrid-5.6.20}/VeraGrid/Gui/Diagrams/SchematicWidget/schematic_widget.py
RENAMED
|
@@ -4608,12 +4608,19 @@ class SchematicWidget(BaseDiagramWidget):
|
|
|
4608
4608
|
:param buses: List or Set of Buses
|
|
4609
4609
|
"""
|
|
4610
4610
|
|
|
4611
|
+
# Extract voltage levels from the input buses to restrict expansion
|
|
4612
|
+
# This prevents expanding into the external network when drawing voltage level conversions
|
|
4613
|
+
voltage_levels = {b.voltage_level for b in buses if b.voltage_level is not None}
|
|
4614
|
+
|
|
4611
4615
|
(buses,
|
|
4612
4616
|
lines, dc_lines, transformers2w,
|
|
4613
4617
|
transformers3w, windings, hvdc_lines,
|
|
4614
4618
|
vsc_converters, upfc_devices,
|
|
4615
4619
|
series_reactances, switches,
|
|
4616
|
-
fluid_nodes, fluid_paths) = get_devices_to_expand(circuit=self.circuit,
|
|
4620
|
+
fluid_nodes, fluid_paths) = get_devices_to_expand(circuit=self.circuit,
|
|
4621
|
+
buses=buses,
|
|
4622
|
+
max_level=5,
|
|
4623
|
+
restrict_to_voltage_levels=voltage_levels)
|
|
4617
4624
|
|
|
4618
4625
|
# Draw schematic subset
|
|
4619
4626
|
diagram = generate_schematic_diagram(buses=list(buses),
|
|
@@ -5088,24 +5095,30 @@ def generate_grid_diagram(circuit: MultiCircuit,
|
|
|
5088
5095
|
name=name)
|
|
5089
5096
|
|
|
5090
5097
|
|
|
5091
|
-
def get_devices_to_expand(circuit: MultiCircuit,
|
|
5092
|
-
List[
|
|
5093
|
-
|
|
5094
|
-
List[
|
|
5095
|
-
List[
|
|
5096
|
-
List[
|
|
5097
|
-
List[
|
|
5098
|
-
List[
|
|
5099
|
-
List[
|
|
5100
|
-
List[
|
|
5101
|
-
List[
|
|
5102
|
-
List[
|
|
5103
|
-
List[
|
|
5098
|
+
def get_devices_to_expand(circuit: MultiCircuit,
|
|
5099
|
+
buses: List[Bus],
|
|
5100
|
+
max_level: int = 1,
|
|
5101
|
+
restrict_to_voltage_levels: Set | None = None) -> Tuple[List[Bus],
|
|
5102
|
+
List[Line],
|
|
5103
|
+
List[DcLine],
|
|
5104
|
+
List[Transformer2W],
|
|
5105
|
+
List[Transformer3W],
|
|
5106
|
+
List[Winding],
|
|
5107
|
+
List[HvdcLine],
|
|
5108
|
+
List[VSC],
|
|
5109
|
+
List[UPFC],
|
|
5110
|
+
List[SeriesReactance],
|
|
5111
|
+
List[Switch],
|
|
5112
|
+
List[FluidNode],
|
|
5113
|
+
List[FluidPath]]:
|
|
5104
5114
|
"""
|
|
5105
5115
|
get lists of devices to expand given a root bus
|
|
5106
5116
|
:param circuit: MultiCircuit
|
|
5107
5117
|
:param buses: List of Bus
|
|
5108
5118
|
:param max_level: max expansion level
|
|
5119
|
+
:param restrict_to_voltage_levels: If provided, only expand to buses within these voltage levels.
|
|
5120
|
+
This prevents expansion into the external network when drawing
|
|
5121
|
+
voltage level conversions.
|
|
5109
5122
|
:return:
|
|
5110
5123
|
"""
|
|
5111
5124
|
|
|
@@ -5175,8 +5188,15 @@ List[FluidPath]]:
|
|
|
5175
5188
|
other_bus = None
|
|
5176
5189
|
|
|
5177
5190
|
if other_bus not in visited:
|
|
5178
|
-
|
|
5179
|
-
|
|
5191
|
+
# If voltage level restriction is active, only follow to buses within allowed voltage levels
|
|
5192
|
+
should_expand = True
|
|
5193
|
+
if restrict_to_voltage_levels is not None:
|
|
5194
|
+
other_vl = other_bus.voltage_level if other_bus is not None else None
|
|
5195
|
+
should_expand = other_vl in restrict_to_voltage_levels
|
|
5196
|
+
|
|
5197
|
+
if should_expand:
|
|
5198
|
+
bus_pool.append((other_bus, level + 1))
|
|
5199
|
+
visited.add(other_bus)
|
|
5180
5200
|
|
|
5181
5201
|
# sort Branches
|
|
5182
5202
|
lines: List[Line] = list()
|