diff --git a/PyDSS/dssElement.py b/PyDSS/dssElement.py index c08dccf4..74127cd5 100755 --- a/PyDSS/dssElement.py +++ b/PyDSS/dssElement.py @@ -1,10 +1,13 @@ import ast +from opendssdirect import DSSException + from PyDSS.dssBus import dssBus from PyDSS.dssObjectBase import dssObjectBase from PyDSS.exceptions import InvalidParameter from PyDSS.value_storage import ValueByNumber + class dssElement(dssObjectBase): VARIABLE_OUTPUTS_BY_LABEL = { @@ -81,8 +84,14 @@ def __init__(self, dssInstance): self._Parameters[PptName] = str(i) CktElmVarDict = dssInstance.CktElement.__dict__ - for VarName in dssInstance.CktElement.AllVariableNames(): - CktElmVarDict[VarName] = None + try: + for VarName in dssInstance.CktElement.AllVariableNames(): + CktElmVarDict[VarName] = None + except DSSException as e: + # Prior to OpenDSSDirect.py v0.8.0 this returned an empty list for non-PC elements. + # v0.8.0 and later raises an exception. Ignore the error. + if e.args[1] != "The active circuit element is not a PC Element": + raise for key in CktElmVarDict.keys(): try: diff --git a/requirements.txt b/requirements.txt index 4be99c10..08eeec08 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ scipy bokeh networkx toml -OpenDSSDirect.py~=0.7.0 +OpenDSSDirect.py~=0.8.4 Shapely click numpy