GridCal 5.3.39__tar.gz → 5.3.40__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 (291) hide show
  1. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ExecuteGridCal.py +5 -3
  2. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_segment.py +1 -1
  3. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/io.py +24 -12
  4. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/__version__.py +1 -1
  5. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/update.py +30 -18
  6. {gridcal-5.3.39 → gridcal-5.3.40}/PKG-INFO +1 -1
  7. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/AboutDialogue/__init__.py +0 -0
  8. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/AboutDialogue/about_dialogue.py +0 -0
  9. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/AboutDialogue/gui.py +0 -0
  10. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/AboutDialogue/icons_rc.py +0 -0
  11. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/AboutDialogue/update_gui_file.py +0 -0
  12. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Analysis/AnalysisDialogue.py +0 -0
  13. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Analysis/__init__.py +0 -0
  14. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Analysis/gui.py +0 -0
  15. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Analysis/icons_rc.py +0 -0
  16. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Analysis/object_plot_analysis.py +0 -0
  17. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Analysis/update_gui_file.py +0 -0
  18. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/CascadingSteps/__init__.py +0 -0
  19. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/CascadingSteps/cascading_steps.py +0 -0
  20. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/CascadingSteps/gui.py +0 -0
  21. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/CascadingSteps/update_gui_file.py +0 -0
  22. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ContingencyPlanner/__init__.py +0 -0
  23. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ContingencyPlanner/contingency_planner_dialogue.py +0 -0
  24. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ContingencyPlanner/gui.py +0 -0
  25. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ContingencyPlanner/icons_rc.py +0 -0
  26. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ContingencyPlanner/update_gui_file.py +0 -0
  27. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/CoordinatesInput/__init__.py +0 -0
  28. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/CoordinatesInput/coordinates_dialogue.py +0 -0
  29. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/CoordinatesInput/gui.py +0 -0
  30. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/CoordinatesInput/icons_rc.py +0 -0
  31. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/CoordinatesInput/update_gui_file.py +0 -0
  32. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/Editors/__init__.py +0 -0
  33. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/Editors/controllable_shunt_editor.py +0 -0
  34. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/Editors/generator_editor.py +0 -0
  35. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/Editors/line_editor.py +0 -0
  36. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/Editors/new_line_dialogue.py +0 -0
  37. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/Editors/transformer3w_editor.py +0 -0
  38. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/Editors/transformer_editor.py +0 -0
  39. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/Editors/transformer_taps_editor.py +0 -0
  40. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Branches/__init__.py +0 -0
  41. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Branches/line_location_graphic_item.py +0 -0
  42. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Branches/map_ac_line.py +0 -0
  43. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Branches/map_dc_line.py +0 -0
  44. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Branches/map_fluid_path.py +0 -0
  45. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Branches/map_hvdc_line.py +0 -0
  46. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +0 -0
  47. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Substation/__init__.py +0 -0
  48. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +0 -0
  49. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +0 -0
  50. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Substation/voltage_level_graphic_item.py +0 -0
  51. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/__init__.py +0 -0
  52. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/blue_marble.py +0 -0
  53. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Tiles/TileProviders/cartodb.py +0 -0
  54. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Tiles/__init__.py +0 -0
  55. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Tiles/base_tiles.py +0 -0
  56. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Tiles/default_tile_data.py +0 -0
  57. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Tiles/pycacheback.py +0 -0
  58. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Tiles/tile_worker.py +0 -0
  59. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles.py +0 -0
  60. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/Tiles/tiles_cache.py +0 -0
  61. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/__init__.py +0 -0
  62. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +0 -0
  63. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/MapWidget/map_widget.py +0 -0
  64. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Branches/__init__.py +0 -0
  65. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Branches/dc_line_graphics.py +0 -0
  66. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Branches/hvdc_graphics.py +0 -0
  67. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics.py +0 -0
  68. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Branches/line_graphics_template.py +0 -0
  69. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Branches/series_reactance_graphics.py +0 -0
  70. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Branches/switch_graphics.py +0 -0
  71. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +0 -0
  72. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer3w_graphics.py +0 -0
  73. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +0 -0
  74. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +0 -0
  75. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Branches/winding_graphics.py +0 -0
  76. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/__init__.py +0 -0
  77. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_node_graphics.py +0 -0
  78. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_p2x_graphics.py +0 -0
  79. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_path_graphics.py +0 -0
  80. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_pump_graphics.py +0 -0
  81. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Fluid/fluid_turbine_graphics.py +0 -0
  82. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Injections/__init__.py +0 -0
  83. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Injections/battery_graphics.py +0 -0
  84. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Injections/controllable_shunt_graphics.py +0 -0
  85. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Injections/current_injection_graphics.py +0 -0
  86. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Injections/external_grid_graphics.py +0 -0
  87. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Injections/generator_graphics.py +0 -0
  88. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Injections/injections_template_graphics.py +0 -0
  89. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Injections/load_graphics.py +0 -0
  90. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Injections/shunt_graphics.py +0 -0
  91. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Injections/static_generator_graphics.py +0 -0
  92. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Substation/__init__.py +0 -0
  93. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Substation/bus_graphics.py +0 -0
  94. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Substation/busbar_graphics.py +0 -0
  95. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/Substation/cn_graphics.py +0 -0
  96. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/__init__.py +0 -0
  97. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/matplotlibwidget.py +0 -0
  98. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/schematic_widget.py +0 -0
  99. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/SchematicWidget/terminal_item.py +0 -0
  100. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/__init__.py +0 -0
  101. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/base_diagram_widget.py +0 -0
  102. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/diagrams_model.py +0 -0
  103. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/generic_graphics.py +0 -0
  104. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Diagrams/graphics_manager.py +0 -0
  105. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridGenerator/__init__.py +0 -0
  106. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridGenerator/grid_generator_dialogue.py +0 -0
  107. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridGenerator/gui.py +0 -0
  108. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridGenerator/icons_rc.py +0 -0
  109. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridGenerator/update_gui_file.py +0 -0
  110. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridMerge/__init__.py +0 -0
  111. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridMerge/build_diff_tree.py +0 -0
  112. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridMerge/demo_code.py +0 -0
  113. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridMerge/demo_code2.py +0 -0
  114. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridMerge/demo_code3.py +0 -0
  115. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridMerge/demo_code4.py +0 -0
  116. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridMerge/grid_diff.py +0 -0
  117. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridMerge/grid_diff_gui.py +0 -0
  118. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridMerge/grid_merge.py +0 -0
  119. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridMerge/grid_merge_gui.py +0 -0
  120. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/GridMerge/update_gui_file.py +0 -0
  121. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/LoadCatalogue/SelectComponents.py +0 -0
  122. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/LoadCatalogue/__init__.py +0 -0
  123. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/LoadCatalogue/catalogue_dialogue.py +0 -0
  124. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/LoadCatalogue/icons_rc.py +0 -0
  125. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/LoadCatalogue/update_gui_file.py +0 -0
  126. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/LoadDesigner/__init__.py +0 -0
  127. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/LoadDesigner/icons_rc.py +0 -0
  128. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/LoadDesigner/load_designer.py +0 -0
  129. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/LoadDesigner/load_designer_ui.py +0 -0
  130. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/LoadDesigner/update_gui_file.py +0 -0
  131. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/ConsoleLog.py +0 -0
  132. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/ConsoleLogController.py +0 -0
  133. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/GridCalMain.py +0 -0
  134. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/MainWindow.py +0 -0
  135. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/Model/__init__.py +0 -0
  136. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +0 -0
  137. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/Model/diagrams.py +0 -0
  138. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/Model/objects.py +0 -0
  139. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/Model/time_events.py +0 -0
  140. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/README.txt +0 -0
  141. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/Results/__init__.py +0 -0
  142. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/Results/results.py +0 -0
  143. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/Scripting/__init__.py +0 -0
  144. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/Scripting/scripting.py +0 -0
  145. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/Server/__init__.py +0 -0
  146. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/Server/server.py +0 -0
  147. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/Settings/__init__.py +0 -0
  148. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/Settings/configuration.py +0 -0
  149. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/__init__.py +0 -0
  150. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/base_gui.py +0 -0
  151. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/SubClasses/simulations.py +0 -0
  152. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/__init__.py +0 -0
  153. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/icons_rc.py +0 -0
  154. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/object_select_window.py +0 -0
  155. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Main/update_gui_file.py +0 -0
  156. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ProfilesInput/__init__.py +0 -0
  157. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ProfilesInput/excel_dialog.py +0 -0
  158. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ProfilesInput/excel_sheet_selection.py +0 -0
  159. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ProfilesInput/icons_rc.py +0 -0
  160. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ProfilesInput/models_dialogue.py +0 -0
  161. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ProfilesInput/profile_dialogue.py +0 -0
  162. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ProfilesInput/profiles_from_data_gui.py +0 -0
  163. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ProfilesInput/profiles_from_models_gui.py +0 -0
  164. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/ProfilesInput/update_gui_file.py +0 -0
  165. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/RosetaExplorer/MainWindow.py +0 -0
  166. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/RosetaExplorer/RosetaExplorer.py +0 -0
  167. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/RosetaExplorer/__init__.py +0 -0
  168. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/RosetaExplorer/icons_rc.py +0 -0
  169. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/RosetaExplorer/roseta_objects_model.py +0 -0
  170. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/RosetaExplorer/update_gui_file.py +0 -0
  171. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SigmaAnalysis/__init__.py +0 -0
  172. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SigmaAnalysis/gui.py +0 -0
  173. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SigmaAnalysis/icons_rc.py +0 -0
  174. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SigmaAnalysis/sigma_analysis_dialogue.py +0 -0
  175. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SigmaAnalysis/update_gui_file.py +0 -0
  176. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SolarPowerWizard/__init__.py +0 -0
  177. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SolarPowerWizard/gui.py +0 -0
  178. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SolarPowerWizard/icons_rc.py +0 -0
  179. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SolarPowerWizard/solar_power_wizzard.py +0 -0
  180. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SolarPowerWizard/update_gui_file.py +0 -0
  181. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SubstationDesigner/__init__.py +0 -0
  182. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SubstationDesigner/substation_designer.py +0 -0
  183. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SubstationDesigner/substation_designer_gui.py +0 -0
  184. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SubstationDesigner/update_gui_file.py +0 -0
  185. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SyncDialogue/__init__.py +0 -0
  186. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SyncDialogue/gui.py +0 -0
  187. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SyncDialogue/icons_rc.py +0 -0
  188. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SyncDialogue/sync_dialogue.py +0 -0
  189. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SyncDialogue/update_gui_file.py +0 -0
  190. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SystemScaler/__init__.py +0 -0
  191. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SystemScaler/icons_rc.py +0 -0
  192. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SystemScaler/system_scaler.py +0 -0
  193. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SystemScaler/system_scaler_ui.py +0 -0
  194. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/SystemScaler/update_gui_file.py +0 -0
  195. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/TowerBuilder/LineBuilderDialogue.py +0 -0
  196. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/TowerBuilder/__init__.py +0 -0
  197. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/TowerBuilder/icons_rc.py +0 -0
  198. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/TowerBuilder/table_models.py +0 -0
  199. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/TowerBuilder/tower_builder.py +0 -0
  200. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/TowerBuilder/update_gui_file.py +0 -0
  201. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/TreeModelViewer/MainWindow.py +0 -0
  202. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/TreeModelViewer/TreeModelViewer.py +0 -0
  203. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/TreeModelViewer/__init__.py +0 -0
  204. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/TreeModelViewer/icons_rc.py +0 -0
  205. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/TreeModelViewer/update_gui_file.py +0 -0
  206. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Visualization/__init__.py +0 -0
  207. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Visualization/visualization.py +0 -0
  208. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Widgets/__init__.py +0 -0
  209. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Widgets/custom_qrangeslider.py +0 -0
  210. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/Widgets/matplotlibwidget.py +0 -0
  211. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/WindPowerWizard/__init__.py +0 -0
  212. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/WindPowerWizard/gui.py +0 -0
  213. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/WindPowerWizard/icons_rc.py +0 -0
  214. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/WindPowerWizard/update_gui_file.py +0 -0
  215. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/WindPowerWizard/wind_power_wizzard.py +0 -0
  216. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/__init__.py +0 -0
  217. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/associations_model.py +0 -0
  218. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/general_dialogues.py +0 -0
  219. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/gui_functions.py +0 -0
  220. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/messages.py +0 -0
  221. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/object_model.py +0 -0
  222. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/pandas_model.py +0 -0
  223. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/plot_config.py +0 -0
  224. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/profiles_model.py +0 -0
  225. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/python_console.py +0 -0
  226. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/python_highlighter.py +0 -0
  227. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/results_model.py +0 -0
  228. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/table_view_header_wrap.py +0 -0
  229. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/themes.py +0 -0
  230. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/toast_widget.py +0 -0
  231. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/update_gui_all.py +0 -0
  232. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/update_gui_common.py +0 -0
  233. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Gui/wrappable_table_model.py +0 -0
  234. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/LICENSE.txt +0 -0
  235. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Session/__init__.py +0 -0
  236. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Session/export_results_driver.py +0 -0
  237. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Session/file_handler.py +0 -0
  238. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Session/server_driver.py +0 -0
  239. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Session/session.py +0 -0
  240. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/Session/synchronization_driver.py +0 -0
  241. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/__init__.py +0 -0
  242. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/__init__.py +0 -0
  243. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_color.py +0 -0
  244. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_icon/__init__.py +0 -0
  245. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_icon/icon_engine.py +0 -0
  246. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_icon/svg.py +0 -0
  247. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_main.py +0 -0
  248. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_os_appearance/__init__.py +0 -0
  249. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/__init__.py +0 -0
  250. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_os_appearance/_accent/_mac_detect.py +0 -0
  251. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_os_appearance/listener.py +0 -0
  252. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_proxy_style.py +0 -0
  253. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_resources/__init__.py +0 -0
  254. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_resources/colors.py +0 -0
  255. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_resources/palette.py +0 -0
  256. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_resources/standard_icons.py +0 -0
  257. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_resources/stylesheets.py +0 -0
  258. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_resources/svg.py +0 -0
  259. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_style_loader.py +0 -0
  260. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_template/__init__.py +0 -0
  261. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_template/engine.py +0 -0
  262. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_template/filter.py +0 -0
  263. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/_util.py +0 -0
  264. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/qtpy/QtCore/__init__.py +0 -0
  265. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/qtpy/QtGui/__init__.py +0 -0
  266. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/qtpy/QtSvg/__init__.py +0 -0
  267. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/qtpy/QtWidgets/__init__.py +0 -0
  268. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/qtpy/__init__.py +0 -0
  269. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/qtpy/qt_compat.py +0 -0
  270. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/qtpy/qt_version.py +0 -0
  271. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/widget_gallery/__init__.py +0 -0
  272. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/widget_gallery/__main__.py +0 -0
  273. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/__init__.py +0 -0
  274. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/dock_ui.py +0 -0
  275. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/frame_ui.py +0 -0
  276. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/icons_ui.py +0 -0
  277. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/mdi_ui.py +0 -0
  278. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/widget_gallery/_ui/widgets_ui.py +0 -0
  279. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/ThirdParty/qdarktheme/widget_gallery/main_window.py +0 -0
  280. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/__init__.py +0 -0
  281. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/data/GridCal.ico +0 -0
  282. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/data/GridCal.svg +0 -0
  283. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/data/__init__.py +0 -0
  284. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/data/cables.csv +0 -0
  285. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/data/sequence_lines.csv +0 -0
  286. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/data/transformers.csv +0 -0
  287. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/data/wires.csv +0 -0
  288. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/plugins.py +0 -0
  289. {gridcal-5.3.39 → gridcal-5.3.40}/GridCal/templates.py +0 -0
  290. {gridcal-5.3.39 → gridcal-5.3.40}/setup.cfg +0 -0
  291. {gridcal-5.3.39 → gridcal-5.3.40}/setup.py +0 -0
@@ -10,10 +10,13 @@ PACKAGE_PARENT = '..'
10
10
  SCRIPT_DIR = os.path.dirname(os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__))))
11
11
  sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, PACKAGE_PARENT)))
12
12
  from GridCal.__version__ import about_msg
13
+
14
+ # NOTE: For some reason I cannot begin to comprehend, the activation fails on windows if called before the GUI...
15
+ import GridCalEngine.Utils.ThirdParty.gslv.gslv_activation
16
+
13
17
  from GridCal.Gui.Main.GridCalMain import runGridCal
14
- import platform
15
18
 
16
- os.environ['JUPYTER_PLATFORM_DIRS'] = "1"
19
+ import platform
17
20
 
18
21
  if platform.system() == 'Windows':
19
22
  # this makes the icon display properly under windows
@@ -29,4 +32,3 @@ if __name__ == "__main__":
29
32
  # os.environ["QT_QPA_PLATFORMTHEME"] = "qt5ct" # this forces QT-only menus and look and feel
30
33
 
31
34
  runGridCal()
32
-
@@ -317,7 +317,7 @@ class MapLineSegment(QGraphicsLineItem):
317
317
  x, y = scene_pos.x(), scene_pos.y()
318
318
  lat, lon = self.editor.to_lat_lon(x=x, y=y)
319
319
  add_menu_entry(menu=menu,
320
- text="Open in google earth",
320
+ text="Open in Street view",
321
321
  function_ptr=lambda: open_street_view(lat, lon),
322
322
  icon_path=":/Icons/icons/map.svg")
323
323
 
@@ -26,6 +26,7 @@ from GridCalEngine.Devices.multi_circuit import MultiCircuit
26
26
  from GridCalEngine.Compilers.circuit_to_newton_pa import NEWTON_PA_AVAILABLE
27
27
  from GridCalEngine.Compilers.circuit_to_pgm import PGM_AVAILABLE
28
28
  from GridCalEngine.Compilers.circuit_to_data import compile_numerical_circuit_at
29
+ from GridCalEngine.IO.cim.cgmes.cgmes_export import get_available_cgmes_profiles
29
30
  from GridCalEngine.enumerations import CGMESVersions, SimulationTypes
30
31
  from GridCalEngine.IO.gridcal.contingency_parser import import_contingencies_from_json, export_contingencies_json_file
31
32
  from GridCalEngine.IO.cim.cgmes.cgmes_enums import cgmesProfile
@@ -61,15 +62,9 @@ class IoMain(ConfigurationMain):
61
62
  CGMESVersions.v3_0_0]}
62
63
  self.ui.cgmes_version_comboBox.setModel(gf.get_list_model(list(self.cgmes_version_dict.keys())))
63
64
 
64
- self.cgmes_profiles_dict = {x.value: x for x in [cgmesProfile.EQ,
65
- cgmesProfile.OP,
66
- cgmesProfile.SC,
67
- cgmesProfile.TP,
68
- cgmesProfile.SV,
69
- cgmesProfile.SSH,
70
- cgmesProfile.DY,
71
- cgmesProfile.DL,
72
- cgmesProfile.GL]}
65
+ self.cgmes_profiles_dict = {key: cgmesProfile(key) for key, val in
66
+ get_available_cgmes_profiles(cgmes_version=CGMESVersions.v2_4_15).items()}
67
+
73
68
  self.ui.cgmes_profiles_listView.setModel(gf.get_list_model(list(self.cgmes_profiles_dict.keys()),
74
69
  checks=True, check_value=True))
75
70
 
@@ -95,6 +90,9 @@ class IoMain(ConfigurationMain):
95
90
  self.ui.exportSimulationDataButton.clicked.connect(self.export_simulation_data)
96
91
  self.ui.loadResultFromDiskButton.clicked.connect(self.load_results_driver)
97
92
 
93
+ # change
94
+ self.ui.cgmes_version_comboBox.currentTextChanged.connect(self.cgmes_version_change)
95
+
98
96
  def dragEnterEvent(self, event):
99
97
  """
100
98
 
@@ -410,6 +408,11 @@ class IoMain(ConfigurationMain):
410
408
  self.rosetta_gui.set_logger(self.open_file_thread_object.cgmes_logger)
411
409
  self.rosetta_gui.update_combo_boxes()
412
410
  self.rosetta_gui.show()
411
+ else:
412
+ # else, show the logger if it is necessary
413
+ if len(self.open_file_thread_object.logger) > 0:
414
+ dlg = LogsDialogue('Open CGMES file logger', self.open_file_thread_object.logger)
415
+ dlg.exec()
413
416
 
414
417
  else:
415
418
  # else, show the logger if it is necessary
@@ -573,8 +576,6 @@ class IoMain(ConfigurationMain):
573
576
  else:
574
577
  return
575
578
 
576
-
577
-
578
579
  def export_circuit_differential(self):
579
580
  """
580
581
  Prompt to export a diff of this circuit and a base one
@@ -594,7 +595,6 @@ class IoMain(ConfigurationMain):
594
595
  dlg = GridDiffDialogue(grid=self.circuit)
595
596
  dlg.exec()
596
597
 
597
-
598
598
  # def post_create_circuit_differential(self):
599
599
  # """
600
600
  #
@@ -1152,3 +1152,15 @@ class IoMain(ConfigurationMain):
1152
1152
  self.setup_time_sliders()
1153
1153
  self.get_circuit_snapshot_datetime()
1154
1154
  self.change_theme_mode()
1155
+
1156
+ def cgmes_version_change(self):
1157
+ """
1158
+ On GUI cgmes version change, display only the supported profiles
1159
+ """
1160
+ cgmes_version = self.cgmes_version_dict[self.ui.cgmes_version_comboBox.currentText()]
1161
+
1162
+ self.cgmes_profiles_dict = {key: cgmesProfile(key) for key, val in
1163
+ get_available_cgmes_profiles(cgmes_version=cgmes_version).items()}
1164
+
1165
+ self.ui.cgmes_profiles_listView.setModel(gf.get_list_model(list(self.cgmes_profiles_dict.keys()),
1166
+ checks=True, check_value=True))
@@ -6,7 +6,7 @@ import datetime
6
6
  _current_year_ = datetime.datetime.now().year
7
7
 
8
8
  # do not forget to keep a three-number version!!!
9
- __GridCal_VERSION__ = "5.3.39"
9
+ __GridCal_VERSION__ = "5.3.40"
10
10
 
11
11
  url = 'https://github.com/SanPen/GridCal'
12
12
 
@@ -5,30 +5,42 @@
5
5
  from __future__ import annotations
6
6
  from typing import Tuple
7
7
  import subprocess
8
+ import requests
8
9
  import sys
9
10
  import packaging.version as pkg
10
11
  from GridCal.__version__ import __GridCal_VERSION__
11
12
 
12
13
 
13
- def find_latest_version(name: str = 'GridCal') -> str | None:
14
- """
15
- Find the latest version of a package
16
- :param name: name of the Package
17
- :return: version string
18
- """
19
- latest_version = str(subprocess.run([sys.executable, '-m', 'pip',
20
- 'install', f'{name}==random',
21
- '--break-system-packages'],
22
- capture_output=True, text=True))
23
- latest_version = latest_version[latest_version.find('(from versions:') + 15:]
24
- latest_version = latest_version[:latest_version.find(')')]
25
- latest_version = latest_version.replace(' ', '').split(',')[-1]
26
-
27
- if latest_version == 'none':
14
+ # def find_latest_version(name: str = 'GridCal') -> str | None:
15
+ # """
16
+ # Find the latest version of a package
17
+ # :param name: name of the Package
18
+ # :return: version string
19
+ # """
20
+ # latest_version = str(subprocess.run([sys.executable, '-m', 'pip',
21
+ # 'install', f'{name}==random',
22
+ # '--break-system-packages'],
23
+ # capture_output=True, text=True))
24
+ # latest_version = latest_version[latest_version.find('(from versions:') + 15:]
25
+ # latest_version = latest_version[:latest_version.find(')')]
26
+ # latest_version = latest_version.replace(' ', '').split(',')[-1]
27
+ #
28
+ # if latest_version == 'none':
29
+ # return None
30
+ #
31
+ # return latest_version
32
+
33
+
34
+ def find_latest_version(package_name: str = 'GridCal'):
35
+ try:
36
+ url = f"https://pypi.org/pypi/{package_name}/json"
37
+ response = requests.get(url, timeout=5)
38
+ response.raise_for_status()
39
+ data = response.json()
40
+ return data["info"]["version"]
41
+ except Exception:
28
42
  return None
29
43
 
30
- return latest_version
31
-
32
44
 
33
45
  def check_version(name: str = 'GridCal') -> Tuple[int, str]:
34
46
  """
@@ -43,7 +55,7 @@ def check_version(name: str = 'GridCal') -> Tuple[int, str]:
43
55
  +1: we are behind pipy, we can update
44
56
  """
45
57
 
46
- latest_version = find_latest_version(name=name)
58
+ latest_version = find_latest_version(package_name=name)
47
59
 
48
60
  # pipy_version = pkg_resources.parse_version(latest_version)
49
61
  # gc_version = pkg_resources.parse_version(__GridCal_VERSION__)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: GridCal
3
- Version: 5.3.39
3
+ Version: 5.3.40
4
4
  Summary: GridCal is a Power Systems simulation program intended for professional use and research
5
5
  Home-page: https://github.com/SanPen/GridCal
6
6
  Author: Santiago Peñate Vera et. Al.