from pikepdf import Pdf
from documents.converters import convert_from_tiff_to_pdf
-from documents.data_models import ConsumableDocument
from documents.plugins.base import ConsumeTaskPlugin
from documents.plugins.base import StopConsumeTaskError
from documents.plugins.helpers import ProgressStatusOptions
from documents.utils import copy_basic_file_stats
from documents.utils import copy_file_with_basic_stats
from documents.utils import maybe_override_pixel_limit
+from paperless.data_models import ConsumableDocument
from paperless.models import Tag
if TYPE_CHECKING:
from django.db.models import Q
from django.utils import timezone
-from documents.data_models import ConsumableDocument
-from documents.data_models import DocumentMetadataOverrides
-from documents.data_models import DocumentSource
from documents.permissions import set_permissions_for_object
from documents.plugins.helpers import DocumentsStatusManager
from documents.tasks import bulk_update_documents
from documents.tasks import consume_file
from documents.tasks import update_document_content_maybe_archive_file
+from paperless.data_models import ConsumableDocument
+from paperless.data_models import DocumentMetadataOverrides
+from paperless.data_models import DocumentSource
from paperless.models import Correspondent
from paperless.models import CustomField
from paperless.models import CustomFieldInstance
from rest_framework.reverse import reverse
from documents.classifier import load_classifier
-from documents.data_models import ConsumableDocument
-from documents.data_models import DocumentMetadataOverrides
from documents.file_handling import create_source_path_directory
from documents.file_handling import generate_unique_filename
from documents.loggers import LoggingMixin
from documents.utils import copy_basic_file_stats
from documents.utils import copy_file_with_basic_stats
from documents.utils import run_subprocess
+from paperless.data_models import ConsumableDocument
+from paperless.data_models import DocumentMetadataOverrides
from paperless.models import Correspondent
from paperless.models import CustomField
from paperless.models import CustomFieldInstance
from watchdog.events import FileSystemEventHandler
from watchdog.observers.polling import PollingObserver
-from documents.data_models import ConsumableDocument
-from documents.data_models import DocumentMetadataOverrides
-from documents.data_models import DocumentSource
from documents.parsers import is_file_ext_supported
from documents.tasks import consume_file
+from paperless.data_models import ConsumableDocument
+from paperless.data_models import DocumentMetadataOverrides
+from paperless.data_models import DocumentSource
from paperless.models import Tag
try:
from pathlib import Path
from typing import Final
-from documents.data_models import ConsumableDocument
-from documents.data_models import DocumentMetadataOverrides
from documents.plugins.helpers import ProgressManager
+from paperless.data_models import ConsumableDocument
+from paperless.data_models import DocumentMetadataOverrides
class StopConsumeTaskError(Exception):
from documents import bulk_edit
-from documents.data_models import DocumentSource
from documents.parsers import is_mime_type_supported
from documents.permissions import get_groups_with_only_permission
from documents.permissions import set_permissions_for_object
from documents.templating.utils import convert_format_str_to_template_format
from documents.validators import uri_validator
from documents.validators import url_validator
+from paperless.data_models import DocumentSource
from paperless.models import Correspondent
from paperless.models import CustomField
from paperless.models import CustomFieldInstance
from pathlib import Path
from documents.classifier import DocumentClassifier
- from documents.data_models import ConsumableDocument
- from documents.data_models import DocumentMetadataOverrides
+ from paperless.data_models import ConsumableDocument
+ from paperless.data_models import DocumentMetadataOverrides
logger = logging.getLogger("paperless.handlers")
from documents.classifier import load_classifier
from documents.consumer import ConsumerPlugin
from documents.consumer import WorkflowTriggerPlugin
-from documents.data_models import ConsumableDocument
-from documents.data_models import DocumentMetadataOverrides
from documents.double_sided import CollatePlugin
from documents.file_handling import create_source_path_directory
from documents.file_handling import generate_unique_filename
from documents.signals import document_updated
from documents.signals.handlers import cleanup_document_deletion
from documents.signals.handlers import run_workflows
+from paperless.data_models import ConsumableDocument
+from paperless.data_models import DocumentMetadataOverrides
from paperless.models import Correspondent
from paperless.models import CustomFieldInstance
from paperless.models import Document
from documents.caching import CLASSIFIER_HASH_KEY
from documents.caching import CLASSIFIER_MODIFIED_KEY
from documents.caching import CLASSIFIER_VERSION_KEY
-from documents.data_models import DocumentSource
from documents.signals.handlers import run_workflows
from documents.tests.utils import DirectoriesMixin
from documents.tests.utils import DocumentConsumeDelayMixin
+from paperless.data_models import DocumentSource
from paperless.models import Correspondent
from paperless.models import CustomField
from paperless.models import CustomFieldInstance
from rest_framework import status
from rest_framework.test import APITestCase
-from documents.data_models import DocumentSource
from documents.tests.utils import DirectoriesMixin
+from paperless.data_models import DocumentSource
from paperless.models import Correspondent
from paperless.models import CustomField
from paperless.models import DocumentType
from documents import tasks
from documents.barcodes import BarcodePlugin
-from documents.data_models import ConsumableDocument
-from documents.data_models import DocumentMetadataOverrides
-from documents.data_models import DocumentSource
from documents.plugins.base import StopConsumeTaskError
from documents.tests.utils import DirectoriesMixin
from documents.tests.utils import DocumentConsumeDelayMixin
from documents.tests.utils import DummyProgressManager
from documents.tests.utils import FileSystemAssertsMixin
from documents.tests.utils import SampleDirMixin
+from paperless.data_models import ConsumableDocument
+from paperless.data_models import DocumentMetadataOverrides
+from paperless.data_models import DocumentSource
from paperless.models import Document
from paperless.models import Tag
from guardian.core import ObjectPermissionChecker
from documents.consumer import ConsumerError
-from documents.data_models import DocumentMetadataOverrides
-from documents.data_models import DocumentSource
from documents.parsers import DocumentParser
from documents.parsers import ParseError
from documents.plugins.helpers import ProgressStatusOptions
from documents.tests.utils import DirectoriesMixin
from documents.tests.utils import FileSystemAssertsMixin
from documents.tests.utils import GetConsumerMixin
+from paperless.data_models import DocumentMetadataOverrides
+from paperless.data_models import DocumentSource
from paperless.models import Correspondent
from paperless.models import CustomField
from paperless.models import Document
from documents import tasks
from documents.consumer import ConsumerError
-from documents.data_models import ConsumableDocument
-from documents.data_models import DocumentSource
from documents.double_sided import STAGING_FILE_NAME
from documents.double_sided import TIMEOUT_MINUTES
from documents.tests.utils import DirectoriesMixin
from documents.tests.utils import DummyProgressManager
from documents.tests.utils import FileSystemAssertsMixin
+from paperless.data_models import ConsumableDocument
+from paperless.data_models import DocumentSource
@override_settings(
from django.test import override_settings
from documents.consumer import ConsumerError
-from documents.data_models import ConsumableDocument
from documents.management.commands import document_consumer
from documents.tests.utils import DirectoriesMixin
from documents.tests.utils import DocumentConsumeDelayMixin
+from paperless.data_models import ConsumableDocument
from paperless.models import Tag
-from documents.data_models import DocumentSource
from documents.tests.utils import TestMigrations
+from paperless.data_models import DocumentSource
class TestMigrateWorkflow(TestMigrations):
import celery
from django.test import TestCase
-from documents.data_models import ConsumableDocument
-from documents.data_models import DocumentMetadataOverrides
-from documents.data_models import DocumentSource
from documents.signals.handlers import before_task_publish_handler
from documents.signals.handlers import task_failure_handler
from documents.signals.handlers import task_postrun_handler
from documents.signals.handlers import task_prerun_handler
from documents.tests.test_consumer import fake_magic_from_file
from documents.tests.utils import DirectoriesMixin
+from paperless.data_models import ConsumableDocument
+from paperless.data_models import DocumentMetadataOverrides
+from paperless.data_models import DocumentSource
from paperless.models import PaperlessTask
from documents import tasks
-from documents.data_models import ConsumableDocument
-from documents.data_models import DocumentSource
from documents.signals import document_consumption_finished
from documents.tests.utils import DirectoriesMixin
from documents.tests.utils import DummyProgressManager
from documents.tests.utils import FileSystemAssertsMixin
from documents.tests.utils import SampleDirMixin
+from paperless.data_models import ConsumableDocument
+from paperless.data_models import DocumentSource
from paperless.matching import document_matches_workflow
from paperless.models import Correspondent
from paperless.models import CustomField
from django.test import override_settings
from documents.consumer import ConsumerPlugin
-from documents.data_models import ConsumableDocument
-from documents.data_models import DocumentMetadataOverrides
-from documents.data_models import DocumentSource
from documents.parsers import ParseError
from documents.plugins.helpers import ProgressStatusOptions
+from paperless.data_models import ConsumableDocument
+from paperless.data_models import DocumentMetadataOverrides
+from paperless.data_models import DocumentSource
def setup_directories():
from fnmatch import fnmatch
from typing import TYPE_CHECKING
-from documents.data_models import ConsumableDocument
-from documents.data_models import DocumentSource
from documents.permissions import get_objects_for_user_owner_aware
+from paperless.data_models import ConsumableDocument
+from paperless.data_models import DocumentSource
from paperless.models import Correspondent
from paperless.models import Document
from paperless.models import DocumentType
from django.db.models.functions import Substr
from django_softdelete.models import SoftDeleteModel
-from documents.data_models import DocumentSource
from documents.parsers import get_default_file_extension
+from paperless.data_models import DocumentSource
DEFAULT_SINGLETON_INSTANCE_ID = 1
from documents.conditionals import suggestions_etag
from documents.conditionals import suggestions_last_modified
from documents.conditionals import thumbnail_last_modified
-from documents.data_models import ConsumableDocument
-from documents.data_models import DocumentMetadataOverrides
-from documents.data_models import DocumentSource
from documents.filters import CorrespondentFilterSet
from documents.filters import CustomFieldFilterSet
from documents.filters import DocumentFilterSet
from paperless import version
from paperless.celery import app as celery_app
from paperless.config import GeneralConfig
+from paperless.data_models import ConsumableDocument
+from paperless.data_models import DocumentMetadataOverrides
+from paperless.data_models import DocumentSource
from paperless.db import GnuPG
from paperless.filters import GroupFilterSet
from paperless.filters import UserFilterSet
from imap_tools.mailbox import MailBoxTls
from imap_tools.query import LogicOperator
-from documents.data_models import ConsumableDocument
-from documents.data_models import DocumentMetadataOverrides
-from documents.data_models import DocumentSource
from documents.loggers import LoggingMixin
from documents.parsers import is_mime_type_supported
from documents.tasks import consume_file
+from paperless.data_models import ConsumableDocument
+from paperless.data_models import DocumentMetadataOverrides
+from paperless.data_models import DocumentSource
from paperless.models import Correspondent
from paperless_mail.models import MailAccount
from paperless_mail.models import MailRule