You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# dss_python: Unofficial bindings for EPRI's OpenDSS
4
2
5
3
Python bindings and misc tools for using OpenDSS (EPRI Distribution System Simulator). Based on CFFI and `dss_capi`, aiming for full COM compatibility on Windows and Linux.
6
4
7
5
If you are looking for the C API library, see [`dss_capi`](http://github.com/PMeira/dss_capi/).
8
6
9
-
Version 0.9.7, based on [OpenDSS revision 2152](https://sourceforge.net/p/electricdss/code/2152/tree/).
7
+
Version 0.9.8, based on OpenDSS revision 2246.
10
8
This is a work-in-progress but it's deemed stable enough to be made public.
11
9
*Note that, while the interface with OpenDSS is stable (classic version), the OpenDSS-PM (actor-based parallel machine version) interface was integrated recently and is experimental.*
12
10
@@ -15,8 +13,9 @@ Most of the COM documentation can be used as-is, but instead of returning tuples
15
13
16
14
This module depends on CFFI, NumPy and, optionally, SciPy.Sparse for reading the sparse system admittance matrix.
17
15
18
-
Recent changes
19
-
==============
16
+
## Recent changes
17
+
18
+
- 2018-08-10 / version 0.9.8: Reorganize modules (v7 and v8), adds 8 missing methods and new backend methods for OpenDSSDirect.py v0.3+. Integrates many fixes from DSS_CAPI and the upstream OpenDSS.
20
19
- 2018-04-30 / version 0.9.7: Fix some of the setters that used array data.
21
20
- 2018-04-05 / version 0.9.6: Adds missing `ActiveCircuit.CktElements[index]` (or `...CktElements(index)`) and `ActiveCircuit.Buses[index]` (or `...Buses(index)`).
22
21
- 2018-03-07 / version 0.9.4: Allows using `len` on several classes, fixes DSSProperty, and includes COM helpstrings as docstrings. Contains changes up to OpenDSS revision 2152.
@@ -25,8 +24,7 @@ Recent changes
25
24
- 2018-02-08 / version 0.9.1: First public release (OpenDSS revision 2123)
26
25
27
26
28
-
Missing features and limitations
29
-
================================
27
+
## Missing features and limitations
30
28
31
29
Most limitations are inherited from `dss_capi`, i.e.:
32
30
@@ -35,19 +33,18 @@ Most limitations are inherited from `dss_capi`, i.e.:
35
33
-`DSSEvents` from `DLL/ImplEvents.pas`: seems too dependent on COM.
36
34
-`DSSProgress` from `DLL/ImplDSSProgress.pas`: would need a reimplementation depending on the target UI (GUI, text, headless, etc.)
37
35
38
-
- Although tests were successful on openSuse 42.3 (both CPython 3.6 and PyPy3.5 v5.10.1), Linux binaries are not yet available. For the time being, you need to build them yourself.
36
+
- Although tests were successful on openSuse 42.3 (both CPython 3.6 and PyPy3.5 v5.10.1).
39
37
40
-
Extra features
41
-
==============
38
+
## Extra features
39
+
42
40
Besides most of the COM methods, some of the unique DDLL methods are also exposed in adapted forms, namely the methods from `DYMatrix.pas`, especially `GetCompressedYMatrix` (check the source files for more information).
43
41
44
42
Since no GUI components are used in the FreePascal DLL, we are experimenting with different ways of handling OpenDSS errors. Currently, the `DSS.Text.Command` call checks for OpenDSS errors (through the `DSS.Error` interface) and converts those to Python exceptions. Ideally every error should be converted to Python exceptions, but that could negatively impact performance. You can manually trigger an error check by calling the function `CheckForError()` from the main module.
45
43
46
44
47
-
Installing
48
-
==========
45
+
## Installing
49
46
50
-
On Windows (64-bit Python 2.7and 3.6), you can install directly from pip:
47
+
On Windows (Python 2.7, 3.6 and 3.7), you can install directly from pip:
51
48
52
49
```
53
50
pip install dss_python
@@ -56,8 +53,7 @@ pip install dss_python
56
53
If successful, you can then import the `dss` module from your Python interpreter.
57
54
58
55
59
-
Building
60
-
========
56
+
## Building
61
57
62
58
Get this repository:
63
59
@@ -70,7 +66,7 @@ Assuming you successfully built or downloaded the `dss_capi` (check [its reposit
70
66
```
71
67
dss_capi/
72
68
dss_python/
73
-
electricdss/
69
+
electricdss-src/
74
70
```
75
71
76
72
Open a command prompt in the `dss_python` subfolder and run the build process:
0 commit comments