GridCal 5.1.56__tar.gz → 5.1.58__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/CascadingSteps/cascading_steps.py +6 -6
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +6 -6
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +17 -1
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +2 -2
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +5 -3
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +47 -1
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +2 -2
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +105 -60
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +10 -2
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +16 -2
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +3 -2
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/simulations.py +5 -3
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +9 -3
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/__version__.py +1 -1
- {GridCal-5.1.56 → GridCal-5.1.58}/PKG-INFO +1 -1
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ExecuteGridCal.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Analysis/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Analysis/gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Branches/new_line_dialogue.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/gmt_local.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapbox.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/mapquest.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/open_street_map.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_toner.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_transport.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/stamen_watercolor.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_editor.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/base_diagram_widget.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/MainWindow.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Scripting/python_highlighter.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/SubClasses/io.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/object_select_window.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/RosetaExplorer/ConsoleWidget.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SubstationDesigner/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SubstationDesigner/substation_designer.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SubstationDesigner/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/TowerBuilder/gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/TowerBuilder/test_.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Visualization/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Visualization/visualization.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Widgets/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/associations_model.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/console_widget.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/general_dialogues.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/gui_functions.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/messages.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/object_model.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/pandas_model.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/plot_config.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/profiles_model.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/results_model.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/table_view_header_wrap.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/themes.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/update_gui_all.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/update_gui_common.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/wrappable_table_model.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/LICENSE.txt +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Session/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Session/export_results_driver.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Session/file_handler.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Session/server_driver.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Session/session.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Session/synchronization_driver.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/data/__init__.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/data/cables.csv +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/data/sequence_lines.csv +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/data/transformers.csv +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/data/wires.csv +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/plugins.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/templates.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/GridCal/update.py +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/setup.cfg +0 -0
- {GridCal-5.1.56 → GridCal-5.1.58}/setup.py +0 -0
@@ -130,9 +130,9 @@ class CascadingStepsGUI(QtWidgets.QDialog):
|
|
130
130
|
self.gridcal_main.post_cascade(idx=idx.row())
|
131
131
|
|
132
132
|
|
133
|
-
if __name__ == "__main__":
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
133
|
+
# if __name__ == "__main__":
|
134
|
+
# app = QtWidgets.QApplication(sys.argv)
|
135
|
+
# window = CascadingStepsGUI()
|
136
|
+
# window.resize(1.61 * 700, 600) # golden ratio
|
137
|
+
# window.show()
|
138
|
+
# sys.exit(app.exec())
|
{GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py
RENAMED
@@ -115,9 +115,9 @@ class ContingencyPlannerGUI(QtWidgets.QDialog):
|
|
115
115
|
self.close()
|
116
116
|
|
117
117
|
|
118
|
-
if __name__ == "__main__":
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
118
|
+
# if __name__ == "__main__":
|
119
|
+
# app = QtWidgets.QApplication(sys.argv)
|
120
|
+
# window = ContingencyPlannerGUI()
|
121
|
+
# window.resize(1.61 * 700.0, 600.0) # golden ratio
|
122
|
+
# window.show()
|
123
|
+
# sys.exit(app.exec())
|
@@ -1,3 +1,19 @@
|
|
1
|
+
# GridCal
|
2
|
+
# Copyright (C) 2015 - 2024 Santiago Peñate Vera
|
3
|
+
#
|
4
|
+
# This program is free software; you can redistribute it and/or
|
5
|
+
# modify it under the terms of the GNU Lesser General Public
|
6
|
+
# License as published by the Free Software Foundation; either
|
7
|
+
# version 3 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# Lesser General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU Lesser General Public License
|
15
|
+
# along with this program; if not, write to the Free Software Foundation,
|
16
|
+
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
1
17
|
import os
|
2
18
|
import sys
|
3
19
|
import pandas as pd
|
@@ -188,7 +204,7 @@ class CoordinatesInputGUI(QtWidgets.QDialog):
|
|
188
204
|
self.assigned_count: int = 0
|
189
205
|
|
190
206
|
# dataFrame
|
191
|
-
self.original_data_frame: pd.DataFrame = None
|
207
|
+
self.original_data_frame: pd.DataFrame | None = None
|
192
208
|
|
193
209
|
# initialize the objectives list
|
194
210
|
self.objects: List[Bus] = list_of_objects
|
{GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py
RENAMED
@@ -35,7 +35,7 @@ class DcLineEditor(QDialog):
|
|
35
35
|
"""
|
36
36
|
DcLineEditor
|
37
37
|
"""
|
38
|
-
def __init__(self, branch: DcLine, Sbase=100, templates=None, current_template=None):
|
38
|
+
def __init__(self, branch: DcLine, Sbase: float = 100.0, templates=None, current_template=None):
|
39
39
|
"""
|
40
40
|
Line Editor constructor
|
41
41
|
:param branch: Branch object to update
|
@@ -351,7 +351,7 @@ class DcLineGraphicItem(LineGraphicTemplateItem):
|
|
351
351
|
"""
|
352
352
|
Sbase = self.editor.circuit.Sbase
|
353
353
|
|
354
|
-
dlg = DcLineEditor(self.api_object, Sbase)
|
354
|
+
dlg = DcLineEditor(branch=self.api_object, Sbase=Sbase)
|
355
355
|
if dlg.exec_():
|
356
356
|
pass
|
357
357
|
|
{GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py
RENAMED
@@ -14,6 +14,8 @@
|
|
14
14
|
# You should have received a copy of the GNU Lesser General Public License
|
15
15
|
# along with this program; if not, write to the Free Software Foundation,
|
16
16
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
17
|
+
from __future__ import annotations
|
18
|
+
|
17
19
|
import numpy as np
|
18
20
|
|
19
21
|
from typing import Union, List
|
@@ -33,8 +35,8 @@ class LineEditor(QDialog):
|
|
33
35
|
line: Line,
|
34
36
|
Sbase=100,
|
35
37
|
frequency=50,
|
36
|
-
templates: Union[List[
|
37
|
-
current_template=None):
|
38
|
+
templates: Union[List[SequenceLineType | OverheadLineType | UndergroundLineType], None] = None,
|
39
|
+
current_template: SequenceLineType | OverheadLineType | UndergroundLineType | None = None):
|
38
40
|
"""
|
39
41
|
Line Editor constructor
|
40
42
|
:param line: Branch object to update
|
@@ -120,7 +122,7 @@ class LineEditor(QDialog):
|
|
120
122
|
x_ohm = self.current_template.X1
|
121
123
|
b_us = self.current_template.Bsh1
|
122
124
|
|
123
|
-
except:
|
125
|
+
except ValueError:
|
124
126
|
pass
|
125
127
|
|
126
128
|
# load template
|
@@ -27,6 +27,8 @@ from GridCal.Gui.Diagrams.SchematicWidget.terminal_item import RoundTerminalItem
|
|
27
27
|
from GridCal.Gui.Diagrams.SchematicWidget.Branches.winding_graphics import WindingGraphicItem
|
28
28
|
from GridCal.Gui.messages import yes_no_question
|
29
29
|
from GridCalEngine.Devices.Branches.transformer3w import Transformer3W
|
30
|
+
from GridCalEngine.Devices.Substation.bus import Bus
|
31
|
+
from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode
|
30
32
|
from GridCalEngine.enumerations import DeviceType
|
31
33
|
from GridCal.Gui.gui_functions import add_menu_entry
|
32
34
|
|
@@ -318,7 +320,7 @@ class Transformer3WGraphicItem(QGraphicsRectItem):
|
|
318
320
|
|
319
321
|
raise Exception("Unknown winding")
|
320
322
|
|
321
|
-
def set_connection(self, i: int, bus, conn: WindingGraphicItem, set_voltage: bool = True):
|
323
|
+
def set_connection(self, i: int, bus: Bus, conn: WindingGraphicItem, set_voltage: bool = True):
|
322
324
|
"""
|
323
325
|
Create the connection with a bus
|
324
326
|
:param i: winding index 0-2
|
@@ -362,6 +364,50 @@ class Transformer3WGraphicItem(QGraphicsRectItem):
|
|
362
364
|
self.update_conn()
|
363
365
|
self.mousePressEvent(None)
|
364
366
|
|
367
|
+
def set_connection_cn(self, i: int, cn: ConnectivityNode, conn: WindingGraphicItem, set_voltage: bool = True):
|
368
|
+
"""
|
369
|
+
Create the connection with a bus
|
370
|
+
:param i: winding index 0-2
|
371
|
+
:param cn: ConnectivityNode object to connect to
|
372
|
+
:param conn: Connection graphical object [LineGraphicItem]
|
373
|
+
:param set_voltage: Set voltage in the object (Transformer3W and Windings)
|
374
|
+
"""
|
375
|
+
if i == 0:
|
376
|
+
self.api_object.cn1 = cn
|
377
|
+
if set_voltage:
|
378
|
+
self.api_object.V1 = cn.Vnom
|
379
|
+
self.connection_lines[0] = conn
|
380
|
+
self.terminals[0].setZValue(-1)
|
381
|
+
conn.api_object = self.api_object.winding1
|
382
|
+
conn.winding_number = 0
|
383
|
+
|
384
|
+
elif i == 1:
|
385
|
+
self.api_object.bus2 = cn
|
386
|
+
if set_voltage:
|
387
|
+
self.api_object.V2 = cn.Vnom
|
388
|
+
self.connection_lines[1] = conn
|
389
|
+
self.terminals[1].setZValue(-1)
|
390
|
+
conn.api_object = self.api_object.winding2
|
391
|
+
conn.winding_number = 1
|
392
|
+
|
393
|
+
elif i == 2:
|
394
|
+
self.api_object.bus3 = cn
|
395
|
+
if set_voltage:
|
396
|
+
self.api_object.V3 = cn.Vnom
|
397
|
+
self.connection_lines[2] = conn
|
398
|
+
self.terminals[2].setZValue(-1)
|
399
|
+
conn.api_object = self.api_object.winding3
|
400
|
+
conn.winding_number = 2
|
401
|
+
else:
|
402
|
+
raise Exception('Unsupported winding index {}'.format(i))
|
403
|
+
|
404
|
+
# set the reverse lookup
|
405
|
+
conn.parent_tr3_graphics_item = self
|
406
|
+
|
407
|
+
# update the connection placement
|
408
|
+
self.update_conn()
|
409
|
+
self.mousePressEvent(None)
|
410
|
+
|
365
411
|
def remove_winding(self, i: int):
|
366
412
|
"""
|
367
413
|
Remove winding by index
|
{GridCal-5.1.56 → GridCal-5.1.58}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py
RENAMED
@@ -587,7 +587,7 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
|
|
587
587
|
self.api_object.active = not self.api_object.active
|
588
588
|
|
589
589
|
# change the Branches state (snapshot)
|
590
|
-
for host in self._terminal.
|
590
|
+
for host in self._terminal.hosting_connections:
|
591
591
|
if host.api_object is not None:
|
592
592
|
host.set_enable(val=self.api_object.active)
|
593
593
|
|
@@ -602,7 +602,7 @@ class BusGraphicItem(GenericDiagramWidget, QtWidgets.QGraphicsRectItem):
|
|
602
602
|
self.editor.set_active_status_to_profile(self.api_object, override_question=True)
|
603
603
|
|
604
604
|
# change the Branches state (time series)
|
605
|
-
for host in self._terminal.
|
605
|
+
for host in self._terminal.hosting_connections:
|
606
606
|
if host.api_object is not None:
|
607
607
|
self.editor.set_active_status_to_profile(host.api_object, override_question=True)
|
608
608
|
|
@@ -661,61 +661,6 @@ class SchematicWidget(BaseDiagramWidget):
|
|
661
661
|
# bus_dict[idtag] = graphic_object
|
662
662
|
self.graphics_manager.add_device(elm=location.api_object, graphic=graphic_object)
|
663
663
|
|
664
|
-
elif category == DeviceType.Transformer3WDevice.value:
|
665
|
-
|
666
|
-
for idtag, location in points_group.locations.items():
|
667
|
-
|
668
|
-
# search for the api object, because it may be created already
|
669
|
-
graphic_object = self.graphics_manager.query(elm=location.api_object)
|
670
|
-
|
671
|
-
if graphic_object is None:
|
672
|
-
elm: Transformer3W = location.api_object
|
673
|
-
|
674
|
-
graphic_object = self.create_transformer_3w_graphics(elm=elm,
|
675
|
-
x=location.x,
|
676
|
-
y=location.y)
|
677
|
-
self.add_to_scene(graphic_object=graphic_object)
|
678
|
-
|
679
|
-
bus_1_graphic = self.graphics_manager.query(elm.bus1)
|
680
|
-
|
681
|
-
if bus_1_graphic is not None:
|
682
|
-
conn1 = WindingGraphicItem(from_port=graphic_object.terminals[0],
|
683
|
-
to_port=bus_1_graphic.get_terminal(),
|
684
|
-
editor=self)
|
685
|
-
|
686
|
-
graphic_object.set_connection(i=0, bus=elm.bus1, conn=conn1, set_voltage=False)
|
687
|
-
self.add_to_scene(graphic_object=conn1)
|
688
|
-
self.graphics_manager.add_device(elm=elm.winding1, graphic=conn1)
|
689
|
-
|
690
|
-
bus_2_graphic = self.graphics_manager.query(elm.bus2)
|
691
|
-
if bus_2_graphic is not None:
|
692
|
-
conn2 = WindingGraphicItem(from_port=graphic_object.terminals[1],
|
693
|
-
to_port=bus_2_graphic.get_terminal(),
|
694
|
-
editor=self)
|
695
|
-
graphic_object.set_connection(i=1, bus=elm.bus2, conn=conn2, set_voltage=False)
|
696
|
-
self.add_to_scene(graphic_object=conn2)
|
697
|
-
self.graphics_manager.add_device(elm=elm.winding2, graphic=conn2)
|
698
|
-
|
699
|
-
bus_3_graphic = self.graphics_manager.query(elm.bus3)
|
700
|
-
if bus_3_graphic is not None:
|
701
|
-
conn3 = WindingGraphicItem(from_port=graphic_object.terminals[2],
|
702
|
-
to_port=bus_3_graphic.get_terminal(),
|
703
|
-
editor=self)
|
704
|
-
graphic_object.set_connection(i=2, bus=elm.bus3, conn=conn3, set_voltage=False)
|
705
|
-
self.add_to_scene(graphic_object=conn3)
|
706
|
-
self.graphics_manager.add_device(elm=elm.winding3, graphic=conn3)
|
707
|
-
|
708
|
-
graphic_object.set_position(x=location.x, y=location.y)
|
709
|
-
graphic_object.change_size(h=location.h, w=location.w)
|
710
|
-
|
711
|
-
graphic_object.update_conn()
|
712
|
-
self.graphics_manager.add_device(elm=elm, graphic=graphic_object)
|
713
|
-
|
714
|
-
# register the windings for the branches pass
|
715
|
-
# windings_dict[elm.winding1.idtag] = conn1
|
716
|
-
# windings_dict[elm.winding2.idtag] = conn2
|
717
|
-
# windings_dict[elm.winding3.idtag] = conn3
|
718
|
-
|
719
664
|
elif category == DeviceType.FluidNodeDevice.value:
|
720
665
|
|
721
666
|
for idtag, location in points_group.locations.items():
|
@@ -773,10 +718,11 @@ class SchematicWidget(BaseDiagramWidget):
|
|
773
718
|
injections_by_tpe=inj_dev_by_cn.get(location.api_object, dict())
|
774
719
|
)
|
775
720
|
|
776
|
-
# graphic_object.change_size(w=location.w)
|
777
|
-
|
778
721
|
# add buses reference for later
|
779
722
|
self.graphics_manager.add_device(elm=location.api_object, graphic=graphic_object)
|
723
|
+
else:
|
724
|
+
# is internal
|
725
|
+
pass
|
780
726
|
|
781
727
|
elif category == DeviceType.BusBarDevice.value and prefer_node_breaker:
|
782
728
|
|
@@ -809,6 +755,51 @@ class SchematicWidget(BaseDiagramWidget):
|
|
809
755
|
# pass for now...
|
810
756
|
pass
|
811
757
|
|
758
|
+
# add 3W transformers after the node devices
|
759
|
+
for category, points_group in diagram.data.items():
|
760
|
+
|
761
|
+
if category == DeviceType.Transformer3WDevice.value:
|
762
|
+
|
763
|
+
for idtag, location in points_group.locations.items():
|
764
|
+
|
765
|
+
# search for the api object, because it may be created already
|
766
|
+
graphic_object = self.graphics_manager.query(elm=location.api_object)
|
767
|
+
|
768
|
+
if graphic_object is None:
|
769
|
+
elm: Transformer3W = location.api_object
|
770
|
+
|
771
|
+
graphic_object = self.create_transformer_3w_graphics(elm=elm,
|
772
|
+
x=location.x,
|
773
|
+
y=location.y)
|
774
|
+
self.add_to_scene(graphic_object=graphic_object)
|
775
|
+
|
776
|
+
w1_graphics = self.add_api_winding(branch=elm.winding1,
|
777
|
+
from_port=graphic_object.terminals[0],
|
778
|
+
draw_labels=location.draw_labels,
|
779
|
+
prefer_node_breaker=prefer_node_breaker,
|
780
|
+
logger=logger)
|
781
|
+
self.graphics_manager.add_device(elm=elm.winding1, graphic=w1_graphics)
|
782
|
+
|
783
|
+
w2_graphics = self.add_api_winding(branch=elm.winding2,
|
784
|
+
from_port=graphic_object.terminals[1],
|
785
|
+
draw_labels=location.draw_labels,
|
786
|
+
prefer_node_breaker=prefer_node_breaker,
|
787
|
+
logger=logger)
|
788
|
+
self.graphics_manager.add_device(elm=elm.winding2, graphic=w2_graphics)
|
789
|
+
|
790
|
+
w3_graphics = self.add_api_winding(branch=elm.winding3,
|
791
|
+
from_port=graphic_object.terminals[2],
|
792
|
+
draw_labels=location.draw_labels,
|
793
|
+
prefer_node_breaker=prefer_node_breaker,
|
794
|
+
logger=logger)
|
795
|
+
self.graphics_manager.add_device(elm=elm.winding3, graphic=w3_graphics)
|
796
|
+
|
797
|
+
graphic_object.set_position(x=location.x, y=location.y)
|
798
|
+
graphic_object.change_size(h=location.h, w=location.w)
|
799
|
+
|
800
|
+
graphic_object.update_conn()
|
801
|
+
self.graphics_manager.add_device(elm=elm, graphic=graphic_object)
|
802
|
+
|
812
803
|
# add the rest of the branches
|
813
804
|
for category, points_group in diagram.data.items():
|
814
805
|
|
@@ -2203,11 +2194,35 @@ class SchematicWidget(BaseDiagramWidget):
|
|
2203
2194
|
# the from bu is found, return its terminal
|
2204
2195
|
to_port = bus_graphic1.get_terminal()
|
2205
2196
|
|
2206
|
-
# from_port = self.find_port(port=None, bus=branch.bus_from, cn=branch.cn_from)
|
2207
|
-
# to_port = self.find_port(port=None, bus=branch.bus_to, cn=branch.cn_to)
|
2208
|
-
|
2209
2197
|
return from_port, to_port
|
2210
2198
|
|
2199
|
+
def find_to_port(self,
|
2200
|
+
branch: BRANCH_TYPES,
|
2201
|
+
prefer_node_breaker: bool,
|
2202
|
+
logger: Logger) -> OPTIONAL_PORT:
|
2203
|
+
"""
|
2204
|
+
Find the preferred set of ports for drawing
|
2205
|
+
:param branch: some API branch
|
2206
|
+
:param prefer_node_breaker:
|
2207
|
+
:param logger:
|
2208
|
+
:return: OPTIONAL_PORT, OPTIONAL_PORT
|
2209
|
+
"""
|
2210
|
+
|
2211
|
+
obj_from, obj_to, is_ok = branch.get_from_and_to_objects(t_idx=None,
|
2212
|
+
logger=logger,
|
2213
|
+
prefer_node_breaker=prefer_node_breaker)
|
2214
|
+
|
2215
|
+
# Bus provided, search its graphics
|
2216
|
+
bus_graphic1 = self.graphics_manager.query_preferring_busbars(obj_to)
|
2217
|
+
if bus_graphic1 is None:
|
2218
|
+
# could not find any graphics :(
|
2219
|
+
to_port = None
|
2220
|
+
else:
|
2221
|
+
# the from bu is found, return its terminal
|
2222
|
+
to_port = bus_graphic1.get_terminal()
|
2223
|
+
|
2224
|
+
return to_port
|
2225
|
+
|
2211
2226
|
def add_api_branch(self,
|
2212
2227
|
branch: BRANCH_TYPES,
|
2213
2228
|
new_graphic_func: Callable[[Union[BarTerminalItem, RoundTerminalItem],
|
@@ -2241,6 +2256,10 @@ class SchematicWidget(BaseDiagramWidget):
|
|
2241
2256
|
from_port, to_port = self.find_ports(branch=branch,
|
2242
2257
|
prefer_node_breaker=prefer_node_breaker,
|
2243
2258
|
logger=logger)
|
2259
|
+
elif from_port is not None and to_port is None:
|
2260
|
+
to_port = self.find_to_port(branch=branch,
|
2261
|
+
prefer_node_breaker=prefer_node_breaker,
|
2262
|
+
logger=logger)
|
2244
2263
|
|
2245
2264
|
if from_port is not None and to_port is not None and (from_port != to_port):
|
2246
2265
|
|
@@ -2450,6 +2469,32 @@ class SchematicWidget(BaseDiagramWidget):
|
|
2450
2469
|
draw_labels=draw_labels,
|
2451
2470
|
logger=logger)
|
2452
2471
|
|
2472
|
+
def add_api_winding(self,
|
2473
|
+
branch: Winding,
|
2474
|
+
from_port: OPTIONAL_PORT = None,
|
2475
|
+
to_port: OPTIONAL_PORT = None,
|
2476
|
+
draw_labels: bool = True,
|
2477
|
+
prefer_node_breaker: bool = False,
|
2478
|
+
logger: Logger = Logger()) -> Union[WindingGraphicItem, None]:
|
2479
|
+
"""
|
2480
|
+
add API branch to the Scene
|
2481
|
+
:param branch: Branch instance
|
2482
|
+
:param from_port: Connection port from (optional)
|
2483
|
+
:param to_port: Connection port to (optional)
|
2484
|
+
:param draw_labels: Draw labels?
|
2485
|
+
:param prefer_node_breaker: Prefer node breaker representation?
|
2486
|
+
:param logger: Logger
|
2487
|
+
:return: WindingGraphicItem or None
|
2488
|
+
"""
|
2489
|
+
|
2490
|
+
return self.add_api_branch(branch=branch,
|
2491
|
+
new_graphic_func=WindingGraphicItem,
|
2492
|
+
from_port=from_port,
|
2493
|
+
to_port=to_port,
|
2494
|
+
prefer_node_breaker=prefer_node_breaker,
|
2495
|
+
draw_labels=draw_labels,
|
2496
|
+
logger=logger)
|
2497
|
+
|
2453
2498
|
def add_api_switch(self,
|
2454
2499
|
branch: Switch,
|
2455
2500
|
from_port: OPTIONAL_PORT = None,
|
@@ -51,13 +51,13 @@ class BarTerminalItem(QGraphicsRectItem):
|
|
51
51
|
"""
|
52
52
|
|
53
53
|
QGraphicsRectItem.__init__(self, QRectF(-6.0, -6.0, h, w), parent)
|
54
|
-
self.setCursor(QCursor(Qt.CrossCursor))
|
54
|
+
self.setCursor(QCursor(Qt.CursorShape.CrossCursor))
|
55
55
|
|
56
56
|
# Properties:
|
57
57
|
self.color = ACTIVE['color']
|
58
58
|
self.pen_width = 2
|
59
59
|
self.style = ACTIVE['style']
|
60
|
-
self.setBrush(Qt.darkGray)
|
60
|
+
self.setBrush(Qt.GlobalColor.darkGray)
|
61
61
|
self.setPen(QPen(self.color, self.pen_width, self.style))
|
62
62
|
|
63
63
|
# terminal parent object
|
@@ -143,6 +143,14 @@ class BarTerminalItem(QGraphicsRectItem):
|
|
143
143
|
else:
|
144
144
|
print(f'No such hosting connection {self.name} -> {graphic_obj}')
|
145
145
|
|
146
|
+
@property
|
147
|
+
def hosting_connections(self):
|
148
|
+
"""
|
149
|
+
Getter for hosting connections
|
150
|
+
:return:
|
151
|
+
"""
|
152
|
+
return self._hosting_connections
|
153
|
+
|
146
154
|
def update(self, rect: Union[QRectF, QRect] = ...):
|
147
155
|
"""
|
148
156
|
|
@@ -22,7 +22,7 @@ from GridCal.Gui.pandas_model import PandasModel
|
|
22
22
|
from GridCal.Gui.Main.SubClasses.Server.server import ServerMain
|
23
23
|
import GridCal.Gui.gui_functions as gf
|
24
24
|
|
25
|
-
from GridCalEngine.enumerations import EngineType
|
25
|
+
from GridCalEngine.enumerations import EngineType, BranchImpedanceMode
|
26
26
|
from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at
|
27
27
|
|
28
28
|
|
@@ -138,7 +138,21 @@ class CompiledArraysMain(ServerMain):
|
|
138
138
|
engine = self.get_preferred_engine()
|
139
139
|
|
140
140
|
if engine == EngineType.GridCal:
|
141
|
-
|
141
|
+
|
142
|
+
if self.ui.apply_impedance_tolerances_checkBox.isChecked():
|
143
|
+
branch_impedance_tolerance_mode = BranchImpedanceMode.Upper
|
144
|
+
else:
|
145
|
+
branch_impedance_tolerance_mode = BranchImpedanceMode.Specified
|
146
|
+
|
147
|
+
numerical_circuit = compile_numerical_circuit_at(
|
148
|
+
circuit=self.circuit,
|
149
|
+
t_idx=None,
|
150
|
+
branch_tolerance_mode=branch_impedance_tolerance_mode,
|
151
|
+
use_stored_guess=self.ui.use_voltage_guess_checkBox.isChecked(),
|
152
|
+
control_taps_phase=self.ui.control_tap_phase_checkBox.isChecked(),
|
153
|
+
control_taps_modules=self.ui.control_tap_modules_checkBox.isChecked(),
|
154
|
+
control_remote_voltage=self.ui.control_remote_voltage_checkBox.isChecked(),
|
155
|
+
)
|
142
156
|
calculation_inputs = numerical_circuit.split_into_islands()
|
143
157
|
self.calculation_inputs_to_display = calculation_inputs
|
144
158
|
|
@@ -26,6 +26,7 @@ from matplotlib import pyplot as plt
|
|
26
26
|
from pandas.plotting import register_matplotlib_converters
|
27
27
|
|
28
28
|
import GridCalEngine.Devices.Diagrams.palettes as palettes
|
29
|
+
from GridCalEngine import ContingencyOperationTypes
|
29
30
|
from GridCalEngine.IO.file_system import tiles_path
|
30
31
|
from GridCal.Gui.general_dialogues import (CheckListDialogue, StartEndSelectionDialogue, InputSearchDialogue,
|
31
32
|
InputNumberDialogue, LogsDialogue)
|
@@ -2296,7 +2297,7 @@ class DiagramsMain(CompiledArraysMain):
|
|
2296
2297
|
con = dev.Contingency(device_idtag=elm.idtag,
|
2297
2298
|
code=elm.code,
|
2298
2299
|
name="Contingency " + elm.name,
|
2299
|
-
prop=
|
2300
|
+
prop=ContingencyOperationTypes.Active,
|
2300
2301
|
value=0,
|
2301
2302
|
group=group)
|
2302
2303
|
self.circuit.add_contingency(con)
|
@@ -2335,7 +2336,7 @@ class DiagramsMain(CompiledArraysMain):
|
|
2335
2336
|
ra = dev.RemedialAction(device_idtag=elm.idtag,
|
2336
2337
|
code=elm.code,
|
2337
2338
|
name="RA " + elm.name,
|
2338
|
-
prop=
|
2339
|
+
prop=ContingencyOperationTypes.Active,
|
2339
2340
|
value=0,
|
2340
2341
|
group=ra_group)
|
2341
2342
|
self.circuit.add_remedial_action(ra)
|
@@ -27,6 +27,7 @@ from PySide6 import QtGui, QtWidgets
|
|
27
27
|
from matplotlib.colors import LinearSegmentedColormap
|
28
28
|
import GridCal.Gui.gui_functions as gf
|
29
29
|
import GridCal.Gui.Visualization.visualization as viz
|
30
|
+
from GridCal.Gui.Diagrams.SchematicWidget.Substation.bus_graphics import BusGraphicItem
|
30
31
|
from GridCal.Gui.general_dialogues import LogsDialogue
|
31
32
|
from GridCal.Gui.Diagrams.SchematicWidget.schematic_widget import SchematicWidget
|
32
33
|
from GridCal.Gui.Diagrams.MapWidget.grid_map_widget import MapWidget
|
@@ -932,9 +933,10 @@ class SimulationsMain(TimeEventsMain):
|
|
932
933
|
if isinstance(diagram_widget, SchematicWidget):
|
933
934
|
|
934
935
|
for i, bus, graphic_object in diagram_widget.get_buses():
|
935
|
-
if graphic_object
|
936
|
-
|
937
|
-
|
936
|
+
if isinstance(graphic_object, BusGraphicItem):
|
937
|
+
if graphic_object.any_short_circuit():
|
938
|
+
sel_buses.append(i)
|
939
|
+
self_short_circuit_types.append(graphic_object.sc_type)
|
938
940
|
|
939
941
|
if len(sel_buses) > 1:
|
940
942
|
error_msg("GridCal only supports one short circuit bus at the time", "Short circuit")
|
@@ -87,7 +87,10 @@ class SolarPvWizard(QtWidgets.QDialog):
|
|
87
87
|
New solar photovoltaic wizard window
|
88
88
|
"""
|
89
89
|
|
90
|
-
def __init__(self, time_array: List[str],
|
90
|
+
def __init__(self, time_array: List[str],
|
91
|
+
peak_power: float,
|
92
|
+
latitude: float,
|
93
|
+
longitude: float,
|
91
94
|
gen_name='', bus_name='',
|
92
95
|
title='solar photovoltaic wizard'):
|
93
96
|
"""
|
@@ -103,7 +106,7 @@ class SolarPvWizard(QtWidgets.QDialog):
|
|
103
106
|
self.ui.setupUi(self)
|
104
107
|
|
105
108
|
self.setObjectName("self")
|
106
|
-
self.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
|
109
|
+
self.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.NoContextMenu)
|
107
110
|
|
108
111
|
self.is_accepted: bool = False
|
109
112
|
self.selected_indices: List[int] = list()
|
@@ -175,9 +178,12 @@ if __name__ == "__main__":
|
|
175
178
|
import sys
|
176
179
|
|
177
180
|
app = QtWidgets.QApplication(sys.argv)
|
181
|
+
longitude = -110.9
|
178
182
|
|
179
183
|
st = datetime(year=2018, month=1, day=1)
|
180
|
-
|
184
|
+
direction = 1.0 if longitude > 0 else -1.0
|
185
|
+
offset = direction * longitude * 24.0 / 360.0
|
186
|
+
time_arr = pd.to_datetime([st + timedelta(hours=i + offset) for i in range(200)])
|
181
187
|
|
182
188
|
window = SolarPvWizard(time_array=time_arr, peak_power=20, latitude=32.2, longitude=-110.9)
|
183
189
|
window.resize(1.61 * 700.0, 600.0) # golden ratio
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|