Source code for faust.types.serializers
import abc
import typing
from typing import Any, Optional
from .codecs import CodecArg
from .core import K, V
if typing.TYPE_CHECKING:
from .app import AppT
from .models import ModelArg, ModelT
else:
class AppT: ... # noqa
class ModelArg: ... # noqa
class ModelT: ... # noqa
__all__ = ['RegistryT']
[docs]class RegistryT(abc.ABC):
key_serializer: CodecArg
value_serializer: CodecArg
@abc.abstractmethod
def __init__(self,
key_serializer: CodecArg = None,
value_serializer: CodecArg = 'json') -> None:
...
[docs] @abc.abstractmethod
def loads_key(self,
typ: Optional[ModelArg],
key: Optional[bytes],
*,
serializer: CodecArg = None) -> K:
...
[docs] @abc.abstractmethod
def loads_value(self,
typ: Optional[ModelArg],
value: Optional[bytes],
*,
serializer: CodecArg = None) -> Any:
...
[docs] @abc.abstractmethod
def dumps_key(self,
typ: Optional[ModelArg],
key: K,
*,
serializer: CodecArg = None) -> Optional[bytes]:
...
[docs] @abc.abstractmethod
def dumps_value(self,
typ: Optional[ModelArg],
value: V,
*,
serializer: CodecArg = None) -> Optional[bytes]:
...