From 4406acf4dd7788e230a3995898148ac17a4cf3d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Tue, 26 Mar 2024 14:23:46 +0100 Subject: [PATCH] adds support for serializing exceptions --- src/pydase/utils/serializer.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/pydase/utils/serializer.py b/src/pydase/utils/serializer.py index d97778d..3494b34 100644 --- a/src/pydase/utils/serializer.py +++ b/src/pydase/utils/serializer.py @@ -62,7 +62,11 @@ class Serializer: @staticmethod def serialize_object(obj: Any, access_path: str = "") -> SerializedObject: result: SerializedObject - if isinstance(obj, AbstractDataService): + + if isinstance(obj, Exception): + result = Serializer._serialize_exception(obj) + + elif isinstance(obj, AbstractDataService): result = Serializer._serialize_data_service(obj, access_path=access_path) elif isinstance(obj, list): @@ -98,6 +102,17 @@ class Serializer: return result + @staticmethod + def _serialize_exception(obj: Exception) -> SerializedObject: + return { + "full_access_path": "", + "doc": "", + "readonly": True, + "type": "Exception", + "value": obj.args[0], + "name": obj.__class__.__name__, + } + @staticmethod def _serialize_enum(obj: Enum, access_path: str = "") -> SerializedObject: import pydase.components.coloured_enum