assets/assets/utils/convert/models/annotation.py (32 lines of code) (raw):
from __future__ import annotations
from typing import Any, List, Optional, Tuple
from pydantic import BaseModel
class Size(BaseModel):
width: float
height: float
class Entity(BaseModel):
id: str
class AnnotationLink(BaseModel):
category_id: str
to: int
type: str = "directional"
page_num: int = 1
class Data(BaseModel):
entity: Entity
class Obj(BaseModel):
id: int
type: str
bbox: Tuple[float, float, float, float]
tokens: List[int] = []
category: str
data: Optional[Any]
links: List[AnnotationLink] = []
class Page(BaseModel):
size: Size
page_num: int
objs: List[Obj] = []
class BadgerdocAnnotation(BaseModel):
revision: Optional[str] = None
pages: List[Page] = []
validated: Optional[List[int]] = None
failed_validation_pages: Optional[List[int]] = None