mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-09-13 13:17:59 +00:00
Chore: Structured consume task return values (#12612)
This commit is contained in:
+18
-1
@@ -26,11 +26,15 @@ from documents.caching import clear_document_caches
|
||||
from documents.classifier import DocumentClassifier
|
||||
from documents.classifier import load_classifier
|
||||
from documents.consumer import AsnCheckPlugin
|
||||
from documents.consumer import ConsumeFileDuplicateError
|
||||
from documents.consumer import ConsumerPlugin
|
||||
from documents.consumer import ConsumerPreflightPlugin
|
||||
from documents.consumer import WorkflowTriggerPlugin
|
||||
from documents.consumer import should_produce_archive
|
||||
from documents.data_models import ConsumableDocument
|
||||
from documents.data_models import ConsumeFileDuplicateResult
|
||||
from documents.data_models import ConsumeFileStoppedResult
|
||||
from documents.data_models import ConsumeFileSuccessResult
|
||||
from documents.data_models import DocumentMetadataOverrides
|
||||
from documents.double_sided import CollatePlugin
|
||||
from documents.file_handling import create_source_path_directory
|
||||
@@ -121,6 +125,11 @@ def consume_file(
|
||||
self: Task,
|
||||
input_doc: ConsumableDocument,
|
||||
overrides: DocumentMetadataOverrides | None = None,
|
||||
) -> (
|
||||
ConsumeFileSuccessResult
|
||||
| ConsumeFileStoppedResult
|
||||
| ConsumeFileDuplicateResult
|
||||
| None
|
||||
):
|
||||
token = consume_task_id.set((self.request.id or "")[:8])
|
||||
try:
|
||||
@@ -153,6 +162,7 @@ def consume_file(
|
||||
TemporaryDirectory(dir=settings.SCRATCH_DIR) as tmp_dir,
|
||||
):
|
||||
tmp_dir = Path(tmp_dir)
|
||||
msg = None
|
||||
for plugin_class in plugins:
|
||||
plugin_name = plugin_class.NAME
|
||||
|
||||
@@ -183,7 +193,14 @@ def consume_file(
|
||||
|
||||
except StopConsumeTaskError as e:
|
||||
logger.info(f"{plugin_name} requested task exit: {e.message}")
|
||||
return e.message
|
||||
return ConsumeFileStoppedResult(reason=e.message)
|
||||
|
||||
except ConsumeFileDuplicateError as e:
|
||||
logger.info(f"{plugin_name} rejected duplicate: {e}")
|
||||
return ConsumeFileDuplicateResult(
|
||||
duplicate_of=e.duplicate_id,
|
||||
duplicate_in_trash=e.in_trash,
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
logger.exception(f"{plugin_name} failed: {e}")
|
||||
|
||||
Reference in New Issue
Block a user