ltbams 1.0.8__py3-none-any.whl → 1.0.10__py3-none-any.whl

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 (83) hide show
  1. ams/__init__.py +0 -1
  2. ams/_version.py +3 -3
  3. ams/cases/5bus/pjm5bus_demo.json +1324 -0
  4. ams/core/__init__.py +1 -0
  5. ams/core/common.py +30 -0
  6. ams/core/model.py +1 -1
  7. ams/core/symprocessor.py +1 -1
  8. ams/extension/eva.py +1 -1
  9. ams/interface.py +40 -24
  10. ams/io/matpower.py +192 -26
  11. ams/io/psse.py +278 -1
  12. ams/io/pypower.py +14 -0
  13. ams/main.py +2 -2
  14. ams/models/group.py +2 -70
  15. ams/models/static/pq.py +7 -3
  16. ams/opt/param.py +1 -2
  17. ams/report.py +3 -4
  18. ams/routines/__init__.py +2 -3
  19. ams/routines/acopf.py +5 -108
  20. ams/routines/dcopf.py +8 -0
  21. ams/routines/dcpf.py +1 -1
  22. ams/routines/ed.py +4 -2
  23. ams/routines/grbopt.py +150 -0
  24. ams/routines/pflow.py +2 -2
  25. ams/routines/pypower.py +631 -0
  26. ams/routines/routine.py +4 -10
  27. ams/routines/uc.py +2 -2
  28. ams/shared.py +30 -44
  29. ams/system.py +118 -2
  30. docs/source/api.rst +2 -0
  31. docs/source/getting_started/formats/matpower.rst +135 -0
  32. docs/source/getting_started/formats/pypower.rst +1 -2
  33. docs/source/getting_started/install.rst +9 -6
  34. docs/source/images/dcopf_time.png +0 -0
  35. docs/source/images/educ_pie.png +0 -0
  36. docs/source/release-notes.rst +29 -47
  37. {ltbams-1.0.8.dist-info → ltbams-1.0.10.dist-info}/METADATA +87 -47
  38. {ltbams-1.0.8.dist-info → ltbams-1.0.10.dist-info}/RECORD +58 -75
  39. {ltbams-1.0.8.dist-info → ltbams-1.0.10.dist-info}/WHEEL +1 -1
  40. tests/test_1st_system.py +1 -1
  41. tests/test_case.py +14 -14
  42. tests/test_export_csv.py +1 -1
  43. tests/test_interface.py +24 -2
  44. tests/test_io.py +125 -1
  45. tests/test_omodel.py +1 -1
  46. tests/test_report.py +6 -6
  47. tests/test_routine.py +2 -2
  48. tests/test_rtn_acopf.py +75 -0
  49. tests/test_rtn_dcopf.py +1 -1
  50. tests/test_rtn_dcopf2.py +1 -1
  51. tests/test_rtn_ed.py +9 -9
  52. tests/test_rtn_opf.py +142 -0
  53. tests/test_rtn_pflow.py +0 -72
  54. tests/test_rtn_pypower.py +315 -0
  55. tests/test_rtn_rted.py +8 -8
  56. tests/test_rtn_uc.py +18 -18
  57. ams/pypower/__init__.py +0 -8
  58. ams/pypower/_compat.py +0 -9
  59. ams/pypower/core/__init__.py +0 -8
  60. ams/pypower/core/pips.py +0 -894
  61. ams/pypower/core/ppoption.py +0 -244
  62. ams/pypower/core/ppver.py +0 -18
  63. ams/pypower/core/solver.py +0 -2451
  64. ams/pypower/eps.py +0 -6
  65. ams/pypower/idx.py +0 -174
  66. ams/pypower/io.py +0 -604
  67. ams/pypower/make/__init__.py +0 -11
  68. ams/pypower/make/matrices.py +0 -665
  69. ams/pypower/make/pdv.py +0 -506
  70. ams/pypower/routines/__init__.py +0 -7
  71. ams/pypower/routines/cpf.py +0 -513
  72. ams/pypower/routines/cpf_callbacks.py +0 -114
  73. ams/pypower/routines/opf.py +0 -1803
  74. ams/pypower/routines/opffcns.py +0 -1946
  75. ams/pypower/routines/pflow.py +0 -852
  76. ams/pypower/toggle.py +0 -1098
  77. ams/pypower/utils.py +0 -293
  78. ams/routines/cpf.py +0 -65
  79. ams/routines/dcpf0.py +0 -196
  80. ams/routines/pflow0.py +0 -113
  81. tests/test_rtn_dcpf.py +0 -77
  82. {ltbams-1.0.8.dist-info → ltbams-1.0.10.dist-info}/entry_points.txt +0 -0
  83. {ltbams-1.0.8.dist-info → ltbams-1.0.10.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ltbams
3
- Version: 1.0.8
3
+ Version: 1.0.10
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
@@ -23,6 +23,28 @@ Requires-Dist: openpyxl
23
23
  Requires-Dist: andes>=1.9.3
24
24
  Requires-Dist: pybind11
25
25
  Requires-Dist: cvxpy
26
+ Provides-Extra: dev
27
+ Requires-Dist: pytest; extra == "dev"
28
+ Requires-Dist: pytest-cov; extra == "dev"
29
+ Requires-Dist: coverage; extra == "dev"
30
+ Requires-Dist: flake8; extra == "dev"
31
+ Requires-Dist: numpydoc; extra == "dev"
32
+ Requires-Dist: toml; extra == "dev"
33
+ Provides-Extra: nlp
34
+ Requires-Dist: PYPOWER; extra == "nlp"
35
+ Requires-Dist: pyoptinterface; extra == "nlp"
36
+ Requires-Dist: gurobipy; extra == "nlp"
37
+ Requires-Dist: gurobi-optimods; extra == "nlp"
38
+ Provides-Extra: doc
39
+ Requires-Dist: pandoc; extra == "doc"
40
+ Requires-Dist: ipython; extra == "doc"
41
+ Requires-Dist: sphinx; extra == "doc"
42
+ Requires-Dist: pydata-sphinx-theme; extra == "doc"
43
+ Requires-Dist: numpydoc; extra == "doc"
44
+ Requires-Dist: sphinx-copybutton; extra == "doc"
45
+ Requires-Dist: sphinx-panels; extra == "doc"
46
+ Requires-Dist: myst-parser; extra == "doc"
47
+ Requires-Dist: nbsphinx; extra == "doc"
26
48
  Dynamic: author
27
49
  Dynamic: home-page
28
50
 
@@ -30,40 +52,29 @@ Dynamic: home-page
30
52
 
31
53
  Python Software for Power System Scheduling Modeling and Co-Simulation with Dynamics, serving as the market simulator for the [CURENT Largescale Testbed][LTB Repository].
32
54
 
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
- ![platforms](https://anaconda.org/conda-forge/ltbams/badges/platforms.svg)
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/)
55
+ ![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)
36
56
  [![DOI:10.1109/TSTE.2025.3528027](https://zenodo.org/badge/DOI/10.1109/TSTE.2025.3528027.svg)](https://ieeexplore.ieee.org/document/10836855)
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)
39
-
40
- [![GitHub Tag](https://img.shields.io/github/v/tag/CURENT/ams)](https://github.com/CURENT/ams/tags)
41
- ![GitHub commits since latest release (branch)](https://img.shields.io/github/commits-since/curent/ams/latest/develop)
42
- [![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/)
43
- [![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/)
44
-
45
- [![libraries](https://img.shields.io/librariesio/release/pypi/ltbams)](https://libraries.io/pypi/ltbams)
46
- ![Repo Size](https://img.shields.io/github/repo-size/CURENT/ams)
47
- [![Structure](https://img.shields.io/badge/code_base-visualize-blue)](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams)
48
-
49
- [![Compatibility Tests](https://github.com/CURENT/ams/actions/workflows/compatibility.yml/badge.svg)](https://github.com/CURENT/ams/actions/workflows/compatibility.yml)
50
- [![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)
51
- [![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)
52
57
 
53
58
  <img src="docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png" alt="CURENT ERC Logo" width="300" height="auto">
54
59
 
55
- | | Stable | Latest |
56
- |---------------|-----------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
57
- | 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) |
58
-
59
-
60
- | Badges | | |
61
- |---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
62
- | 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) |
63
- | Try on Binder | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/curent/ams/master) | |
64
- | 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) |
65
-
66
-
60
+ | | Stable | Develop |
61
+ |---|---|---|
62
+ | Documentation | [![Documentation Status](https://readthedocs.org/projects/ams/badge/?version=stable)](https://ams.readthedocs.io/en/stable/?badge=stable) | [![Develop Documentation](https://readthedocs.org/projects/ams/badge/?version=develop)](https://ams.readthedocs.io/en/develop/?badge=develop) |
63
+
64
+ | Badges | | |
65
+ |---|---|---|
66
+ | Repo | ![Project Status: Active](https://www.repostatus.org/badges/latest/active.svg) | ![Repo Size](https://img.shields.io/github/repo-size/CURENT/ams) |
67
+ | Version | ![PyPI Version](https://img.shields.io/pypi/v/ltbams.svg) | ![Conda Version](https://anaconda.org/conda-forge/ltbams/badges/version.svg) |
68
+ | Tag | [![GitHub Tag](https://img.shields.io/github/v/tag/CURENT/ams)](https://github.com/CURENT/ams/tags) | ![GitHub commits since latest release (branch)](https://img.shields.io/github/commits-since/curent/ams/latest/develop) |
69
+ | Download | ![PyPI - Downloads](https://img.shields.io/pypi/dm/ltbams) | ![Anaconda-Server Badge](https://anaconda.org/conda-forge/ltbams/badges/downloads.svg) |
70
+ | Code Quality | ![Codacy Badge](https://app.codacy.com/project/badge/Grade/69456da1b8634f2f984bd769e35f0050) | ![Codacy Badge](https://app.codacy.com/project/badge/Coverage/69456da1b8634f2f984bd769e35f0050) |
71
+ | Code Cov | ![codecov](https://codecov.io/gh/CURENT/ams/graph/badge.svg?token=RZI5GLLBQH) | |
72
+ | Last Commit | ![GitHub last commit (master)](https://img.shields.io/github/last-commit/CURENT/ams/master?label=last%20commit%20to%20master) | ![GitHub last commit (develop)](https://img.shields.io/github/last-commit/CURENT/ams/develop?label=last%20commit%20to%20develop) |
73
+ | CI | ![Compatibility Tests](https://github.com/CURENT/ams/actions/workflows/compatibility.yml/badge.svg) | ![Azure Pipline](https://dev.azure.com/curentltb/ams/_apis/build/status%2FCURENT.ams?branchName=master) |
74
+ | CD | ![Publish to TestPyPI and PyPI](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml/badge.svg?branch=master) | |
75
+ | Structure | [![Structure](https://img.shields.io/badge/code_base-visualize-blue)](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams) | [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/CURENT/ams) |
76
+ | Dependency | [![libraries](https://img.shields.io/librariesio/release/pypi/ltbams)](https://libraries.io/pypi/ltbams) | |
77
+ | Try on Binder | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/curent/ams/master) | |
67
78
 
68
79
  # Why AMS
69
80
 
@@ -82,25 +93,27 @@ and solved with third-party solvers.
82
93
 
83
94
  AMS produces credible scheduling results and competitive performance.
84
95
  The following results show the comparison of DCOPF between AMS and other tools.
85
-
86
- | Cost [\$] | AMS | pandapower | MATPOWER |
87
- |-----------------------|--------------|--------------|--------------|
88
- | IEEE 14-Bus | 7,642.59 | 7,642.59 | 7,642.59 |
89
- | IEEE 39-Bus | 41,263.94 | 41,263.94 | 41,263.94 |
90
- | PEGASE 89-Bus | 5,733.37 | 5,733.37 | 5,733.37 |
91
- | IEEE 118-Bus | 125,947.88 | 125,947.88 | 125,947.88 |
92
- | NPCC 140-Bus | 810,033.37 | 810,016.06 | 810,033.37 |
93
- | WECC 179-Bus | 411,706.13 | 411,706.13 | 411,706.13 |
94
- | IEEE 300-Bus | 706,292.32 | 706,292.32 | 706,292.32 |
95
- | PEGASE 1354-Bus | 1,218,096.86 | 1,218,096.86 | 1,218,096.86 |
96
- | PEGASE 2869-Bus | 2,386,235.33 | 2,386,235.33 | 2,386,235.33 |
97
- | GOC 4020-Bus | 793,634.11 | 793,634.11 | 793,634.11 |
98
- | EPIGRIDS 5658-Bus | 1,195,466.12 | 1,195,466.12 | 1,195,466.12 |
99
- | EPIGRIDS 7336-Bus | 1,855,870.94 | 1,855,870.94 | 1,855,870.94 |
96
+ In the table, **AMS Gap** is the difference between the AMS and MATPOWER results,
97
+ and **pandapower Gap** is the difference between the pandapower and MATPOWER results.
98
+
99
+ | Case | MATPOWER [\$] | AMS Gap [\$] | pandapower Gap [\$] |
100
+ |------------------|--------------|--------------|---------------------|
101
+ | IEEE 14-Bus | 7,642.59 | 0.00 | 0.00 |
102
+ | IEEE 39-Bus | 41,263.94 | 0.00 | 0.00 |
103
+ | PEGASE 89-Bus | 5,733.37 | 0.00 | 0.00 |
104
+ | IEEE 118-Bus | 125,947.88 | 0.00 | 0.00 |
105
+ | NPCC 140-Bus | 810,033.37 | 0.00 | **-17.31** |
106
+ | WECC 179-Bus | 411,706.13 | 0.00 | 0.00 |
107
+ | IEEE 300-Bus | 706,292.32 | 0.00 | 0.00 |
108
+ | PEGASE 1354-Bus | 1,218,096.86 | 0.00 | 0.00 |
109
+ | PEGASE 2869-Bus | 2,386,235.33 | 0.00 | 0.00 |
110
+ | GOC 4020-Bus | 793,634.11 | 0.00 | 0.00 |
111
+ | EPIGRIDS 5658-Bus| 1,195,466.12 | 0.00 | 0.00 |
112
+ | EPIGRIDS 7336-Bus| 1,855,870.94 | 0.00 | 0.00 |
100
113
 
101
114
  <div style="text-align: left;">
102
115
  <img src="docs/source/images/dcopf_time.png" alt="DCOPF Time" width="480" height="auto">
103
- <p><strong>Figure:</strong> Computation time of OPF on small-scale cases.</p>
116
+ <p><strong>Figure:</strong> Computation time of OPF on medium to large cases.</p>
104
117
  </div>
105
118
 
106
119
  In the bar chart, the gray bar labeled "AMS Symbolic Processing" represents the time spent
@@ -113,6 +126,19 @@ Regarding the baselines, the blue and green bars represent the running time of M
113
126
  solver MIPS and pandapower using solver PIPS, respectively.
114
127
  The results for AMS, pandapower, and matpower are the average time consumed over ten repeat tests.
115
128
 
129
+ <div style="text-align: left;">
130
+ <img src="docs/source/images/educ_pie.png" alt="DCOPF Time" width="480" height="auto">
131
+ <p><strong>Figure:</strong> Computation time distribution for multi-period economic dispatch and
132
+ unit commitment using a 31,777-bus case.</p>
133
+ </div>
134
+
135
+ To further demonstrate AMS's scalability, we validated multi-period economic dispatch and unit commitment
136
+ on an ultra-large power system case with 31,777 buses, 4,664 generators, 41,573 transmission lines,
137
+ and 5 time intervals.
138
+ The computation time distribution for this case is shown in the figure below. Notably, the time spent
139
+ on symbolic processing remains negligible even at this scale, highlighting AMS's efficiency for
140
+ large-scale studies.
141
+
116
142
  AMS is currently under active development.
117
143
  Use the following resources to get involved.
118
144
 
@@ -136,6 +162,20 @@ Install from PyPI using pip:
136
162
  pip install ltbams
137
163
  ```
138
164
 
165
+ You can also install with optional dependencies, such as ``dev``, ``docs``, and ``nlp``:
166
+
167
+ ```bash
168
+ pip install ltbams[dev]
169
+ pip install ltbams[docs]
170
+ pip install ltbams[nlp]
171
+ ```
172
+
173
+ Or install with all optional dependencies:
174
+
175
+ ```bash
176
+ pip install ltbams[all]
177
+ ```
178
+
139
179
  Install from conda-forge using conda:
140
180
 
141
181
  ```bash
@@ -1,12 +1,13 @@
1
- ams/__init__.py,sha256=dKIwng8xES4NQHn6ZHy8RCKeXphN9z2wyfmbvniIEg0,351
1
+ ams/__init__.py,sha256=q-9-f0YCg6aaTW19VCkY6VosfvRA2ObI9mF1f_3016Y,313
2
2
  ams/__main__.py,sha256=EB4GfGiKgvnQ_psNr0QwPoziYvjmGvQ2yVsBwQtfrLw,170
3
- ams/_version.py,sha256=l75Msd6bSTQ0CAX_Sc-wAbTvXkpOZ2xKEDedkXIFFlY,497
3
+ ams/_version.py,sha256=kccksMimNEDK-8pkw0RnSVrUE7NGH1_HlY85CE4sJgQ,498
4
4
  ams/cli.py,sha256=EyNFXn565gFCppTxpyTZviBdPgUuKtgAPZ4WE6xewRk,6164
5
- ams/interface.py,sha256=_aF2VrO_hmVrW56H_q4CYWJps63nWUswCd3AWUbPbE8,44880
6
- ams/main.py,sha256=wzKLe_BeQAUyFh-U1cxQIOwr-rAJM8ppB3EEi6_v2tw,23607
7
- ams/report.py,sha256=gUscOYpPjuPuruzIXAADaifIZv2BSjmP1oKCuHdD3Vw,11004
8
- ams/shared.py,sha256=yaO4RUD0T-zCcZeML20vORcaf_dXiwMAvjTriXz1xtg,4159
9
- ams/system.py,sha256=AW2_rMH0wjTuxhha87hQuyUCAllzWTfEsVBaTIiSAOg,25956
5
+ ams/interface.py,sha256=-I5dRdHQPxyHBDCp02eYuqyW1aleHwn_nGgTxFYAG1I,45248
6
+ ams/main.py,sha256=lIqC16TO0pye75Wv8l_6EemNtm15iyMdvu8YQFkdd_4,23599
7
+ ams/report.py,sha256=ewcffopOzT5o45eJNmcV8pxeQqPIjKbarGN33-yHGA8,10961
8
+ ams/shared.py,sha256=4sY2U0sghs_S2V6C7Z0OyQ6WZRfpCXk2_Cf_Mg24Vr4,3900
9
+ ams/system.py,sha256=kASxxtA6rQ2mCBdwGXd_M3FRTH8xSXE99h8UCPrMnfU,29773
10
+ ams/cases/5bus/pjm5bus_demo.json,sha256=IpxO2vzB9-9Kg9xjOXREKeXEz9wjFE7cuQbcUu8VORA,23152
10
11
  ams/cases/5bus/pjm5bus_demo.xlsx,sha256=OWIUprkg8_aQ_bTCaEFMl7Bhfa1R20zxAHXRQtXBix0,32607
11
12
  ams/cases/5bus/pjm5bus_ev.xlsx,sha256=vR8dJv5jIxib1pgcMonhzvraoqZVJWhBSJdVXDL0qsI,19498
12
13
  ams/cases/5bus/pjm5bus_jumper.xlsx,sha256=47QAol1RGz_aGvhV2emq9XCy_Db9Zca15_OMVAdFVR0,19332
@@ -34,27 +35,28 @@ ams/cases/npcc/npcc_uced.xlsx,sha256=zuaZEOBwdOHwK5hFgQSXownyH-MfKDZQ-iVFeaFVSyg
34
35
  ams/cases/pglib/pglib_opf_case39_epri__api.m,sha256=DKUNon8FgIYKJWOK5ZyQ0fLP0zowNRrf4vmPN-UxU3M,16351
35
36
  ams/cases/wecc/wecc.m,sha256=8Wqal6H5r1wNxLLQBCXo2V3v3JZY5IJDEkyrEGCrCWE,30498
36
37
  ams/cases/wecc/wecc_uced.xlsx,sha256=R3tZgxEqz_ctKcjA1wwFecxn-QZXutvf7NzgnCg_078,94767
37
- ams/core/__init__.py,sha256=OUJFLACc9Ggjvzi6DZfmfxrzciRcGtpLTsBfdbOUxGg,80
38
+ ams/core/__init__.py,sha256=lIvrAvYf2yrHWqYi0rVuJgJt8KNA8nTmN2iuZ125z9Q,123
39
+ ams/core/common.py,sha256=934J7xq5JvC14yKp2Z4hWKUFJFhxzAnxB_8_99CChY0,704
38
40
  ams/core/documenter.py,sha256=FNkpiP65iO809B4Bgmp5C1QeJTQHi-sS9vTP7Wd9D8Q,23131
39
41
  ams/core/matprocessor.py,sha256=3eEij-ul8Rx25ZwNbv66YEOKyUXB-fYO-ZQs5BpqmIU,26610
40
- ams/core/model.py,sha256=vXLActAi9tLXRCNd5RrEMVWvF0Wt4mwltiRY5CjgrP4,10928
42
+ ams/core/model.py,sha256=LNZtzyf2A7Tz3pn9IDs35JYaHSkQRqhqZicTpZGSqsc,10926
41
43
  ams/core/param.py,sha256=LPH48xUHyqWqODD6IsiamUtkJDDSgGCEMAo6vroFoHE,11130
42
44
  ams/core/service.py,sha256=Q4aeaYFWycIEH7I8DSO8Itah2CJxc3oAW46dtKCQEyA,28041
43
- ams/core/symprocessor.py,sha256=HegjU_UnvWEny9kitI1su9J0WeFDjQnM4gNoeUGJ7qU,8428
45
+ ams/core/symprocessor.py,sha256=qGzztGqe15-nrq1ZdrjslEH-375vjvB3O8fi7nau5Hw,8419
44
46
  ams/core/var.py,sha256=f48pzir4miBsB5sh6PwUsFe0LdNNEM-d3VufcjbUU0w,1591
45
47
  ams/extension/__init__.py,sha256=5IFTNirDL0uDaUsg05_oociVT9VCy2rhPx1ad4LGveM,65
46
- ams/extension/eva.py,sha256=wUF8RNxzwas2Q6_xD0k3EVWjmX4kxHmTSkv2inJzaUY,16342
48
+ ams/extension/eva.py,sha256=4_q4ME0WrQIcd205SBTjv0-rMRZZIdQ07QJuEHwLIC8,16340
47
49
  ams/io/__init__.py,sha256=GIfF7X44olHaySL8EzOBU1eXUnunr1owzzdPfPvvHZU,3802
48
50
  ams/io/json.py,sha256=IurwcZDuKczSbRTpcbQZiIi0ARCrMK6kJ0E3wS8ENy8,2585
49
- ams/io/matpower.py,sha256=SNYvCO0Be9rdM4PPPFuK6H2JuOLflFpWQloFtG59uIM,20174
50
- ams/io/psse.py,sha256=TOLsGuoFWpgLRK_zZqjCLIjd9fHAlfgjbDm84okw3p0,145
51
- ams/io/pypower.py,sha256=E6_kSNfv1Yyv9oYfFebeNeKaQPlHyRZQpE8F6Y67g8Q,2583
51
+ ams/io/matpower.py,sha256=IK6NwVUAM0FAv2rFF1hBoSTowfXD8l6YXrKiPch9hW8,26166
52
+ ams/io/psse.py,sha256=qvKP9CP-70UejUsffPu4ibtyF1JXO0Sz0-evT4fDPXg,13631
53
+ ams/io/pypower.py,sha256=Fe0sxzC5DZegtYksTixadXk_LcfJ1GNetWu9EuHCkG8,2790
52
54
  ams/io/xlsx.py,sha256=7ATW1seyxsGn7d5p5IuSRFHcoCHVVjMu3E7mP1Mc74U,2460
53
55
  ams/models/__init__.py,sha256=EGkViLkVX_We9FAGuEkgfleMNmPw_vGp2Nq1OQimL7U,691
54
56
  ams/models/area.py,sha256=AKYU6aJQKsVWRZdvMO7yic-8wZ1GumSTQXgDg5L0THw,899
55
57
  ams/models/bus.py,sha256=U0vSegkm-9fqPQS9KMJQU6gpIMX_1GK5O_dvRc8-0P0,1585
56
58
  ams/models/cost.py,sha256=rmGNj9ztMbqA-OIJj8fNNBh8bdYJSY9hk10vffgxc6k,5916
57
- ams/models/group.py,sha256=AS3kAK7vsRAKpqd-_tS953PFDttnV45ujg6i4QKk_xQ,8399
59
+ ams/models/group.py,sha256=qVYhyMJQHIDikcxxY-mAOOVZOE1_Bp9Av4dP6AtQ4hs,5780
58
60
  ams/models/info.py,sha256=Oh0Xo5J4ZHBsNIkMOzIwv_DegsX1inyuv3Q5CpCfyQw,788
59
61
  ams/models/line.py,sha256=ju5h1BcW4kgVWm_lgl8zWhSYqlsUjbdoUwzz2t0Vx1s,2770
60
62
  ams/models/reserve.py,sha256=3BjWCyKrPL4CwTvmzRxk25H8Nkxh-Rz0Ne17I9Y2TUA,2816
@@ -69,7 +71,7 @@ ams/models/renewable/__init__.py,sha256=7dZyRXbvBAHbLJeJssJ1hsOHj9Bgeg77kB5gcX_m
69
71
  ams/models/renewable/regc.py,sha256=3J9alIGUn_GkibQ3-dKTylAOpNPzd5zpancPc79q9T4,3448
70
72
  ams/models/static/__init__.py,sha256=lh5yR5Xb2unS4ndng-cLU1TAeoidu2s6VAVFLc3HUDU,96
71
73
  ams/models/static/gen.py,sha256=QXklOYlnU7QHWy-WFJwhxuNItUPqFsLJIjAO4sGMUbg,7087
72
- ams/models/static/pq.py,sha256=a-z7-1Vegr3mPguRAdLqfJlwk5OG_Zpp8usfOzRAR30,2583
74
+ ams/models/static/pq.py,sha256=SCwAqhqvKy_PFHp6VYO_zgv3v6gI5pK3KvT3RNX-nvA,2782
73
75
  ams/opt/__init__.py,sha256=INsl8yxtOzTKqV9pzVxlL6RSGDRaUDwxpZMY1QROrF4,459
74
76
  ams/opt/constraint.py,sha256=ERT9zwjQyGkvDo465Yd0wBexlIhjVmw0MyWq4BWnWoI,5534
75
77
  ams/opt/exprcalc.py,sha256=oVtjNHzdWvYHV-8PdRehAxjledsQxpxatdNgMLeWS5o,3935
@@ -77,55 +79,33 @@ ams/opt/expression.py,sha256=WrWnYliB61uHA_wQjtYgtAXdpgSN1pNqQmWvzHWSsdE,5569
77
79
  ams/opt/objective.py,sha256=W0dQfW5dHNdWEc2DQtWYNGMuhMY6Pu-HTD0n7-izDZA,5519
78
80
  ams/opt/omodel.py,sha256=hEtfKoSNssSxHgUDdep79pifNTsywytDTjgGgne7nKM,12750
79
81
  ams/opt/optzbase.py,sha256=KEYRPhfTCw1E5EUmjpDXSF1kdyqzdR9Yg10Z2VNJahw,5615
80
- ams/opt/param.py,sha256=r_xxUSxXHNFHwjNSYSyKiQ_IjJtTF_-VG4EuVsL97pg,5131
82
+ ams/opt/param.py,sha256=G0KkWo1SqLiecZ7gLPzsbG5_WBORSVZ2GJ20ekdYJoQ,5121
81
83
  ams/opt/var.py,sha256=cpDiELo37E7IoTDlVn_NbkuFNQ88oey23YOF6Gpg6zM,7707
82
- ams/pypower/__init__.py,sha256=UjASl4jXev2Htwgf2G4FMaAphHqbRhyLYLPpes5B438,247
83
- ams/pypower/_compat.py,sha256=q2CTtumsE_d-vxK7ju0SzbNnRh5NwrGf_R6J65OStDQ,103
84
- ams/pypower/eps.py,sha256=1_X3lA8cp0iFDj7WTk37SqDgRarVpr3O1xaMvinQ3rk,66
85
- ams/pypower/idx.py,sha256=YGEkHdrGDOmF_wHsQzRfDp8blaymJuWb1xErUyCYgD4,8176
86
- ams/pypower/io.py,sha256=KlXKyErbt2i_UzFJDI4obWbUddQXM3sD4fEtl2ePp7k,26368
87
- ams/pypower/toggle.py,sha256=7o4vS0fcQXL_Ha8iiMXxnsqAPPPnypnhPcGQ-NXmbO0,50088
88
- ams/pypower/utils.py,sha256=UOkNNJNs_zHVqcxFUlNG6QiBpqPnDlgSGqhnEXPukvs,8779
89
- ams/pypower/core/__init__.py,sha256=J4mOfUN6heywauKP99R-Ois2vem5tF6cMS3gsGHSfy8,277
90
- ams/pypower/core/pips.py,sha256=YD2b3dttyEDhk5Ki9z_KxP3DLg-fJQ-PFovXifLjoxc,32645
91
- ams/pypower/core/ppoption.py,sha256=pyWqiXtkKNAQNlqxqbUZ3gUoXpthXjafGpJd1vvlVoc,8231
92
- ams/pypower/core/ppver.py,sha256=J_NX8YfgINQT6FiBG6UxQztfk08lGOOtLk6fce8RVE0,304
93
- ams/pypower/core/solver.py,sha256=x1Qv_j_Ol7cTJXYh2KNCvP3R9t0HwD3FM_yvT-Vb1W8,84912
94
- ams/pypower/make/__init__.py,sha256=z-BBqZG4SUzrCAvwwgY5EBf2zsnpS74NWOGGyg_U2ck,494
95
- ams/pypower/make/matrices.py,sha256=7gFnY_5FdVDFy9XBFVFgPsPFc-XPsPjYJ2y7vkp1uOM,23713
96
- ams/pypower/make/pdv.py,sha256=0gxiUyh6uoVvv91-td_AZ6-QLBDyD7-km-qkMTWxAiE,18633
97
- ams/pypower/routines/__init__.py,sha256=D3gkMZBjo6TzGLyMPNjM1TvTSY-9XIlgqUqNoSr_8b0,204
98
- ams/pypower/routines/cpf.py,sha256=VRL8rWGFaOMn3VheKm2DWZzjpY99W1msvWN4yY9kHcE,17371
99
- ams/pypower/routines/cpf_callbacks.py,sha256=93f3sdibG7FsXOP9EmqX-iTe0_eZmGtH1JhvtJB1Xig,4480
100
- ams/pypower/routines/opf.py,sha256=SNklP0cC8qu-ji1vluEj7DjAtvWDneOEkZWZeMBdd5g,73447
101
- ams/pypower/routines/opffcns.py,sha256=o8EpvWH32x3vbN9gV7Xi-D6RHQ5V2eB8NT15cZrwX2w,78144
102
- ams/pypower/routines/pflow.py,sha256=q5RFZ5XuB5YQZk1jpJ5aTUB3DfgPJEGsvWyLDNo5PJo,30697
103
- ams/routines/__init__.py,sha256=idfPyMhFr0hkUZjcAEQw14JA5zPHeFe3Vl3p4DCJ5d0,640
104
- ams/routines/acopf.py,sha256=VZC3qs1G7zE--6XxE_wXv432nj3SV5hcrR8967ogYlg,3835
105
- ams/routines/cpf.py,sha256=xsrUVjtGQ1b7UCXpwwYihqzTeEGJJKnO9LlX1Tz9Tks,1552
106
- ams/routines/dcopf.py,sha256=6ETgopvX9tSFF3kssHsBchAttcyo2DTG-eIqjvlk0WY,11087
84
+ ams/routines/__init__.py,sha256=V_IyEb5qLBrZ4zc_eVe-Rc0G_j-u881tvEzcEejhNv8,647
85
+ ams/routines/acopf.py,sha256=dLVTh84KiBvLyG2auNsIfcufsl6N-9FcXWjpdYrQfYQ,208
86
+ ams/routines/dcopf.py,sha256=40I5pYUsUiear_DT9iHwRtFPs_yy-wlxQVDnFrlMtg4,11619
107
87
  ams/routines/dcopf2.py,sha256=sDCP8zqYHDh7s7p9SX6G8QhMfIxCg3VPYJn6r3pRKyo,3620
108
- ams/routines/dcpf.py,sha256=SswIb7t37ulxe1rjroA7oSa6z01kYjO-x8P1WWOUutM,8237
109
- ams/routines/dcpf0.py,sha256=V9zfBoV0cRMFLJdLrpvieyvwTybLTZADPoaKMJLKSkY,6814
88
+ ams/routines/dcpf.py,sha256=lGZ9LmCL1DsFB-sNxI7NGrq0qd_iBRMDPJmU5022t20,8242
110
89
  ams/routines/dopf.py,sha256=8D36-FkPORYGaMnwGTqwz8HxAXk5ywo3mk8NlGq327g,6289
111
- ams/routines/ed.py,sha256=i0Y3COlz4oAf8u8JxqfuQWn6WxjJzb59weLedow0Y_g,11777
112
- ams/routines/pflow.py,sha256=CZAiwnZYhEmSU7Exn9CK6rFxWvjpvv1Py-pLegWJ71s,9419
113
- ams/routines/pflow0.py,sha256=xocLw94jcl2hh3WwnS_mdUW6dsm3EVjvZptVb814GdE,3521
114
- ams/routines/routine.py,sha256=I98uMg6QCt6bipNYwdgtNMbdw_gWCSNVGokS4UmvkSk,35932
90
+ ams/routines/ed.py,sha256=9Hf_ZqD6poIxCIBfsTMC0DGoPNEja1ZtVxqhb4ijhgE,11875
91
+ ams/routines/grbopt.py,sha256=DeNpm6JU-I_i_Q_vicaz_u_MnrE6zSLeyxcfJOluOoc,5367
92
+ ams/routines/pflow.py,sha256=5_9n10r_PfsVXIRkaBgKxVITumImZ8mvpHnwxX_ECdw,9432
93
+ ams/routines/pypower.py,sha256=1DjhNpCqhSQdZivYQsNvpBaKUEhmNsiWGgAHdMB7cOk,26740
94
+ ams/routines/routine.py,sha256=v4jzsziQPvbVh5m0AH629NBEtmKlLvitFW5m-YfFtfY,35833
115
95
  ams/routines/rted.py,sha256=GOHRxo0-HS5HhwQg8lv7-2VcGr_M_TdUvvomgJ31fDQ,22070
116
96
  ams/routines/type.py,sha256=lvTWSnCYIbRJXIm3HX6jA0Hv-WWYusTOUPfoW8DITlU,3877
117
- ams/routines/uc.py,sha256=yPi16FDXugT7Jb7ZwXPSP7NpGyGZ3jvQtCWDI9hAnis,15632
97
+ ams/routines/uc.py,sha256=VcuNy2TnBjsewKEGIqeo2EFTyuhpx5QsEvgpAtscDIQ,15648
118
98
  ams/utils/__init__.py,sha256=2hAQmWRgmnE-bCGT9cJoW9FkPDMGRiGkbBcUgj-bgjI,122
119
99
  ams/utils/misc.py,sha256=Y6tPKpUKJa7bL9alroJuG2UNW9vdQjnfAmKb2EbIls8,2027
120
100
  ams/utils/paths.py,sha256=D9VNUwtJtHy-8PFzMnxtQ9HpkOXT6vdVOjfOTuoKGKw,6699
121
101
  docs/Makefile,sha256=UKXBFAbKGPt1Xw9J84343v0Mh8ylAZ-tE0uCd74DrQU,725
122
102
  docs/make.bat,sha256=9UgKGb4SdP006622fJiFxeFT1BeycYAs6hDbV1xwPy8,804
123
- docs/source/api.rst,sha256=UR7nboMuNl6XDbdozIf7oo_Il1XntogFk66pHSzTFug,1443
103
+ docs/source/api.rst,sha256=BRzdDFDzDwVL7Jr_Xj-O5Icgx0gt5hNNd1OjvPl7ap0,1490
124
104
  docs/source/conf.py,sha256=UyoWogZTUNSJU7pQS_JaR28nKddW94zr01LYoIciZZw,6688
125
105
  docs/source/genmodelref.py,sha256=IhmF7bDw8BXPvLD8V3WjQNrfc-H07r5iS-_4DHbbp-8,1420
126
106
  docs/source/genroutineref.py,sha256=0JyMc2kV5bWrWbSoO6d7o4QgDgG8mVy3JGGQWacJypw,1064
127
107
  docs/source/index.rst,sha256=N5phQS5RIyYs-NZo_5yYB8LjvHzOKLeXzRA-M8i-g3Q,2688
128
- docs/source/release-notes.rst,sha256=8655hUeA11Fxd-fTIUUtTrsfhwi9nnEbwCduTTiIzmc,14250
108
+ docs/source/release-notes.rst,sha256=Fa-rDL0lhaZVi8nwfyn7gCQhQUKyn7NtMIIBkeGM-Vc,13724
129
109
  docs/source/_templates/autosummary/base.rst,sha256=zl3U4baR4a6YjsHyT-x9zCOrHwKZOVUdWn1NPX2u3bc,106
130
110
  docs/source/_templates/autosummary/class.rst,sha256=Hv_igCsLsUpM62_zN0nqj6FSfKnS5xLyu8ZldMbfOAk,668
131
111
  docs/source/_templates/autosummary/module.rst,sha256=YdbpCudOrEU-JbuSlzGvcOI2hn_KrCM6FW5HcGqkaEE,1113
@@ -133,18 +113,19 @@ docs/source/_templates/autosummary/module_toctree.rst,sha256=sg30OdqFDLyo8Y3hl9V
133
113
  docs/source/examples/index.rst,sha256=6VT3wVeKk8BWf6pJQtZrmcumW_3jI8esdlzja8scUCA,742
134
114
  docs/source/getting_started/copyright.rst,sha256=d3S7FjrbysVqQd3pEBadrrkcQOZ7sYYeDTCOS4goPC8,715
135
115
  docs/source/getting_started/index.rst,sha256=mcp1NdUwbPoNzpn7Owf5Qzfd6J_--ToU52PjmrbwjBY,1512
136
- docs/source/getting_started/install.rst,sha256=gE4L0ApiC_mwbjbYtkGW4ilyIAu_Jn-VIeoYlgRiOIw,7268
116
+ docs/source/getting_started/install.rst,sha256=pCL5GDNxwkWnrPaO48i9c0bBPT_dYAWvD2CQ7Oi2P_0,7400
137
117
  docs/source/getting_started/overview.rst,sha256=Zy890bDCUVW37NvjhQFUJUae1Zkghr72Az4Qd0PhP_I,1068
138
118
  docs/source/getting_started/testcase.rst,sha256=L3fGjfm7mGj7ChRovYw5Jx6OP8PU5pTerid0_Y4iKVM,2016
139
119
  docs/source/getting_started/verification.rst,sha256=Jxbgf-SmXYLSokylr1LKtGOjAWUc7a5D-uT_mQZ7i7c,243
140
120
  docs/source/getting_started/formats/index.rst,sha256=G3WO-A_B2abKNrxc6dEZ82AhQWSCDMGwQObFvOeKbGo,317
141
- docs/source/getting_started/formats/matpower.rst,sha256=kyvEoJGsTj1FfVnPoraljPENgiRa3fmB3KqZ_VSJg90,17425
121
+ docs/source/getting_started/formats/matpower.rst,sha256=05SEkuGeGCbns8Pd6Kqdo_y36cDP8Pwlbf_I3Kx0-sM,26038
142
122
  docs/source/getting_started/formats/psse.rst,sha256=zPHCnMa-M3k3aaDmzoZWXBaR3O0l0zupFlr_yaiB5eU,1570
143
- docs/source/getting_started/formats/pypower.rst,sha256=7RHy6iC6w37mUIRtHU0oa4fECdkQPEptflUxCwu3nD8,8986
123
+ docs/source/getting_started/formats/pypower.rst,sha256=8rpKdZkNcj1s-KK76XJAc3FZ24DiJ2gwAKqsKJdasLY,8878
144
124
  docs/source/getting_started/formats/xlsx.png,sha256=WX5x7ZG9hBu5Ft8gmA_u4XQewK_SDWw30WOaXsAS8LY,171220
145
125
  docs/source/getting_started/formats/xlsx.rst,sha256=utsE0AJirT_P7ZvCk63NhB-z19NdbS8OjWQyQ9juskM,761
146
126
  docs/source/images/curent.ico,sha256=pKetB19VTcdXTRH6iACq5YWHZYPcDesd9bfnT2KaaOM,36637
147
- docs/source/images/dcopf_time.png,sha256=Dy84QWTNeWY2_5uRFQ6RWSaS0yOBqYKYxzwWgE27dkY,196221
127
+ docs/source/images/dcopf_time.png,sha256=6BU5hCr-4mHZj76BNaHlTBVTrDXML-o78WGUxtrukEk,45985
128
+ docs/source/images/educ_pie.png,sha256=XZyhH4FFtRySpOAMoKpBnFCTWD4hE659Yf-55qGf63s,111483
148
129
  docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png,sha256=0t3hcFcIEdwFWqwCW3xivrpbqHihBlrzq-BjrajQXrA,87680
149
130
  docs/source/images/sponsors/CURENT_Logo_Transparent.png,sha256=dCz3400_jBhWG7oJUKJO_Gm4Lejp-hOyFnj60UI2fUI,59336
150
131
  docs/source/images/sponsors/CURENT_Logo_Transparent_Name.png,sha256=nIOUmexImq_Ytu7r8ZMTO1wM47wZ_ICHniShnB7JxSc,837476
@@ -155,33 +136,35 @@ docs/source/modeling/model.rst,sha256=j7OSvoXnDht6rGpgwPiJklsCWrebfx4DxIN-G8r6iF
155
136
  docs/source/modeling/routine.rst,sha256=BkUE3y5L1lA7LP9Nyzc4zzY-tF3t4k7egBE188kybHY,4286
156
137
  docs/source/modeling/system.rst,sha256=NMOPNMOKG1_dRyNPPx-MiCKbbpadxWJxGyU6geRUsvQ,1374
157
138
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
- tests/test_1st_system.py,sha256=BLlJsHnEBeLfiMJvIjyPguMikfDjqGSzfn8cZ-tqCVc,1900
139
+ tests/test_1st_system.py,sha256=63ngZwXbUzs1964XmqzlkWUgBugi29vuEDMBBTXxLiE,1900
159
140
  tests/test_addressing.py,sha256=MIT713KCqMg0h2o4rBDZsGUrpGadmMlXnrrdq-wB77E,1364
160
- tests/test_case.py,sha256=8Jn1hwrB72l6-rqbCWTGJOcxicu4GHVDzGsLLxjDFos,8833
141
+ tests/test_case.py,sha256=b_YZhwIN9sX3FCMD03hRNygV-mYthNj7cOhEv7-by-g,8857
161
142
  tests/test_cli.py,sha256=TtCGBy2e7Ll_2gJTFo9juZtzhaakho_MqkcqhG2w2dk,870
162
- tests/test_export_csv.py,sha256=rZCafNrVbwDo7ZNC4MrL1gIcrU0c6YVw2q-QGL3O4K4,2921
143
+ tests/test_export_csv.py,sha256=NTULXfTexgI1jf5koUMOYi3RLrSQouS7zxRjXo3ng50,2921
163
144
  tests/test_group.py,sha256=Tq0s9gtenqrv4ws5YNzWxbiF4WgyhtMEAXZfJtew6M4,2699
164
- tests/test_interface.py,sha256=lXKR8OAsGIg5dV2Uj0UwGAl69hKnc_7EtCYvpP_0rrU,8157
165
- tests/test_io.py,sha256=epa2f7gnZPAd-bX8MRmYn53ohk0H_SzGABuKOO5zn6g,2137
145
+ tests/test_interface.py,sha256=8hOZ1caRfoyoEdy1lnh8Y4rIL97FLb2oUKfX_N1lEDo,8838
146
+ tests/test_io.py,sha256=MIale4g0jMC9Vy4jjtFKpnh12aavp9lusczff1iIVC0,6493
166
147
  tests/test_jumper.py,sha256=bdOknplEGnO_tiJc7p3xQvgTe2b6Dz53bOgbFaXKMAI,537
167
148
  tests/test_known_good.py,sha256=NBrlAxnVMxIHXR2cWps-Kwjh36fiU4Y-eupspZkM0ks,9670
168
149
  tests/test_matp.py,sha256=LkjhqxSFr6oY_ENpduDQ77rhLLBl6RzIHZ2d0m_8i-8,17262
169
150
  tests/test_model.py,sha256=ZgghNYmEeALf8_1sPjq9lIJwuYDQ2SelivJNEYpHxJU,1621
170
- tests/test_omodel.py,sha256=0hN8_fh_as-ouaZWKBagqMJkjMWCvIjw5o1CgGjiUrU,4305
151
+ tests/test_omodel.py,sha256=niVdTZJEZNSVHz-ocA0nnVx84Dt3-8P5FUrwKkNiA0I,4305
171
152
  tests/test_paths.py,sha256=BU6Tjl4Q_WuHbid0ujkiibqx7yas42YJ7eV_avVMwuw,633
172
- tests/test_report.py,sha256=B2_ugz5gzF4mDdiba498DrkK9hX4Zfa6KUGW54yCGVE,8069
153
+ tests/test_report.py,sha256=RR23by4G-cyleaHTy9A7SEVet0eOVS-Tm0kk1GXY5dM,8134
173
154
  tests/test_repr.py,sha256=g7MRdxLcZRI1PlREFdUG_npp0LkcQiJZfOPw1aq0EFM,570
174
- tests/test_routine.py,sha256=gblLHBQ3DJgYiSGsqGdIGnn-CuEZAEnq9CqhqN5m608,6234
175
- tests/test_rtn_dcopf.py,sha256=LOfAVFzl2t6oTqTmWhmstu1j9FnpzHxdrplbmb3Y6Mc,3660
176
- tests/test_rtn_dcopf2.py,sha256=g0MOW8J6WPJPQAV3Xwufa3dWEEeH-cQDErzvb-cq8lE,3747
177
- tests/test_rtn_dcpf.py,sha256=QC6F_4LOZ7mrWOEM3s6a6j-eUDM_n49MQouPIR6fzR0,2555
178
- tests/test_rtn_ed.py,sha256=xTtCe_yepvtk1yINq01vmGMhEE8E5ORk7yPZvaydUWA,10189
179
- tests/test_rtn_pflow.py,sha256=aDL5Ewm6lWqpdHqIIu-DTllhXzt4bMjsLJaKbJa8sXQ,6990
180
- tests/test_rtn_rted.py,sha256=1Vd4JCX3sfLnuXXzuUGFsEPTtqmdaDzDXpBcAQwnDf0,9785
181
- tests/test_rtn_uc.py,sha256=8KrqxOxW6tiN4Fxl417NyHJCgdZwXh2ioX0mQbHuEgU,8302
155
+ tests/test_routine.py,sha256=DP5CwKtzliw2gNLW2W_3kp0Ihy4rCaxeBxMpgyN5AXA,6234
156
+ tests/test_rtn_acopf.py,sha256=Kg-RHflrrwyX2uHr16xSAze9XAdYcK7eg1LHMyr1uyA,2354
157
+ tests/test_rtn_dcopf.py,sha256=Pl6yGfvznnjP1oGiIWEhnqFIBW2futxPZS4o_DRkbrw,3660
158
+ tests/test_rtn_dcopf2.py,sha256=57_62TnHW-cS6iK2zXT_eXChnh83YiYoPypJwub3VmQ,3747
159
+ tests/test_rtn_ed.py,sha256=SeSuzqpTZZnBph41PV2Piplo9yxR3qpbhQUa6UCYnSw,10267
160
+ tests/test_rtn_opf.py,sha256=MmMNwb9-G0KzHcrrP4uHTvs9DBU71_XPIJqNnkQQPHo,4846
161
+ tests/test_rtn_pflow.py,sha256=QLg0q89Tcb-rrncpiNw6phjMEnvzvExjGTrkqGliiak,4664
162
+ tests/test_rtn_pypower.py,sha256=KO5VOZxETxVH2mY1mgNvzj1gz1Gdak1sAWxYleDU4E8,10477
163
+ tests/test_rtn_rted.py,sha256=QHDUymorCqQAJKFlDgTy40JyLTGDvNVNU3tjbjDl3-0,9850
164
+ tests/test_rtn_uc.py,sha256=UbMeaam3dZwgq2LAJokGOl3LT5B3TWKMjCp4dRcLs40,8497
182
165
  tests/test_service.py,sha256=6IP6CAH2xHxGHZM4-R8LjZxVJ2L10LcGaPDyRIqKLmc,2438
183
- ltbams-1.0.8.dist-info/METADATA,sha256=Ui__dkyfMC9bk9tO-Bur2iMVqnieYJVZygg08Z26Q7w,14023
184
- ltbams-1.0.8.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
185
- ltbams-1.0.8.dist-info/entry_points.txt,sha256=FA56FlhO_yVNeEf810SrorVQb7_Xsmo3_EW-W-ijUfA,37
186
- ltbams-1.0.8.dist-info/top_level.txt,sha256=pyKDqG2kj13F9-BYd_wkruRdBSqLXw8Nwc-cmljqrxg,15
187
- ltbams-1.0.8.dist-info/RECORD,,
166
+ ltbams-1.0.10.dist-info/METADATA,sha256=607sw75UjOTCI4FuqQROlZn7BobwBeBubXQ5r9H_Bgc,13511
167
+ ltbams-1.0.10.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
168
+ ltbams-1.0.10.dist-info/entry_points.txt,sha256=FA56FlhO_yVNeEf810SrorVQb7_Xsmo3_EW-W-ijUfA,37
169
+ ltbams-1.0.10.dist-info/top_level.txt,sha256=pyKDqG2kj13F9-BYd_wkruRdBSqLXw8Nwc-cmljqrxg,15
170
+ ltbams-1.0.10.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.1)
2
+ Generator: setuptools (80.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
tests/test_1st_system.py CHANGED
@@ -19,7 +19,7 @@ class TestCodegen(unittest.TestCase):
19
19
  out += group.doc_all()
20
20
 
21
21
  def test_docum(self) -> None:
22
- sp = ams.load(ams.get_case('5bus/pjm5bus_demo.xlsx'),
22
+ sp = ams.load(ams.get_case('5bus/pjm5bus_demo.json'),
23
23
  setup=True, no_output=True)
24
24
  sp.DCOPF.init()
25
25
  docum = sp.DCOPF.docum
tests/test_case.py CHANGED
@@ -14,7 +14,7 @@ class Test5Bus(unittest.TestCase):
14
14
 
15
15
  def setUp(self) -> None:
16
16
  self.ss = ams.main.load(
17
- get_case("5bus/pjm5bus_demo.xlsx"),
17
+ get_case("5bus/pjm5bus_demo.json"),
18
18
  default_config=True,
19
19
  no_output=True,
20
20
  )
@@ -110,19 +110,19 @@ class Test5Bus(unittest.TestCase):
110
110
  self.ss.ACOPF.run()
111
111
  np.testing.assert_array_equal(self.ss.GCost.c1.v, [1500., 3100., 0.4, 0.1, 0.01])
112
112
 
113
- def test_multiple_disconnected_line(self):
114
- """
115
- Test connectivity check for systems with disconnected lines.
116
-
117
- These disconnected lines (zeros) was not excluded when counting
118
- connected buses, causing an out-of-bound error.
119
- """
120
- # TODO: need to add `connectivity` in `system`
121
- pass
122
- # self.ss.Line.u.v[[0, 6]] = 0
123
- # self.ss.PFlow.run()
124
- # self.assertEqual(len(self.ss.Bus.islands), 1)
125
- # self.assertEqual(self.ss.Bus.n_islanded_buses, 0)
113
+ # def test_multiple_disconnected_line(self):
114
+ # """
115
+ # Test connectivity check for systems with disconnected lines.
116
+
117
+ # These disconnected lines (zeros) was not excluded when counting
118
+ # connected buses, causing an out-of-bound error.
119
+ # """
120
+ # # TODO: need to add `connectivity` in `system`
121
+ # pass
122
+ # # self.ss.Line.u.v[[0, 6]] = 0
123
+ # # self.ss.PFlow.run()
124
+ # # self.assertEqual(len(self.ss.Bus.islands), 1)
125
+ # # self.assertEqual(self.ss.Bus.n_islanded_buses, 0)
126
126
 
127
127
 
128
128
  class TestIEEE14RAW(unittest.TestCase):
tests/test_export_csv.py CHANGED
@@ -17,7 +17,7 @@ class TestExportCSV(unittest.TestCase):
17
17
 
18
18
  def setUp(self) -> None:
19
19
  self.ss = ams.main.load(
20
- ams.get_case("5bus/pjm5bus_demo.xlsx"),
20
+ ams.get_case("5bus/pjm5bus_demo.json"),
21
21
  default_config=True,
22
22
  no_output=True,
23
23
  )
tests/test_interface.py CHANGED
@@ -17,7 +17,7 @@ class TestAndesConversion(unittest.TestCase):
17
17
  Tests conversion from AMS to ANDES.
18
18
  """
19
19
  ad_cases = [
20
- 'ieee14/ieee14_full.xlsx',
20
+ 'ieee14/ieee14_exac1.json',
21
21
  'ieee39/ieee39_full.xlsx',
22
22
  'npcc/npcc.xlsx',
23
23
  ]
@@ -133,7 +133,7 @@ class TestAndesConversion(unittest.TestCase):
133
133
  """
134
134
  Test conversion when there is Toggle in ANDES case.
135
135
  """
136
- sp = ams.load(ams.get_case('5bus/pjm5bus_demo.xlsx'),
136
+ sp = ams.load(ams.get_case('5bus/pjm5bus_demo.json'),
137
137
  setup=True,
138
138
  no_output=True,
139
139
  default_config=True)
@@ -214,3 +214,25 @@ class TestDataExchange(unittest.TestCase):
214
214
  sa.TDS.run()
215
215
  self.sp.dyn.send(adsys=sa, routine='RTED')
216
216
  self.sp.dyn.receive(adsys=sa, routine='RTED', no_update=False)
217
+
218
+
219
+ class TestLoadANDESFile(unittest.TestCase):
220
+ """
221
+ Test loading ANDES file.
222
+ """
223
+
224
+ def test_no_dyn_models(self):
225
+ """
226
+ Test loading ANDES file without dynamic models.
227
+ """
228
+ sp1 = ams.load(andes.get_case('ieee14/ieee14_exac1.json'),
229
+ setup=True,
230
+ no_output=True,
231
+ default_config=True,)
232
+ self.assertNotIn('EXAC1', sp1.models.keys())
233
+
234
+ sp2 = ams.load(andes.get_case('ieee14/ieee14_pvd1.json'),
235
+ setup=True,
236
+ no_output=True,
237
+ default_config=True,)
238
+ self.assertIn('PVD1', sp2.models.keys())