TALIE-1651 new interfaces - #564
Conversation
6fbce81 to
14be5b0
Compare
14be5b0 to
01c0a9a
Compare
| charset-normalizer>=2.0.12,<=3.2.0 | ||
| Cython>=0.29.28,<=3.0.2 | ||
| dedoc-utils==0.3.8 | ||
| dedoc-utils==0.3.9 |
There was a problem hiding this comment.
в этой версии в dedocutils был перенесен OrientationClassifier
There was a problem hiding this comment.
сам парсер еще не переносила (он довольно большой), этот класс служит примером того, как будут устроены интерфейсы несложных парсеров
There was a problem hiding this comment.
этот код - попытка переделать получше dedoc/download_models.py - предварительное скачивание весов моделей для последующего оффлайн использования
| from dedoc_future.datamodel.nodes.file import FileNode | ||
|
|
||
|
|
||
| def format_suits(node: FileNode, extensions: set[str], mimes: set[str]) -> bool: |
There was a problem hiding this comment.
эта функция - аналог dedoc.readers.base_reader.BaseReader.can_read
| structure: dict[AbstractNode, Iterable[AbstractNode]] | ||
|
|
||
|
|
||
| class AbstractProcessor(Generic[_Node, _Config, _DeployConfig], metaclass=ABCMeta): |
There was a problem hiding this comment.
TODO: возможно, стоит еще подумать в сторону subprocessors для составных обработчиков, которые разбиваются на подзадачи с нестандартным входом/выходом для запуска этих подзадач на CPU/GPU (пример: OCR+постпроцессинг)
| from dedoc_future.datamodel.nodes.page import PageNode, PageNodeWrapper | ||
|
|
||
|
|
||
| class PopplerRender(AbstractProcessor[PageNode, PdfBaseConfig, ImmutableBaseModel]): |
There was a problem hiding this comment.
функционал dedoc.readers.pdf_reader.pdf_base_reader.PdfBaseReader._split_pdf2image (предполагается, что до этого в документ добавлены пустые page ноды с помощью PagesCreator)
впоследствии планируется добавить еще один способ рендеринга, предложенный Олегом
| from dedoc_future.datamodel.nodes.file import FileNode | ||
|
|
||
|
|
||
| class ContentMimeDetector(AbstractProcessor[FileNode, ImmutableBaseModel, ImmutableBaseModel]): |
There was a problem hiding this comment.
функционал dedoc.utils.utils.get_file_mime_by_content - предполагается запускать этот обработчик тогда, когда основная обработка упала с ошибкой
| from dedoc_future.datamodel.nodes.file import FileNode | ||
|
|
||
|
|
||
| class MetadataExtractor(AbstractProcessor[FileNode, ImmutableBaseModel, ImmutableBaseModel]): |
There was a problem hiding this comment.
функционал dedoc.metadata_extractors.concrete_metadata_extractors.base_metadata_extractor.BaseMetadataExtractor, предполагается использовать его в начале, чтобы впоследствии определять нужный парсер
В рамках ПР:
Binarizer,OrientationClassification,SkewCorrection), вспомогательные модули для начала обработки (MetadataExtractor,PagesCreator,PopplerRender) иContentMimeDetector, обработчикDocxProcessorреализован не до конца (оставила для примера)