GridCalEngine 5.3.38__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 (781) hide show
  1. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Compilers/circuit_to_gslv.py +51 -124
  2. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/line.py +3 -2
  3. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/wire.py +2 -1
  4. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Parents/editable_device.py +21 -4
  5. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_data_parser.py +17 -9
  6. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_export.py +29 -18
  7. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py +14 -10
  8. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cim16/cim_parser.py +9 -4
  9. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/file_handler.py +4 -0
  10. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/gridcal/zip_interface.py +2 -2
  11. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_driver.py +14 -3
  12. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_ts_driver.py +1 -1
  13. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/Formulations/pf_basic_formulation.py +6 -2
  14. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/Formulations/pf_generalized_formulation.py +59 -42
  15. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_fx.py +14 -14
  16. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/power_flow_driver.py +6 -3
  17. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/power_flow_results.py +27 -2
  18. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_driver.py +7 -1
  19. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Topology/admittance_matrices.py +1 -1
  20. gridcalengine-5.3.40/GridCalEngine/Utils/ThirdParty/gslv/__init__.py +0 -0
  21. gridcalengine-5.3.40/GridCalEngine/Utils/ThirdParty/gslv/gslv_activation.py +107 -0
  22. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/__version__.py +1 -1
  23. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/data_logger.py +35 -1
  24. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/PKG-INFO +1 -1
  25. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/setup.py +2 -2
  26. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Compilers/__init__.py +0 -0
  27. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Compilers/circuit_to_bentayga.py +0 -0
  28. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Compilers/circuit_to_data.py +0 -0
  29. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Compilers/circuit_to_newton_pa.py +0 -0
  30. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Compilers/circuit_to_optimods.py +0 -0
  31. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Compilers/circuit_to_pgm.py +0 -0
  32. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/__init__.py +0 -0
  33. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/active_branch_data.py +0 -0
  34. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/battery_data.py +0 -0
  35. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/branch_parent_data.py +0 -0
  36. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/bus_data.py +0 -0
  37. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/fluid_node_data.py +0 -0
  38. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/fluid_p2x_data.py +0 -0
  39. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/fluid_path_data.py +0 -0
  40. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/fluid_pump_data.py +0 -0
  41. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/fluid_turbine_data.py +0 -0
  42. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/generator_data.py +0 -0
  43. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/hvdc_data.py +0 -0
  44. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/load_data.py +0 -0
  45. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/numerical_circuit.py +0 -0
  46. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/passive_branch_data.py +0 -0
  47. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/shunt_data.py +0 -0
  48. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/DataStructures/vsc_data.py +0 -0
  49. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/__init__.py +0 -0
  50. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/area.py +0 -0
  51. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/branch_group.py +0 -0
  52. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/community.py +0 -0
  53. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/contingency.py +0 -0
  54. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/contingency_group.py +0 -0
  55. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/country.py +0 -0
  56. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/facility.py +0 -0
  57. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/inter_aggregation_info.py +0 -0
  58. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/investment.py +0 -0
  59. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/investments_group.py +0 -0
  60. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/modelling_authority.py +0 -0
  61. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/municipality.py +0 -0
  62. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/region.py +0 -0
  63. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/remedial_action.py +0 -0
  64. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/remedial_action_group.py +0 -0
  65. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Aggregation/zone.py +0 -0
  66. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Associations/__init__.py +0 -0
  67. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Associations/association.py +0 -0
  68. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Associations/emission_gas.py +0 -0
  69. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Associations/fuel.py +0 -0
  70. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Associations/technology.py +0 -0
  71. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/__init__.py +0 -0
  72. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/branch.py +0 -0
  73. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/dc_line.py +0 -0
  74. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/hvdc_line.py +0 -0
  75. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/line_locations.py +0 -0
  76. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/overhead_line_type.py +0 -0
  77. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/sequence_line_type.py +0 -0
  78. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/series_reactance.py +0 -0
  79. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/switch.py +0 -0
  80. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/tap_changer.py +0 -0
  81. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/transformer.py +0 -0
  82. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/transformer3w.py +0 -0
  83. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/transformer_type.py +0 -0
  84. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/underground_line_type.py +0 -0
  85. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/upfc.py +0 -0
  86. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/vsc.py +0 -0
  87. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Branches/winding.py +0 -0
  88. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Diagrams/__init__.py +0 -0
  89. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Diagrams/base_diagram.py +0 -0
  90. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Diagrams/graphic_location.py +0 -0
  91. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Diagrams/map_diagram.py +0 -0
  92. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Diagrams/map_location.py +0 -0
  93. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Diagrams/palettes.py +0 -0
  94. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Diagrams/schematic_diagram.py +0 -0
  95. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Fluid/__init__.py +0 -0
  96. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Fluid/fluid_injection_template.py +0 -0
  97. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Fluid/fluid_node.py +0 -0
  98. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Fluid/fluid_p2x.py +0 -0
  99. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Fluid/fluid_path.py +0 -0
  100. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Fluid/fluid_pump.py +0 -0
  101. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Fluid/fluid_turbine.py +0 -0
  102. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Injections/__init__.py +0 -0
  103. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Injections/battery.py +0 -0
  104. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Injections/controllable_shunt.py +0 -0
  105. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Injections/current_injection.py +0 -0
  106. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Injections/external_grid.py +0 -0
  107. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Injections/generator.py +0 -0
  108. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Injections/generator_q_curve.py +0 -0
  109. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Injections/load.py +0 -0
  110. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Injections/shunt.py +0 -0
  111. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Injections/static_generator.py +0 -0
  112. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Parents/__init__.py +0 -0
  113. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Parents/branch_parent.py +0 -0
  114. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Parents/controllable_branch_parent.py +0 -0
  115. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Parents/generator_parent.py +0 -0
  116. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Parents/injection_parent.py +0 -0
  117. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Parents/load_parent.py +0 -0
  118. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Parents/physical_device.py +0 -0
  119. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Parents/shunt_parent.py +0 -0
  120. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Substation/__init__.py +0 -0
  121. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Substation/bus.py +0 -0
  122. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Substation/busbar.py +0 -0
  123. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Substation/connectivity_node.py +0 -0
  124. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Substation/substation.py +0 -0
  125. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/Substation/voltage_level.py +0 -0
  126. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/__init__.py +0 -0
  127. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/admittance_matrix.py +0 -0
  128. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/assets.py +0 -0
  129. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/comparison.py +0 -0
  130. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/measurement.py +0 -0
  131. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/multi_circuit.py +0 -0
  132. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/profile.py +0 -0
  133. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Devices/types.py +0 -0
  134. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/__init__.py +0 -0
  135. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/base/__init__.py +0 -0
  136. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/base/base_circuit.py +0 -0
  137. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/base/base_device.py +0 -0
  138. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/base/base_property.py +0 -0
  139. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/base/units.py +0 -0
  140. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/__init__.py +0 -0
  141. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/__init__.py +0 -0
  142. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/base.py +0 -0
  143. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_assets/__init__.py +0 -0
  144. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_assets/cgmes_2_4_15_assets.py +0 -0
  145. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_assets/cgmes_3_0_0_assets.py +0 -0
  146. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_circuit.py +0 -0
  147. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_create_instances.py +0 -0
  148. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_data_validator.py +0 -0
  149. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_enums.py +0 -0
  150. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_property.py +0 -0
  151. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_utils.py +0 -0
  152. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/__init__.py +0 -0
  153. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/__init__.py +0 -0
  154. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ac_line_segment.py +0 -0
  155. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/acdc_converter.py +0 -0
  156. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/acdc_converterdc_terminal.py +0 -0
  157. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/acdc_terminal.py +0 -0
  158. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/active_power_limit.py +0 -0
  159. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/analog_control.py +0 -0
  160. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/apparent_power_limit.py +0 -0
  161. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/asynchronous_machine.py +0 -0
  162. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/base_voltage.py +0 -0
  163. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/basic_interval_schedule.py +0 -0
  164. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/bay.py +0 -0
  165. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/breaker.py +0 -0
  166. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/bus_name_marker.py +0 -0
  167. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/busbar_section.py +0 -0
  168. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/conducting_equipment.py +0 -0
  169. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/conductor.py +0 -0
  170. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/conform_load.py +0 -0
  171. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/conform_load_group.py +0 -0
  172. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/connectivity_node.py +0 -0
  173. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/connectivity_node_container.py +0 -0
  174. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/connector.py +0 -0
  175. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/control.py +0 -0
  176. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/control_area.py +0 -0
  177. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/control_area_generating_unit.py +0 -0
  178. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/coordinate_system.py +0 -0
  179. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/cs_converter.py +0 -0
  180. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/current_limit.py +0 -0
  181. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/curve.py +0 -0
  182. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/curve_data.py +0 -0
  183. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_base_terminal.py +0 -0
  184. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_breaker.py +0 -0
  185. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_busbar.py +0 -0
  186. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_chopper.py +0 -0
  187. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_conducting_equipment.py +0 -0
  188. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_converter_unit.py +0 -0
  189. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_disconnector.py +0 -0
  190. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_equipment_container.py +0 -0
  191. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_ground.py +0 -0
  192. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_line.py +0 -0
  193. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_line_segment.py +0 -0
  194. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_node.py +0 -0
  195. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_series_device.py +0 -0
  196. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_shunt.py +0 -0
  197. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_switch.py +0 -0
  198. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_terminal.py +0 -0
  199. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_topological_island.py +0 -0
  200. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/dc_topological_node.py +0 -0
  201. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/disconnector.py +0 -0
  202. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/earth_fault_compensator.py +0 -0
  203. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/energy_area.py +0 -0
  204. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/energy_consumer.py +0 -0
  205. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/energy_scheduling_type.py +0 -0
  206. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/energy_source.py +0 -0
  207. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equipment.py +0 -0
  208. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equipment_container.py +0 -0
  209. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_branch.py +0 -0
  210. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_equipment.py +0 -0
  211. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_injection.py +0 -0
  212. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_network.py +0 -0
  213. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/equivalent_shunt.py +0 -0
  214. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/external_network_injection.py +0 -0
  215. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/fossil_fuel.py +0 -0
  216. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/full_model.py +0 -0
  217. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/generating_unit.py +0 -0
  218. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/geographical_region.py +0 -0
  219. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ground.py +0 -0
  220. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ground_disconnector.py +0 -0
  221. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/grounding_impedance.py +0 -0
  222. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/hydro_generating_unit.py +0 -0
  223. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/hydro_power_plant.py +0 -0
  224. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/hydro_pump.py +0 -0
  225. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/identified_object.py +0 -0
  226. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/junction.py +0 -0
  227. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/limit.py +0 -0
  228. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/limit_set.py +0 -0
  229. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/line.py +0 -0
  230. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/linear_shunt_compensator.py +0 -0
  231. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/load_area.py +0 -0
  232. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/load_break_switch.py +0 -0
  233. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/load_group.py +0 -0
  234. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/load_response_characteristic.py +0 -0
  235. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/location.py +0 -0
  236. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/measurement.py +0 -0
  237. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/measurement_value.py +0 -0
  238. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/mutual_coupling.py +0 -0
  239. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/non_conform_load.py +0 -0
  240. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/non_conform_load_group.py +0 -0
  241. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/nonlinear_shunt_compensator.py +0 -0
  242. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/nonlinear_shunt_compensator_point.py +0 -0
  243. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/nuclear_generating_unit.py +0 -0
  244. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/operational_limit.py +0 -0
  245. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/operational_limit_set.py +0 -0
  246. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/operational_limit_type.py +0 -0
  247. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/per_lengthdc_line_parameter.py +0 -0
  248. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/petersen_coil.py +0 -0
  249. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer.py +0 -0
  250. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_asymmetrical.py +0 -0
  251. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_linear.py +0 -0
  252. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_non_linear.py +0 -0
  253. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_symmetrical.py +0 -0
  254. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_table.py +0 -0
  255. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_table_point.py +0 -0
  256. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/phase_tap_changer_tabular.py +0 -0
  257. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/position_point.py +0 -0
  258. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/power_system_resource.py +0 -0
  259. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/power_transformer.py +0 -0
  260. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/power_transformer_end.py +0 -0
  261. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/protected_switch.py +0 -0
  262. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/quality61850.py +0 -0
  263. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ratio_tap_changer.py +0 -0
  264. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ratio_tap_changer_table.py +0 -0
  265. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/ratio_tap_changer_table_point.py +0 -0
  266. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/reactive_capability_curve.py +0 -0
  267. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/regular_interval_schedule.py +0 -0
  268. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/regulating_cond_eq.py +0 -0
  269. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/regulating_control.py +0 -0
  270. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/reporting_group.py +0 -0
  271. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/rotating_machine.py +0 -0
  272. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/season_day_type_schedule.py +0 -0
  273. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/series_compensator.py +0 -0
  274. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/shunt_compensator.py +0 -0
  275. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/solar_generating_unit.py +0 -0
  276. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/static_var_compensator.py +0 -0
  277. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sub_geographical_region.py +0 -0
  278. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sub_load_area.py +0 -0
  279. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/substation.py +0 -0
  280. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_injection.py +0 -0
  281. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_power_flow.py +0 -0
  282. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_shunt_compensator_sections.py +0 -0
  283. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_status.py +0 -0
  284. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_tap_step.py +0 -0
  285. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/sv_voltage.py +0 -0
  286. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/switch.py +0 -0
  287. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/synchronous_machine.py +0 -0
  288. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/tap_changer.py +0 -0
  289. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/tap_changer_control.py +0 -0
  290. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/tap_changer_table_point.py +0 -0
  291. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/terminal.py +0 -0
  292. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/thermal_generating_unit.py +0 -0
  293. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/tie_flow.py +0 -0
  294. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/topological_island.py +0 -0
  295. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/topological_node.py +0 -0
  296. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/transformer_end.py +0 -0
  297. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/voltage_level.py +0 -0
  298. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/voltage_limit.py +0 -0
  299. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/vs_capability_curve.py +0 -0
  300. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/vs_converter.py +0 -0
  301. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v2_4_15/devices/wind_generating_unit.py +0 -0
  302. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/__init__.py +0 -0
  303. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/__init__.py +0 -0
  304. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ac_line_segment.py +0 -0
  305. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/acdc_converter.py +0 -0
  306. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/acdc_converterdc_terminal.py +0 -0
  307. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/acdc_terminal.py +0 -0
  308. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/active_power_limit.py +0 -0
  309. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/analog_control.py +0 -0
  310. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/apparent_power_limit.py +0 -0
  311. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/asynchronous_machine.py +0 -0
  312. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/auxiliary_equipment.py +0 -0
  313. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/base_voltage.py +0 -0
  314. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/basic_interval_schedule.py +0 -0
  315. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/battery_unit.py +0 -0
  316. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/bay.py +0 -0
  317. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/boundary_point.py +0 -0
  318. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/breaker.py +0 -0
  319. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/bus_name_marker.py +0 -0
  320. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/busbar_section.py +0 -0
  321. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/caes_plant.py +0 -0
  322. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/clamp.py +0 -0
  323. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/cogeneration_plant.py +0 -0
  324. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/combined_cycle_plant.py +0 -0
  325. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/conducting_equipment.py +0 -0
  326. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/conductor.py +0 -0
  327. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/conform_load.py +0 -0
  328. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/conform_load_group.py +0 -0
  329. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/connectivity_node.py +0 -0
  330. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/connectivity_node_container.py +0 -0
  331. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/connector.py +0 -0
  332. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/control.py +0 -0
  333. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/control_area.py +0 -0
  334. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/control_area_generating_unit.py +0 -0
  335. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/coordinate_system.py +0 -0
  336. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/cs_converter.py +0 -0
  337. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/current_limit.py +0 -0
  338. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/current_transformer.py +0 -0
  339. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/curve.py +0 -0
  340. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/curve_data.py +0 -0
  341. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/cut.py +0 -0
  342. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_base_terminal.py +0 -0
  343. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_breaker.py +0 -0
  344. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_busbar.py +0 -0
  345. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_chopper.py +0 -0
  346. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_conducting_equipment.py +0 -0
  347. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_converter_unit.py +0 -0
  348. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_disconnector.py +0 -0
  349. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_equipment_container.py +0 -0
  350. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_ground.py +0 -0
  351. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_line.py +0 -0
  352. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_line_segment.py +0 -0
  353. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_node.py +0 -0
  354. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_series_device.py +0 -0
  355. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_shunt.py +0 -0
  356. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_switch.py +0 -0
  357. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_terminal.py +0 -0
  358. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_topological_island.py +0 -0
  359. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/dc_topological_node.py +0 -0
  360. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/disconnecting_circuit_breaker.py +0 -0
  361. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/disconnector.py +0 -0
  362. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/earth_fault_compensator.py +0 -0
  363. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_area.py +0 -0
  364. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_connection.py +0 -0
  365. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_consumer.py +0 -0
  366. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_scheduling_type.py +0 -0
  367. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/energy_source.py +0 -0
  368. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equipment.py +0 -0
  369. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equipment_container.py +0 -0
  370. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_branch.py +0 -0
  371. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_equipment.py +0 -0
  372. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_injection.py +0 -0
  373. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_network.py +0 -0
  374. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/equivalent_shunt.py +0 -0
  375. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/external_network_injection.py +0 -0
  376. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/fault_indicator.py +0 -0
  377. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/fossil_fuel.py +0 -0
  378. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/fuse.py +0 -0
  379. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/generating_unit.py +0 -0
  380. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/geographical_region.py +0 -0
  381. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ground.py +0 -0
  382. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ground_disconnector.py +0 -0
  383. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/grounding_impedance.py +0 -0
  384. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/hydro_generating_unit.py +0 -0
  385. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/hydro_power_plant.py +0 -0
  386. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/hydro_pump.py +0 -0
  387. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/identified_object.py +0 -0
  388. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/io_point.py +0 -0
  389. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/jumper.py +0 -0
  390. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/junction.py +0 -0
  391. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/limit.py +0 -0
  392. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/limit_set.py +0 -0
  393. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/line.py +0 -0
  394. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/linear_shunt_compensator.py +0 -0
  395. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/load_area.py +0 -0
  396. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/load_break_switch.py +0 -0
  397. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/load_group.py +0 -0
  398. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/load_response_characteristic.py +0 -0
  399. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/location.py +0 -0
  400. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/measurement.py +0 -0
  401. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/measurement_value.py +0 -0
  402. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/mutual_coupling.py +0 -0
  403. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/non_conform_load.py +0 -0
  404. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/non_conform_load_group.py +0 -0
  405. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/nonlinear_shunt_compensator.py +0 -0
  406. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/nonlinear_shunt_compensator_point.py +0 -0
  407. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/nuclear_generating_unit.py +0 -0
  408. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/operational_limit.py +0 -0
  409. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/operational_limit_set.py +0 -0
  410. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/operational_limit_type.py +0 -0
  411. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/petersen_coil.py +0 -0
  412. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer.py +0 -0
  413. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_asymmetrical.py +0 -0
  414. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_linear.py +0 -0
  415. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_non_linear.py +0 -0
  416. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_symmetrical.py +0 -0
  417. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_table.py +0 -0
  418. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_table_point.py +0 -0
  419. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/phase_tap_changer_tabular.py +0 -0
  420. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/photo_voltaic_unit.py +0 -0
  421. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/position_point.py +0 -0
  422. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/post_line_sensor.py +0 -0
  423. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/potential_transformer.py +0 -0
  424. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_electronics_connection.py +0 -0
  425. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_electronics_unit.py +0 -0
  426. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_electronics_wind_unit.py +0 -0
  427. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_system_resource.py +0 -0
  428. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_transformer.py +0 -0
  429. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/power_transformer_end.py +0 -0
  430. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/protected_switch.py +0 -0
  431. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ratio_tap_changer.py +0 -0
  432. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ratio_tap_changer_table.py +0 -0
  433. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/ratio_tap_changer_table_point.py +0 -0
  434. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/reactive_capability_curve.py +0 -0
  435. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/regular_interval_schedule.py +0 -0
  436. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/regulating_cond_eq.py +0 -0
  437. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/regulating_control.py +0 -0
  438. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/reporting_group.py +0 -0
  439. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/rotating_machine.py +0 -0
  440. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/season_day_type_schedule.py +0 -0
  441. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sensor.py +0 -0
  442. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/series_compensator.py +0 -0
  443. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/service_location.py +0 -0
  444. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/shunt_compensator.py +0 -0
  445. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/solar_generating_unit.py +0 -0
  446. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/solar_power_plant.py +0 -0
  447. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/static_var_compensator.py +0 -0
  448. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sub_geographical_region.py +0 -0
  449. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sub_load_area.py +0 -0
  450. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/substation.py +0 -0
  451. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/surge_arrester.py +0 -0
  452. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_injection.py +0 -0
  453. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_power_flow.py +0 -0
  454. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_shunt_compensator_sections.py +0 -0
  455. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_status.py +0 -0
  456. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_switch.py +0 -0
  457. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_tap_step.py +0 -0
  458. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/sv_voltage.py +0 -0
  459. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/switch.py +0 -0
  460. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/synchronous_machine.py +0 -0
  461. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/tap_changer.py +0 -0
  462. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/tap_changer_control.py +0 -0
  463. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/tap_changer_table_point.py +0 -0
  464. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/terminal.py +0 -0
  465. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/thermal_generating_unit.py +0 -0
  466. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/tie_flow.py +0 -0
  467. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/topological_island.py +0 -0
  468. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/topological_node.py +0 -0
  469. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/transformer_end.py +0 -0
  470. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/voltage_level.py +0 -0
  471. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/voltage_limit.py +0 -0
  472. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/vs_capability_curve.py +0 -0
  473. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/vs_converter.py +0 -0
  474. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/wave_trap.py +0 -0
  475. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/wind_generating_unit.py +0 -0
  476. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/wind_power_plant.py +0 -0
  477. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_v3_0_0/devices/work_location.py +0 -0
  478. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/cgmes_writer.py +0 -0
  479. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/gridcal_to_cgmes.py +0 -0
  480. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/rdfs_infos.py +0 -0
  481. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cgmes/rdfs_serializations.py +0 -0
  482. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cim16/__init__.py +0 -0
  483. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cim16/cim_circuit.py +0 -0
  484. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cim16/cim_data_parser.py +0 -0
  485. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cim16/cim_devices.py +0 -0
  486. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/cim16/cim_enums.py +0 -0
  487. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/db/__init__.py +0 -0
  488. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/db/base_db.py +0 -0
  489. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/db/cgmes_lookup_db.py +0 -0
  490. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/db/db_handler.py +0 -0
  491. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/db/file_system.py +0 -0
  492. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/cim/db/psse_lookup_db.py +0 -0
  493. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/dgs/__init__.py +0 -0
  494. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/dgs/dgs_parser.py +0 -0
  495. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/epc/__init__.py +0 -0
  496. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/epc/epc_parser.py +0 -0
  497. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/file_system.py +0 -0
  498. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/gridcal/__init__.py +0 -0
  499. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/gridcal/catalogue.py +0 -0
  500. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/gridcal/contingency_parser.py +0 -0
  501. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/gridcal/excel_interface.py +0 -0
  502. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/gridcal/generic_io_functions.py +0 -0
  503. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/gridcal/h5_interface.py +0 -0
  504. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/gridcal/json_parser.py +0 -0
  505. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/gridcal/pack_unpack.py +0 -0
  506. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/gridcal/remote.py +0 -0
  507. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/gridcal/results_export.py +0 -0
  508. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/gridcal/sqlite_interface.py +0 -0
  509. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/__init__.py +0 -0
  510. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/area.py +0 -0
  511. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/branch.py +0 -0
  512. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/branch_dc.py +0 -0
  513. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/bus.py +0 -0
  514. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/bus_dc.py +0 -0
  515. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/converter_dc.py +0 -0
  516. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/generator.py +0 -0
  517. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/legacy/__init__.py +0 -0
  518. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/legacy/matpower_branch_definitions.py +0 -0
  519. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/legacy/matpower_bus_definitions.py +0 -0
  520. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/legacy/matpower_gen_definitions.py +0 -0
  521. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/legacy/matpower_parser.py +0 -0
  522. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/matpower_circuit.py +0 -0
  523. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/matpower_to_gridcal.py +0 -0
  524. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/matpower/matpower_utils.py +0 -0
  525. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/others/__init__.py +0 -0
  526. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/others/dpx_parser.py +0 -0
  527. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/others/ipa_parser.py +0 -0
  528. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/others/pandapower_parser.py +0 -0
  529. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/others/plx_parser.py +0 -0
  530. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/others/pypsa_parser.py +0 -0
  531. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/__init__.py +0 -0
  532. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/__init__.py +0 -0
  533. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/area.py +0 -0
  534. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/branch.py +0 -0
  535. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/bus.py +0 -0
  536. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/facts.py +0 -0
  537. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/fixed_shunt.py +0 -0
  538. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/generator.py +0 -0
  539. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/gne_device.py +0 -0
  540. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/impedance_correction_table.py +0 -0
  541. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/induction_machine.py +0 -0
  542. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/inter_area.py +0 -0
  543. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/load.py +0 -0
  544. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/multi_section_line.py +0 -0
  545. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/node.py +0 -0
  546. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/owner.py +0 -0
  547. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/psse_circuit.py +0 -0
  548. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/psse_object.py +0 -0
  549. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/psse_property.py +0 -0
  550. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/substation.py +0 -0
  551. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/switched_shunt.py +0 -0
  552. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/system_switching_device.py +0 -0
  553. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/transformer.py +0 -0
  554. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/two_terminal_dc_line.py +0 -0
  555. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/vsc_dc_line.py +0 -0
  556. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/devices/zone.py +0 -0
  557. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/gridcal_to_raw.py +0 -0
  558. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/raw_functions.py +0 -0
  559. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/raw_parser_writer.py +0 -0
  560. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/raw_to_gridcal.py +0 -0
  561. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/raw_writer_comment_map.py +0 -0
  562. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/raw/rawx_parser_writer.py +0 -0
  563. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/ucte/__init__.py +0 -0
  564. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/ucte/devices/__init__.py +0 -0
  565. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/ucte/devices/ucte_base.py +0 -0
  566. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/ucte/devices/ucte_circuit.py +0 -0
  567. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/ucte/devices/ucte_comment.py +0 -0
  568. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/ucte/devices/ucte_exchange_power.py +0 -0
  569. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/ucte/devices/ucte_line.py +0 -0
  570. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/ucte/devices/ucte_node.py +0 -0
  571. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/ucte/devices/ucte_transformer.py +0 -0
  572. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/ucte/devices/ucte_transformer_regulation.py +0 -0
  573. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/ucte/devices/ucte_transformer_tap_table.py +0 -0
  574. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/IO/ucte/ucte_to_gridcal.py +0 -0
  575. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/LICENSE.txt +0 -0
  576. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ATC/__init__.py +0 -0
  577. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ATC/available_transfer_capacity_driver.py +0 -0
  578. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ATC/available_transfer_capacity_options.py +0 -0
  579. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ATC/available_transfer_capacity_ts_driver.py +0 -0
  580. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Clustering/__init__.py +0 -0
  581. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Clustering/clustering.py +0 -0
  582. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Clustering/clustering_driver.py +0 -0
  583. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Clustering/clustering_options.py +0 -0
  584. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Clustering/clustering_results.py +0 -0
  585. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/__init__.py +0 -0
  586. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/helm_contingencies.py +0 -0
  587. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/helm_contingency_analysis.py +0 -0
  588. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/linear_contingency_analysis.py +0 -0
  589. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/nonlinear_contingency_analysis.py +0 -0
  590. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/optimal_linear_contingency_analysis.py +0 -0
  591. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/Methods/srap.py +0 -0
  592. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/__init__.py +0 -0
  593. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/contingencies_report.py +0 -0
  594. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_options.py +0 -0
  595. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_results.py +0 -0
  596. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_analysis_ts_results.py +0 -0
  597. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContingencyAnalysis/contingency_plan.py +0 -0
  598. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContinuationPowerFlow/__init__.py +0 -0
  599. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py +0 -0
  600. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_driver.py +0 -0
  601. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_input.py +0 -0
  602. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_options.py +0 -0
  603. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow_results.py +0 -0
  604. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Derivatives/__init__.py +0 -0
  605. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Derivatives/ac_jacobian.py +0 -0
  606. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Derivatives/csc_derivatives.py +0 -0
  607. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Derivatives/csr_derivatives.py +0 -0
  608. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Derivatives/matpower_derivatives.py +0 -0
  609. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Dynamics/__init__.py +0 -0
  610. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Dynamics/dynamic_modules.py +0 -0
  611. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Dynamics/transient_stability_driver.py +0 -0
  612. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/InputsAnalysis/__init__.py +0 -0
  613. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/InputsAnalysis/inputs_analysis_driver.py +0 -0
  614. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/NSGA_3.py +0 -0
  615. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/__init__.py +0 -0
  616. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py +0 -0
  617. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/random_eval.py +0 -0
  618. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/stop_crits.py +0 -0
  619. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/InvestmentsEvaluation/__init__.py +0 -0
  620. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py +0 -0
  621. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_options.py +0 -0
  622. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_results.py +0 -0
  623. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/LinearFactors/__init__.py +0 -0
  624. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/LinearFactors/linear_analysis.py +0 -0
  625. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/LinearFactors/linear_analysis_driver.py +0 -0
  626. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/LinearFactors/linear_analysis_options.py +0 -0
  627. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/LinearFactors/linear_analysis_results.py +0 -0
  628. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/LinearFactors/linear_analysis_ts_driver.py +0 -0
  629. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/LinearFactors/linear_analysis_ts_results.py +0 -0
  630. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/NTC/__init__.py +0 -0
  631. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/NTC/ntc_driver.py +0 -0
  632. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/NTC/ntc_opf.py +0 -0
  633. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/NTC/ntc_options.py +0 -0
  634. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/NTC/ntc_results.py +0 -0
  635. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/NTC/ntc_ts_driver.py +0 -0
  636. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/NTC/ntc_ts_results.py +0 -0
  637. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/NodalCapacity/__init__.py +0 -0
  638. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/NodalCapacity/nodal_capacity_options.py +0 -0
  639. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/NodalCapacity/nodal_capacity_ts_driver.py +0 -0
  640. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/NodalCapacity/nodal_capacity_ts_results.py +0 -0
  641. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/Formulations/__init__.py +0 -0
  642. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/Formulations/ac_opf_problem.py +0 -0
  643. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/NumericalMethods/__init__.py +0 -0
  644. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf.py +0 -0
  645. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_derivatives.py +0 -0
  646. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_new.py +0 -0
  647. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/NumericalMethods/newton_raphson_ips_fx.py +0 -0
  648. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/__init__.py +0 -0
  649. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/linear_opf_ts.py +0 -0
  650. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/opf_driver.py +0 -0
  651. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/opf_options.py +0 -0
  652. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/opf_results.py +0 -0
  653. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/opf_ts_driver.py +0 -0
  654. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/opf_ts_results.py +0 -0
  655. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/OPF/simple_dispatch_ts.py +0 -0
  656. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/Formulations/__init__.py +0 -0
  657. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/Formulations/pf_advanced_formulation.py +0 -0
  658. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/Formulations/pf_formulation_template.py +0 -0
  659. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/__init__.py +0 -0
  660. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py +0 -0
  661. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/discrete_controls.py +0 -0
  662. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py +0 -0
  663. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py +0 -0
  664. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py +0 -0
  665. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py +0 -0
  666. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquadt_fx.py +0 -0
  667. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py +0 -0
  668. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/NumericalMethods/powell_fx.py +0 -0
  669. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/__init__.py +0 -0
  670. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/grid_analysis.py +0 -0
  671. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/power_flow_options.py +0 -0
  672. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_input.py +0 -0
  673. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/power_flow_ts_results.py +0 -0
  674. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +0 -0
  675. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ShortCircuitStudies/__init__.py +0 -0
  676. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit.py +0 -0
  677. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_driver.py +0 -0
  678. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_options.py +0 -0
  679. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_results.py +0 -0
  680. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_worker.py +0 -0
  681. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/SigmaAnalysis/__init__.py +0 -0
  682. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/SigmaAnalysis/sigma_analysis_driver.py +0 -0
  683. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/StateEstimation/__init__.py +0 -0
  684. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/StateEstimation/state_estimation.py +0 -0
  685. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/StateEstimation/state_estimation_inputs.py +0 -0
  686. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/StateEstimation/state_stimation_driver.py +0 -0
  687. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Stochastic/__init__.py +0 -0
  688. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Stochastic/adequacy_driver.py +0 -0
  689. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Stochastic/blackout_driver.py +0 -0
  690. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Stochastic/latin_hypercube_sampling.py +0 -0
  691. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Stochastic/reliability.py +0 -0
  692. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Stochastic/reliability_driver.py +0 -0
  693. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Stochastic/reliability_iterable.py +0 -0
  694. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_driver.py +0 -0
  695. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_input.py +0 -0
  696. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Stochastic/stochastic_power_flow_results.py +0 -0
  697. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Topology/__init__.py +0 -0
  698. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Topology/node_groups_driver.py +0 -0
  699. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Topology/topology_processor_driver.py +0 -0
  700. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/Topology/topology_reduction_driver.py +0 -0
  701. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/__init__.py +0 -0
  702. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/driver_handler.py +0 -0
  703. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/driver_template.py +0 -0
  704. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/options_template.py +0 -0
  705. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/results_table.py +0 -0
  706. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/results_template.py +0 -0
  707. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Simulations/types.py +0 -0
  708. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Topology/__init__.py +0 -0
  709. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Topology/detect_substations.py +0 -0
  710. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Topology/simulation_indices.py +0 -0
  711. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Topology/topology.py +0 -0
  712. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Topology/topology_processor.py +0 -0
  713. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/Filtering/__init__.py +0 -0
  714. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/Filtering/filtering.py +0 -0
  715. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/Filtering/objects_filtering.py +0 -0
  716. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/Filtering/results_table_filtering.py +0 -0
  717. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/Filtering/timeseries_filtering.py +0 -0
  718. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/MIP/SimpleMip/__init__.py +0 -0
  719. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/MIP/SimpleMip/highs.py +0 -0
  720. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/MIP/SimpleMip/lpmodel.py +0 -0
  721. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/MIP/SimpleMip/lpobjects.py +0 -0
  722. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/MIP/__init__.py +0 -0
  723. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/MIP/pulp_interface.py +0 -0
  724. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/MIP/selected_interface.py +0 -0
  725. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/MVRSM_mo_pareto.py +0 -0
  726. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/MVRSM_mo_scaled.py +0 -0
  727. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/MVRSM_original.py +0 -0
  728. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/__init__.py +0 -0
  729. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/autodiff.py +0 -0
  730. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/common.py +0 -0
  731. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/ips.py +0 -0
  732. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/iwamoto.py +0 -0
  733. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/levenberg_marquadt.py +0 -0
  734. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/newton_raphson.py +0 -0
  735. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/newton_raphson_ode.py +0 -0
  736. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/non_dominated_sorting.py +0 -0
  737. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/nsga3.py +0 -0
  738. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/numerical_stability.py +0 -0
  739. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/powell.py +0 -0
  740. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/sparse_solve.py +0 -0
  741. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/NumericalMethods/weldorf_online_stddev.py +0 -0
  742. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/Sparse/__init__.py +0 -0
  743. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/Sparse/csc.py +0 -0
  744. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/Sparse/csc2.py +0 -0
  745. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/Sparse/csc_numba.py +0 -0
  746. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/Sparse/sparse_array.py +0 -0
  747. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/Sparse/utils.py +0 -0
  748. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/SyntheticNetworks/__init__.py +0 -0
  749. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/SyntheticNetworks/rpgm_algo.py +0 -0
  750. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/__init__.py +0 -0
  751. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/__init__.py +0 -0
  752. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/apis/__init__.py +0 -0
  753. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/apis/copt_api.py +0 -0
  754. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/apis/cplex_cmd.py +0 -0
  755. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/apis/cplex_py.py +0 -0
  756. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/apis/gurobi_cmd.py +0 -0
  757. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/apis/gurobi_py.py +0 -0
  758. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/apis/highs_cmd.py +0 -0
  759. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/apis/highs_py.py +0 -0
  760. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/apis/lp_solver.py +0 -0
  761. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/apis/lp_solver_cmd.py +0 -0
  762. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/apis/scip_api.py +0 -0
  763. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/apis/xpress_api.py +0 -0
  764. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/constants.py +0 -0
  765. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/model/__init__.py +0 -0
  766. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/model/lp_objects.py +0 -0
  767. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/model/lp_problem.py +0 -0
  768. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/mps_lp.py +0 -0
  769. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/paths.py +0 -0
  770. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/pulp.py +0 -0
  771. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/sparse.py +0 -0
  772. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/ThirdParty/pulp/utilities.py +0 -0
  773. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/__init__.py +0 -0
  774. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/progress_bar.py +0 -0
  775. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/scores.py +0 -0
  776. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/Utils/zip_file_mgmt.py +0 -0
  777. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/__init__.py +0 -0
  778. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/api.py +0 -0
  779. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/basic_structures.py +0 -0
  780. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/GridCalEngine/enumerations.py +0 -0
  781. {gridcalengine-5.3.38 → gridcalengine-5.3.40}/setup.cfg +0 -0
@@ -3,27 +3,30 @@
3
3
  # file, You can obtain one at https://mozilla.org/MPL/2.0/.
4
4
  # SPDX-License-Identifier: MPL-2.0
5
5
  from __future__ import annotations
6
- import os.path
7
- import warnings
6
+ import time
8
7
  import numpy as np
9
8
  from typing import List, Dict, Union, Tuple, TYPE_CHECKING
10
9
 
11
- from GridCalEngine import TapModuleControl, TapPhaseControl, BusMode
10
+ from GridCalEngine.Utils.ThirdParty.gslv.gslv_activation import (pg, build_status_dict, tap_module_control_mode_dict,
11
+ tap_phase_control_mode_dict, hvdc_control_mode_dict,
12
+ group_type_dict, contingency_ops_type_dict,
13
+ contingency_method_dict, converter_control_type_dict,
14
+ bus_type_dict,
15
+ GSLV_AVAILABLE, GSLV_VERSION,
16
+ GSLV_RECOMMENDED_VERSION)
12
17
  from GridCalEngine.DataStructures.branch_parent_data import BranchParentData
13
18
  from GridCalEngine.basic_structures import IntVec, Vec
14
19
  from GridCalEngine.Devices.profile import Profile
15
20
  from GridCalEngine.Devices.multi_circuit import MultiCircuit
16
- from GridCalEngine.enumerations import (HvdcControlType, SolverType, TimeGrouping,
17
- ZonalGrouping, MIPSolvers, ContingencyMethod, ContingencyOperationTypes,
18
- BuildStatus, BranchGroupTypes, ConverterControlType)
19
21
  import GridCalEngine.Devices as dev
20
22
  from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions
21
23
  from GridCalEngine.Simulations.PowerFlow.power_flow_results import PowerFlowResults
22
-
24
+ from GridCalEngine import TapModuleControl, TapPhaseControl
25
+ from GridCalEngine.enumerations import SolverType
23
26
  from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit
24
27
 
25
- from GridCalEngine.IO.file_system import get_create_gridcal_folder
26
- from GridCalEngine.basic_structures import ConvergenceReport
28
+
29
+ from GridCalEngine.basic_structures import Logger
27
30
 
28
31
  if TYPE_CHECKING: # Only imports the below statements during type checking
29
32
  from GridCalEngine.Simulations.OPF.opf_results import OptimalPowerFlowResults
@@ -32,97 +35,6 @@ if TYPE_CHECKING: # Only imports the below statements during type checking
32
35
  from GridCalEngine.Simulations.ContingencyAnalysis.contingency_analysis_options import ContingencyAnalysisOptions
33
36
  from GridCalEngine.Simulations.ContingencyAnalysis.contingency_analysis_results import ContingencyAnalysisResults
34
37
 
35
- GSLV_RECOMMENDED_VERSION = "0.2.0"
36
- GSLV_VERSION = ''
37
- GSLV_AVAILABLE = False
38
- try:
39
- import pygslv as pg
40
-
41
- pg.activate(os.path.join(get_create_gridcal_folder(), "license.gslv"), verbose=True)
42
-
43
- # activate
44
- if not pg.isLicensed():
45
- # license not found
46
- GSLV_AVAILABLE = False
47
- else:
48
- # already activated
49
- GSLV_AVAILABLE = True
50
- GSLV_VERSION = pg.get_version()
51
-
52
- if GSLV_AVAILABLE:
53
- if GSLV_VERSION < GSLV_RECOMMENDED_VERSION:
54
- warnings.warn(f"Recommended version for GSLV is {GSLV_RECOMMENDED_VERSION} "
55
- f"instead of {GSLV_VERSION}")
56
-
57
- build_status_dict = {
58
- BuildStatus.Planned: pg.BuildStatus.Planned,
59
- BuildStatus.Commissioned: pg.BuildStatus.Commissioned,
60
- BuildStatus.Candidate: pg.BuildStatus.Candidate,
61
- BuildStatus.Decommissioned: pg.BuildStatus.Decommissioned,
62
- BuildStatus.PlannedDecommission: pg.BuildStatus.PlannedDecommission,
63
- }
64
-
65
- tap_module_control_mode_dict = {
66
- TapModuleControl.fixed: pg.TapModuleControl.fixed,
67
- TapModuleControl.Qf: pg.TapModuleControl.Qf,
68
- TapModuleControl.Qt: pg.TapModuleControl.Qt,
69
- TapModuleControl.Vm: pg.TapModuleControl.Vm,
70
- }
71
-
72
- tap_phase_control_mode_dict = {
73
- TapPhaseControl.fixed: pg.TapPhaseControl.fixed,
74
- TapPhaseControl.Pf: pg.TapPhaseControl.Pf,
75
- TapPhaseControl.Pt: pg.TapPhaseControl.Pt,
76
- }
77
-
78
- hvdc_control_mode_dict = {
79
- HvdcControlType.type_0_free: pg.HvdcControlType.type_0_free,
80
- HvdcControlType.type_1_Pset: pg.HvdcControlType.type_1_Pset,
81
- }
82
-
83
- group_type_dict = {
84
- BranchGroupTypes.GenericGroup: pg.BranchGroupTypes.GenericGroup,
85
- BranchGroupTypes.TransformerGroup: pg.BranchGroupTypes.TransformerGroup,
86
- BranchGroupTypes.LineSegmentsGroup: pg.BranchGroupTypes.LineSegmentsGroup,
87
- }
88
-
89
- contingency_ops_type_dict = {
90
- ContingencyOperationTypes.Active: pg.ContingencyOperationTypes.Active,
91
- ContingencyOperationTypes.PowerPercentage: pg.ContingencyOperationTypes.PowerPercentage,
92
- }
93
-
94
- contingency_method_dict = {
95
- ContingencyMethod.PTDF: pg.ContingencyMethod.PTDF,
96
- ContingencyMethod.PowerFlow: pg.ContingencyMethod.PowerFlow,
97
- ContingencyMethod.HELM: pg.ContingencyMethod.HELM,
98
- }
99
-
100
- converter_control_type_dict = {
101
- ConverterControlType.Vm_dc: pg.ConverterControlType.Vm_dc,
102
- ConverterControlType.Vm_ac: pg.ConverterControlType.Vm_ac,
103
- ConverterControlType.Va_ac: pg.ConverterControlType.Va_ac,
104
- ConverterControlType.Qac: pg.ConverterControlType.Q_ac,
105
- ConverterControlType.Pdc: pg.ConverterControlType.P_dc,
106
- ConverterControlType.Pac: pg.ConverterControlType.P_ac,
107
- }
108
-
109
- bus_type_dict = {
110
- BusMode.PQ_tpe.value: pg.BusMode.PQ,
111
- BusMode.PV_tpe.value: pg.BusMode.PV,
112
- BusMode.Slack_tpe.value: pg.BusMode.Slack,
113
- BusMode.P_tpe.value: pg.BusMode.P,
114
- BusMode.PQV_tpe.value: pg.BusMode.PQV,
115
- }
116
-
117
- except ImportError as e:
118
- pg = None
119
- GSLV_AVAILABLE = False
120
- GSLV_VERSION = ''
121
- build_status_dict = dict()
122
- tap_module_control_mode_dict = dict()
123
- tap_phase_control_mode_dict = dict()
124
- contingency_ops_type_dict = dict()
125
- contingency_method_dict = dict()
126
38
 
127
39
 
128
40
  def get_gslv_mip_solvers_list() -> List[str]:
@@ -188,8 +100,6 @@ def fill_profile(gslv_profile: "pg.Profiledouble|pg.Profilebool|pg.Profileint|pg
188
100
  :param default_val: Default value
189
101
  """
190
102
 
191
-
192
-
193
103
  if use_time_series:
194
104
  if gc_profile.is_sparse:
195
105
  if time_indices is None:
@@ -2418,7 +2328,8 @@ def gslv_pf(circuit: MultiCircuit,
2418
2328
  pf_opt: PowerFlowOptions,
2419
2329
  time_series: bool = False,
2420
2330
  time_indices: Union[IntVec, None] = None,
2421
- opf_results: Union[None, OptimalPowerFlowResults] = None) -> "pg.PowerFlowResults":
2331
+ opf_results: Union[None, OptimalPowerFlowResults] = None,
2332
+ logger: Logger = Logger()) -> "pg.PowerFlowResults":
2422
2333
  """
2423
2334
  GSLV power flow
2424
2335
  :param circuit: MultiCircuit instance
@@ -2449,19 +2360,23 @@ def gslv_pf(circuit: MultiCircuit,
2449
2360
  time_indices = [0]
2450
2361
  n_threads = 1
2451
2362
 
2363
+ t0 = time.time()
2452
2364
  pf_res = pg.multi_island_pf(grid=gslv_grid,
2453
2365
  options=pf_options,
2454
2366
  time_indices=time_indices,
2455
2367
  n_threads=n_threads)
2456
2368
 
2369
+ logger.add_info("gslv time", value=f"{(time.time() - t0)} s")
2370
+
2457
2371
  return pf_res
2458
2372
 
2459
2373
 
2460
- def translate_gslv_pf_results(grid: MultiCircuit, res: "pg.PowerFlowResults") -> PowerFlowResults:
2374
+ def translate_gslv_pf_results(grid: MultiCircuit, res: "pg.PowerFlowResults", logger: Logger) -> PowerFlowResults:
2461
2375
  """
2462
2376
  Translate the GSLV Power Analytics results back to GridCal
2463
2377
  :param grid: MultiCircuit instance
2464
2378
  :param res: GSLV's PowerFlowResults instance
2379
+ :param logger: Logger
2465
2380
  :return: PowerFlowResults instance
2466
2381
  """
2467
2382
  results = PowerFlowResults(
@@ -2489,10 +2404,10 @@ def translate_gslv_pf_results(grid: MultiCircuit, res: "pg.PowerFlowResults") ->
2489
2404
  results.loading = res.loading[0, :]
2490
2405
  results.losses = res.losses[0, :]
2491
2406
  # results.Vbranch = res.Vbranch[0, :]
2492
- # results.If = res.If[0, :]
2493
- # results.It = res.It[0, :]
2494
- # results.Beq = res.Beq[0, :]
2495
- results.m = res.tap_module[0, :]
2407
+ results.If = res.If[0, :]
2408
+ results.It = res.It[0, :]
2409
+
2410
+ results.tap_module = res.tap_module[0, :]
2496
2411
  results.tap_angle = res.tap_angle[0, :]
2497
2412
  # results.F = res.F
2498
2413
  # results.T = res.T
@@ -2502,6 +2417,18 @@ def translate_gslv_pf_results(grid: MultiCircuit, res: "pg.PowerFlowResults") ->
2502
2417
  results.Pt_hvdc = res.Pt_hvdc[0, :]
2503
2418
  results.loading_hvdc = res.loading_hvdc[0, :]
2504
2419
  results.losses_hvdc = res.losses_hvdc[0, :]
2420
+
2421
+ results.Pf_vsc = res.Pf_vsc[0, :]
2422
+ results.St_vsc = res.St_vsc[0, :]
2423
+ results.loading_vsc = res.loading_vsc[0, :]
2424
+ results.losses_vsc = res.losses_vsc[0, :]
2425
+
2426
+ results.gen_q = res.gen_q[0, :]
2427
+ results.battery_q = res.battery_q[0, :]
2428
+ results.shunt_q = res.shunt_q[0, :]
2429
+
2430
+ # logger.add_info("gslv time", value=res.time_array[0])
2431
+
2505
2432
  # results.bus_area_indices = grid.get_bus_area_indices()
2506
2433
  # results.area_names = [a.name for a in grid.areas]
2507
2434
  # results.bus_types = convert_bus_types(res.bus_types[0]) # this is a list of lists
@@ -2657,8 +2584,8 @@ def compare_branch_parent_data(gslv_branch_data: pg.BranchParentData,
2657
2584
  # branch data
2658
2585
  errors += CheckArrEq(np.array(gslv_branch_data.idtag), np.array(gc_branch_data.idtag), parent_name, 'idtag')
2659
2586
  errors += CheckArrEq(gslv_branch_data.F, gc_branch_data.F, parent_name, 'F')
2660
- errors += CheckArrEq(gslv_branch_data.T, gc_branch_data.T, parent_name, 'T')
2661
- errors += CheckArrEq(gslv_branch_data.active, gc_branch_data.active, parent_name, 'active')
2587
+ errors += CheckArrEq(gslv_branch_data.T, gc_branch_data.T, parent_name, 'T')
2588
+ errors += CheckArrEq(gslv_branch_data.active, gc_branch_data.active, parent_name, 'active')
2662
2589
  errors += CheckArr(gslv_branch_data.rates, gc_branch_data.rates, tol, parent_name, 'rates')
2663
2590
 
2664
2591
  errors += CheckArr(gslv_branch_data.contingency_rates, gc_branch_data.contingency_rates, tol,
@@ -2671,14 +2598,14 @@ def compare_branch_parent_data(gslv_branch_data: pg.BranchParentData,
2671
2598
  errors += CheckArr(gslv_branch_data.mttr, gc_branch_data.mttr, tol, parent_name, 'mttr')
2672
2599
 
2673
2600
  errors += CheckArrEq(gslv_branch_data.contingency_enabled, gc_branch_data.contingency_enabled,
2674
- parent_name, 'contingency_enabled')
2601
+ parent_name, 'contingency_enabled')
2675
2602
  errors += CheckArrEq(gslv_branch_data.monitor_loading, gc_branch_data.monitor_loading,
2676
- parent_name, 'monitor_loading')
2603
+ parent_name, 'monitor_loading')
2677
2604
 
2678
2605
  errors += CheckArr(gslv_branch_data.overload_cost, gc_branch_data.overload_cost, tol,
2679
2606
  parent_name, 'overload_cost')
2680
2607
  errors += CheckArrEq(gslv_branch_data.original_idx, gc_branch_data.original_idx,
2681
- parent_name, 'original_idx')
2608
+ parent_name, 'original_idx')
2682
2609
  # errors += CheckArr(gslv_branch_data.reducible, gc_branch_data.reducible, tol, parent_name, 'reducible')
2683
2610
 
2684
2611
  return errors
@@ -2695,7 +2622,7 @@ def compare_nc(nc_gslv: "pg.NumericalCircuit", nc_gc: NumericalCircuit, tol: flo
2695
2622
  errors = 0
2696
2623
 
2697
2624
  # bus data
2698
- errors += CheckArrEq(nc_gslv.bus_data.active, nc_gc.bus_data.active, 'BusData', 'active')
2625
+ errors += CheckArrEq(nc_gslv.bus_data.active, nc_gc.bus_data.active, 'BusData', 'active')
2699
2626
  errors += CheckArr(nc_gslv.bus_data.Vbus.real, nc_gc.bus_data.Vbus.real, tol, 'BusData', 'V0')
2700
2627
  errors += CheckArr(nc_gslv.bus_data.installed_power, nc_gc.bus_data.installed_power, tol,
2701
2628
  'BusData', 'installed power')
@@ -2736,14 +2663,14 @@ def compare_nc(nc_gslv: "pg.NumericalCircuit", nc_gc: NumericalCircuit, tol: flo
2736
2663
  errors += CheckArr(nc_gslv.vsc_data.control1_val, nc_gc.vsc_data.control1_val, tol, 'VscData', 'control1_val')
2737
2664
  errors += CheckArr(nc_gslv.vsc_data.control2_val, nc_gc.vsc_data.control2_val, tol, 'VscData', 'control2_val')
2738
2665
 
2739
- errors += CheckArrEq(nc_gslv.vsc_data.control1_bus_idx, nc_gc.vsc_data.control1_bus_idx, 'VscData',
2740
- 'control1_bus_idx')
2741
- errors += CheckArrEq(nc_gslv.vsc_data.control2_bus_idx, nc_gc.vsc_data.control2_bus_idx, 'VscData',
2742
- 'control2_bus_idx')
2743
- errors += CheckArrEq(nc_gslv.vsc_data.control1_branch_idx, nc_gc.vsc_data.control1_branch_idx, 'VscData',
2744
- 'control1_branch_idx')
2745
- errors += CheckArrEq(nc_gslv.vsc_data.control2_branch_idx, nc_gc.vsc_data.control2_branch_idx, 'VscData',
2746
- 'control2_branch_idx')
2666
+ errors += CheckArrEq(nc_gslv.vsc_data.control1_bus_idx, nc_gc.vsc_data.control1_bus_idx, 'VscData',
2667
+ 'control1_bus_idx')
2668
+ errors += CheckArrEq(nc_gslv.vsc_data.control2_bus_idx, nc_gc.vsc_data.control2_bus_idx, 'VscData',
2669
+ 'control2_bus_idx')
2670
+ errors += CheckArrEq(nc_gslv.vsc_data.control1_branch_idx, nc_gc.vsc_data.control1_branch_idx, 'VscData',
2671
+ 'control1_branch_idx')
2672
+ errors += CheckArrEq(nc_gslv.vsc_data.control2_branch_idx, nc_gc.vsc_data.control2_branch_idx, 'VscData',
2673
+ 'control2_branch_idx')
2747
2674
 
2748
2675
  # HVDC data
2749
2676
  errors += compare_branch_parent_data(nc_gslv.hvdc_data, nc_gc.hvdc_data, tol, "HvdcData")
@@ -2768,8 +2695,8 @@ def compare_nc(nc_gslv: "pg.NumericalCircuit", nc_gc: NumericalCircuit, tol: flo
2768
2695
  errors += CheckArr(nc_gslv.hvdc_data.Qmax_t, nc_gc.hvdc_data.Qmax_t, tol, 'HvdcData', 'Qmax_t')
2769
2696
 
2770
2697
  # generator data
2771
- errors += CheckArrEq(nc_gslv.generator_data.bus_idx, nc_gc.generator_data.bus_idx, 'GenData', 'bus_idx')
2772
- errors += CheckArrEq(nc_gslv.generator_data.active, nc_gc.generator_data.active, 'GenData', 'active')
2698
+ errors += CheckArrEq(nc_gslv.generator_data.bus_idx, nc_gc.generator_data.bus_idx, 'GenData', 'bus_idx')
2699
+ errors += CheckArrEq(nc_gslv.generator_data.active, nc_gc.generator_data.active, 'GenData', 'active')
2773
2700
  errors += CheckArr(nc_gslv.generator_data.p, nc_gc.generator_data.p, tol, 'GenData', 'P')
2774
2701
  errors += CheckArr(nc_gslv.generator_data.pf, nc_gc.generator_data.pf, tol, 'GenData', 'Pf')
2775
2702
  errors += CheckArr(nc_gslv.generator_data.v, nc_gc.generator_data.v, tol, 'GenData', 'v')
@@ -325,8 +325,9 @@ class Line(BranchParent):
325
325
  raise Exception("Template must be set before changing the circuit index.")
326
326
  if not isinstance(obj, (OverheadLineType, UndergroundLineType, SequenceLineType)):
327
327
  raise Exception("Invalid template type. Must be OverheadLineType, UndergroundLineType, or SequenceLineType.")
328
- if val > obj.n_circuits and isinstance(obj, OverheadLineType):
329
- raise Exception("Circuit index exceeds the number of circuits in the template.")
328
+ if isinstance(obj, OverheadLineType):
329
+ if val > obj.n_circuits:
330
+ raise Exception("Circuit index exceeds the number of circuits in the template.")
330
331
  if val <= 0:
331
332
  raise Exception("Circuit index must be greater than 0.")
332
333
  else:
@@ -13,7 +13,8 @@ class Wire(EditableDevice):
13
13
  to compose towers
14
14
  """
15
15
 
16
- def __init__(self, name='', idtag: Union[str, None] = None,
16
+ def __init__(self, name='',
17
+ idtag: Union[str, None] = None,
17
18
  r: float = 0.01,
18
19
  max_current: float = 1.0,
19
20
  stranding: str = "",
@@ -83,6 +83,23 @@ def parse_idtag(val: Union[str, None]) -> str:
83
83
  return str(val)
84
84
 
85
85
 
86
+ def smart_compare(a, b, atol = 1.e-10):
87
+ """
88
+ Compares two Python objects with tolerance for numerical values.
89
+
90
+ If both inputs are numeric (int, float, complex, or NumPy numbers),
91
+ the function uses `np.isclose()` to compare them. For all other types, it falls back to
92
+ standard equality comparison (`==`).
93
+
94
+ a :First object to compare.
95
+ b :Second object to compare.
96
+ :return: bool
97
+ """
98
+ if isinstance(a, float) and isinstance(b, float):
99
+ return np.isclose(a, b, atol=atol)
100
+ return a == b
101
+
102
+
86
103
  class GCProp:
87
104
  """
88
105
  GridCal property
@@ -879,7 +896,7 @@ class EditableDevice:
879
896
  v1 = self.get_property_value(prop=prop, t_idx=None)
880
897
  v2 = other.get_property_value(prop=prop, t_idx=None)
881
898
 
882
- if v1 != v2:
899
+ if not smart_compare(v1, v2):
883
900
  logger.add_info(msg="Different snapshot values",
884
901
  device_class=self.device_type.value,
885
902
  device_property=prop.name,
@@ -907,7 +924,7 @@ class EditableDevice:
907
924
  v1 = p1[t_idx]
908
925
  v2 = p2[t_idx]
909
926
 
910
- if v1 != v2:
927
+ if not smart_compare(v1, v2):
911
928
  logger.add_info(msg="Different time series values",
912
929
  device_class=self.device_type.value,
913
930
  device_property=prop.name,
@@ -919,7 +936,7 @@ class EditableDevice:
919
936
  v1b = self.get_property_value(prop=prop, t_idx=t_idx)
920
937
  v2b = other.get_property_value(prop=prop, t_idx=t_idx)
921
938
 
922
- if v1 != v1b:
939
+ if not smart_compare(v1, v1b):
923
940
  logger.add_info(
924
941
  msg="Profile values differ with different getter methods!",
925
942
  device_class=self.device_type.value,
@@ -929,7 +946,7 @@ class EditableDevice:
929
946
  expected_value=v1)
930
947
  action = ActionType.Modify
931
948
 
932
- if v2 != v2b:
949
+ if not smart_compare(v2, v2b):
933
950
  logger.add_info(
934
951
  msg="Profile getting values differ with different getter methods!",
935
952
  device_class=self.device_type.value,
@@ -167,10 +167,11 @@ def merge(A: Dict[str, Dict[str, Dict[str, str]]],
167
167
  pass
168
168
 
169
169
 
170
- def read_cgmes_files(cim_files: Union[List[str], str]) -> Dict[str, List[str]]:
170
+ def read_cgmes_files(cim_files: Union[List[str], str], logger: DataLogger) -> Dict[str, List[str]]:
171
171
  """
172
172
  Reads a list of .zip or xml into a dictionary of file name -> list of text lines
173
173
  :param cim_files: list of file names
174
+ :param logger: DataLogger instance
174
175
  :return: dictionary of file name -> list of text lines
175
176
  """
176
177
  # read files and sort them in the preferred reading order
@@ -189,21 +190,28 @@ def read_cgmes_files(cim_files: Union[List[str], str]) -> Dict[str, List[str]]:
189
190
  elif file_extension == '.zip':
190
191
  # read the content of a zip file
191
192
  d = get_xml_from_zip(file_name_zip=f)
192
- for key, value in d.items():
193
- data[key] = value
193
+ if d is not None:
194
+ for key, value in d.items():
195
+ data[key] = value
196
+ else:
197
+ logger.add_error("BadZipFile", value=f)
198
+ print(f"BadZipFile {f}")
194
199
  else:
195
200
  name, file_extension = os.path.splitext(cim_files)
196
201
 
197
202
  if file_extension == '.xml':
198
- file_ptr = open(cim_files, 'rb')
199
- data[name] = get_xml_content(file_ptr)
200
- file_ptr.close()
203
+ with open(cim_files, 'rb') as file_ptr:
204
+ data[name] = get_xml_content(file_ptr=file_ptr)
201
205
 
202
206
  elif file_extension == '.zip':
203
207
  # read the content of a zip file
204
208
  d = get_xml_from_zip(file_name_zip=cim_files)
205
- for key, value in d.items():
206
- data[key] = value
209
+ if d is not None:
210
+ for key, value in d.items():
211
+ data[key] = value
212
+ else:
213
+ logger.add_error("BadZipFile", value=cim_files)
214
+ print(f"BadZipFile {cim_files}")
207
215
 
208
216
  return data
209
217
 
@@ -324,7 +332,7 @@ class CgmesDataParser(BaseCircuit):
324
332
  "http://iec.ch/TC57/ns/CIM/StateVariables-EU/3.0",
325
333
  "http://iec.ch/TC57/ns/CIM/Topology-EU/3.0"]
326
334
  # import the cim files' content into a dictionary
327
- data = read_cgmes_files(files)
335
+ data = read_cgmes_files(cim_files=files, logger=self.logger)
328
336
  # Parse the files
329
337
  i = 0
330
338
  for file_name, file_data in data.items():
@@ -21,6 +21,32 @@ import xml.etree.ElementTree as Et
21
21
  import xml.dom.minidom
22
22
 
23
23
 
24
+ def get_available_cgmes_profiles(cgmes_version: CGMESVersions):
25
+ if cgmes_version == CGMESVersions.v2_4_15:
26
+ return {
27
+ "EQ": ["http://entsoe.eu/CIM/EquipmentCore/3/1",
28
+ "http://entsoe.eu/CIM/EquipmentShortCircuit/3/1",
29
+ "http://entsoe.eu/CIM/EquipmentOperation/3/1"],
30
+ "SSH": ["http://entsoe.eu/CIM/SteadyStateHypothesis/1/1"],
31
+ "TP": ["http://entsoe.eu/CIM/Topology/4/1"],
32
+ "SV": ["http://entsoe.eu/CIM/StateVariables/4/1"],
33
+ "GL": ["http://entsoe.eu/CIM/GeographicalLocation/2/1"]
34
+ }
35
+ elif cgmes_version == CGMESVersions.v3_0_0:
36
+ return {
37
+ "EQ": ["http://iec.ch/TC57/ns/CIM/CoreEquipment-EU/3.0"],
38
+ "OP": ["http://iec.ch/TC57/ns/CIM/Operation-EU/3.0"],
39
+ "SC": ["http://iec.ch/TC57/ns/CIM/ShortCircuit-EU/3.0"],
40
+ "SSH": ["http://iec.ch/TC57/ns/CIM/SteadyStateHypothesis-EU/3.0"],
41
+ "TP": ["http://iec.ch/TC57/ns/CIM/Topology-EU/3.0"],
42
+ "SV": ["http://iec.ch/TC57/ns/CIM/StateVariables-EU/3.0"],
43
+ "GL": ["http://iec.ch/TC57/ns/CIM/GeographicalLocation-EU/3.0"]
44
+ }
45
+ else:
46
+ print(f"CGMES Version not suported {cgmes_version.value}")
47
+ return dict()
48
+
49
+
24
50
  class CimExporter:
25
51
  def __init__(self, cgmes_circuit: CgmesCircuit, profiles_to_export: List[cgmesProfile], one_file_per_profile: bool):
26
52
  self.cgmes_circuit = cgmes_circuit
@@ -48,15 +74,7 @@ class CimExporter:
48
74
  "xmlns:entsoe": "http://entsoe.eu/CIM/SchemaExtension/3/1#",
49
75
  "xmlns:rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
50
76
  }
51
- self.profile_uris = {
52
- "EQ": ["http://entsoe.eu/CIM/EquipmentCore/3/1",
53
- "http://entsoe.eu/CIM/EquipmentShortCircuit/3/1",
54
- "http://entsoe.eu/CIM/EquipmentOperation/3/1"],
55
- "SSH": ["http://entsoe.eu/CIM/SteadyStateHypothesis/1/1"],
56
- "TP": ["http://entsoe.eu/CIM/Topology/4/1"],
57
- "SV": ["http://entsoe.eu/CIM/StateVariables/4/1"],
58
- "GL": ["http://entsoe.eu/CIM/GeographicalLocation/2/1"]
59
- }
77
+ self.profile_uris = get_available_cgmes_profiles(cgmes_version=cgmes_circuit.cgmes_version)
60
78
 
61
79
  self.enum_dict = dict()
62
80
  self.about_dict = dict()
@@ -101,15 +119,8 @@ class CimExporter:
101
119
  "xmlns:eu": "http://iec.ch/TC57/CIM100-European#",
102
120
  "xmlns:rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
103
121
  }
104
- self.profile_uris = {
105
- "EQ": ["http://iec.ch/TC57/ns/CIM/CoreEquipment-EU/3.0"],
106
- "OP": ["http://iec.ch/TC57/ns/CIM/Operation-EU/3.0"],
107
- "SC": ["http://iec.ch/TC57/ns/CIM/ShortCircuit-EU/3.0"],
108
- "SSH": ["http://iec.ch/TC57/ns/CIM/SteadyStateHypothesis-EU/3.0"],
109
- "TP": ["http://iec.ch/TC57/ns/CIM/Topology-EU/3.0"],
110
- "SV": ["http://iec.ch/TC57/ns/CIM/StateVariables-EU/3.0"],
111
- "GL": ["http://iec.ch/TC57/ns/CIM/GeographicalLocation-EU/3.0"]
112
- }
122
+ self.profile_uris = get_available_cgmes_profiles(cgmes_version=cgmes_circuit.cgmes_version)
123
+
113
124
  self.enum_dict = dict()
114
125
  self.about_dict = dict()
115
126
  for s_i, p_i, o_i in rdf_serialization.triples((None, RDF.type, RDFS.Class)):
@@ -279,7 +279,7 @@ def get_gcdev_buses(cgmes_model: CgmesCircuit,
279
279
  gc_model: MultiCircuit,
280
280
  v_dict: Dict[str, Tuple[float, float]],
281
281
  cn_look_up: CnLookup,
282
- logger: DataLogger) -> Dict[str, gcdev.Bus]:
282
+ logger: DataLogger) -> Tuple[Dict[str, gcdev.Bus], bool]:
283
283
  """
284
284
  Convert the TopologicalNodes to Buses (CalculationNodes)
285
285
 
@@ -289,7 +289,7 @@ def get_gcdev_buses(cgmes_model: CgmesCircuit,
289
289
  :param cn_look_up: CnLookup
290
290
  :param logger: DataLogger
291
291
  :return: dictionary relating the TopologicalNode uuid to the gcdev CalculationNode
292
- Dict[str, gcdev.Bus]
292
+ Dict[str, gcdev.Bus], fatal error?
293
293
  """
294
294
 
295
295
  slack_id = get_slack_id(cgmes_model.cgmes_assets.SynchronousMachine_list)
@@ -310,11 +310,12 @@ def get_gcdev_buses(cgmes_model: CgmesCircuit,
310
310
  device_class=tp_node.tpe,
311
311
  device_property="nominalVoltage")
312
312
  elif nominal_voltage is None:
313
- logger.add_error(msg='Nominal voltage is None. :(',
313
+ logger.add_error(msg='Nominal voltage is None. Maybe boundary was not attached for import :(',
314
314
  device=tp_node.rdfid,
315
315
  device_class=tp_node.tpe,
316
316
  device_property="nominalVoltage")
317
- raise Exception("Nominal voltage is missing for Bus (Maybe boundary was not attached for import) !")
317
+ # raise Exception("Nominal voltage is missing for Bus (Maybe boundary was not attached for import) !")
318
+ return calc_node_dict, True
318
319
 
319
320
 
320
321
  if voltage is not None and nominal_voltage is not None:
@@ -392,7 +393,7 @@ def get_gcdev_buses(cgmes_model: CgmesCircuit,
392
393
  cn_look_up.add_bus(bus=gcdev_elm)
393
394
  calc_node_dict[gcdev_elm.idtag] = gcdev_elm
394
395
 
395
- return calc_node_dict
396
+ return calc_node_dict, False
396
397
 
397
398
 
398
399
  def get_gcdev_dc_buses(cgmes_model: CgmesCircuit,
@@ -2339,11 +2340,14 @@ def cgmes_to_gridcal(cgmes_model: CgmesCircuit,
2339
2340
  device_to_terminal_dict = get_gcdev_device_to_terminal_dict(cgmes_model=cgmes_model,
2340
2341
  logger=logger)
2341
2342
 
2342
- calc_node_dict: Dict[str, gcdev.Bus] = get_gcdev_buses(cgmes_model=cgmes_model,
2343
- gc_model=gc_model,
2344
- v_dict=sv_volt_dict,
2345
- cn_look_up=cn_look_up,
2346
- logger=logger)
2343
+ calc_node_dict, fatal_error = get_gcdev_buses(cgmes_model=cgmes_model,
2344
+ gc_model=gc_model,
2345
+ v_dict=sv_volt_dict,
2346
+ cn_look_up=cn_look_up,
2347
+ logger=logger)
2348
+
2349
+ if fatal_error:
2350
+ return gc_model
2347
2351
 
2348
2352
  cn_dict = get_gcdev_connectivity_nodes(cgmes_model=cgmes_model,
2349
2353
  gcdev_model=gc_model,
@@ -14,7 +14,7 @@ from GridCalEngine.IO.cim.cim16.cim_circuit import CIMCircuit
14
14
  from GridCalEngine.data_logger import DataLogger
15
15
 
16
16
 
17
- def read_cim_files(cim_files):
17
+ def read_cim_files(cim_files, logger: DataLogger):
18
18
  """
19
19
  Reads a list of .zip or xml into a dictionary of file name -> list of text lines
20
20
  :param cim_files: list of file names
@@ -49,8 +49,13 @@ def read_cim_files(cim_files):
49
49
  elif file_extension == '.zip':
50
50
  # read the content of a zip file
51
51
  d = get_xml_from_zip(file_name_zip=cim_files)
52
- for key, value in d.items():
53
- data[key] = value
52
+
53
+ if d is not None:
54
+ for key, value in d.items():
55
+ data[key] = value
56
+ else:
57
+ logger.add_error("BadZipFile", value=cim_files)
58
+ print(f"BadZipFile {cim_files}")
54
59
 
55
60
  return data
56
61
 
@@ -968,7 +973,7 @@ class CIMImport:
968
973
  self.cim = CIMCircuit(text_func=self.text_func, progress_func=self.progress_func, logger=self.logger)
969
974
 
970
975
  # import the cim files' content into a dictionary
971
- data = read_cim_files(cim_files)
976
+ data = read_cim_files(cim_files=cim_files, logger=self.logger)
972
977
 
973
978
  lst2 = sort_cim_files(list(data.keys()))
974
979
  # Parse the files
@@ -417,6 +417,10 @@ class FileOpen:
417
417
  self.circuit = cgmes_to_gridcal(cgmes_model=self.cgmes_circuit,
418
418
  map_dc_to_hvdc_line=self.options.try_to_map_dc_to_hvdc_line,
419
419
  logger=self.cgmes_logger)
420
+
421
+ if self.cgmes_logger.has_logs():
422
+ self.logger += self.cgmes_logger.get_logger()
423
+
420
424
  else:
421
425
  # try CIM
422
426
  parser = CIMImport(text_func=text_func, progress_func=progress_func)
@@ -3,7 +3,7 @@
3
3
  # file, You can obtain one at https://mozilla.org/MPL/2.0/.
4
4
  # SPDX-License-Identifier: MPL-2.0
5
5
  import json
6
- from io import StringIO, TextIOWrapper, BytesIO
6
+ from io import StringIO, TextIOWrapper, BytesIO, BufferedReader
7
7
  import os
8
8
  import numpy as np
9
9
  import chardet
@@ -435,7 +435,7 @@ def load_session_driver_objects(file_name_zip: str,
435
435
  return data
436
436
 
437
437
 
438
- def get_xml_content(file_ptr: zipfile.ZipExtFile) -> List[str]:
438
+ def get_xml_content(file_ptr: zipfile.ZipExtFile | BufferedReader) -> List[str]:
439
439
  """
440
440
  Reads the content of a file
441
441
  :param file_ptr: File pointer (from file or zip file)
@@ -167,14 +167,25 @@ class ContingencyAnalysisDriver(DriverTemplate):
167
167
 
168
168
  elif self.engine == EngineType.GSLV:
169
169
 
170
- self.report_text("Running contingencies in newton...")
170
+ self.report_text("Running contingencies in gslv...")
171
171
  con_res = gslv_contingencies(circuit=self.grid,
172
172
  con_opt=self.options,
173
173
  time_series=False,
174
174
  time_indices=None)
175
175
 
176
- self.results = translate_newton_pa_contingencies(grid=self.grid,
177
- con_res=con_res)
176
+ self.results = ContingencyAnalysisResults(
177
+ ncon=self.grid.get_contingency_groups_number(),
178
+ nbus=self.grid.get_bus_number(),
179
+ nbr=self.grid.get_branch_number_wo_hvdc(),
180
+ bus_names=self.grid.get_bus_names(),
181
+ branch_names=self.grid.get_branch_names_wo_hvdc(),
182
+ bus_types=np.ones(self.grid.get_bus_number(), dtype=int),
183
+ con_names=np.array(self.grid.get_contingency_group_names())
184
+ )
185
+
186
+ # results.S[t, :] = res_t.S.real.max(axis=0)
187
+ self.results.max_flows = con_res.max_values.Sf[0, :]
188
+ self.results.max_loading = con_res.max_values.loading[0, :]
178
189
 
179
190
  return self.results
180
191