dss-python 0.15.0rc1__tar.gz → 0.15.1__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.
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/.gitignore +133 -129
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/LICENSE +30 -30
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/PKG-INFO +28 -22
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/README.md +165 -160
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IActiveClass.py +124 -127
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IBus.py +441 -445
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ICNData.py +185 -189
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ICapControls.py +226 -230
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ICapacitors.py +104 -108
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ICircuit.py +707 -711
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ICktElement.py +558 -561
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ICtrlQueue.py +144 -148
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IDSS.py +549 -554
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IDSSElement.py +60 -64
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IDSSEvents.py +202 -205
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IDSSProgress.py +45 -49
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IDSSProperty.py +64 -68
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IDSS_Executive.py +71 -75
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IDSSimComs.py +18 -22
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IError.py +99 -103
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IFuses.py +197 -201
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IGICSources.py +105 -108
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IGenerators.py +304 -308
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IISources.py +55 -59
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ILineCodes.py +208 -212
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ILineGeometries.py +143 -147
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ILineSpacings.py +73 -77
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ILines.py +411 -415
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ILoadShapes.py +196 -200
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ILoads.py +536 -540
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IMeters.py +431 -435
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IMonitors.py +281 -285
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IPDElements.py +345 -348
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IPVSystems.py +262 -267
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IParallel.py +132 -136
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IParser.py +166 -170
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IReactors.py +271 -275
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IReclosers.py +215 -219
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IReduceCkt.py +156 -158
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IRegControls.py +319 -323
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IRelays.py +128 -132
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ISensors.py +197 -201
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ISettings.py +311 -315
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ISolution.py +677 -681
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IStorages.py +59 -62
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ISwtControls.py +118 -122
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ITSData.py +173 -177
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IText.py +51 -55
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ITopology.py +197 -201
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/ITransformers.py +332 -336
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IVsources.py +83 -87
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IWireData.py +122 -126
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IXYCurves.py +143 -147
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IYMatrix.py +151 -155
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/IZIP.py +96 -99
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/UserModels/__init__.py +10 -10
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/UserModels/bases.py +279 -279
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/UserModels/wrappers.py +313 -313
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/__init__.py +48 -50
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/_cffi_api_util.py +1011 -1004
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/_types.py +21 -21
- dss_python-0.15.1/dss/_version.py +1 -0
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/enums.py +1 -1
- dss_python-0.15.1/dss/examples.py +69 -0
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/patch_dss_com.py +194 -194
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/plot.py +1998 -1998
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/pyproject.toml +84 -83
- dss_python-0.15.0rc1/dss/_version.py +0 -1
- dss_python-0.15.0rc1/dss/messages/properties-alt-en-US.mo +0 -0
- {dss_python-0.15.0rc1 → dss_python-0.15.1}/dss/messages/properties-en-US.mo +0 -0
|
@@ -1,129 +1,133 @@
|
|
|
1
|
-
# Byte-compiled / optimized / DLL files
|
|
2
|
-
__pycache__/
|
|
3
|
-
*.py[cod]
|
|
4
|
-
*$py.class
|
|
5
|
-
|
|
6
|
-
# C extensions
|
|
7
|
-
*.so
|
|
8
|
-
|
|
9
|
-
# Distribution / packaging
|
|
10
|
-
.Python
|
|
11
|
-
env/
|
|
12
|
-
build/
|
|
13
|
-
develop-eggs/
|
|
14
|
-
dist/
|
|
15
|
-
downloads/
|
|
16
|
-
eggs/
|
|
17
|
-
.eggs/
|
|
18
|
-
lib/
|
|
19
|
-
lib64/
|
|
20
|
-
parts/
|
|
21
|
-
sdist/
|
|
22
|
-
var/
|
|
23
|
-
wheels/
|
|
24
|
-
*.egg-info/
|
|
25
|
-
.installed.cfg
|
|
26
|
-
*.egg
|
|
27
|
-
|
|
28
|
-
# Py.test
|
|
29
|
-
.pytest_cache
|
|
30
|
-
|
|
31
|
-
# Test reports
|
|
32
|
-
tests/reports
|
|
33
|
-
|
|
34
|
-
# PyInstaller
|
|
35
|
-
# Usually these files are written by a python script from a template
|
|
36
|
-
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
37
|
-
*.manifest
|
|
38
|
-
*.spec
|
|
39
|
-
|
|
40
|
-
# Installer logs
|
|
41
|
-
pip-log.txt
|
|
42
|
-
pip-delete-this-directory.txt
|
|
43
|
-
|
|
44
|
-
# Unit test / coverage reports
|
|
45
|
-
htmlcov/
|
|
46
|
-
.tox/
|
|
47
|
-
.coverage
|
|
48
|
-
.coverage.*
|
|
49
|
-
.cache
|
|
50
|
-
nosetests.xml
|
|
51
|
-
coverage.xml
|
|
52
|
-
*.cover
|
|
53
|
-
.hypothesis/
|
|
54
|
-
|
|
55
|
-
# Translations
|
|
56
|
-
*.mo
|
|
57
|
-
*.pot
|
|
58
|
-
|
|
59
|
-
# Django stuff:
|
|
60
|
-
*.log
|
|
61
|
-
local_settings.py
|
|
62
|
-
|
|
63
|
-
# Flask stuff:
|
|
64
|
-
instance/
|
|
65
|
-
.webassets-cache
|
|
66
|
-
|
|
67
|
-
# Scrapy stuff:
|
|
68
|
-
.scrapy
|
|
69
|
-
|
|
70
|
-
# Sphinx documentation
|
|
71
|
-
docs/_build/
|
|
72
|
-
|
|
73
|
-
# PyBuilder
|
|
74
|
-
target/
|
|
75
|
-
|
|
76
|
-
# Jupyter Notebook
|
|
77
|
-
.ipynb_checkpoints
|
|
78
|
-
|
|
79
|
-
# pyenv
|
|
80
|
-
.python-version
|
|
81
|
-
|
|
82
|
-
# celery beat schedule file
|
|
83
|
-
celerybeat-schedule
|
|
84
|
-
|
|
85
|
-
# SageMath parsed files
|
|
86
|
-
*.sage.py
|
|
87
|
-
|
|
88
|
-
# dotenv
|
|
89
|
-
.env
|
|
90
|
-
|
|
91
|
-
# virtualenv
|
|
92
|
-
.venv
|
|
93
|
-
venv/
|
|
94
|
-
ENV/
|
|
95
|
-
|
|
96
|
-
# Spyder project settings
|
|
97
|
-
.spyderproject
|
|
98
|
-
.spyproject
|
|
99
|
-
|
|
100
|
-
.vscode
|
|
101
|
-
|
|
102
|
-
# Rope project settings
|
|
103
|
-
.ropeproject
|
|
104
|
-
|
|
105
|
-
# mkdocs documentation
|
|
106
|
-
/site
|
|
107
|
-
|
|
108
|
-
# mypy
|
|
109
|
-
.mypy_cache/
|
|
110
|
-
|
|
111
|
-
*.dll*
|
|
112
|
-
|
|
113
|
-
README.rst
|
|
114
|
-
|
|
115
|
-
conda_wheels/
|
|
116
|
-
dss/*.lib
|
|
117
|
-
dss/**/*.h
|
|
118
|
-
dss/**/*.hpp
|
|
119
|
-
dss/messages/*
|
|
120
|
-
|
|
121
|
-
*.CSV
|
|
122
|
-
*.lib
|
|
123
|
-
*.exp
|
|
124
|
-
*.orig
|
|
125
|
-
*.obj
|
|
126
|
-
*.pickle
|
|
127
|
-
*.dbl
|
|
128
|
-
*.sng
|
|
129
|
-
*.pdb
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
env/
|
|
12
|
+
build/
|
|
13
|
+
develop-eggs/
|
|
14
|
+
dist/
|
|
15
|
+
downloads/
|
|
16
|
+
eggs/
|
|
17
|
+
.eggs/
|
|
18
|
+
lib/
|
|
19
|
+
lib64/
|
|
20
|
+
parts/
|
|
21
|
+
sdist/
|
|
22
|
+
var/
|
|
23
|
+
wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
|
|
28
|
+
# Py.test
|
|
29
|
+
.pytest_cache
|
|
30
|
+
|
|
31
|
+
# Test reports
|
|
32
|
+
tests/reports
|
|
33
|
+
|
|
34
|
+
# PyInstaller
|
|
35
|
+
# Usually these files are written by a python script from a template
|
|
36
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
37
|
+
*.manifest
|
|
38
|
+
*.spec
|
|
39
|
+
|
|
40
|
+
# Installer logs
|
|
41
|
+
pip-log.txt
|
|
42
|
+
pip-delete-this-directory.txt
|
|
43
|
+
|
|
44
|
+
# Unit test / coverage reports
|
|
45
|
+
htmlcov/
|
|
46
|
+
.tox/
|
|
47
|
+
.coverage
|
|
48
|
+
.coverage.*
|
|
49
|
+
.cache
|
|
50
|
+
nosetests.xml
|
|
51
|
+
coverage.xml
|
|
52
|
+
*.cover
|
|
53
|
+
.hypothesis/
|
|
54
|
+
|
|
55
|
+
# Translations
|
|
56
|
+
*.mo
|
|
57
|
+
*.pot
|
|
58
|
+
|
|
59
|
+
# Django stuff:
|
|
60
|
+
*.log
|
|
61
|
+
local_settings.py
|
|
62
|
+
|
|
63
|
+
# Flask stuff:
|
|
64
|
+
instance/
|
|
65
|
+
.webassets-cache
|
|
66
|
+
|
|
67
|
+
# Scrapy stuff:
|
|
68
|
+
.scrapy
|
|
69
|
+
|
|
70
|
+
# Sphinx documentation
|
|
71
|
+
docs/_build/
|
|
72
|
+
|
|
73
|
+
# PyBuilder
|
|
74
|
+
target/
|
|
75
|
+
|
|
76
|
+
# Jupyter Notebook
|
|
77
|
+
.ipynb_checkpoints
|
|
78
|
+
|
|
79
|
+
# pyenv
|
|
80
|
+
.python-version
|
|
81
|
+
|
|
82
|
+
# celery beat schedule file
|
|
83
|
+
celerybeat-schedule
|
|
84
|
+
|
|
85
|
+
# SageMath parsed files
|
|
86
|
+
*.sage.py
|
|
87
|
+
|
|
88
|
+
# dotenv
|
|
89
|
+
.env
|
|
90
|
+
|
|
91
|
+
# virtualenv
|
|
92
|
+
.venv
|
|
93
|
+
venv/
|
|
94
|
+
ENV/
|
|
95
|
+
|
|
96
|
+
# Spyder project settings
|
|
97
|
+
.spyderproject
|
|
98
|
+
.spyproject
|
|
99
|
+
|
|
100
|
+
.vscode
|
|
101
|
+
|
|
102
|
+
# Rope project settings
|
|
103
|
+
.ropeproject
|
|
104
|
+
|
|
105
|
+
# mkdocs documentation
|
|
106
|
+
/site
|
|
107
|
+
|
|
108
|
+
# mypy
|
|
109
|
+
.mypy_cache/
|
|
110
|
+
|
|
111
|
+
*.dll*
|
|
112
|
+
|
|
113
|
+
README.rst
|
|
114
|
+
|
|
115
|
+
conda_wheels/
|
|
116
|
+
dss/*.lib
|
|
117
|
+
dss/**/*.h
|
|
118
|
+
dss/**/*.hpp
|
|
119
|
+
dss/messages/*
|
|
120
|
+
|
|
121
|
+
*.CSV
|
|
122
|
+
*.lib
|
|
123
|
+
*.exp
|
|
124
|
+
*.orig
|
|
125
|
+
*.obj
|
|
126
|
+
*.pickle
|
|
127
|
+
*.dbl
|
|
128
|
+
*.sng
|
|
129
|
+
*.pdb
|
|
130
|
+
|
|
131
|
+
docs/apidocs
|
|
132
|
+
tests/result*.zip
|
|
133
|
+
tmp/
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
BSD 3-Clause License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2017-2023, Paulo Meira
|
|
4
|
-
Copyright (c) 2017-2023, DSS-Python contributors
|
|
5
|
-
All rights reserved.
|
|
6
|
-
|
|
7
|
-
Redistribution and use in source and binary forms, with or without
|
|
8
|
-
modification, are permitted provided that the following conditions are met:
|
|
9
|
-
|
|
10
|
-
* Redistributions of source code must retain the above copyright notice, this
|
|
11
|
-
list of conditions and the following disclaimer.
|
|
12
|
-
|
|
13
|
-
* Redistributions in binary form must reproduce the above copyright notice,
|
|
14
|
-
this list of conditions and the following disclaimer in the documentation
|
|
15
|
-
and/or other materials provided with the distribution.
|
|
16
|
-
|
|
17
|
-
* Neither the name of the copyright holder nor the names of its
|
|
18
|
-
contributors may be used to endorse or promote products derived from
|
|
19
|
-
this software without specific prior written permission.
|
|
20
|
-
|
|
21
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
22
|
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
23
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
24
|
-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
25
|
-
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
26
|
-
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
27
|
-
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
28
|
-
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
29
|
-
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
30
|
-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2017-2023, Paulo Meira
|
|
4
|
+
Copyright (c) 2017-2023, DSS-Python contributors
|
|
5
|
+
All rights reserved.
|
|
6
|
+
|
|
7
|
+
Redistribution and use in source and binary forms, with or without
|
|
8
|
+
modification, are permitted provided that the following conditions are met:
|
|
9
|
+
|
|
10
|
+
* Redistributions of source code must retain the above copyright notice, this
|
|
11
|
+
list of conditions and the following disclaimer.
|
|
12
|
+
|
|
13
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
|
14
|
+
this list of conditions and the following disclaimer in the documentation
|
|
15
|
+
and/or other materials provided with the distribution.
|
|
16
|
+
|
|
17
|
+
* Neither the name of the copyright holder nor the names of its
|
|
18
|
+
contributors may be used to endorse or promote products derived from
|
|
19
|
+
this software without specific prior written permission.
|
|
20
|
+
|
|
21
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
22
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
23
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
24
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
25
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
26
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
27
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
28
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
29
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
30
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dss-python
|
|
3
|
-
Version: 0.15.
|
|
3
|
+
Version: 0.15.1
|
|
4
4
|
Summary: Python bindings and tools based on the DSS C-API project, the alternative OpenDSS implementation from DSS-Extensions.org. API-compatible with the COM version of OpenDSS.
|
|
5
5
|
Project-URL: Homepage, https://github.com/dss-extensions/dss_python
|
|
6
6
|
Project-URL: Documentation, https://dss-extensions.org/dss_python
|
|
@@ -55,13 +55,14 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
|
55
55
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
56
56
|
Classifier: Topic :: Scientific/Engineering
|
|
57
57
|
Requires-Python: >=3.7
|
|
58
|
-
Requires-Dist: dss-python-backend==0.14.
|
|
58
|
+
Requires-Dist: dss-python-backend==0.14.0
|
|
59
59
|
Requires-Dist: numpy>=1.21.0
|
|
60
60
|
Requires-Dist: typing-extensions<5,>=4.5
|
|
61
61
|
Provides-Extra: all
|
|
62
62
|
Requires-Dist: altdss; extra == 'all'
|
|
63
63
|
Requires-Dist: matplotlib; extra == 'all'
|
|
64
|
-
Requires-Dist: opendssdirect; extra == 'all'
|
|
64
|
+
Requires-Dist: opendssdirect-py[extras]; extra == 'all'
|
|
65
|
+
Requires-Dist: pandas; extra == 'all'
|
|
65
66
|
Requires-Dist: scipy; extra == 'all'
|
|
66
67
|
Provides-Extra: plot
|
|
67
68
|
Requires-Dist: matplotlib; extra == 'plot'
|
|
@@ -122,16 +123,16 @@ Since no GUI components are used in the FreePascal DLL, we map nearly all OpenDS
|
|
|
122
123
|
On all major platforms, you can install directly from pip:
|
|
123
124
|
|
|
124
125
|
```
|
|
125
|
-
pip install
|
|
126
|
+
pip install dss-python
|
|
126
127
|
```
|
|
127
128
|
|
|
128
|
-
|
|
129
|
+
For a full experience, install the optional dependencies with:
|
|
129
130
|
|
|
130
131
|
```
|
|
131
|
-
|
|
132
|
+
pip install dss-python[all]
|
|
132
133
|
```
|
|
133
134
|
|
|
134
|
-
Binary wheels are provided for all major platforms (Windows, Linux and MacOS) and many combinations of Python versions (3.
|
|
135
|
+
Binary wheels are provided for all major platforms (Windows, Linux and MacOS) and many combinations of Python versions (3.7 to 3.12). If you have issues with a specific version, please open an issue about it.
|
|
135
136
|
|
|
136
137
|
After a successful installation, you can then import the `dss` module from your Python interpreter.
|
|
137
138
|
|
|
@@ -164,10 +165,15 @@ cd ../dss_python
|
|
|
164
165
|
python -m pip install .
|
|
165
166
|
```
|
|
166
167
|
|
|
167
|
-
~~If you are familiar with `conda-build`, there is a complete recipe to build DSS C-API, KLUSolve(X) and DSS-Python in the `conda` subfolder.~~ (outdated)
|
|
168
168
|
|
|
169
|
-
|
|
170
|
-
|
|
169
|
+
## Documentation
|
|
170
|
+
|
|
171
|
+
The compiled documentation is hosted at https://dss-extensions.org/dss_python
|
|
172
|
+
|
|
173
|
+
## Example usage
|
|
174
|
+
|
|
175
|
+
**Check the documentation for more details.**
|
|
176
|
+
|
|
171
177
|
|
|
172
178
|
If you were using `win32com` in code like:
|
|
173
179
|
|
|
@@ -188,7 +194,7 @@ you can replace that fragment with:
|
|
|
188
194
|
from dss import DSS as dss_engine
|
|
189
195
|
```
|
|
190
196
|
|
|
191
|
-
If you need
|
|
197
|
+
If you need support for arbitrary capitalization (that is, you were not using early bindings with win32com), add a call to `dss.set_case_insensitive_attributes()`.
|
|
192
198
|
|
|
193
199
|
Assuming you have a DSS script named `master.dss`, you should be able to run it as shown below:
|
|
194
200
|
|
|
@@ -203,32 +209,32 @@ for i in range(len(voltages) // 2):
|
|
|
203
209
|
print('node %d: %f + j%f' % (i, voltages[2*i], voltages[2*i + 1]))
|
|
204
210
|
```
|
|
205
211
|
|
|
206
|
-
Testing
|
|
207
|
-
|
|
212
|
+
## Testing
|
|
213
|
+
|
|
208
214
|
Since the DLL is built using the Free Pascal compiler, which is not officially supported by EPRI, the results are validated running sample networks provided in the official OpenDSS distribution. The only modifications are done directly by the script, removing interactive features and some other minor issues. Most of the sample files from the official OpenDSS repository are used for validation.
|
|
209
215
|
|
|
210
216
|
The validation scripts is `tests/validation.py` and requires the same folder structure as the building process. You need `win32com` to run it on Windows.
|
|
211
217
|
|
|
212
218
|
As of version 0.11, the full validation suite can be run on the three supported platforms. This is possible by saving the official COM DLL output and loading it on macOS and Linux. We hope to fully automate this validation in the future.
|
|
213
219
|
|
|
214
|
-
Roadmap: docs and interactive features
|
|
215
|
-
|
|
220
|
+
## Roadmap: docs and interactive features
|
|
221
|
+
|
|
216
222
|
Besides bug fixes, the main functionality of this library is mostly done. Notable desirable features that may be implemented are:
|
|
217
223
|
|
|
218
|
-
- More
|
|
219
|
-
- Reports integrated in Python and interactive features on plots. Since most of the plot types from the official OpenDSS are optionally available
|
|
224
|
+
- More examples, especially for the extra features. There is a growing documentation hosted at [https://dss-extensions.org/dss_python/](https://dss-extensions.org/dss_python/); watch also https://github.com/dss-extensions/dss-extensions for more.
|
|
225
|
+
- Reports integrated in Python and interactive features on plots. Since most of the plot types from the official OpenDSS are optionally available since DSS-Python 0.14.2, advanced integration and interactive features are planned for a future feature.
|
|
220
226
|
|
|
221
227
|
Expect news about these items by version 1.0.
|
|
222
228
|
|
|
223
|
-
While the base library (DSS C-API) will go through some API changes before v1.0, those do not affect usage from the Python side.
|
|
229
|
+
While the base library (AltDSS/DSS C-API) will go through some API changes before v1.0, those do not affect usage from the Python side.
|
|
230
|
+
|
|
231
|
+
## Questions?
|
|
224
232
|
|
|
225
|
-
Questions?
|
|
226
|
-
==========
|
|
227
233
|
If you have any question, feel free to open a ticket on GitHub (here or at https://github.com/dss-extensions/dss-extensions), or contact directly me through email (pmeira at ieee.org). Please allow me a few days to respond.
|
|
228
234
|
|
|
229
235
|
|
|
230
|
-
Credits /
|
|
231
|
-
|
|
236
|
+
## Credits / Acknowledgments
|
|
237
|
+
|
|
232
238
|
DSS-Python is based on EPRI's OpenDSS via the [`dss_capi`](http://github.com/dss-extensions/dss_capi/) project, so check its licensing information too.
|
|
233
239
|
|
|
234
240
|
This project is licensed under the (new) BSD, available in the `LICENSE` file. It's the same license OpenDSS uses (`OPENDSS_LICENSE`). OpenDSS itself uses KLUSolve and SuiteSparse, licensed under the GNU LGPL 2.1.
|