""" Модуль содержит класс для представления изображений в документе. """ 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 }