AltDSS-Python changelog#
Remember that changes in our alternative OpenDSS engine, currently known as AltDSS/DSS C-API, are always relevant. See AltDSS/DSS C-API’s repository for more information.
0.2.3#
The engine was updated to AltDSS/DSS C-API 0.14.4 in order to implement some of changes below.
new
andbatch_new
:Added docstrings.
Adjust the engine implementation to check for existing elements to avoid accidentally creating elements with the same name (on user error).
The default for the
begin_edit
keyword argument tweaked so most users don’t need to worry about it. See the docs for details.
New functions
edit
for objects and batches. These are shorthands for the whole (begin_edit
, set properties,end_edit
) dance.
0.2.2#
This release includes a lot more tests, reaching 100% coverage of the Python code of several important modules, considering both the public and private tests. The engine was updated to AltDSS/DSS C-API 0.14.3 to include a couple of new features and fixes found during the tests.
SystemY: in
AltDSS.SystemY
, return the matrix as a SciPy sparse matrix directly.BusBatch: Add missing
Name
function (the bus names were already exposed in the individual objects and at circuit level inAltDSS.BusNames
).Batch, creation function
.batch(...)
:Fix by list of indices (
...batch(idx=[0,1,10]
)Add some basic type checks
Add support for selecting items by float property (
...batch(kW=0)
or...batch(kV=[0.0, 1.0])
)Add support for filtering multiple properties (
...batch(Phases=2, kV=[0.0, 1.0])
), and filtering existing batches.
CircuitElement/CircuitElementBatch: Complement doc strings; fix some type hints.
CircuitElementBatch:
Fix
MaxCurrent
. This will require the backend to be updated to v0.14.3.Implement
OCPDevice
NonUniformBatch: allow
batch[idx]
to get a single element by index.Setters:
Allow using
None
to clear object references (e.g.altdss.Load[0].Daily = None
)Allow using list of live objects to fill a property that represents a DSS object.
ArrayProxy:
Fix
BatchFloat64ArrayProxy.to_list()
. It was returning an array instead a list.Accepts lists for in-place sub, e.g.
arrayProxy -= [1.1, 1.4]
now works as expected.Use new low-level operations for in-place operations with array values
0.2.1#
Meter/Generator/etc.: Remove the previous workaround for issue with the AltDSS/DSS C-API headers related to
RegisterValues
– now working without it. Add test.
0.2.0#
Version incremented to 0.2.0 due to the number of changes in the function/property names. The engine is also updated to AltDSS/DSS C-API 0.14.2.
PDElement:
Fix
ParentPDElement
Fix and update names:
pctNorm
topctNormal
pctEmerg
topctEmergency
Batch: add
pctNormal
andpctEmergency
Add/complement docstrings
Bus class:
Fix errors in
ZSC0
,ZSC1
,Voltages
Batch: fix
len(bus_batch)
Fix element batches (PCElements, PDElements)
Tweak tracking when buses are redefined but there are still live objects
Complement docstrings
Update names of several items:
Voc
toVOC
Isc
toISC
YscMatrix
toYSC
ZscMatrix
toZSC
Zsc012Matrix
toZSC012
Zsc0
toZSC0
Zsc1
toZSC1
ZscRefresh
toZSCRefresh
AltDSS (main class): adjust capitalization of a few items:
NodeVmagByPhase
toNodeVMagByPhase
NodeVmagPUByPhase
toNodeVMagPUByPhase
BusVmag
toBusVMag
BusVmagPu
toBusVMagPU
0.1.3#
Meter/Generator/etc.: Add workaround for issue with the AltDSS/DSS C-API headers related to
RegisterValues
.Monitor: fix issue with
Channel
returning the whole data instead of the channel data.
0.1.2#
Fix
SetterFlags
: import from backend instead of defining a new enum here.Batch:
Implement
__slots__
to constrain the attributes and avoid accidental names.EnergyMeter.Loads
: make it a function to avoid issues with uninitialized meters (such as new meters).Minor quality of life changes, such as returning zero instead of error for some empty batches.
Known issue: reading
pctEmerg
orpctNorm
for uninitialized PDElements (missing solution for the circuit) will crash. This is already fixed in the engine and will be included in the next backend update.
0.1.1#
Batch: fix setter for single object
Line: adjust Conductors to allow any conductor data object (WireData, CNData, TSData).
LineGeometry: rename “Wire” to “Conductors”, follow the changes in Line.
Depend on DSS-Python 0.15.2 for the updated backend.
Add tests to ensure the following issues don’t happen again:
Bus: Fix typo in
puVMagAngle
(rename it frompuVmagAngle
), andVoc
.Meters: Fix typo in call to
DoReliabilityCalc
Circuit: Fix typo in
NumCircuitElements
PCE: Found a function not implemented in the engine. Fixed there.
0.1.0#
First version. Still depends on DSS-Python for the backend, but otherwise can be used for a lot of common operations by itself.
Highlights compared to the previous Obj API on DSS-Python:
The method
find()
(and__getitem__
) now assume 0-based numeric indices. This is more appropriate to Python, e.g.altdss.Load[0]
now returns the first load.Besides the previous DSS property functions, new API methods to allow extracting data and manipulating objects through generalized versions of the classic (COM-like) API.
Introduce extra batch types for special classes
Introduce non-uniform batches
Introduce dynamic batches, avoiding redundant copies
Special handling of EnergyMeter and MeterSections
Object lifetime: implement synchronization of circuit state and pointers, invalidating dead pointer instead of crashing
0.0.1#
Published to PyPI to reserve the name.