muryshev's picture
update
86c402d
raw
history blame
2.23 kB
"""
Модуль содержит класс для представления изображений в документе.
"""
from dataclasses import dataclass, field
from typing import Any, Callable
from .parsed_structure import DocumentElement
@dataclass
class ParsedImage(DocumentElement):
"""
Изображение из документа (нереализованный класс).
"""
title: str | None = None
image: bytes = field(default_factory=bytes)
# Размеры изображения (в пикселях или единицах документа)
width: int | None = None
height: int | None = None
# Подпись/описание изображения
caption: str | None = None
def to_string(self) -> str:
"""
Преобразует информацию об изображении в строковое представление.
Returns:
str: Строковое представление информации об изображении.
"""
return f"Изображение: {self.title if self.title else 'Без названия'}"
def apply(self, func: Callable[[str], str]) -> None:
"""
Применяет функцию к текстовым элементам изображения.
Args:
func (Callable[[str], str]): Функция для применения к текстовым элементам.
"""
if self.title:
self.title = func(self.title)
if self.caption:
self.caption = func(self.caption)
def to_dict(self) -> dict[str, Any]:
"""
Преобразует изображение в словарь.
Returns:
dict[str, Any]: Словарное представление изображения.
"""
return {
'title': self.title,
'width': self.width,
'height': self.height,
'caption': self.caption,
'page_number': self.page_number,
'index_in_document': self.index_in_document,
'referenced_element_index': self.referenced_element_index
}