Skip to content

OpenDSSDirect.py v0.9.3

Compare
Choose a tag to compare
@PMeira PMeira released this 19 Mar 04:54
· 3 commits to master since this release

In v0.9.3, we started pinning, again, exact versions of DSS-Python to make it easier for users to track the changes. We expect to integrate to PyPI to automate the releases in the future.

In the past month, we've released the refactored OpenDSSDirect.py that allows multiple OpenDSS engines, Python iteration for classes, safer access (avoids some common issues we observed throughout the years), and more. There is an update/upgrade guide at the documentation site: https://dss-extensions.org/OpenDSSDirect.py/updating_to_0.9.html

Although v0.9.0 was released on 2024-02-12, we held this announcement until now to allow the new companion package to be tested more before recommending it. Some features that initially were expected to land on OpenDSSDirect.py have now been published under this new package, AltDSS-Python. Check its site for the motivation, examples, and API reference.

❓ What's this?

This package provides a multi-platform, function-style, direct interface to the OpenDSS engine implementation from the DSS-Extensions project.

OpenDSSDirect.py can be installed using pip. For more: http://dss-extensions.org/OpenDSSDirect.py/notebooks/Installation.html

As OpenDSSDirect.py accumulates changes from DSS-Python, DSS C-API and the official OpenDSS, read below for important changes in the ecosystem, starting in v0.9.

ℹ️ Recent news

Besides the codebase update for v0.9, the documentation and examples have also been updated, and will be better integrated into the new DSS-Extensions site soon, which does contain shared documentation, including DSS language/data model reference and notes about the classic OpenDSS API (based on the original COM implementation).

Other highlights in v0.9: there are new functions to save the circuit which customized flags, and the work-in-progress JSON implementation now allows both saving and loading whole circuits.

❓AltDSS-Python

Like DSS-Python, AltDSS-Python can also be used together with OpenDSSDirect.py. Since multiple DSS engines are supported, there are utility functions to map across the packages. AltDSS-Python, or just AltDSS in this context, uses a whole different paradigm from the older Python packages, moving away from the "Active..." paradigm. The new AltDSS includes integration to all OpenDSS object types (access, creation, manipulation, all directly in Python), exposed as Python objects, and also allows using batches of DSS objects to accelerate some operations that would be otherwise slow in Python, pushing many operations to the engine, ranging from collected results for multiple objects, to efficient use of DSS properties. For example, bulk updating (incrementing/decrementing/multiplying/etc.) an int or float property for thousands of elements doesn't require copying the data and is done directly in the engine, after the input data for the operation is prepared in Python.

Engine updates

As usual, there have been a lot of changes our OpenDSS engine, AltDSS/DSS C-API. See https://github.com/dss-extensions/dss_capi/blob/master/docs/changelog.md#versions-014x for the complete changes since the last announced release here on GitHub. There are a few specific bugfixes, ports from the official OpenDSS, besides the on-going refactoring of the whole codebase.