Source code for dedoc.converters.concrete_converters.binary_converter

from typing import Optional

from dedoc.converters.concrete_converters.abstract_converter import AbstractConverter


[docs]class BinaryConverter(AbstractConverter): """ Converts image-like documents with `mime=application/octet-stream` into PNG. Look to the :class:`~dedoc.converters.AbstractConverter` documentation to get the information about the methods' parameters. """ def __init__(self, *, config: Optional[dict] = None) -> None: from dedoc.converters.concrete_converters.png_converter import PNGConverter super().__init__(config=config) self.png_converter = PNGConverter(config=self.config)
[docs] def can_convert(self, file_path: Optional[str] = None, extension: Optional[str] = None, mime: Optional[str] = None, parameters: Optional[dict] = None) -> bool: """ Checks if the document is image-like (e.g. it has .bmp, .jpg, .tiff, etc. extension) and has `mime=application/octet-stream`. """ from dedoc.utils import supported_image_types from dedoc.utils.utils import get_mime_extension mime, extension = get_mime_extension(file_path=file_path, mime=mime, extension=extension) return mime == "application/octet-stream" and extension in supported_image_types
[docs] def convert(self, file_path: str, parameters: Optional[dict] = None) -> str: """ Convert the image-like and application/octet-stream documents into files with .png extension. """ return self.png_converter.convert(file_path, parameters=parameters)