Skip to content

Commit da9b6d7

Browse files
committed
Add a new changelog.md document.
1 parent c7c89e5 commit da9b6d7

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

docs/changelog.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# 0.10.0
2+
3+
Released on 2018-11-17.
4+
5+
## Major changes:
6+
- The creation of the binary modules has been automated using Travis-CI and AppVeyor. We expect that this will allow us to release more often, bringing new features sooner.
7+
- Integrates many fixes from the upstream OpenDSS and changes specific to DSS C-API.
8+
- Reorganizes and reuses the code across DSS versions (v7 and v8)
9+
- Uses `__slots__` to simplify attribute handling.
10+
- Exposes both the our classic API (e.g. `dss.v7.DSS_IR` for the immediate/direct results) and global result API (e.g. `dss.v7.DSS_GR` for the global result interface). See [DSS C-API's docs](https://github.com/PMeira/dss_capi/blob/master/docs/usage.md) for a detailed explanation. We default to the GR interface since it will generally be faster at the cost of a small memory overhead.
11+
- Although still experimental, the v8/PM module is more stable. If you try it, please give feedback.
12+
- Error checking is now done for most API writes. That is, if a an OpenDSS error occurs, it should cause a Python exception soon after. Previously, you need to call `CheckForError()` manually to trigger this. This change was introduced after user reports indicated that manually checking for errors is a common behavior.
13+
- Expose API extensions for the classes `LineGeometry`, `WireData`, `LineSpacing`, `CNData`, `TSData`, `Reactor`.
14+
- Make most DSS classes iterable (including buses), e.g. you can now use:
15+
```python
16+
for l in DSS.ActiveCircuit.Loads:
17+
print(l.Name)
18+
```
19+
- Add a COM patching function (`dss.patch_dss_com`) -- that is, extend the COM instance with iterators like above and some other few functions to make it easier to exchange between COM and DSS Python:
20+
```python
21+
22+
import win32com.client, dss
23+
com = dss.patch_dss_com(win32com.client.gencache.EnsureDispatch("OpenDSSEngine.DSS"))
24+
25+
# ...compile a circuit, etc.
26+
27+
for l in com.ActiveCircuit.Loads:
28+
print(l.Name, l.kva)
29+
30+
for b in com.ActiveCircuit.ActiveBus:
31+
print(b.Name, b.x, b.y)
32+
```
33+
34+
## Performance
35+
On microbenchmarks, the GR interface can reduce the running time up to 50% (typically 25%) on properties that return arrays. If you find issues using the default GR interface, you can always use the classic interface from 0.9.8 by importing the appropriate module: `from dss import DSS_IR as DSS`. Currently, the GR changes do not affect writing data (setting properties), only reading them.
36+
37+
## Mixed-cased handling
38+
If you were using `use_com_compat` to allow mixed-cased attributes, it should work better than before. You may now use `use_com_compat(warn=True)` to warn when you use an attribute that wouldn't exist without calling `use_com_compat`. The intention is that the user should run their code to get a list of warnings, fix it, and then remove `use_com_compat` since it does have a small performance impact.
39+

0 commit comments

Comments
 (0)