from collections import Counter from typing import List, Optional from pydantic import BaseModel from marker.schema.bbox import BboxElement class MergedLine(BboxElement): text: str fonts: List[str] def most_common_font(self): counter = Counter(self.fonts) return counter.most_common(1)[0][0] class MergedBlock(BboxElement): lines: List[MergedLine] pnum: int block_type: Optional[str] class FullyMergedBlock(BaseModel): text: str block_type: str