ltbams 1.0.2a1__tar.gz → 1.0.3__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 (200) hide show
  1. {ltbams-1.0.2a1/ltbams.egg-info → ltbams-1.0.3}/PKG-INFO +14 -7
  2. {ltbams-1.0.2a1 → ltbams-1.0.3}/README.md +13 -6
  3. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/_version.py +3 -3
  4. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/interface.py +6 -1
  5. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/conf.py +3 -0
  6. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/getting_started/install.rst +8 -11
  7. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/release-notes.rst +10 -1
  8. {ltbams-1.0.2a1 → ltbams-1.0.3/ltbams.egg-info}/PKG-INFO +14 -7
  9. {ltbams-1.0.2a1 → ltbams-1.0.3}/CONTRIBUTING.rst +0 -0
  10. {ltbams-1.0.2a1 → ltbams-1.0.3}/LICENSE +0 -0
  11. {ltbams-1.0.2a1 → ltbams-1.0.3}/MANIFEST.in +0 -0
  12. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/__init__.py +0 -0
  13. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/__main__.py +0 -0
  14. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/5bus/pjm5bus_demo.xlsx +0 -0
  15. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/5bus/pjm5bus_jumper.xlsx +0 -0
  16. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/5bus/pjm5bus_uced.json +0 -0
  17. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/5bus/pjm5bus_uced.xlsx +0 -0
  18. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/5bus/pjm5bus_uced_esd1.xlsx +0 -0
  19. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/5bus/pjm5bus_uced_ev.xlsx +0 -0
  20. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/ieee123/ieee123.xlsx +0 -0
  21. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/ieee123/ieee123_regcv1.xlsx +0 -0
  22. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/ieee14/ieee14.json +0 -0
  23. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/ieee14/ieee14.raw +0 -0
  24. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/ieee14/ieee14_conn.xlsx +0 -0
  25. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/ieee14/ieee14_uced.xlsx +0 -0
  26. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/ieee39/ieee39.xlsx +0 -0
  27. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/ieee39/ieee39_uced.xlsx +0 -0
  28. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/ieee39/ieee39_uced_esd1.xlsx +0 -0
  29. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/ieee39/ieee39_uced_pvd1.xlsx +0 -0
  30. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/ieee39/ieee39_uced_vis.xlsx +0 -0
  31. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/matpower/benchmark.json +0 -0
  32. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/matpower/case118.m +0 -0
  33. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/matpower/case14.m +0 -0
  34. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/matpower/case300.m +0 -0
  35. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/matpower/case39.m +0 -0
  36. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/matpower/case5.m +0 -0
  37. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/matpower/case_ACTIVSg2000.m +0 -0
  38. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/npcc/npcc.m +0 -0
  39. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/npcc/npcc_uced.xlsx +0 -0
  40. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/pglib/pglib_opf_case39_epri__api.m +0 -0
  41. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/wecc/wecc.m +0 -0
  42. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cases/wecc/wecc_uced.xlsx +0 -0
  43. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/cli.py +0 -0
  44. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/core/__init__.py +0 -0
  45. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/core/documenter.py +0 -0
  46. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/core/matprocessor.py +0 -0
  47. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/core/model.py +0 -0
  48. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/core/param.py +0 -0
  49. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/core/service.py +0 -0
  50. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/core/symprocessor.py +0 -0
  51. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/core/var.py +0 -0
  52. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/extension/__init__.py +0 -0
  53. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/extension/eva.py +0 -0
  54. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/io/__init__.py +0 -0
  55. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/io/json.py +0 -0
  56. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/io/matpower.py +0 -0
  57. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/io/psse.py +0 -0
  58. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/io/pypower.py +0 -0
  59. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/io/xlsx.py +0 -0
  60. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/main.py +0 -0
  61. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/__init__.py +0 -0
  62. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/area.py +0 -0
  63. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/bus.py +0 -0
  64. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/cost.py +0 -0
  65. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/distributed/__init__.py +0 -0
  66. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/distributed/esd1.py +0 -0
  67. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/distributed/ev.py +0 -0
  68. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/distributed/pvd1.py +0 -0
  69. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/group.py +0 -0
  70. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/info.py +0 -0
  71. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/line.py +0 -0
  72. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/renewable/__init__.py +0 -0
  73. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/renewable/regc.py +0 -0
  74. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/reserve.py +0 -0
  75. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/shunt.py +0 -0
  76. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/static/__init__.py +0 -0
  77. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/static/gen.py +0 -0
  78. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/static/pq.py +0 -0
  79. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/timeslot.py +0 -0
  80. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/models/zone.py +0 -0
  81. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/opt/__init__.py +0 -0
  82. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/opt/constraint.py +0 -0
  83. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/opt/exprcalc.py +0 -0
  84. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/opt/expression.py +0 -0
  85. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/opt/objective.py +0 -0
  86. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/opt/omodel.py +0 -0
  87. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/opt/optzbase.py +0 -0
  88. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/opt/param.py +0 -0
  89. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/opt/var.py +0 -0
  90. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/__init__.py +0 -0
  91. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/_compat.py +0 -0
  92. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/core/__init__.py +0 -0
  93. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/core/pips.py +0 -0
  94. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/core/ppoption.py +0 -0
  95. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/core/ppver.py +0 -0
  96. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/core/solver.py +0 -0
  97. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/eps.py +0 -0
  98. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/idx.py +0 -0
  99. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/io.py +0 -0
  100. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/make/__init__.py +0 -0
  101. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/make/matrices.py +0 -0
  102. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/make/pdv.py +0 -0
  103. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/routines/__init__.py +0 -0
  104. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/routines/cpf.py +0 -0
  105. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/routines/cpf_callbacks.py +0 -0
  106. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/routines/opf.py +0 -0
  107. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/routines/opffcns.py +0 -0
  108. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/routines/pflow.py +0 -0
  109. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/toggle.py +0 -0
  110. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/pypower/utils.py +0 -0
  111. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/report.py +0 -0
  112. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/__init__.py +0 -0
  113. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/acopf.py +0 -0
  114. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/cpf.py +0 -0
  115. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/dcopf.py +0 -0
  116. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/dcpf.py +0 -0
  117. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/dcpf0.py +0 -0
  118. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/dopf.py +0 -0
  119. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/ed.py +0 -0
  120. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/pflow.py +0 -0
  121. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/pflow0.py +0 -0
  122. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/routine.py +0 -0
  123. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/rted.py +0 -0
  124. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/type.py +0 -0
  125. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/routines/uc.py +0 -0
  126. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/shared.py +0 -0
  127. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/system.py +0 -0
  128. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/utils/__init__.py +0 -0
  129. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/utils/misc.py +0 -0
  130. {ltbams-1.0.2a1 → ltbams-1.0.3}/ams/utils/paths.py +0 -0
  131. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/Makefile +0 -0
  132. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/make.bat +0 -0
  133. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/_templates/autosummary/base.rst +0 -0
  134. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/_templates/autosummary/class.rst +0 -0
  135. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/_templates/autosummary/module.rst +0 -0
  136. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/_templates/autosummary/module_toctree.rst +0 -0
  137. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/api.rst +0 -0
  138. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/examples/index.rst +0 -0
  139. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/genmodelref.py +0 -0
  140. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/genroutineref.py +0 -0
  141. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/getting_started/copyright.rst +0 -0
  142. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/getting_started/formats/index.rst +0 -0
  143. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/getting_started/formats/matpower.rst +0 -0
  144. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/getting_started/formats/psse.rst +0 -0
  145. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/getting_started/formats/pypower.rst +0 -0
  146. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/getting_started/formats/xlsx.png +0 -0
  147. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/getting_started/formats/xlsx.rst +0 -0
  148. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/getting_started/index.rst +0 -0
  149. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/getting_started/overview.rst +0 -0
  150. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/getting_started/testcase.rst +0 -0
  151. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/getting_started/verification.rst +0 -0
  152. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/images/curent.ico +0 -0
  153. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/images/dcopf_time.png +0 -0
  154. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png +0 -0
  155. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/images/sponsors/CURENT_Logo_Transparent.png +0 -0
  156. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/images/sponsors/CURENT_Logo_Transparent_Name.png +0 -0
  157. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/images/sponsors/doe.png +0 -0
  158. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/index.rst +0 -0
  159. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/modeling/example.rst +0 -0
  160. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/modeling/index.rst +0 -0
  161. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/modeling/model.rst +0 -0
  162. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/modeling/routine.rst +0 -0
  163. {ltbams-1.0.2a1 → ltbams-1.0.3}/docs/source/modeling/system.rst +0 -0
  164. {ltbams-1.0.2a1 → ltbams-1.0.3}/ltbams.egg-info/SOURCES.txt +0 -0
  165. {ltbams-1.0.2a1 → ltbams-1.0.3}/ltbams.egg-info/dependency_links.txt +0 -0
  166. {ltbams-1.0.2a1 → ltbams-1.0.3}/ltbams.egg-info/entry_points.txt +0 -0
  167. {ltbams-1.0.2a1 → ltbams-1.0.3}/ltbams.egg-info/requires.txt +0 -0
  168. {ltbams-1.0.2a1 → ltbams-1.0.3}/ltbams.egg-info/top_level.txt +0 -0
  169. {ltbams-1.0.2a1 → ltbams-1.0.3}/pyproject.toml +0 -0
  170. {ltbams-1.0.2a1 → ltbams-1.0.3}/requirements-dev.txt +0 -0
  171. {ltbams-1.0.2a1 → ltbams-1.0.3}/requirements.txt +0 -0
  172. {ltbams-1.0.2a1 → ltbams-1.0.3}/setup.cfg +0 -0
  173. {ltbams-1.0.2a1 → ltbams-1.0.3}/setup.py +0 -0
  174. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/__init__.py +0 -0
  175. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_1st_system.py +0 -0
  176. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_addressing.py +0 -0
  177. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_andes_mats.py +0 -0
  178. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_case.py +0 -0
  179. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_cli.py +0 -0
  180. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_export_csv.py +0 -0
  181. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_group.py +0 -0
  182. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_interface.py +0 -0
  183. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_io.py +0 -0
  184. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_jumper.py +0 -0
  185. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_known_good.py +0 -0
  186. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_matp.py +0 -0
  187. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_model.py +0 -0
  188. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_omodel.py +0 -0
  189. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_paths.py +0 -0
  190. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_report.py +0 -0
  191. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_repr.py +0 -0
  192. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_routine.py +0 -0
  193. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_rtn_dcopf.py +0 -0
  194. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_rtn_dcpf.py +0 -0
  195. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_rtn_ed.py +0 -0
  196. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_rtn_pflow.py +0 -0
  197. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_rtn_rted.py +0 -0
  198. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_rtn_uc.py +0 -0
  199. {ltbams-1.0.2a1 → ltbams-1.0.3}/tests/test_service.py +0 -0
  200. {ltbams-1.0.2a1 → ltbams-1.0.3}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ltbams
3
- Version: 1.0.2a1
3
+ Version: 1.0.3
4
4
  Summary: Python software for scheduling modeling and co-simulation with dynamics.
5
5
  Home-page: https://github.com/CURENT/ams
6
6
  Author: Jinning Wang
@@ -33,18 +33,24 @@ Python Software for Power System Scheduling Modeling and Co-Simulation with Dyna
33
33
  [![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](https://github.com/CURENT/ams/blob/master/LICENSE)
34
34
  ![platforms](https://anaconda.org/conda-forge/ltbams/badges/platforms.svg)
35
35
  [![Python Versions](https://img.shields.io/badge/Python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/)
36
+ [![DOI:10.1109/TSTE.2025.3528027](https://zenodo.org/badge/DOI/10.1109/TSTE.2025.3528027.svg)](https://ieeexplore.ieee.org/document/10836855)
36
37
  [![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
38
+ [![codecov](https://codecov.io/gh/CURENT/ams/graph/badge.svg?token=RZI5GLLBQH)](https://codecov.io/gh/CURENT/ams)
37
39
  ![Repo Size](https://img.shields.io/github/repo-size/CURENT/ams)
38
40
  [![GitHub last commit (master)](https://img.shields.io/github/last-commit/CURENT/ams/master?label=last%20commit%20to%20master)](https://github.com/CURENT/ams/commits/master/)
39
41
  [![GitHub last commit (develop)](https://img.shields.io/github/last-commit/CURENT/ams/develop?label=last%20commit%20to%20develop)](https://github.com/CURENT/ams/commits/develop/)
40
42
  [![libraries](https://img.shields.io/librariesio/release/pypi/ltbams)](https://libraries.io/pypi/ltbams)
41
43
  [![Structure](https://img.shields.io/badge/code_base-visualize-blue)](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams)
42
44
 
45
+ [![Compatibility Tests](https://github.com/CURENT/ams/actions/workflows/compatibility.yml/badge.svg)](https://github.com/CURENT/ams/actions/workflows/compatibility.yml)
46
+ [![Publish to TestPyPI and PyPI](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml/badge.svg?branch=master)](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml)
47
+ [![Azure Pipline](https://dev.azure.com/curentltb/ams/_apis/build/status%2FCURENT.ams?branchName=master)](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=master)
48
+
43
49
  <img src="docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png" alt="CURENT ERC Logo" width="300" height="auto">
44
50
 
45
- | | Latest | Stable |
51
+ | | Stable | Latest |
46
52
  |---------------|-----------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
47
- | Documentation | [![Latest Documentation](https://readthedocs.org/projects/ams/badge/?version=latest)](https://ams.readthedocs.io/en/latest/?badge=latest) | [![Documentation Status](https://readthedocs.org/projects/ams/badge/?version=stable)](https://ams.readthedocs.io/en/stable/?badge=stable) |
53
+ | Documentation | [![Documentation Status](https://readthedocs.org/projects/ams/badge/?version=stable)](https://ams.readthedocs.io/en/stable/?badge=stable) | [![Latest Documentation](https://readthedocs.org/projects/ams/badge/?version=latest)](https://ams.readthedocs.io/en/latest/?badge=latest) |
48
54
 
49
55
 
50
56
  | Badges | | |
@@ -52,7 +58,7 @@ Python Software for Power System Scheduling Modeling and Co-Simulation with Dyna
52
58
  | Downloads | [![PyPI Version](https://img.shields.io/pypi/v/ltbams.svg)](https://pypi.python.org/pypi/ltbams) | [![Conda Version](https://anaconda.org/conda-forge/ltbams/badges/version.svg)](https://anaconda.org/conda-forge/ltbams) |
53
59
  | Try on Binder | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/curent/ams/master) | |
54
60
  | Code Quality |[![Codacy Badge](https://app.codacy.com/project/badge/Grade/69456da1b8634f2f984bd769e35f0050)](https://app.codacy.com/gh/CURENT/ams/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)| [![Codacy Badge](https://app.codacy.com/project/badge/Coverage/69456da1b8634f2f984bd769e35f0050)](https://app.codacy.com/gh/CURENT/ams/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_coverage) |
55
- | Build Status | [![GitHub Action Status](https://github.com/CURENT/ams/workflows/Python%20application/badge.svg)](https://github.com/curent/ams/actions) | [![Build Status](https://dev.azure.com/curentltb/ams/_apis/build/status%2FCURENT.ams?branchName=master)](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=master) |
61
+
56
62
 
57
63
 
58
64
  # Why AMS
@@ -139,11 +145,12 @@ pip install git+https://github.com/CURENT/ams.git
139
145
  ```
140
146
 
141
147
  ***NOTE:***
142
- - Version **0.9.9** has known issues and has been yanked from PyPI
143
- - `kvxopt` is recommended to install via `conda` as sometimes ``pip`` struggles to set the correct path for compiled libraries
148
+ - `cvxpy` is distributed with the open source solvers CLARABEL, OSQP, and SCS, but MIP-capable solvers need separate installation
144
149
  - `cvxpy` versions **below 1.5** are incompatible with `numpy` versions **2.0 and above**
145
150
  - If the solver `SCIP` encounters an import error caused by a missing `libscip.9.1.dylib`, try reinstalling its Python interface by running `pip install pyscipopt --no-binary scip --force`
146
- - Version **1.0.0** is only available on PyPI
151
+ - `kvxopt` is recommended to install via `conda` as sometimes ``pip`` struggles to set the correct path for compiled libraries
152
+ - Versions **1.0.0** and **1.0.1** are only available on PyPI
153
+ - Version **0.9.9** has known issues and has been yanked from PyPI
147
154
 
148
155
  # Example Usage
149
156
 
@@ -5,18 +5,24 @@ Python Software for Power System Scheduling Modeling and Co-Simulation with Dyna
5
5
  [![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](https://github.com/CURENT/ams/blob/master/LICENSE)
6
6
  ![platforms](https://anaconda.org/conda-forge/ltbams/badges/platforms.svg)
7
7
  [![Python Versions](https://img.shields.io/badge/Python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/)
8
+ [![DOI:10.1109/TSTE.2025.3528027](https://zenodo.org/badge/DOI/10.1109/TSTE.2025.3528027.svg)](https://ieeexplore.ieee.org/document/10836855)
8
9
  [![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
10
+ [![codecov](https://codecov.io/gh/CURENT/ams/graph/badge.svg?token=RZI5GLLBQH)](https://codecov.io/gh/CURENT/ams)
9
11
  ![Repo Size](https://img.shields.io/github/repo-size/CURENT/ams)
10
12
  [![GitHub last commit (master)](https://img.shields.io/github/last-commit/CURENT/ams/master?label=last%20commit%20to%20master)](https://github.com/CURENT/ams/commits/master/)
11
13
  [![GitHub last commit (develop)](https://img.shields.io/github/last-commit/CURENT/ams/develop?label=last%20commit%20to%20develop)](https://github.com/CURENT/ams/commits/develop/)
12
14
  [![libraries](https://img.shields.io/librariesio/release/pypi/ltbams)](https://libraries.io/pypi/ltbams)
13
15
  [![Structure](https://img.shields.io/badge/code_base-visualize-blue)](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams)
14
16
 
17
+ [![Compatibility Tests](https://github.com/CURENT/ams/actions/workflows/compatibility.yml/badge.svg)](https://github.com/CURENT/ams/actions/workflows/compatibility.yml)
18
+ [![Publish to TestPyPI and PyPI](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml/badge.svg?branch=master)](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml)
19
+ [![Azure Pipline](https://dev.azure.com/curentltb/ams/_apis/build/status%2FCURENT.ams?branchName=master)](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=master)
20
+
15
21
  <img src="docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png" alt="CURENT ERC Logo" width="300" height="auto">
16
22
 
17
- | | Latest | Stable |
23
+ | | Stable | Latest |
18
24
  |---------------|-----------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
19
- | Documentation | [![Latest Documentation](https://readthedocs.org/projects/ams/badge/?version=latest)](https://ams.readthedocs.io/en/latest/?badge=latest) | [![Documentation Status](https://readthedocs.org/projects/ams/badge/?version=stable)](https://ams.readthedocs.io/en/stable/?badge=stable) |
25
+ | Documentation | [![Documentation Status](https://readthedocs.org/projects/ams/badge/?version=stable)](https://ams.readthedocs.io/en/stable/?badge=stable) | [![Latest Documentation](https://readthedocs.org/projects/ams/badge/?version=latest)](https://ams.readthedocs.io/en/latest/?badge=latest) |
20
26
 
21
27
 
22
28
  | Badges | | |
@@ -24,7 +30,7 @@ Python Software for Power System Scheduling Modeling and Co-Simulation with Dyna
24
30
  | Downloads | [![PyPI Version](https://img.shields.io/pypi/v/ltbams.svg)](https://pypi.python.org/pypi/ltbams) | [![Conda Version](https://anaconda.org/conda-forge/ltbams/badges/version.svg)](https://anaconda.org/conda-forge/ltbams) |
25
31
  | Try on Binder | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/curent/ams/master) | |
26
32
  | Code Quality |[![Codacy Badge](https://app.codacy.com/project/badge/Grade/69456da1b8634f2f984bd769e35f0050)](https://app.codacy.com/gh/CURENT/ams/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)| [![Codacy Badge](https://app.codacy.com/project/badge/Coverage/69456da1b8634f2f984bd769e35f0050)](https://app.codacy.com/gh/CURENT/ams/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_coverage) |
27
- | Build Status | [![GitHub Action Status](https://github.com/CURENT/ams/workflows/Python%20application/badge.svg)](https://github.com/curent/ams/actions) | [![Build Status](https://dev.azure.com/curentltb/ams/_apis/build/status%2FCURENT.ams?branchName=master)](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=master) |
33
+
28
34
 
29
35
 
30
36
  # Why AMS
@@ -111,11 +117,12 @@ pip install git+https://github.com/CURENT/ams.git
111
117
  ```
112
118
 
113
119
  ***NOTE:***
114
- - Version **0.9.9** has known issues and has been yanked from PyPI
115
- - `kvxopt` is recommended to install via `conda` as sometimes ``pip`` struggles to set the correct path for compiled libraries
120
+ - `cvxpy` is distributed with the open source solvers CLARABEL, OSQP, and SCS, but MIP-capable solvers need separate installation
116
121
  - `cvxpy` versions **below 1.5** are incompatible with `numpy` versions **2.0 and above**
117
122
  - If the solver `SCIP` encounters an import error caused by a missing `libscip.9.1.dylib`, try reinstalling its Python interface by running `pip install pyscipopt --no-binary scip --force`
118
- - Version **1.0.0** is only available on PyPI
123
+ - `kvxopt` is recommended to install via `conda` as sometimes ``pip`` struggles to set the correct path for compiled libraries
124
+ - Versions **1.0.0** and **1.0.1** are only available on PyPI
125
+ - Version **0.9.9** has known issues and has been yanked from PyPI
119
126
 
120
127
  # Example Usage
121
128
 
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-02-01T20:53:27-0500",
11
+ "date": "2025-03-17T16:36:49-0400",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "b8525bc311f8262880316ee9cf5e697ad7ed80fc",
15
- "version": "1.0.2a1"
14
+ "full-revisionid": "d97c7b0b052ca9a5dd266cedb75054b5b0720010",
15
+ "version": "1.0.3"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -336,7 +336,12 @@ def parse_addfile(adsys, amsys, addfile):
336
336
 
337
337
  # NOTE: Group TimedEvent needs special treatment
338
338
  # adjust Toggle and Fault models
339
- toggle_df = df_models.get('Toggle') or df_models.get('Toggler')
339
+ keys_toggle = ['Toggle', 'Toggler']
340
+ toggle_df = None
341
+ for key in keys_toggle:
342
+ if key in df_models:
343
+ toggle_df = df_models[key]
344
+ break
340
345
  if toggle_df is not None:
341
346
  toggle_df['dev'] = toggle_df.apply(replace_dev, axis=1,
342
347
  mdl='model', dev='dev',
@@ -201,3 +201,6 @@ shutil.copytree("../../examples/demonstration", "_examples/demo", )
201
201
  # sphinx-panels shouldn't add bootstrap css since the pydata-sphinx-theme
202
202
  # already loads it
203
203
  panels_add_bootstrap_css = False
204
+
205
+ # specify image loading behavior
206
+ image_loading = 'link'
@@ -71,7 +71,8 @@ development packages. Other packages will be required for interoperability.
71
71
  The extra support packages are specified in groups. The following group names
72
72
  are supported, with descriptions given below:
73
73
 
74
- - ``dev``: packages to support development such as testing and documentation
74
+ - ``dev``: packages to support development such as testing
75
+ - ``doc``: packages to support documentation building
75
76
 
76
77
  .. note::
77
78
 
@@ -82,15 +83,9 @@ To install packages in the ``dev`` when installing AMS, do:
82
83
 
83
84
  .. code:: bash
84
85
 
85
- pip install ltbams[dev]
86
+ pip install -r requirements-dev.txt
86
87
 
87
- To install all extra packages, do:
88
-
89
- .. code:: bash
90
-
91
- pip install ltbams[all]
92
-
93
- One can also inspect the ``requirements-extra.txt`` to identify the packages
88
+ One can also inspect the ``requirements-dev.txt`` to identify the packages
94
89
  for manual installation.
95
90
 
96
91
  .. _Develop Install:
@@ -134,14 +129,16 @@ Install dependencies with
134
129
  .. code:: bash
135
130
 
136
131
  mamba install --file requirements.txt
137
- mamba install --file requirements-extra.txt
132
+ mamba install --file requirements-dev.txt
133
+ mamba install --file requirements-doc.txt
138
134
 
139
135
  Alternatively, you can install them with ``pip``:
140
136
 
141
137
  .. code:: bash
142
138
 
143
139
  pip install -r requirements.txt
144
- pip install -r requirements-extra.txt
140
+ pip install -r requirements-dev.txt
141
+ pip install -r requirements-doc.txt
145
142
 
146
143
  Step 3: Install AMS in the development mode using
147
144
 
@@ -6,9 +6,15 @@ Release notes
6
6
 
7
7
  The APIs before v3.0.0 are in beta and may change without prior notice.
8
8
 
9
- Pre-v1.0.0
9
+ v1.0
10
10
  ==========
11
11
 
12
+ v1.0.3 (2024-03-17)
13
+
14
+ --------------------
15
+
16
+ - Bug fix in function ``ams.interface.parse_addfile``, released in v1.0.3a1
17
+
12
18
  v1.0.2 (2024-02-01)
13
19
 
14
20
  --------------------
@@ -35,6 +41,9 @@ v1.0.0 (2024-01-24)
35
41
  - Deprecate method ``get_idx`` and suggest using ``get_all_idxes`` instead
36
42
  - Remove module ``benchmarks.py`` and its tests for simplicity
37
43
 
44
+ Pre-v1.0
45
+ ==========
46
+
38
47
  v0.9.13 (2024-12-05)
39
48
  --------------------
40
49
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ltbams
3
- Version: 1.0.2a1
3
+ Version: 1.0.3
4
4
  Summary: Python software for scheduling modeling and co-simulation with dynamics.
5
5
  Home-page: https://github.com/CURENT/ams
6
6
  Author: Jinning Wang
@@ -33,18 +33,24 @@ Python Software for Power System Scheduling Modeling and Co-Simulation with Dyna
33
33
  [![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](https://github.com/CURENT/ams/blob/master/LICENSE)
34
34
  ![platforms](https://anaconda.org/conda-forge/ltbams/badges/platforms.svg)
35
35
  [![Python Versions](https://img.shields.io/badge/Python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/)
36
+ [![DOI:10.1109/TSTE.2025.3528027](https://zenodo.org/badge/DOI/10.1109/TSTE.2025.3528027.svg)](https://ieeexplore.ieee.org/document/10836855)
36
37
  [![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
38
+ [![codecov](https://codecov.io/gh/CURENT/ams/graph/badge.svg?token=RZI5GLLBQH)](https://codecov.io/gh/CURENT/ams)
37
39
  ![Repo Size](https://img.shields.io/github/repo-size/CURENT/ams)
38
40
  [![GitHub last commit (master)](https://img.shields.io/github/last-commit/CURENT/ams/master?label=last%20commit%20to%20master)](https://github.com/CURENT/ams/commits/master/)
39
41
  [![GitHub last commit (develop)](https://img.shields.io/github/last-commit/CURENT/ams/develop?label=last%20commit%20to%20develop)](https://github.com/CURENT/ams/commits/develop/)
40
42
  [![libraries](https://img.shields.io/librariesio/release/pypi/ltbams)](https://libraries.io/pypi/ltbams)
41
43
  [![Structure](https://img.shields.io/badge/code_base-visualize-blue)](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams)
42
44
 
45
+ [![Compatibility Tests](https://github.com/CURENT/ams/actions/workflows/compatibility.yml/badge.svg)](https://github.com/CURENT/ams/actions/workflows/compatibility.yml)
46
+ [![Publish to TestPyPI and PyPI](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml/badge.svg?branch=master)](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml)
47
+ [![Azure Pipline](https://dev.azure.com/curentltb/ams/_apis/build/status%2FCURENT.ams?branchName=master)](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=master)
48
+
43
49
  <img src="docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png" alt="CURENT ERC Logo" width="300" height="auto">
44
50
 
45
- | | Latest | Stable |
51
+ | | Stable | Latest |
46
52
  |---------------|-----------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
47
- | Documentation | [![Latest Documentation](https://readthedocs.org/projects/ams/badge/?version=latest)](https://ams.readthedocs.io/en/latest/?badge=latest) | [![Documentation Status](https://readthedocs.org/projects/ams/badge/?version=stable)](https://ams.readthedocs.io/en/stable/?badge=stable) |
53
+ | Documentation | [![Documentation Status](https://readthedocs.org/projects/ams/badge/?version=stable)](https://ams.readthedocs.io/en/stable/?badge=stable) | [![Latest Documentation](https://readthedocs.org/projects/ams/badge/?version=latest)](https://ams.readthedocs.io/en/latest/?badge=latest) |
48
54
 
49
55
 
50
56
  | Badges | | |
@@ -52,7 +58,7 @@ Python Software for Power System Scheduling Modeling and Co-Simulation with Dyna
52
58
  | Downloads | [![PyPI Version](https://img.shields.io/pypi/v/ltbams.svg)](https://pypi.python.org/pypi/ltbams) | [![Conda Version](https://anaconda.org/conda-forge/ltbams/badges/version.svg)](https://anaconda.org/conda-forge/ltbams) |
53
59
  | Try on Binder | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/curent/ams/master) | |
54
60
  | Code Quality |[![Codacy Badge](https://app.codacy.com/project/badge/Grade/69456da1b8634f2f984bd769e35f0050)](https://app.codacy.com/gh/CURENT/ams/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)| [![Codacy Badge](https://app.codacy.com/project/badge/Coverage/69456da1b8634f2f984bd769e35f0050)](https://app.codacy.com/gh/CURENT/ams/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_coverage) |
55
- | Build Status | [![GitHub Action Status](https://github.com/CURENT/ams/workflows/Python%20application/badge.svg)](https://github.com/curent/ams/actions) | [![Build Status](https://dev.azure.com/curentltb/ams/_apis/build/status%2FCURENT.ams?branchName=master)](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=master) |
61
+
56
62
 
57
63
 
58
64
  # Why AMS
@@ -139,11 +145,12 @@ pip install git+https://github.com/CURENT/ams.git
139
145
  ```
140
146
 
141
147
  ***NOTE:***
142
- - Version **0.9.9** has known issues and has been yanked from PyPI
143
- - `kvxopt` is recommended to install via `conda` as sometimes ``pip`` struggles to set the correct path for compiled libraries
148
+ - `cvxpy` is distributed with the open source solvers CLARABEL, OSQP, and SCS, but MIP-capable solvers need separate installation
144
149
  - `cvxpy` versions **below 1.5** are incompatible with `numpy` versions **2.0 and above**
145
150
  - If the solver `SCIP` encounters an import error caused by a missing `libscip.9.1.dylib`, try reinstalling its Python interface by running `pip install pyscipopt --no-binary scip --force`
146
- - Version **1.0.0** is only available on PyPI
151
+ - `kvxopt` is recommended to install via `conda` as sometimes ``pip`` struggles to set the correct path for compiled libraries
152
+ - Versions **1.0.0** and **1.0.1** are only available on PyPI
153
+ - Version **0.9.9** has known issues and has been yanked from PyPI
147
154
 
148
155
  # Example Usage
149
156
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes