Source code for dedoc.converters.concrete_converters.binary_converter

from typing import Optional

from dedoc.converters.concrete_converters.abstract_converter import AbstractConverter
from dedoc.converters.concrete_converters.png_converter import PNGConverter
from dedoc.utils import supported_image_types


[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: dict) -> None: super().__init__(config=config) self.png_converter = PNGConverter(config=config)
[docs] def can_convert(self, extension: str, mime: str, 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`. """ return mime == "application/octet-stream" and extension in supported_image_types
[docs] def do_convert(self, tmp_dir: str, filename: str, extension: str) -> str: """ Convert the image-like and application/octet-stream documents into files with .png extension. """ return self.png_converter.do_convert(tmp_dir, filename, extension)