|
@ -0,0 +1,24 @@ |
|
|
|
|
|
import abc |
|
|
|
|
|
from typing import Dict |
|
|
|
|
|
|
|
|
|
|
|
from pydantic import BaseModel |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BaseData(BaseModel, abc.ABC): |
|
|
|
|
|
filename: str |
|
|
|
|
|
metadata: Dict = {} |
|
|
|
|
|
|
|
|
|
|
|
@classmethod |
|
|
|
|
|
def parse(cls, **kwargs): |
|
|
|
|
|
return cls.parse_obj(kwargs) |
|
|
|
|
|
|
|
|
|
|
|
def __hash__(self): |
|
|
|
|
|
return hash(tuple(self.dict())) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TextData(BaseData): |
|
|
|
|
|
text: str |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class FileData(BaseData): |
|
|
|
|
|
pass |