GridCal 5.1.26__tar.gz → 5.1.28__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.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/io.py +2 -2
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/simulations.py +2 -2
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ProfilesInput/profile_dialogue.py +3 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +1 -1
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/TowerBuilder/table_models.py +39 -16
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/plugins.py +1 -1
- GridCal-5.1.28/GridCal/Session/export_results_driver.py +80 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/__version__.py +1 -1
- {GridCal-5.1.26 → GridCal-5.1.28}/PKG-INFO +1 -1
- GridCal-5.1.26/GridCal/Session/export_results_driver.py +0 -117
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ExecuteGridCal.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/AboutDialogue/gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Analysis/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Analysis/gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Analysis/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/CascadingSteps/gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ConsoleWidget.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/blue_marble.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/cartodb.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/gmt_local.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/mapbox.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/mapquest.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/open_street_map.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_toner.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_transport.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_watercolor.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/map_events.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/new_line_dialogue.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/node_widget.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_editor.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer_taps_editor.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_editor.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_editor.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/base_diagram_widget.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/GeneralDialogues.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/GridGenerator/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/GridGenerator/gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/GuiFunctions.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/ConsoleLog.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/GridCalMain.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/MainWindow.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Scripting/python_highlighter.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/object_select_window.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Main/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ProfilesInput/profiles_from_data.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/RosetaExplorer/ConsoleWidget.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SyncDialogue/gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SystemScaler/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/TowerBuilder/gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/TowerBuilder/test_.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Visualization/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Visualization/visualization.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Widgets/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/associations_model.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/messages.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/object_model.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/pandas_model.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/plot_config.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/profiles_model.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/table_view_header_wrap.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/themes.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/update_gui_all.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/update_gui_common.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/LICENSE.txt +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Session/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Session/file_handler.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Session/results_model.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Session/server_driver.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Session/session.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Session/synchronization_driver.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/data/__init__.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/data/cables.csv +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/data/sequence_lines.csv +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/data/transformers.csv +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/data/wires.csv +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/templates.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/GridCal/update.py +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/setup.cfg +0 -0
- {GridCal-5.1.26 → GridCal-5.1.28}/setup.py +0 -0
@@ -837,7 +837,7 @@ class IoMain(ConfigurationMain):
|
|
837
837
|
:return:
|
838
838
|
"""
|
839
839
|
|
840
|
-
available_results = self.
|
840
|
+
available_results = self.get_available_drivers()
|
841
841
|
|
842
842
|
if len(available_results) > 0:
|
843
843
|
|
@@ -851,7 +851,7 @@ class IoMain(ConfigurationMain):
|
|
851
851
|
|
852
852
|
self.stuff_running_now.append('export_all')
|
853
853
|
self.export_all_thread_object = exprtdrv.ExportAllThread(circuit=self.circuit,
|
854
|
-
|
854
|
+
drivers_list=available_results,
|
855
855
|
file_name=filename)
|
856
856
|
|
857
857
|
self.export_all_thread_object.progress_signal.connect(self.ui.progressBar.setValue)
|
@@ -256,7 +256,7 @@ class SimulationsMain(TimeEventsMain):
|
|
256
256
|
|
257
257
|
return all_threads
|
258
258
|
|
259
|
-
def
|
259
|
+
def get_available_drivers(self) -> List[DRIVER_OBJECTS]:
|
260
260
|
"""
|
261
261
|
Get a list of all the available results' objects
|
262
262
|
:return: list[object]
|
@@ -539,7 +539,7 @@ class SimulationsMain(TimeEventsMain):
|
|
539
539
|
# clear results lists
|
540
540
|
self.ui.results_treeView.setModel(None)
|
541
541
|
|
542
|
-
available_results = self.
|
542
|
+
available_results = self.get_available_drivers()
|
543
543
|
max_steps = 0
|
544
544
|
d = dict()
|
545
545
|
lst = list()
|
@@ -503,6 +503,9 @@ class ProfileInputGUI(QtWidgets.QDialog):
|
|
503
503
|
cols = [str(x).strip() for x in self.original_data_frame.columns.values]
|
504
504
|
self.original_data_frame.columns = cols
|
505
505
|
|
506
|
+
# replace NaN
|
507
|
+
self.original_data_frame.fillna(0, inplace=True)
|
508
|
+
|
506
509
|
# set the profile names list
|
507
510
|
self.profile_names = np.array([str(e).strip() for e in self.original_data_frame.columns.values],
|
508
511
|
dtype=object)
|
@@ -136,7 +136,7 @@ class TowerBuilderGUI(QtWidgets.QDialog):
|
|
136
136
|
sel_idx = idx.row()
|
137
137
|
|
138
138
|
if sel_idx > -1:
|
139
|
-
selected_wire = self.wires_table.wires[sel_idx].copy()
|
139
|
+
selected_wire: Wire = self.wires_table.wires[sel_idx].copy()
|
140
140
|
self.tower_driver.add(WireInTower(selected_wire))
|
141
141
|
else:
|
142
142
|
self.msg('Select a wire in the wires catalogue')
|
@@ -15,7 +15,7 @@
|
|
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
17
|
|
18
|
-
from typing import Union
|
18
|
+
from typing import Union, List
|
19
19
|
from PySide6 import QtCore
|
20
20
|
from GridCalEngine.Devices.Branches.wire import Wire
|
21
21
|
from GridCalEngine.Devices.Branches.overhead_line_type import OverheadLineType, WireInTower
|
@@ -32,6 +32,9 @@ Typical values of earth
|
|
32
32
|
|
33
33
|
|
34
34
|
class WiresTable(QtCore.QAbstractTableModel):
|
35
|
+
"""
|
36
|
+
Wires table for the tower
|
37
|
+
"""
|
35
38
|
|
36
39
|
def __init__(self, parent=None):
|
37
40
|
|
@@ -39,13 +42,13 @@ class WiresTable(QtCore.QAbstractTableModel):
|
|
39
42
|
|
40
43
|
self.header = ['Name', 'R (Ohm/km)', 'GMR (m)', 'max current (kA)']
|
41
44
|
|
42
|
-
self.index_prop = {0: 'name', 1: 'r', 2: '
|
45
|
+
# self.index_prop = {0: 'name', 1: 'r', 2: 'GMR', 3: 'max_current'}
|
43
46
|
|
44
47
|
self.converter = {0: str, 1: float, 2: float, 3: float}
|
45
48
|
|
46
49
|
self.editable = [True, True, True, True]
|
47
50
|
|
48
|
-
self.wires = list()
|
51
|
+
self.wires: List[Wire] = list()
|
49
52
|
|
50
53
|
def add(self, wire: Wire):
|
51
54
|
"""
|
@@ -102,8 +105,17 @@ class WiresTable(QtCore.QAbstractTableModel):
|
|
102
105
|
|
103
106
|
if index.isValid():
|
104
107
|
if role == QtCore.Qt.ItemDataRole.DisplayRole:
|
105
|
-
|
106
|
-
|
108
|
+
wire = self.wires[index.row()]
|
109
|
+
if index.column() == 0:
|
110
|
+
return wire.name
|
111
|
+
elif index.column() == 1:
|
112
|
+
return str(wire.R)
|
113
|
+
elif index.column() == 2:
|
114
|
+
return str(wire.GMR)
|
115
|
+
elif index.column() == 3:
|
116
|
+
return str(wire.max_current)
|
117
|
+
|
118
|
+
return ""
|
107
119
|
return None
|
108
120
|
|
109
121
|
def headerData(self,
|
@@ -122,17 +134,28 @@ class WiresTable(QtCore.QAbstractTableModel):
|
|
122
134
|
:param value:
|
123
135
|
:param role:
|
124
136
|
"""
|
125
|
-
if self.editable[index.column()]:
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
137
|
+
# if self.editable[index.column()]:
|
138
|
+
# wire = self.wires[index.row()]
|
139
|
+
# # attr = self.index_prop[index.column()]
|
140
|
+
#
|
141
|
+
# if attr == 'tower_name':
|
142
|
+
# if self.is_used(value):
|
143
|
+
# pass
|
144
|
+
# else:
|
145
|
+
# wire.
|
146
|
+
# setattr(wire, attr, self.converter[index.column()](value))
|
147
|
+
# else:
|
148
|
+
# setattr(wire, attr, self.converter[index.column()](value))
|
149
|
+
#
|
150
|
+
# wire = self.wires[index.row()]
|
151
|
+
# if index.column() == 0:
|
152
|
+
# return wire.name
|
153
|
+
# elif index.column() == 1:
|
154
|
+
# return str(wire.R)
|
155
|
+
# elif index.column() == 2:
|
156
|
+
# return str(wire.GMR)
|
157
|
+
# elif index.column() == 3:
|
158
|
+
# return str(wire.max_current)
|
136
159
|
|
137
160
|
return True
|
138
161
|
|
@@ -64,7 +64,7 @@ class PluginFunction:
|
|
64
64
|
- func(self) is then what I wanted to lambda in the first place
|
65
65
|
"""
|
66
66
|
func = self.function_ptr
|
67
|
-
return lambda e, func=func: func(gui_instance) # This is not an error, it is correct
|
67
|
+
return lambda e=True, func=func: func(gui_instance) # This is not an error, it is correct
|
68
68
|
|
69
69
|
def to_dict(self) -> Dict[str, str]:
|
70
70
|
"""
|
@@ -0,0 +1,80 @@
|
|
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.
|
17
|
+
|
18
|
+
from typing import List
|
19
|
+
from PySide6.QtCore import QThread, Signal
|
20
|
+
from GridCalEngine.IO.gridcal.results_export import export_drivers
|
21
|
+
from GridCalEngine.Devices.multi_circuit import MultiCircuit
|
22
|
+
from GridCalEngine.Simulations.types import DRIVER_OBJECTS
|
23
|
+
from GridCalEngine.basic_structures import Logger
|
24
|
+
|
25
|
+
|
26
|
+
class ExportAllThread(QThread):
|
27
|
+
"""
|
28
|
+
ExportAllThread
|
29
|
+
"""
|
30
|
+
progress_signal = Signal(float)
|
31
|
+
progress_text = Signal(str)
|
32
|
+
done_signal = Signal()
|
33
|
+
|
34
|
+
def __init__(self, circuit: MultiCircuit, drivers_list: List[DRIVER_OBJECTS], file_name: str):
|
35
|
+
"""
|
36
|
+
Constructor
|
37
|
+
:param circuit: Grid circuit
|
38
|
+
:param drivers_list: list of GridCal simulation drivers
|
39
|
+
:param file_name: name of the file where to save (.zip)
|
40
|
+
"""
|
41
|
+
QThread.__init__(self)
|
42
|
+
|
43
|
+
self.circuit: MultiCircuit = circuit
|
44
|
+
|
45
|
+
self.drivers_list: List[DRIVER_OBJECTS] = drivers_list
|
46
|
+
|
47
|
+
self.file_name: str = file_name
|
48
|
+
|
49
|
+
self.valid: bool = False
|
50
|
+
|
51
|
+
self.logger = Logger()
|
52
|
+
|
53
|
+
self.error_msg: str = ""
|
54
|
+
|
55
|
+
self.__cancel__ = False
|
56
|
+
|
57
|
+
def run(self) -> None:
|
58
|
+
"""
|
59
|
+
run the file save procedure
|
60
|
+
"""
|
61
|
+
|
62
|
+
# try:
|
63
|
+
export_drivers(drivers_list=self.drivers_list,
|
64
|
+
file_name=self.file_name,
|
65
|
+
text_func=self.progress_text.emit,
|
66
|
+
progress_func=self.progress_signal.emit,
|
67
|
+
logger=self.logger)
|
68
|
+
|
69
|
+
self.valid = True
|
70
|
+
|
71
|
+
# post events
|
72
|
+
self.progress_text.emit('Done!')
|
73
|
+
|
74
|
+
self.done_signal.emit()
|
75
|
+
|
76
|
+
def cancel(self):
|
77
|
+
"""
|
78
|
+
Cancel progress
|
79
|
+
"""
|
80
|
+
self.__cancel__ = True
|
@@ -1,117 +0,0 @@
|
|
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.
|
17
|
-
import os
|
18
|
-
from io import StringIO
|
19
|
-
import zipfile
|
20
|
-
from PySide6.QtCore import QThread, Signal
|
21
|
-
|
22
|
-
from GridCalEngine.basic_structures import Logger
|
23
|
-
|
24
|
-
|
25
|
-
class ExportAllThread(QThread):
|
26
|
-
progress_signal = Signal(float)
|
27
|
-
progress_text = Signal(str)
|
28
|
-
done_signal = Signal()
|
29
|
-
|
30
|
-
def __init__(self, circuit, simulations_list, file_name):
|
31
|
-
"""
|
32
|
-
Constructor
|
33
|
-
:param simulations_list: list of GridCal simulation drivers
|
34
|
-
:param file_name: name of the file where to save (.zip)
|
35
|
-
"""
|
36
|
-
QThread.__init__(self)
|
37
|
-
|
38
|
-
self.circuit = circuit
|
39
|
-
|
40
|
-
self.simulations_list = simulations_list
|
41
|
-
|
42
|
-
self.file_name = file_name
|
43
|
-
|
44
|
-
self.valid = False
|
45
|
-
|
46
|
-
self.logger = Logger()
|
47
|
-
|
48
|
-
self.error_msg = ''
|
49
|
-
|
50
|
-
self.__cancel__ = False
|
51
|
-
|
52
|
-
def run(self):
|
53
|
-
"""
|
54
|
-
run the file save procedure
|
55
|
-
"""
|
56
|
-
|
57
|
-
# try:
|
58
|
-
path, fname = os.path.split(self.file_name)
|
59
|
-
|
60
|
-
self.progress_text.emit('Flushing ' + fname + ' into ' + fname + '...')
|
61
|
-
|
62
|
-
self.logger = Logger()
|
63
|
-
|
64
|
-
# names_dict = {DeviceType.BusDevice: self.circuit.get_bus_names(),
|
65
|
-
# DeviceType.BranchDevice: self.circuit.get_branch_names(),
|
66
|
-
# DeviceType.BusDevice.LoadDevice: self.circuit.get_load_names(),
|
67
|
-
# DeviceType.BusDevice.GeneratorDevice: self.circuit.get_controlled_generator_names(),
|
68
|
-
# DeviceType.BusDevice.BatteryDevice: self.circuit.get_battery_names()}
|
69
|
-
|
70
|
-
# open zip file for writing
|
71
|
-
try:
|
72
|
-
with zipfile.ZipFile(self.file_name, 'w', zipfile.ZIP_DEFLATED) as myzip:
|
73
|
-
|
74
|
-
n = len(self.simulations_list)
|
75
|
-
|
76
|
-
for k, driver in enumerate(self.simulations_list):
|
77
|
-
|
78
|
-
self.progress_signal.emit((k + 1) / n * 100.0)
|
79
|
-
|
80
|
-
if isinstance(driver.results.available_results, dict):
|
81
|
-
available_res = [e for tpe, lst in driver.results.available_results.items() for e in lst]
|
82
|
-
else:
|
83
|
-
available_res = driver.results.available_results
|
84
|
-
|
85
|
-
for available_result in available_res:
|
86
|
-
|
87
|
-
# ge the result type definition
|
88
|
-
result_name, device_type = available_result.value
|
89
|
-
|
90
|
-
self.progress_text.emit('flushing ' + driver.results.name + ' ' + result_name)
|
91
|
-
|
92
|
-
# save the DataFrame to the buffer
|
93
|
-
mdl = driver.results.mdl(result_type=available_result)
|
94
|
-
|
95
|
-
if mdl is not None:
|
96
|
-
with StringIO() as buffer:
|
97
|
-
filename = driver.results.name + ' ' + result_name + '.csv'
|
98
|
-
try:
|
99
|
-
mdl.save_to_csv(buffer)
|
100
|
-
myzip.writestr(filename, buffer.getvalue())
|
101
|
-
except ValueError:
|
102
|
-
self.logger.add_error('Value error', filename)
|
103
|
-
else:
|
104
|
-
self.logger.add_info('No results for ' + driver.results.name + ' - ' + result_name)
|
105
|
-
|
106
|
-
except PermissionError:
|
107
|
-
self.logger.add('Permission error.\nDo you have the file open?')
|
108
|
-
|
109
|
-
self.valid = True
|
110
|
-
|
111
|
-
# post events
|
112
|
-
self.progress_text.emit('Done!')
|
113
|
-
|
114
|
-
self.done_signal.emit()
|
115
|
-
|
116
|
-
def cancel(self):
|
117
|
-
self.__cancel__ = True
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py
RENAMED
File without changes
|
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/blue_marble.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/open_street_map.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_toner.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_transport.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/MapWidget/TileProviders/stamen_watercolor.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_editor.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py
RENAMED
File without changes
|
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py
RENAMED
File without changes
|
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py
RENAMED
File without changes
|
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py
RENAMED
File without changes
|
{GridCal-5.1.26 → GridCal-5.1.28}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py
RENAMED
File without changes
|