Volue-Public / energy-mesh-python

A Python API able to communicate with Volue Energy's Mesh server.
Other
10 stars 0 forks source link

KeyError while getting object #519

Open borlaugen opened 4 days ago

borlaugen commented 4 days ago

Mesh Python SDK version: 1.9.0 Mesh version: VersionInfo(version='2.15.1+7', name='Volue Mesh Server') Python version: Python 3.11.9 Operating System (Windows, Ubuntu, etc.): Windows

When trying to get a specific object by running session.get_object(UUID('')) I get the below stack trace. This works for other objects, but this object fails.

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "c:\Users\UserName\source\repos\mesh-client\.venv\Lib\site-packages\aa_mesh_client\mesh\connection.py", line 60, in wrapper
    result = func(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\UserName\source\repos\mesh-client\.venv\Lib\site-packages\volue\mesh\_connection.py", line 335, in get_object
    return Object._from_proto_object(proto_object)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\UserName\source\repos\mesh-client\.venv\Lib\site-packages\volue\mesh\_object.py", line 62, in _from_proto_object
    object.attributes[proto_attribute.name] = _from_proto_attribute(
                                              ^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\UserName\source\repos\mesh-client\.venv\Lib\site-packages\volue\mesh\_attribute.py", line 71, in _from_proto_attribute
    attribute = TimeseriesAttribute(proto_attribute)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\UserName\source\repos\mesh-client\.venv\Lib\site-packages\volue\mesh\_attribute.py", line 520, in __init__
    TimeseriesResource._from_proto_timeseries_resource(
  File "c:\Users\UserName\source\repos\mesh-client\.venv\Lib\site-packages\volue\mesh\_timeseries_resource.py", line 50, in _from_proto_timeseries_resource
    curve_type=_from_proto_curve_type(proto_timeseries_resource.curve_type),
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\UserName\source\repos\mesh-client\.venv\Lib\site-packages\volue\mesh\_common.py", line 396, in _from_proto_curve_type
    return CURVE_TYPES.inverse[proto_curve.type]
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "c:\Users\UserName\source\repos\mesh-client\.venv\Lib\site-packages\bidict\_base.py", line 524, in __getitem__
    return self._fwdm[key]
           ~~~~~~~~~~^^^^^
KeyError: 0
borlaugen commented 4 days ago

To me it seems like the curve type of the object is 0 but there is no entry in CURVE_TYPES for curve_type 0 bidict({<Curve.PIECEWISELINEAR: 2>: 2, <Curve.STAIRCASE: 3>: 3, <Curve.STAIRCASESTARTOFSTEP: 1>: 1})