mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-10-27 21:00:36 +00:00
refactor: Refactor storage system (#937)
This commit is contained in:
@@ -1,19 +1,34 @@
|
||||
from __future__ import annotations
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Type, Dict
|
||||
|
||||
|
||||
class Serializable(ABC):
|
||||
serializer: "Serializer" = None
|
||||
|
||||
@abstractmethod
|
||||
def to_dict(self) -> Dict:
|
||||
"""Convert the object's state to a dictionary."""
|
||||
|
||||
def serialize(self) -> bytes:
|
||||
"""Convert the object into bytes for storage or transmission.
|
||||
|
||||
Returns:
|
||||
bytes: The byte array after serialization
|
||||
"""
|
||||
if self.serializer is None:
|
||||
raise ValueError(
|
||||
"Serializer is not set. Please set the serializer before serialization."
|
||||
)
|
||||
return self.serializer.serialize(self)
|
||||
|
||||
@abstractmethod
|
||||
def to_dict(self) -> Dict:
|
||||
"""Convert the object's state to a dictionary."""
|
||||
def set_serializer(self, serializer: "Serializer") -> None:
|
||||
"""Set the serializer for current serializable object.
|
||||
|
||||
Args:
|
||||
serializer (Serializer): The serializer to set
|
||||
"""
|
||||
self.serializer = serializer
|
||||
|
||||
|
||||
class Serializer(ABC):
|
||||
|
||||
Reference in New Issue
Block a user