message_flow/events/mappers/interfaces.py (13 lines of code) (raw):

import abc from typing import Generic, Type, TypeVar, Union from message_flow.commands.common import Command from message_flow.events.common import DomainEvent T = TypeVar("T", bound=Union[Command, DomainEvent]) class ISerializer(abc.ABC, Generic[T]): @abc.abstractmethod def serialize(self, obj: T) -> bytes: ... class IDeserializer(abc.ABC): @abc.abstractmethod def deserialize(self, obj_class: Type[T], payload: bytes) -> T: ...