mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-10-23 18:31:22 +00:00
refactor: The first refactored version for sdk release (#907)
Co-authored-by: chengfangyin2 <chengfangyin3@jd.com>
This commit is contained in:
40
dbgpt/core/interface/serialization.py
Normal file
40
dbgpt/core/interface/serialization.py
Normal file
@@ -0,0 +1,40 @@
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Type, Dict
|
||||
|
||||
|
||||
class Serializable(ABC):
|
||||
@abstractmethod
|
||||
def serialize(self) -> bytes:
|
||||
"""Convert the object into bytes for storage or transmission.
|
||||
|
||||
Returns:
|
||||
bytes: The byte array after serialization
|
||||
"""
|
||||
|
||||
@abstractmethod
|
||||
def to_dict(self) -> Dict:
|
||||
"""Convert the object's state to a dictionary."""
|
||||
|
||||
|
||||
class Serializer(ABC):
|
||||
"""The serializer abstract class for serializing cache keys and values."""
|
||||
|
||||
@abstractmethod
|
||||
def serialize(self, obj: Serializable) -> bytes:
|
||||
"""Serialize a cache object.
|
||||
|
||||
Args:
|
||||
obj (Serializable): The object to serialize
|
||||
"""
|
||||
|
||||
@abstractmethod
|
||||
def deserialize(self, data: bytes, cls: Type[Serializable]) -> Serializable:
|
||||
"""Deserialize data back into a cache object of the specified type.
|
||||
|
||||
Args:
|
||||
data (bytes): The byte array to deserialize
|
||||
cls (Type[Serializable]): The type of current object
|
||||
|
||||
Returns:
|
||||
Serializable: The serializable object
|
||||
"""
|
||||
Reference in New Issue
Block a user