updates Deserializer (type hints, adding keyword to argument)

This commit is contained in:
Mose Müller 2024-03-26 17:39:14 +01:00
parent ada9dcce4a
commit 1c663e9a2e

View File

@ -1,6 +1,6 @@
import enum import enum
import logging import logging
from typing import Any, NoReturn, cast from typing import TYPE_CHECKING, Any, NoReturn, cast
import pydase import pydase
import pydase.components import pydase.components
@ -9,14 +9,16 @@ import pydase.units as u
from pydase.utils.helpers import get_component_classes from pydase.utils.helpers import get_component_classes
from pydase.utils.serializer import SerializedObject from pydase.utils.serializer import SerializedObject
if TYPE_CHECKING:
from collections.abc import Callable
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class Deserializer: class Deserializer:
@classmethod @classmethod
def deserialize(cls, serialized_object: SerializedObject) -> Any: def deserialize(cls, serialized_object: SerializedObject) -> Any:
# Main entry point for deserializing objects type_handler: dict[str | None, None | Callable[..., Any]] = {
type_handler = {
None: None, None: None,
"int": cls.deserialize_primitive, "int": cls.deserialize_primitive,
"float": cls.deserialize_primitive, "float": cls.deserialize_primitive,
@ -26,7 +28,7 @@ class Deserializer:
"Quantity": cls.deserialize_quantity, "Quantity": cls.deserialize_quantity,
"Enum": cls.deserialize_enum, "Enum": cls.deserialize_enum,
"ColouredEnum": lambda serialized_object: cls.deserialize_enum( "ColouredEnum": lambda serialized_object: cls.deserialize_enum(
serialized_object, pydase.components.ColouredEnum serialized_object, enum_class=pydase.components.ColouredEnum
), ),
"list": cls.deserialize_list, "list": cls.deserialize_list,
"dict": cls.deserialize_dict, "dict": cls.deserialize_dict,