From f80b16acad2cfc12960e8254dab382f9d7fd1a68 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 8 Apr 2025 16:58:52 -0700 Subject: [PATCH] Merge signals --- pyproject.toml | 6 +++--- src/documents/apps.py | 20 +++++++++---------- src/documents/tests/test_api_documents.py | 2 +- src/documents/tests/test_matchables.py | 2 +- src/documents/tests/test_task_signals.py | 8 ++++---- src/documents/tests/test_workflows.py | 6 +++--- src/paperless/adapter.py | 2 +- src/paperless/apps.py | 4 ++-- src/paperless/checks.py | 2 +- src/paperless/consumer.py | 6 +++--- .../management/commands/document_importer.py | 4 ++-- .../management/commands/document_retagger.py | 8 ++++---- src/paperless/parsers.py | 2 +- .../signals/__init__.py | 0 .../signals/handlers.py | 0 src/paperless/{ => signals}/signals.py | 0 src/paperless/tasks.py | 6 +++--- src/paperless/tests/test_signals.py | 4 ++-- src/paperless/views.py | 2 +- src/paperless_mail/apps.py | 2 +- src/paperless_tesseract/apps.py | 2 +- src/paperless_text/apps.py | 2 +- src/paperless_tika/apps.py | 2 +- 23 files changed, 46 insertions(+), 46 deletions(-) rename src/{documents => paperless}/signals/__init__.py (100%) rename src/{documents => paperless}/signals/handlers.py (100%) rename src/paperless/{ => signals}/signals.py (100%) diff --git a/pyproject.toml b/pyproject.toml index 00b059557..01445a5a7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -203,9 +203,6 @@ lint.per-file-ignores."docker/wait-for-redis.py" = [ lint.per-file-ignores."src/documents/migrations/1012_fix_archive_files.py" = [ "PTH", ] # TODO Enable & remove -lint.per-file-ignores."src/documents/signals/handlers.py" = [ - "PTH", -] # TODO Enable & remove lint.per-file-ignores."src/documents/tests/test_consumer.py" = [ "PTH", ] # TODO Enable & remove @@ -257,6 +254,9 @@ lint.per-file-ignores."src/paperless/parsers.py" = [ lint.per-file-ignores."src/paperless/settings.py" = [ "PTH", ] # TODO Enable & remove +lint.per-file-ignores."src/paperless/signals/handlers.py" = [ + "PTH", +] # TODO Enable & remove lint.per-file-ignores."src/paperless/views.py" = [ "PTH", ] # TODO Enable & remove diff --git a/src/documents/apps.py b/src/documents/apps.py index 01e33a7ef..9d8fb5942 100644 --- a/src/documents/apps.py +++ b/src/documents/apps.py @@ -8,16 +8,16 @@ class DocumentsConfig(AppConfig): verbose_name = _("Documents") def ready(self): - from documents.signals import document_consumption_finished - from documents.signals import document_updated - from documents.signals.handlers import add_inbox_tags - from documents.signals.handlers import add_to_index - from documents.signals.handlers import run_workflows_added - from documents.signals.handlers import run_workflows_updated - from documents.signals.handlers import set_correspondent - from documents.signals.handlers import set_document_type - from documents.signals.handlers import set_storage_path - from documents.signals.handlers import set_tags + from paperless.signals import document_consumption_finished + from paperless.signals import document_updated + from paperless.signals.handlers import add_inbox_tags + from paperless.signals.handlers import add_to_index + from paperless.signals.handlers import run_workflows_added + from paperless.signals.handlers import run_workflows_updated + from paperless.signals.handlers import set_correspondent + from paperless.signals.handlers import set_document_type + from paperless.signals.handlers import set_storage_path + from paperless.signals.handlers import set_tags document_consumption_finished.connect(add_inbox_tags) document_consumption_finished.connect(set_correspondent) diff --git a/src/documents/tests/test_api_documents.py b/src/documents/tests/test_api_documents.py index 2033e61f8..95ca9b2bb 100644 --- a/src/documents/tests/test_api_documents.py +++ b/src/documents/tests/test_api_documents.py @@ -24,7 +24,6 @@ from guardian.shortcuts import assign_perm from rest_framework import status from rest_framework.test import APITestCase -from documents.signals.handlers import run_workflows from documents.tests.utils import DirectoriesMixin from documents.tests.utils import DocumentConsumeDelayMixin from paperless.caching import CACHE_50_MINUTES @@ -46,6 +45,7 @@ from paperless.models import Tag from paperless.models import Workflow from paperless.models import WorkflowAction from paperless.models import WorkflowTrigger +from paperless.signals.handlers import run_workflows class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase): diff --git a/src/documents/tests/test_matchables.py b/src/documents/tests/test_matchables.py index a6c4e27f7..7fbdbfccb 100644 --- a/src/documents/tests/test_matchables.py +++ b/src/documents/tests/test_matchables.py @@ -8,12 +8,12 @@ from django.contrib.auth.models import User from django.test import TestCase from django.test import override_settings -from documents.signals import document_consumption_finished from paperless import matching from paperless.models import Correspondent from paperless.models import Document from paperless.models import DocumentType from paperless.models import Tag +from paperless.signals import document_consumption_finished class _TestMatchingBase(TestCase): diff --git a/src/documents/tests/test_task_signals.py b/src/documents/tests/test_task_signals.py index c2594f596..ed2559370 100644 --- a/src/documents/tests/test_task_signals.py +++ b/src/documents/tests/test_task_signals.py @@ -4,16 +4,16 @@ from unittest import mock import celery from django.test import TestCase -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 paperless.signals.handlers import before_task_publish_handler +from paperless.signals.handlers import task_failure_handler +from paperless.signals.handlers import task_postrun_handler +from paperless.signals.handlers import task_prerun_handler @mock.patch("documents.consumer.magic.from_file", fake_magic_from_file) diff --git a/src/documents/tests/test_workflows.py b/src/documents/tests/test_workflows.py index e57542a3c..bebd1e189 100644 --- a/src/documents/tests/test_workflows.py +++ b/src/documents/tests/test_workflows.py @@ -14,14 +14,13 @@ from httpx import HTTPStatusError from pytest_httpx import HTTPXMock from rest_framework.test import APITestCase -from documents.signals.handlers import run_workflows -from documents.signals.handlers import send_webhook +from paperless.signals.handlers import run_workflows +from paperless.signals.handlers import send_webhook if TYPE_CHECKING: from django.db.models import QuerySet -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 @@ -44,6 +43,7 @@ from paperless.models import WorkflowActionEmail from paperless.models import WorkflowActionWebhook from paperless.models import WorkflowRun from paperless.models import WorkflowTrigger +from paperless.signals import document_consumption_finished from paperless_mail.models import MailAccount from paperless_mail.models import MailRule diff --git a/src/paperless/adapter.py b/src/paperless/adapter.py index 17cf7ec82..f8b7b8ec1 100644 --- a/src/paperless/adapter.py +++ b/src/paperless/adapter.py @@ -11,7 +11,7 @@ from django.forms import ValidationError from django.urls import reverse from paperless.models import Document -from paperless.signals import handle_social_account_updated +from paperless.signals.signals import handle_social_account_updated logger = logging.getLogger("paperless.auth") diff --git a/src/paperless/apps.py b/src/paperless/apps.py index 819d8d5ff..9b7cf65b6 100644 --- a/src/paperless/apps.py +++ b/src/paperless/apps.py @@ -1,8 +1,8 @@ from django.apps import AppConfig from django.utils.translation import gettext_lazy as _ -from paperless.signals import handle_failed_login -from paperless.signals import handle_social_account_updated +from paperless.signals.signals import handle_failed_login +from paperless.signals.signals import handle_social_account_updated class PaperlessConfig(AppConfig): diff --git a/src/paperless/checks.py b/src/paperless/checks.py index d0da5c475..4a8227d01 100644 --- a/src/paperless/checks.py +++ b/src/paperless/checks.py @@ -14,7 +14,7 @@ from django.db import connections from django.db.utils import OperationalError from django.db.utils import ProgrammingError -from documents.signals import document_consumer_declaration +from paperless.signals import document_consumer_declaration from paperless.templating.utils import convert_format_str_to_template_format exists_message = "{} is set but doesn't exist." diff --git a/src/paperless/consumer.py b/src/paperless/consumer.py index 8bb639262..99b321058 100644 --- a/src/paperless/consumer.py +++ b/src/paperless/consumer.py @@ -15,9 +15,6 @@ from django.utils import timezone from filelock import FileLock from rest_framework.reverse import reverse -from documents.signals import document_consumption_finished -from documents.signals import document_consumption_started -from documents.signals.handlers import run_workflows from paperless.classifier import load_classifier from paperless.data_models import ConsumableDocument from paperless.data_models import DocumentMetadataOverrides @@ -43,6 +40,9 @@ from paperless.plugins.base import NoCleanupPluginMixin from paperless.plugins.base import NoSetupPluginMixin from paperless.plugins.helpers import ProgressManager from paperless.plugins.helpers import ProgressStatusOptions +from paperless.signals import document_consumption_finished +from paperless.signals import document_consumption_started +from paperless.signals.handlers import run_workflows from paperless.templating.workflows import parse_w_workflow_placeholders from paperless.utils import copy_basic_file_stats from paperless.utils import copy_file_with_basic_stats diff --git a/src/paperless/management/commands/document_importer.py b/src/paperless/management/commands/document_importer.py index 1bb320d0c..ddf728fe2 100644 --- a/src/paperless/management/commands/document_importer.py +++ b/src/paperless/management/commands/document_importer.py @@ -21,8 +21,6 @@ from django.db.models.signals import m2m_changed from django.db.models.signals import post_save from filelock import FileLock -from documents.signals.handlers import check_paths_and_prune_custom_fields -from documents.signals.handlers import update_filename_and_move_files from paperless import version from paperless.file_handling import create_source_path_directory from paperless.management.commands.mixins import CryptMixin @@ -38,6 +36,8 @@ from paperless.settings import EXPORTER_ARCHIVE_NAME from paperless.settings import EXPORTER_CRYPTO_SETTINGS_NAME from paperless.settings import EXPORTER_FILE_NAME from paperless.settings import EXPORTER_THUMBNAIL_NAME +from paperless.signals.handlers import check_paths_and_prune_custom_fields +from paperless.signals.handlers import update_filename_and_move_files from paperless.utils import copy_file_with_basic_stats if settings.AUDIT_LOG_ENABLED: diff --git a/src/paperless/management/commands/document_retagger.py b/src/paperless/management/commands/document_retagger.py index b89e4cd64..df9a7375d 100644 --- a/src/paperless/management/commands/document_retagger.py +++ b/src/paperless/management/commands/document_retagger.py @@ -3,13 +3,13 @@ import logging import tqdm from django.core.management.base import BaseCommand -from documents.signals.handlers import set_correspondent -from documents.signals.handlers import set_document_type -from documents.signals.handlers import set_storage_path -from documents.signals.handlers import set_tags from paperless.classifier import load_classifier from paperless.management.commands.mixins import ProgressBarMixin from paperless.models import Document +from paperless.signals.handlers import set_correspondent +from paperless.signals.handlers import set_document_type +from paperless.signals.handlers import set_storage_path +from paperless.signals.handlers import set_tags logger = logging.getLogger("paperless.management.retagger") diff --git a/src/paperless/parsers.py b/src/paperless/parsers.py index a3ff44bab..bb35f52ff 100644 --- a/src/paperless/parsers.py +++ b/src/paperless/parsers.py @@ -15,8 +15,8 @@ from typing import TYPE_CHECKING from django.conf import settings from django.utils import timezone -from documents.signals import document_consumer_declaration from paperless.loggers import LoggingMixin +from paperless.signals import document_consumer_declaration from paperless.utils import copy_file_with_basic_stats from paperless.utils import run_subprocess diff --git a/src/documents/signals/__init__.py b/src/paperless/signals/__init__.py similarity index 100% rename from src/documents/signals/__init__.py rename to src/paperless/signals/__init__.py diff --git a/src/documents/signals/handlers.py b/src/paperless/signals/handlers.py similarity index 100% rename from src/documents/signals/handlers.py rename to src/paperless/signals/handlers.py diff --git a/src/paperless/signals.py b/src/paperless/signals/signals.py similarity index 100% rename from src/paperless/signals.py rename to src/paperless/signals/signals.py diff --git a/src/paperless/tasks.py b/src/paperless/tasks.py index 3e1d00f0e..6ec0b59ed 100644 --- a/src/paperless/tasks.py +++ b/src/paperless/tasks.py @@ -19,9 +19,6 @@ from django.utils import timezone from filelock import FileLock from whoosh.writing import AsyncWriter -from documents.signals import document_updated -from documents.signals.handlers import cleanup_document_deletion -from documents.signals.handlers import run_workflows from paperless import index from paperless import sanity_checker from paperless.barcodes import BarcodePlugin @@ -52,6 +49,9 @@ from paperless.plugins.base import ProgressManager from paperless.plugins.base import StopConsumeTaskError from paperless.plugins.helpers import ProgressStatusOptions from paperless.sanity_checker import SanityCheckFailedException +from paperless.signals import document_updated +from paperless.signals.handlers import cleanup_document_deletion +from paperless.signals.handlers import run_workflows if settings.AUDIT_LOG_ENABLED: from auditlog.models import LogEntry diff --git a/src/paperless/tests/test_signals.py b/src/paperless/tests/test_signals.py index 0948ca575..f7005053c 100644 --- a/src/paperless/tests/test_signals.py +++ b/src/paperless/tests/test_signals.py @@ -6,8 +6,8 @@ from django.http import HttpRequest from django.test import TestCase from django.test import override_settings -from paperless.signals import handle_failed_login -from paperless.signals import handle_social_account_updated +from paperless.signals.signals import handle_failed_login +from paperless.signals.signals import handle_social_account_updated class TestFailedLoginLogging(TestCase): diff --git a/src/paperless/views.py b/src/paperless/views.py index e4e787ab3..4527e7465 100644 --- a/src/paperless/views.py +++ b/src/paperless/views.py @@ -89,7 +89,6 @@ from rest_framework.viewsets import ModelViewSet from rest_framework.viewsets import ReadOnlyModelViewSet from rest_framework.viewsets import ViewSet -from documents.signals import document_updated from paperless import bulk_edit from paperless import index from paperless import version @@ -188,6 +187,7 @@ from paperless.serialisers import UserSerializer from paperless.serialisers import WorkflowActionSerializer from paperless.serialisers import WorkflowSerializer from paperless.serialisers import WorkflowTriggerSerializer +from paperless.signals import document_updated from paperless.tasks import consume_file from paperless.tasks import empty_trash from paperless.tasks import index_optimize diff --git a/src/paperless_mail/apps.py b/src/paperless_mail/apps.py index a07a059b4..7e30cac80 100644 --- a/src/paperless_mail/apps.py +++ b/src/paperless_mail/apps.py @@ -11,7 +11,7 @@ class PaperlessMailConfig(AppConfig): verbose_name = _("Paperless mail") def ready(self): - from documents.signals import document_consumer_declaration + from paperless.signals import document_consumer_declaration if settings.TIKA_ENABLED: document_consumer_declaration.connect(mail_consumer_declaration) diff --git a/src/paperless_tesseract/apps.py b/src/paperless_tesseract/apps.py index f634349fb..b334abdb5 100644 --- a/src/paperless_tesseract/apps.py +++ b/src/paperless_tesseract/apps.py @@ -7,7 +7,7 @@ class PaperlessTesseractConfig(AppConfig): name = "paperless_tesseract" def ready(self): - from documents.signals import document_consumer_declaration + from paperless.signals import document_consumer_declaration document_consumer_declaration.connect(tesseract_consumer_declaration) diff --git a/src/paperless_text/apps.py b/src/paperless_text/apps.py index 0dd7b2206..a7a25cf49 100644 --- a/src/paperless_text/apps.py +++ b/src/paperless_text/apps.py @@ -7,7 +7,7 @@ class PaperlessTextConfig(AppConfig): name = "paperless_text" def ready(self): - from documents.signals import document_consumer_declaration + from paperless.signals import document_consumer_declaration document_consumer_declaration.connect(text_consumer_declaration) diff --git a/src/paperless_tika/apps.py b/src/paperless_tika/apps.py index 6fad68df8..2f65aa6a9 100644 --- a/src/paperless_tika/apps.py +++ b/src/paperless_tika/apps.py @@ -8,7 +8,7 @@ class PaperlessTikaConfig(AppConfig): name = "paperless_tika" def ready(self): - from documents.signals import document_consumer_declaration + from paperless.signals import document_consumer_declaration if settings.TIKA_ENABLED: document_consumer_declaration.connect(tika_consumer_declaration)