From d94b85f305dc45e6eabf74033a956f389ded1692 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Thu, 10 Aug 2023 15:48:45 +0200 Subject: [PATCH] feat: updating serialization of functions --- src/pydase/data_service/data_service.py | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/pydase/data_service/data_service.py b/src/pydase/data_service/data_service.py index 7c7d60c..0735237 100644 --- a/src/pydase/data_service/data_service.py +++ b/src/pydase/data_service/data_service.py @@ -3,7 +3,7 @@ import inspect import json import os from enum import Enum -from typing import Any, Optional, Union, cast, get_args, get_type_hints +from typing import Any, Optional, cast, get_type_hints import rpyc from loguru import logger @@ -265,22 +265,13 @@ class DataService(rpyc.Service, AbstractDataService): } elif inspect.isfunction(value) or inspect.ismethod(value): sig = inspect.signature(value) + + # Store parameters and their anotations in a dictionary parameters: dict[str, Optional[str]] = {} for k, v in sig.parameters.items(): annotation = v.annotation if annotation is not inspect._empty: - if ( - hasattr(annotation, "__origin__") - and annotation.__origin__ is Union - ): - # Handle union types - union_types = get_args(annotation) - type_names = [ - t.__name__ if isinstance(t, type) else str(t) - for t in union_types - ] - parameters[k] = " | ".join(type_names) - elif isinstance(annotation, type): + if isinstance(annotation, type): # Handle regular types parameters[k] = annotation.__name__ else: