Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from dataclasses import asdict, dataclass, field | |
| from typing import Any | |
| class Section: | |
| """A Markdown section extracted from a converted paper.""" | |
| title: str | |
| level: int | |
| content: str | |
| def word_count(self) -> int: | |
| return len(self.content.split()) | |
| def to_dict(self) -> dict[str, Any]: | |
| return asdict(self) | |
| class PaperDocument: | |
| """Application-friendly representation of a processed paper.""" | |
| source: str | |
| parser_mode: str | |
| markdown: str | |
| sections: list[Section] = field(default_factory=list) | |
| metadata: dict[str, Any] = field(default_factory=dict) | |
| def to_state(self) -> dict[str, Any]: | |
| return { | |
| "source": self.source, | |
| "parser_mode": self.parser_mode, | |
| "markdown": self.markdown, | |
| "sections": [section.to_dict() for section in self.sections], | |
| "metadata": self.metadata, | |
| "summary": "", | |
| "narration": "", | |
| } | |