Waveform.x_limits return QPointF, cannot be serialized
creating a Waveform widget and trying to call the property x_limits crashes with RPC timeout. On the server, we see a TypeError in the serialization for the bec_message encoding..
2025-04-23 17:37:53 | bec_widgets.cli.server | [ERROR] | /Users/appel_c/.pyenv/versions/3.11.1/envs/bec/lib/python3.11/site-packages/pydantic/main.py:364: UserWarning: Pydantic serializer warnings:
Expected `float` but got `float32` - serialized value may not be as expected
Expected `float` but got `float32` - serialized value may not be as expected
Expected `float` but got `float32` - serialized value may not be as expected
Expected `float` but got `float32` - serialized value may not be as expected
return self.__pydantic_serializer__.to_python(
Traceback (most recent call last):
File "/Users/appel_c/work_psi_awi/bec_workspace/bec_widgets/bec_widgets/utils/rpc_server.py", line 110, in on_rpc_update
self.send_response(request_id, True, {"result": res})
File "/Users/appel_c/work_psi_awi/bec_workspace/bec_widgets/bec_widgets/utils/rpc_server.py", line 113, in send_response
self.client.connector.set_and_publish(
File "/Users/appel_c/work_psi_awi/bec_workspace/bec/bec_lib/bec_lib/redis_connector.py", line 161, in wrapper
return func(*tuple(arg), **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/appel_c/work_psi_awi/bec_workspace/bec/bec_lib/bec_lib/redis_connector.py", line 993, in set_and_publish
msg = MsgpackSerialization.dumps(msg)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/appel_c/work_psi_awi/bec_workspace/bec/bec_lib/bec_lib/serialization.py", line 487, in dumps
return msgpack.dumps(msg)
^^^^^^^^^^^^^^^^^^
File "/Users/appel_c/work_psi_awi/bec_workspace/bec/bec_lib/bec_lib/serialization.py", line 341, in dumps
return msgpack_module.packb(obj, default=self._default)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/appel_c/.pyenv/versions/3.11.1/envs/bec/lib/python3.11/site-packages/msgpack/__init__.py", line 36, in packb
return Packer(**kwargs).pack(o)
^^^^^^^^^^^^^^^^^^^^^^^^
File "msgpack/_packer.pyx", line 294, in msgpack._cmsgpack.Packer.pack
File "msgpack/_packer.pyx", line 300, in msgpack._cmsgpack.Packer.pack
File "msgpack/_packer.pyx", line 297, in msgpack._cmsgpack.Packer.pack
File "msgpack/_packer.pyx", line 285, in msgpack._cmsgpack.Packer._pack
File "/Users/appel_c/work_psi_awi/bec_workspace/bec/bec_lib/bec_lib/serialization.py", line 307, in _default
result = encoder(obj)
^^^^^^^^^^^^
File "/Users/appel_c/work_psi_awi/bec_workspace/bec/bec_lib/bec_lib/serialization.py", line 31, in encode_bec_message_v12
msg_body = msgpack.dumps(msg.__dict__)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/appel_c/work_psi_awi/bec_workspace/bec/bec_lib/bec_lib/serialization.py", line 341, in dumps
return msgpack_module.packb(obj, default=self._default)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/appel_c/.pyenv/versions/3.11.1/envs/bec/lib/python3.11/site-packages/msgpack/__init__.py", line 36, in packb
return Packer(**kwargs).pack(o)
^^^^^^^^^^^^^^^^^^^^^^^^
File "msgpack/_packer.pyx", line 294, in msgpack._cmsgpack.Packer.pack
File "msgpack/_packer.pyx", line 300, in msgpack._cmsgpack.Packer.pack
File "msgpack/_packer.pyx", line 297, in msgpack._cmsgpack.Packer.pack
File "msgpack/_packer.pyx", line 231, in msgpack._cmsgpack.Packer._pack
File "msgpack/_packer.pyx", line 231, in msgpack._cmsgpack.Packer._pack
File "msgpack/_packer.pyx", line 285, in msgpack._cmsgpack.Packer._pack
File "/Users/appel_c/work_psi_awi/bec_workspace/bec/bec_lib/bec_lib/serialization.py", line 315, in _default
raise TypeError("Unknown type: %r" % (obj,))
TypeError: Unknown type: PySide6.QtCore.QPointF(-3.251679, 3.253144)