VeraGrid 5.5.9__tar.gz → 5.5.17__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.
Files changed (312) hide show
  1. {veragrid-5.5.9 → veragrid-5.5.17}/PKG-INFO +1 -1
  2. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/controllable_shunt_editor.py +8 -2
  3. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/line_editor.py +59 -56
  4. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/transformer_editor.py +54 -31
  5. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +4 -4
  6. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_line_container.py +7 -5
  7. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +1 -7
  8. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/grid_map_widget.py +47 -53
  9. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/map_widget.py +46 -2
  10. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +7 -17
  11. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +3 -9
  12. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +1 -7
  13. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +1 -28
  14. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/schematic_widget.py +55 -73
  15. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/base_diagram_widget.py +3 -2
  16. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridReduce/grid_reduce.py +15 -5
  17. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/ConsoleLog.py +1 -1
  18. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/MainWindow.py +229 -165
  19. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Model/compiled_arrays.py +20 -42
  20. veragrid-5.5.17/VeraGrid/Gui/Main/SubClasses/Model/compiled_arrays_model.py +591 -0
  21. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Model/data_base.py +58 -4
  22. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Model/diagrams.py +6 -4
  23. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Model/time_events.py +76 -4
  24. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Settings/configuration.py +3 -0
  25. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/base_gui.py +81 -30
  26. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/io.py +10 -36
  27. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/simulations.py +55 -78
  28. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/icons_rc.py +1050 -521
  29. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/__version__.py +1 -1
  30. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ExecuteVeraGrid.py +0 -0
  31. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/AboutDialogue/__init__.py +0 -0
  32. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/AboutDialogue/about_dialogue.py +0 -0
  33. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/AboutDialogue/gui.py +0 -0
  34. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/AboutDialogue/icons_rc.py +0 -0
  35. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/AboutDialogue/update_gui_file.py +0 -0
  36. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Analysis/AnalysisDialogue.py +0 -0
  37. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Analysis/__init__.py +0 -0
  38. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Analysis/gui.py +0 -0
  39. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Analysis/icons_rc.py +0 -0
  40. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Analysis/object_plot_analysis.py +0 -0
  41. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Analysis/update_gui_file.py +0 -0
  42. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ContingencyPlanner/__init__.py +0 -0
  43. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
  44. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ContingencyPlanner/gui.py +0 -0
  45. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ContingencyPlanner/icons_rc.py +0 -0
  46. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ContingencyPlanner/update_gui_file.py +0 -0
  47. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/CoordinatesInput/__init__.py +0 -0
  48. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
  49. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/CoordinatesInput/gui.py +0 -0
  50. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/CoordinatesInput/icons_rc.py +0 -0
  51. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/CoordinatesInput/update_gui_file.py +0 -0
  52. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/__init__.py +0 -0
  53. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/icons_rc.py +0 -0
  54. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/rms_model_editor.py +0 -0
  55. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/rms_model_editor_dialogue.py +0 -0
  56. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/rms_model_editor_engine.py +0 -0
  57. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/rms_templates.py +0 -0
  58. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/RmsModelEditor/update_gui_file.py +0 -0
  59. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/__init__.py +0 -0
  60. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/generator_editor.py +0 -0
  61. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/new_line_dialogue.py +0 -0
  62. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/transformer3w_editor.py +0 -0
  63. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/Editors/transformer_taps_editor.py +0 -0
  64. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
  65. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
  66. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
  67. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
  68. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
  69. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
  70. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
  71. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +0 -0
  72. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
  73. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
  74. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
  75. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
  76. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
  77. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
  78. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
  79. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
  80. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
  81. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
  82. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
  83. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/MapWidget/__init__.py +0 -0
  84. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
  85. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
  86. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
  87. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
  88. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
  89. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
  90. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
  91. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
  92. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
  93. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics_3term.py +0 -0
  94. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
  95. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
  96. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
  97. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
  98. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
  99. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
  100. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
  101. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
  102. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
  103. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
  104. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
  105. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
  106. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
  107. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
  108. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
  109. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
  110. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
  111. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
  112. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
  113. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
  114. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/__init__.py +0 -0
  115. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/diagrams_model.py +0 -0
  116. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/generic_graphics.py +0 -0
  117. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Diagrams/graphics_manager.py +0 -0
  118. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridGenerator/__init__.py +0 -0
  119. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
  120. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridGenerator/gui.py +0 -0
  121. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridGenerator/icons_rc.py +0 -0
  122. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridGenerator/update_gui_file.py +0 -0
  123. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/__init__.py +0 -0
  124. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/build_diff_tree.py +0 -0
  125. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/grid_diff.py +0 -0
  126. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/grid_diff_gui.py +0 -0
  127. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/grid_merge.py +0 -0
  128. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/grid_merge_gui.py +0 -0
  129. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridMerge/update_gui_file.py +0 -0
  130. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridReduce/__init__.py +0 -0
  131. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridReduce/grid_reduce_gui.py +0 -0
  132. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/GridReduce/update_gui_file.py +0 -0
  133. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/LoadCatalogue/SelectComponents.py +0 -0
  134. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/LoadCatalogue/__init__.py +0 -0
  135. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
  136. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/LoadCatalogue/icons_rc.py +0 -0
  137. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/LoadCatalogue/update_gui_file.py +0 -0
  138. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/LoadDesigner/__init__.py +0 -0
  139. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/LoadDesigner/icons_rc.py +0 -0
  140. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/LoadDesigner/load_designer.py +0 -0
  141. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/LoadDesigner/load_designer_ui.py +0 -0
  142. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/LoadDesigner/update_gui_file.py +0 -0
  143. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/ConsoleLogController.py +0 -0
  144. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Model/__init__.py +0 -0
  145. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/README.txt +0 -0
  146. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Results/__init__.py +0 -0
  147. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Results/results.py +0 -0
  148. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
  149. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
  150. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Server/__init__.py +0 -0
  151. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Server/server.py +0 -0
  152. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/Settings/__init__.py +0 -0
  153. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/SubClasses/__init__.py +0 -0
  154. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/VeraGridMain.py +0 -0
  155. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/__init__.py +0 -0
  156. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/object_select_window.py +0 -0
  157. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Main/update_gui_file.py +0 -0
  158. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/__init__.py +0 -0
  159. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/excel_dialog.py +0 -0
  160. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
  161. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/icons_rc.py +0 -0
  162. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/models_dialogue.py +0 -0
  163. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/profile_dialogue.py +0 -0
  164. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
  165. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
  166. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/ProfilesInput/update_gui_file.py +0 -0
  167. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/RmsModelEditor/__init__.py +0 -0
  168. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/RmsModelEditor/block_editor.py +0 -0
  169. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/RmsModelEditor/icons_rc.py +0 -0
  170. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/RmsModelEditor/rms_model_editor.py +0 -0
  171. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/RmsModelEditor/rms_model_editor_dialogue.py +0 -0
  172. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/RmsModelEditor/update_gui_file.py +0 -0
  173. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/RosetaExplorer/MainWindow.py +0 -0
  174. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
  175. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/RosetaExplorer/__init__.py +0 -0
  176. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/RosetaExplorer/icons_rc.py +0 -0
  177. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
  178. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/RosetaExplorer/update_gui_file.py +0 -0
  179. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SigmaAnalysis/__init__.py +0 -0
  180. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SigmaAnalysis/gui.py +0 -0
  181. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SigmaAnalysis/icons_rc.py +0 -0
  182. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
  183. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SigmaAnalysis/update_gui_file.py +0 -0
  184. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SmallSignalEditor/Icons/__init__.py +0 -0
  185. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SmallSignalEditor/SmallSignal_dialogue.py +0 -0
  186. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SmallSignalEditor/__init__.py +0 -0
  187. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SolarPowerWizard/__init__.py +0 -0
  188. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SolarPowerWizard/gui.py +0 -0
  189. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SolarPowerWizard/icons_rc.py +0 -0
  190. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
  191. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SolarPowerWizard/update_gui_file.py +0 -0
  192. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SubstationDesigner/__init__.py +0 -0
  193. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SubstationDesigner/substation_designer.py +0 -0
  194. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
  195. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SubstationDesigner/update_gui_file.py +0 -0
  196. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SubstationDesigner/voltage_level_conversion.py +0 -0
  197. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SyncDialogue/__init__.py +0 -0
  198. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SyncDialogue/gui.py +0 -0
  199. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SyncDialogue/icons_rc.py +0 -0
  200. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SyncDialogue/sync_dialogue.py +0 -0
  201. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SyncDialogue/update_gui_file.py +0 -0
  202. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SystemScaler/__init__.py +0 -0
  203. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SystemScaler/icons_rc.py +0 -0
  204. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SystemScaler/system_scaler.py +0 -0
  205. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SystemScaler/system_scaler_ui.py +0 -0
  206. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/SystemScaler/update_gui_file.py +0 -0
  207. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
  208. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/TowerBuilder/__init__.py +0 -0
  209. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/TowerBuilder/icons_rc.py +0 -0
  210. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/TowerBuilder/table_models.py +0 -0
  211. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/TowerBuilder/tower_builder.py +0 -0
  212. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/TowerBuilder/update_gui_file.py +0 -0
  213. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/TreeModelViewer/MainWindow.py +0 -0
  214. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
  215. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/TreeModelViewer/__init__.py +0 -0
  216. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/TreeModelViewer/icons_rc.py +0 -0
  217. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/TreeModelViewer/update_gui_file.py +0 -0
  218. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Visualization/__init__.py +0 -0
  219. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Visualization/visualization.py +0 -0
  220. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Widgets/__init__.py +0 -0
  221. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Widgets/custom_qrangeslider.py +0 -0
  222. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/Widgets/matplotlibwidget.py +0 -0
  223. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/WindPowerWizard/__init__.py +0 -0
  224. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/WindPowerWizard/gui.py +0 -0
  225. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/WindPowerWizard/icons_rc.py +0 -0
  226. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/WindPowerWizard/update_gui_file.py +0 -0
  227. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
  228. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/__init__.py +0 -0
  229. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/associations_model.py +0 -0
  230. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/correct_icons.py +0 -0
  231. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/general_dialogues.py +0 -0
  232. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/gui_functions.py +0 -0
  233. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/messages.py +0 -0
  234. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/object_model.py +0 -0
  235. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/object_proxy_model.py +0 -0
  236. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/pandas_model.py +0 -0
  237. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/plot_config.py +0 -0
  238. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/profiles_model.py +0 -0
  239. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/python_console.py +0 -0
  240. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/python_highlighter.py +0 -0
  241. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/results_model.py +0 -0
  242. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/rms_plot_variables_dialog.py +0 -0
  243. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/table_view_header_wrap.py +0 -0
  244. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/themes.py +0 -0
  245. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/toast_widget.py +0 -0
  246. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/update_gui_all.py +0 -0
  247. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/update_gui_common.py +0 -0
  248. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Gui/wrappable_table_model.py +0 -0
  249. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/LICENSE.txt +0 -0
  250. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Session/__init__.py +0 -0
  251. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Session/export_results_driver.py +0 -0
  252. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Session/file_handler.py +0 -0
  253. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Session/server_driver.py +0 -0
  254. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Session/session.py +0 -0
  255. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/Session/synchronization_driver.py +0 -0
  256. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/__init__.py +0 -0
  257. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/darkdetect/__init__.py +0 -0
  258. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/darkdetect/_dummy.py +0 -0
  259. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/darkdetect/_linux_detect.py +0 -0
  260. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/darkdetect/_mac_detect.py +0 -0
  261. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/darkdetect/_windows_detect.py +0 -0
  262. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/__init__.py +0 -0
  263. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_color.py +0 -0
  264. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
  265. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
  266. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_icon/svg.py +0 -0
  267. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_main.py +0 -0
  268. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
  269. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
  270. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
  271. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
  272. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_proxy_style.py +0 -0
  273. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
  274. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_resources/colors.py +0 -0
  275. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_resources/palette.py +0 -0
  276. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
  277. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
  278. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_resources/svg.py +0 -0
  279. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_style_loader.py +0 -0
  280. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_template/__init__.py +0 -0
  281. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_template/engine.py +0 -0
  282. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_template/filter.py +0 -0
  283. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/_util.py +0 -0
  284. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
  285. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
  286. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
  287. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
  288. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
  289. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
  290. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
  291. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
  292. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
  293. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
  294. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
  295. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
  296. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
  297. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
  298. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
  299. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
  300. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/__init__.py +0 -0
  301. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/data/VeraGrid.ico +0 -0
  302. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/data/VeraGrid.svg +0 -0
  303. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/data/__init__.py +0 -0
  304. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/data/cables.csv +0 -0
  305. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/data/sequence_lines.csv +0 -0
  306. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/data/transformers.csv +0 -0
  307. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/data/wires.csv +0 -0
  308. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/plugins.py +0 -0
  309. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/templates.py +0 -0
  310. {veragrid-5.5.9 → veragrid-5.5.17}/VeraGrid/update.py +0 -0
  311. {veragrid-5.5.9 → veragrid-5.5.17}/setup.cfg +0 -0
  312. {veragrid-5.5.9 → veragrid-5.5.17}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: VeraGrid
3
- Version: 5.5.9
3
+ Version: 5.5.17
4
4
  Summary: VeraGrid is a Power Systems simulation program intended for professional use and research
5
5
  Home-page: https://github.com/SanPen/VeraGrid
6
6
  Author: Santiago Peñate Vera et. Al.
@@ -126,7 +126,13 @@ class ControllableShuntEditor(QDialog):
126
126
 
127
127
  def accept_click(self):
128
128
  """
129
-
130
- :return:
129
+ Modify and exit
131
130
  """
131
+ self.api_object.active_steps = self.get_active_steps()
132
+ self.api_object.g_steps = self.get_g_steps()
133
+ self.api_object.Gmax = self.api_object.g_steps.max()
134
+ self.api_object.Gmin = self.api_object.g_steps.min()
135
+ self.api_object.b_steps = self.get_b_steps()
136
+ self.api_object.Bmax = self.api_object.b_steps.max()
137
+ self.api_object.Bmin = self.api_object.b_steps.min()
132
138
  self.accept()
@@ -12,6 +12,7 @@ from PySide6.QtWidgets import QPushButton, QVBoxLayout, QDialog, QLabel, QDouble
12
12
  from VeraGrid.Gui.gui_functions import get_list_model
13
13
  from VeraGrid.Gui.messages import error_msg, warning_msg, yes_no_question
14
14
  from VeraGridEngine.Devices.Branches.line import Line, SequenceLineType, OverheadLineType, UndergroundLineType
15
+ from VeraGridEngine.Devices.multi_circuit import MultiCircuit
15
16
 
16
17
 
17
18
  class LineEditor(QDialog):
@@ -21,28 +22,32 @@ class LineEditor(QDialog):
21
22
 
22
23
  def __init__(self,
23
24
  line: Line,
24
- Sbase=100,
25
- frequency=50,
26
- templates: Union[List[SequenceLineType | OverheadLineType | UndergroundLineType], None] = None,
27
- current_template: SequenceLineType | OverheadLineType | UndergroundLineType | None = None):
25
+ grid: MultiCircuit):
28
26
  """
29
27
  Line Editor constructor
30
28
  :param line: Branch object to update
31
- :param templates: List of templates
32
- :param Sbase: Base power in MVA
29
+ :param grid: MultiCircuit
33
30
  """
34
31
  super(LineEditor, self).__init__()
35
32
 
36
33
  # keep pointer to the line object
37
34
  self.line = line
38
35
 
39
- self.Sbase = Sbase
36
+ self.Sbase = grid.Sbase
40
37
 
41
- self.frequency = frequency
38
+ self.frequency = grid.fBase
42
39
 
43
- self.templates = templates
40
+ Vnom = line.get_max_bus_nominal_voltage()
41
+ self.templates = list()
44
42
 
45
- self.current_template = current_template
43
+ for lst in [grid.sequence_line_types,
44
+ grid.underground_cable_types,
45
+ grid.overhead_line_types]:
46
+ for temp in lst:
47
+ if Vnom == temp.Vnom:
48
+ self.templates.append(temp)
49
+
50
+ self.current_template = line.template
46
51
 
47
52
  self.selected_template = None
48
53
 
@@ -83,43 +88,42 @@ class LineEditor(QDialog):
83
88
 
84
89
  # catalogue
85
90
  self.catalogue_combo = QComboBox()
86
- if self.templates is not None:
87
- if len(self.templates) > 0:
88
- self.catalogue_combo.setModel(get_list_model(self.templates))
89
-
90
- if self.current_template is not None:
91
- try:
92
- idx = self.templates.index(self.current_template)
93
- self.catalogue_combo.setCurrentIndex(idx)
94
-
95
- if isinstance(self.current_template, SequenceLineType):
96
- I_KA = self.current_template.Imax
97
- r_ohm = self.current_template.R
98
- x_ohm = self.current_template.X
99
- b_us = self.current_template.B
100
-
101
- if isinstance(self.current_template, UndergroundLineType):
102
- I_KA = self.current_template.Imax
103
- r_ohm = self.current_template.R
104
- x_ohm = self.current_template.X
105
- b_us = self.current_template.B
106
-
107
- elif isinstance(self.current_template, OverheadLineType):
108
-
109
- if self.current_template.check():
110
- R1, X1, Bsh1, I_kA = self.current_template.get_sequence_values(
111
- circuit_idx=self.line.circuit_idx,
112
- seq=1
113
- )
114
- r_ohm = R1
115
- x_ohm = X1
116
- b_us = Bsh1
117
- else:
118
- warning_msg(text=f"The template {self.current_template.name} contains errors",
119
- title="Load template")
120
-
121
- except ValueError:
122
- pass
91
+ if len(self.templates) > 0:
92
+ self.catalogue_combo.setModel(get_list_model(self.templates))
93
+
94
+ if self.current_template is not None:
95
+ try:
96
+ idx = self.templates.index(self.current_template)
97
+ self.catalogue_combo.setCurrentIndex(idx)
98
+
99
+ if isinstance(self.current_template, SequenceLineType):
100
+ I_KA = self.current_template.Imax
101
+ r_ohm = self.current_template.R
102
+ x_ohm = self.current_template.X
103
+ b_us = self.current_template.B
104
+
105
+ if isinstance(self.current_template, UndergroundLineType):
106
+ I_KA = self.current_template.Imax
107
+ r_ohm = self.current_template.R
108
+ x_ohm = self.current_template.X
109
+ b_us = self.current_template.B
110
+
111
+ elif isinstance(self.current_template, OverheadLineType):
112
+
113
+ if self.current_template.check():
114
+ R1, X1, Bsh1, I_kA = self.current_template.get_sequence_values(
115
+ circuit_idx=self.line.circuit_idx,
116
+ seq=1
117
+ )
118
+ r_ohm = R1
119
+ x_ohm = X1
120
+ b_us = Bsh1
121
+ else:
122
+ warning_msg(text=f"The template {self.current_template.name} contains errors",
123
+ title="Load template")
124
+
125
+ except ValueError:
126
+ pass
123
127
 
124
128
  # load template
125
129
  self.load_template_btn = QPushButton()
@@ -138,7 +142,7 @@ class LineEditor(QDialog):
138
142
  self.i_spinner = QDoubleSpinBox()
139
143
  self.i_spinner.setMinimum(0)
140
144
  self.i_spinner.setMaximum(9999999)
141
- self.i_spinner.setDecimals(2)
145
+ self.i_spinner.setDecimals(6)
142
146
  self.i_spinner.setValue(I_KA)
143
147
  self.i_spinner.setSuffix(' KA')
144
148
 
@@ -189,14 +193,13 @@ class LineEditor(QDialog):
189
193
  self.accept_btn.clicked.connect(self.accept_click)
190
194
 
191
195
  # add all to the GUI
192
- if templates is not None:
193
- self.layout.addWidget(QLabel("Available templates"))
194
- self.layout.addWidget(self.catalogue_combo)
195
- self.catalogue_combo.currentIndexChanged.connect(self.update_max_circuits)
196
- self.layout.addWidget((QLabel("Circuit index:")))
197
- self.layout.addWidget(self.circuit_idx)
198
- self.layout.addWidget(self.load_template_btn)
199
- self.layout.addWidget(QLabel(""))
196
+ self.layout.addWidget(QLabel("Available templates"))
197
+ self.layout.addWidget(self.catalogue_combo)
198
+ self.catalogue_combo.currentIndexChanged.connect(self.update_max_circuits)
199
+ self.layout.addWidget((QLabel("Circuit index:")))
200
+ self.layout.addWidget(self.circuit_idx)
201
+ self.layout.addWidget(self.load_template_btn)
202
+ self.layout.addWidget(QLabel(""))
200
203
 
201
204
  self.layout.addWidget(QLabel("L: Line length"))
202
205
  self.layout.addWidget(self.l_spinner)
@@ -8,7 +8,8 @@ from PySide6.QtCore import Qt
8
8
  from PySide6.QtWidgets import QPushButton, QVBoxLayout, QDialog, QLabel, QComboBox
9
9
  from VeraGrid.Gui.gui_functions import get_list_model, create_spinbox
10
10
  from VeraGridEngine.Devices.Branches.transformer import Transformer2W
11
- from VeraGridEngine.Devices.Branches.transformer_type import TransformerType, reverse_transformer_short_circuit_study
11
+ from VeraGridEngine.Devices.Branches.transformer_type import TransformerType
12
+ from VeraGridEngine.Devices.multi_circuit import MultiCircuit
12
13
 
13
14
 
14
15
  class TransformerEditor(QDialog):
@@ -16,24 +17,24 @@ class TransformerEditor(QDialog):
16
17
  TransformerEditor
17
18
  """
18
19
 
19
- def __init__(self, branch: Transformer2W, Sbase=100, modify_on_accept=True, templates=None, current_template=None):
20
+ def __init__(self, branch: Transformer2W, grid: MultiCircuit, modify_on_accept=True):
20
21
  """
21
22
  Transformer
22
23
  :param branch:
23
- :param Sbase:
24
+ :param grid: MultiCircuit
24
25
  """
25
26
  super(TransformerEditor, self).__init__()
26
27
 
27
28
  # keep pointer to the line object
28
29
  self.transformer_obj = branch
29
30
 
30
- self.Sbase = Sbase
31
+ self.Sbase = grid.Sbase
31
32
 
32
33
  self.modify_on_accept = modify_on_accept
33
34
 
34
- self.templates = self.filter_valid_templates(templates)
35
+ self.templates = self.filter_valid_templates(grid.transformer_types)
35
36
 
36
- self.current_template = current_template
37
+ self.current_template = branch.template
37
38
 
38
39
  self.selected_template = None
39
40
 
@@ -49,33 +50,58 @@ class TransformerEditor(QDialog):
49
50
  self.Vf = self.transformer_obj.bus_from.Vnom
50
51
  self.Vt = self.transformer_obj.bus_to.Vnom
51
52
 
52
- Pfe, Pcu, Vsc, I0, Sn = reverse_transformer_short_circuit_study(R=self.transformer_obj.R,
53
- X=self.transformer_obj.X,
54
- G=self.transformer_obj.G,
55
- B=self.transformer_obj.B,
56
- rate=self.transformer_obj.rate,
57
- Sbase=Sbase)
53
+ # Pfe, Pcu, Vsc, I0, Sn = reverse_transformer_short_circuit_study(R=self.transformer_obj.R,
54
+ # X=self.transformer_obj.X,
55
+ # G=self.transformer_obj.G,
56
+ # B=self.transformer_obj.B,
57
+ # rate=self.transformer_obj.rate,
58
+ # Sbase=self.Sbase)
58
59
 
59
60
  # ------------------------------------------------------------------------------------------
60
61
 
61
62
  # catalogue
62
63
  self.catalogue_combo = QComboBox()
63
- if templates is not None:
64
- if len(self.templates) > 0:
65
64
 
66
- self.catalogue_combo.setModel(get_list_model(self.templates))
65
+ if len(self.templates) > 0:
67
66
 
68
- if self.current_template is not None:
67
+ self.catalogue_combo.setModel(get_list_model(self.templates))
68
+
69
+ if self.current_template is not None:
70
+
71
+ try:
69
72
  idx = self.templates.index(self.current_template)
70
- if idx > -1:
71
- self.catalogue_combo.setCurrentIndex(idx)
72
73
 
73
- # set the template parameters
74
- Sn = self.current_template.Sn # MVA
75
- Pcu = self.current_template.Pcu # kW
76
- Pfe = self.current_template.Pfe # kW
77
- I0 = self.current_template.I0 # %
78
- Vsc = self.current_template.Vsc # %
74
+ self.catalogue_combo.setCurrentIndex(idx)
75
+
76
+ # set the template parameters
77
+ Sn = self.current_template.Sn # MVA
78
+ Pcu = self.current_template.Pcu # kW
79
+ Pfe = self.current_template.Pfe # kW
80
+ I0 = self.current_template.I0 # %
81
+ Vsc = self.current_template.Vsc # %
82
+
83
+ except ValueError as e:
84
+ print(f"Template not found for {self.transformer_obj.name}")
85
+ Sn = self.transformer_obj.Sn # MVA
86
+ Pcu = self.transformer_obj.Pcu # kW
87
+ Pfe = self.transformer_obj.Pfe # kW
88
+ I0 = self.transformer_obj.I0 # %
89
+ Vsc = self.transformer_obj.Vsc # %
90
+
91
+ else:
92
+ # set the template parameters
93
+ Sn = self.transformer_obj.Sn # MVA
94
+ Pcu = self.transformer_obj.Pcu # kW
95
+ Pfe = self.transformer_obj.Pfe # kW
96
+ I0 = self.transformer_obj.I0 # %
97
+ Vsc = self.transformer_obj.Vsc # %
98
+ else:
99
+ # set the template parameters
100
+ Sn = self.transformer_obj.Sn # MVA
101
+ Pcu = self.transformer_obj.Pcu # kW
102
+ Pfe = self.transformer_obj.Pfe # kW
103
+ I0 = self.transformer_obj.I0 # %
104
+ Vsc = self.transformer_obj.Vsc # %
79
105
 
80
106
  # load template
81
107
  self.load_template_btn = QPushButton()
@@ -105,13 +131,10 @@ class TransformerEditor(QDialog):
105
131
  # labels
106
132
 
107
133
  # add all to the GUI
108
-
109
- # add all to the GUI
110
- if templates is not None:
111
- self.layout.addWidget(QLabel("Suitable templates"))
112
- self.layout.addWidget(self.catalogue_combo)
113
- self.layout.addWidget(self.load_template_btn)
114
- self.layout.addWidget(QLabel(""))
134
+ self.layout.addWidget(QLabel("Suitable templates"))
135
+ self.layout.addWidget(self.catalogue_combo)
136
+ self.layout.addWidget(self.load_template_btn)
137
+ self.layout.addWidget(QLabel(""))
115
138
 
116
139
  self.layout.addWidget(QLabel("Sn: Nominal power [MVA]"))
117
140
  self.layout.addWidget(self.sn_spinner)
@@ -238,7 +238,7 @@ class LineLocationGraphicItem(QtWidgets.QGraphicsEllipseItem, NodeTemplate):
238
238
  Event handler for when the mouse enters the item.
239
239
  """
240
240
  self.hovered = True
241
- self.setNodeColor(QColor(Qt.GlobalColor.red), QColor(Qt.GlobalColor.red))
241
+ self.set_node_color(QColor(Qt.GlobalColor.red), QColor(Qt.GlobalColor.red))
242
242
 
243
243
  def hoverLeaveEvent(self, event: QtWidgets.QGraphicsSceneHoverEvent) -> None:
244
244
  """
@@ -288,9 +288,9 @@ class LineLocationGraphicItem(QtWidgets.QGraphicsEllipseItem, NodeTemplate):
288
288
  """
289
289
  Remove
290
290
  """
291
- self.line_container.removeNode(node=self)
291
+ self.line_container.remove_node(node=self)
292
292
 
293
- def setNodeColor(self, inner_color: QColor, border_color: QColor = None) -> None:
293
+ def set_node_color(self, inner_color: QColor, border_color: QColor = None) -> None:
294
294
  """
295
295
 
296
296
  :param inner_color:
@@ -312,7 +312,7 @@ class LineLocationGraphicItem(QtWidgets.QGraphicsEllipseItem, NodeTemplate):
312
312
  :return:
313
313
  """
314
314
  # Example: color assignment
315
- self.setNodeColor(self.colorInner, self.colorBorder)
315
+ self.set_node_color(self.colorInner, self.colorBorder)
316
316
 
317
317
  def get_pos(self) -> QPointF:
318
318
  """
@@ -174,7 +174,7 @@ class MapLineContainer(GenericDiagramWidget, QGraphicsItemGroup):
174
174
  # second pass: create the segments
175
175
  self.redraw_segments()
176
176
 
177
- def removeNode(self, node: LineLocationGraphicItem):
177
+ def remove_node(self, node: LineLocationGraphicItem):
178
178
  """
179
179
 
180
180
  :param node:
@@ -411,11 +411,12 @@ class MapLineContainer(GenericDiagramWidget, QGraphicsItemGroup):
411
411
  # Return the newly created node
412
412
  return graphic_obj
413
413
 
414
- # else:
415
- # logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
416
- # logging.info("Invalid node index")
414
+ else:
415
+ # logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
416
+ # logging.info("Invalid node index")
417
+ return None
417
418
 
418
- def split_Line(self, index):
419
+ def split_line(self, index):
419
420
  """
420
421
  Split Line
421
422
  :param index:
@@ -461,6 +462,7 @@ class MapLineContainer(GenericDiagramWidget, QGraphicsItemGroup):
461
462
  else:
462
463
  # Handle invalid index
463
464
  error_msg("Index out of range or invalid", "split line")
465
+ return list(), list()
464
466
 
465
467
  def disable_line(self):
466
468
  """
@@ -415,13 +415,7 @@ class MapLineSegment(QGraphicsLineItem):
415
415
  if Vnom == temp.Vnom:
416
416
  templates.append(temp)
417
417
 
418
- dlg = LineEditor(
419
- line=self.api_object,
420
- Sbase=self.editor.circuit.Sbase,
421
- frequency=self.editor.circuit.fBase,
422
- templates=templates,
423
- current_template=self.api_object.template
424
- )
418
+ dlg = LineEditor(line=self.api_object, grid=self.editor.circuit)
425
419
  dlg.exec()
426
420
 
427
421
  def plot_profiles(self) -> None:
@@ -19,6 +19,7 @@ from PySide6.QtCore import (Qt, QMimeData, QIODevice, QByteArray, QDataStream, Q
19
19
  from PySide6.QtGui import (QIcon, QPixmap, QImage, QStandardItemModel, QStandardItem, QColor, QDropEvent)
20
20
 
21
21
  from VeraGrid.Gui.Diagrams.MapWidget.Branches.map_line_container import MapLineContainer
22
+ from VeraGrid.Gui.Diagrams.SchematicWidget.Substation.bus_graphics import BusGraphicItem
22
23
  from VeraGrid.Gui.Diagrams.generic_graphics import GenericDiagramWidget
23
24
  from VeraGrid.Gui.SubstationDesigner.substation_designer import SubstationDesigner
24
25
  from VeraGrid.Gui.general_dialogues import InputNumberDialogue
@@ -272,15 +273,19 @@ class GridMapWidget(BaseDiagramWidget):
272
273
  """
273
274
  self.diagram = diagram
274
275
 
275
- def delete_element_utility_function(self, device: ALL_DEV_TYPES, propagate: bool = True):
276
+ def delete_element_utility_function(self, device: ALL_DEV_TYPES, propagate: bool = True,
277
+ graphic_object: QGraphicsItem | None = None):
276
278
  """
277
279
 
278
280
  :param device:
279
281
  :param propagate: Propagate the action to other diagrams?
282
+ :param graphic_object: graphic_object
280
283
  :return:
281
284
  """
282
285
  self.diagram.delete_device(device=device)
283
- graphic_object: ALL_MAP_GRAPHICS = self.graphics_manager.delete_device(device=device)
286
+
287
+ if graphic_object is None:
288
+ graphic_object: ALL_MAP_GRAPHICS = self.graphics_manager.delete_device(device=device)
284
289
 
285
290
  if graphic_object is not None:
286
291
  self._remove_from_scene(graphic_object)
@@ -522,6 +527,25 @@ class GridMapWidget(BaseDiagramWidget):
522
527
  """
523
528
  return [s for s in self.map.view.selected_items() if isinstance(s, SubstationGraphicItem)]
524
529
 
530
+ def get_selected_buses(self) -> List[Tuple[int, Bus, BusGraphicItem | None]]:
531
+ """
532
+ Get a list of buses from the selected substations
533
+ :return:
534
+ """
535
+ buses: List[Tuple[int, Bus, BusGraphicItem | None]] = list()
536
+ se_graphics = self.get_selected_substations()
537
+
538
+ se_api_set = set()
539
+ for se_graphic in se_graphics:
540
+ if se_graphic.api_object is not None:
541
+ se_api_set.add(se_graphic.api_object)
542
+
543
+ for i, bus in enumerate(self.circuit.buses):
544
+ if bus.substation in se_api_set:
545
+ buses.append((i, bus, None))
546
+
547
+ return buses
548
+
525
549
  def get_substations(self) -> List[Tuple[int, Substation, SubstationGraphicItem]]:
526
550
  """
527
551
  Get all the substations
@@ -627,57 +651,6 @@ class GridMapWidget(BaseDiagramWidget):
627
651
  # Delete the substation itself
628
652
  self.circuit.delete_substation(obj=api_object)
629
653
 
630
- #
631
- # def show_devices_to_disconnect_dialog(self,
632
- # devices: List[ALL_DEV_TYPES],
633
- # buses: List[Bus],
634
- # voltage_levels: List[VoltageLevel],
635
- # dialog_title: str):
636
- # """
637
- # Show a dialog with the list of all devices that will be disconnected
638
- #
639
- # :param devices: List of devices to be disconnected
640
- # :param buses: List of buses associated with the substation
641
- # :param voltage_levels: List of voltage levels associated with the substation
642
- # :param dialog_title: Title for the dialog
643
- # """
644
- #
645
- #
646
- # # Combine all devices
647
- # all_devices = devices + buses + voltage_levels
648
- #
649
- # if not all_devices:
650
- # info_msg('No devices to disconnect', dialog_title)
651
- # return
652
- #
653
- # # Create custom properties for name, type, and ID tag
654
- # name_prop = GCProp(prop_name='name', tpe=str, units='', definition='Device name',
655
- # display=True, editable=False)
656
- #
657
- # type_prop = GCProp(prop_name='device_type', tpe=DeviceType, units='', definition='Device type',
658
- # display=True, editable=False)
659
- #
660
- # idtag_prop = GCProp(prop_name='idtag', tpe=str, units='', definition='ID tag',
661
- # display=True, editable=False)
662
- #
663
- # custom_props = [name_prop, type_prop, idtag_prop]
664
- #
665
- # # Create and show the dialog
666
- # dialog = ElementsDialogue(name=dialog_title, elements=all_devices)
667
- #
668
- # # Replace the model with our custom one that only shows name, type, and idtag
669
- # model = ObjectsModel(objects=all_devices,
670
- # time_index=None,
671
- # property_list=custom_props,
672
- # parent=dialog.objects_table,
673
- # editable=False)
674
- #
675
- # dialog.objects_table.setModel(model)
676
- #
677
- # # Make the dialog modal so the user must acknowledge it before continuing
678
- # dialog.setModal(True)
679
- # dialog.exec()
680
-
681
654
  def remove_branch_graphic(self, line: MAP_BRANCH_GRAPHIC_TYPES | MapLineContainer, delete_from_db: bool = False):
682
655
  """
683
656
  Removes line from diagram and scene
@@ -1086,10 +1059,19 @@ class GridMapWidget(BaseDiagramWidget):
1086
1059
  """
1087
1060
  lat = 0.0
1088
1061
  lon = 0.0
1062
+ lat_max = -1e20
1063
+ lat_min = 1e20
1064
+ lon_max = -1e20
1065
+ lon_min = 1e20
1089
1066
  n = 0
1090
1067
  for graphic_obj in self.graphics_manager.get_device_type_list(DeviceType.SubstationDevice):
1091
1068
  lat += graphic_obj.lat
1092
1069
  lon += graphic_obj.lon
1070
+
1071
+ lat_max = max(lat_max, graphic_obj.lat)
1072
+ lat_min = min(lat_min, graphic_obj.lat)
1073
+ lon_max = max(lon_max, graphic_obj.lon)
1074
+ lon_min = min(lon_min, graphic_obj.lon)
1093
1075
  n += 1
1094
1076
 
1095
1077
  if n > 0:
@@ -1097,6 +1079,18 @@ class GridMapWidget(BaseDiagramWidget):
1097
1079
  lon /= n
1098
1080
  self.map.pan_position(latitude=lat, longitude=lon)
1099
1081
 
1082
+ # this is to also move the diagram layer according to the map
1083
+ # z = self.map.best_zoom_from_bbox(min_lat=lat_min,
1084
+ # max_lat=lat_max,
1085
+ # min_lon=lon_min,
1086
+ # max_lon=lon_max)
1087
+
1088
+ self.map.set_zoom_level(level=self.map.level)
1089
+ # self.map.set_zoom_level(level=z)
1090
+
1091
+ else:
1092
+ self.gui.show_warning_toast("No points to center :/")
1093
+
1100
1094
  def colour_results(self,
1101
1095
  Sbus: CxVec,
1102
1096
  bus_active: IntVec,
@@ -1521,14 +1521,14 @@ class MapWidget(QWidget):
1521
1521
  under the cursor.
1522
1522
  """
1523
1523
 
1524
- # if not given cursor coords, assume view centre
1524
+ # if not given cursor coordinates, assume view centre
1525
1525
  if view_x is None:
1526
1526
  view_x = self.view_width // 4
1527
1527
 
1528
1528
  if view_y is None:
1529
1529
  view_y = self.view_height // 4
1530
1530
 
1531
- # get geo coords of view point
1531
+ # get geo coordinates of view point
1532
1532
  longitude, latitude = self.view_to_geo_float(view_x, view_y)
1533
1533
 
1534
1534
  # get tile source to use the new level
@@ -1602,6 +1602,50 @@ class MapWidget(QWidget):
1602
1602
  # redraw the widget
1603
1603
  self.update()
1604
1604
 
1605
+ def best_zoom_from_bbox(self,
1606
+ min_lat: float,
1607
+ max_lat: float,
1608
+ min_lon: float,
1609
+ max_lon: float) -> int:
1610
+ """
1611
+ Determine the most appropriate zoom level for the given lat/lon bounding box,
1612
+ based on the MapWidget's tile source and viewport size.
1613
+ :param min_lat: minimum latitude of bounding box
1614
+ :param max_lat: maximum latitude of bounding box
1615
+ :param min_lon: minimum longitude of bounding box
1616
+ :param max_lon: maximum longitude of bounding box
1617
+ :return: best zoom level (int)
1618
+ """
1619
+ tile_src = self.tile_src
1620
+ view_width = self.view_width
1621
+ view_height = self.view_height
1622
+ tile_size_x = self.tile_width
1623
+ tile_size_y = self.tile_height
1624
+
1625
+ # search from high zoom (more detail) to low zoom (zoomed out)
1626
+ for z in range(tile_src.max_level, tile_src.min_level - 1, -1):
1627
+ if not tile_src.set_level(z):
1628
+ continue
1629
+
1630
+ # convert bbox corners to fractional tile coordinates at this zoom
1631
+ tx_min, ty_min = tile_src.Geo2Tile(longitude=min_lon, latitude=min_lat)
1632
+ tx_max, ty_max = tile_src.Geo2Tile(longitude=max_lon, latitude=max_lat)
1633
+
1634
+ # tile extents in X/Y
1635
+ dx_tiles = abs(tx_max - tx_min)
1636
+ dy_tiles = abs(ty_max - ty_min)
1637
+
1638
+ # pixel span at this zoom
1639
+ width_px = dx_tiles * tile_size_x
1640
+ height_px = dy_tiles * tile_size_y
1641
+
1642
+ # if fits in viewport, good zoom level
1643
+ if width_px <= view_width and height_px <= view_height:
1644
+ return z
1645
+
1646
+ # otherwise return the minimum zoom
1647
+ return tile_src.min_level
1648
+
1605
1649
  def rectify_key_tile(self) -> None:
1606
1650
  """
1607
1651
  Adjust state variables to ensure map centred if map is smaller than view.
@@ -20,7 +20,6 @@ from VeraGrid.Gui.Diagrams.Editors.RmsModelEditor.rms_model_editor_engine import
20
20
  from VeraGridEngine.Devices.Branches.line import Line, SequenceLineType
21
21
  from VeraGridEngine.enumerations import DeviceType
22
22
 
23
-
24
23
  if TYPE_CHECKING: # Only imports the below statements during type checking
25
24
  from VeraGrid.Gui.Diagrams.SchematicWidget.schematic_widget import SchematicWidget
26
25
 
@@ -223,28 +222,19 @@ class LineGraphicItem(LineGraphicTemplateItem):
223
222
  Open the appropriate editor dialogue
224
223
  :return:
225
224
  """
226
- Sbase = self.editor.circuit.Sbase
227
- Vnom = self.api_object.get_max_bus_nominal_voltage()
228
- templates = list()
229
-
230
- for lst in [self.editor.circuit.sequence_line_types,
231
- self.editor.circuit.underground_cable_types,
232
- self.editor.circuit.overhead_line_types]:
233
- for temp in lst:
234
- if Vnom == temp.Vnom:
235
- templates.append(temp)
236
-
237
- current_template = self.api_object.template
238
- dlg = LineEditor(line=self.api_object, Sbase=Sbase, frequency=self.editor.circuit.fBase,
239
- templates=templates, current_template=current_template)
225
+ dlg = LineEditor(line=self.api_object, grid=self.editor.circuit)
240
226
  if dlg.exec():
241
227
  pass
242
228
 
243
229
  def edit_rms(self):
244
- templates = [t.name for t in self.editor.circuit.sequence_line_types] # TODO: find where to build and save the templates
230
+ """
231
+
232
+ """
233
+ templates = [t.name for t in
234
+ self.editor.circuit.sequence_line_types] # TODO: find where to build and save the templates
245
235
 
246
236
  choice_dialog = RmsChoiceDialog(templates, parent=self.editor)
247
- if choice_dialog.exec() == QtWidgets.QDialog.Accepted:
237
+ if choice_dialog.exec() == QtWidgets.QDialog.DialogCode.Accepted:
248
238
  if choice_dialog.choice == "template":
249
239
  template_name = choice_dialog.selected_template
250
240
  print(f"User chose template: {template_name}")