import logging
import os
+import shutil
+import tempfile
+from pathlib import Path
+from typing import List # for type hinting. Can be removed, if only Python >3.8 is used
+from typing import Type
- import magic
import tqdm
from asgiref.sync import async_to_sync
from channels.layers import get_channel_layer
from django.conf import settings
+from django.core.exceptions import ObjectDoesNotExist
from django.db.models.signals import post_save
+ from documents import barcodes
from documents import index
from documents import sanity_checker
from documents.classifier import DocumentClassifier
from documents.models import DocumentType
from documents.models import StoragePath
from documents.models import Tag
+from documents.parsers import DocumentParser
+from documents.parsers import get_parser_class_for_mime_type
+from documents.parsers import ParseError
from documents.sanity_checker import SanityCheckFailedException
- from pdf2image import convert_from_path
- from pikepdf import Pdf
- from PIL import Image
- from PIL import ImageSequence
- from pyzbar import pyzbar
from whoosh.writing import AsyncWriter