diff --git a/src/documents/consumer.py b/src/documents/consumer.py index a56c99aec..ba2bba473 100644 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -459,13 +459,20 @@ class ConsumerPlugin( progress_callback=progress_callback, ) + parser_is_new_style = isinstance( + document_parser, + ( + MailDocumentParser, + RemoteDocumentParser, + TextDocumentParser, + TikaDocumentParser, + ), + ) + # New-style parsers use __enter__/__exit__ for resource management. # _parser_cleanup (below) handles __exit__; call __enter__ here. # TODO(stumpylog): Remove me in the future - if isinstance( - document_parser, - (TextDocumentParser, RemoteDocumentParser, TikaDocumentParser), - ): + if parser_is_new_style: document_parser.__enter__() self.log.debug(f"Parser: {type(document_parser).__name__}") @@ -488,15 +495,7 @@ class ConsumerPlugin( self.log.debug(f"Parsing {self.filename}...") # TODO(stumpylog): Remove me in the future when all parsers use new protocol - if isinstance( - document_parser, - ( - MailDocumentParser, - RemoteDocumentParser, - TextDocumentParser, - TikaDocumentParser, - ), - ): + if parser_is_new_style: document_parser.configure( ParserContext(mailrule_id=self.input_doc.mailrule_id), ) @@ -513,15 +512,7 @@ class ConsumerPlugin( ConsumerStatusShortMessage.GENERATING_THUMBNAIL, ) # TODO(stumpylog): Remove me in the future when all parsers use new protocol - if isinstance( - document_parser, - ( - MailDocumentParser, - RemoteDocumentParser, - TextDocumentParser, - TikaDocumentParser, - ), - ): + if parser_is_new_style: thumbnail = document_parser.get_thumbnail(self.working_copy, mime_type) else: thumbnail = document_parser.get_thumbnail( diff --git a/src/documents/tasks.py b/src/documents/tasks.py index 6f4e20c29..e540dffb1 100644 --- a/src/documents/tasks.py +++ b/src/documents/tasks.py @@ -67,6 +67,7 @@ from documents.workflows.utils import get_workflows_for_trigger from paperless.config import AIConfig from paperless.parsers import ParserContext from paperless.parsers.mail import MailDocumentParser +from paperless.parsers.remote import RemoteDocumentParser from paperless.parsers.text import TextDocumentParser from paperless.parsers.tika import TikaDocumentParser from paperless_ai.indexing import llm_index_add_or_update_document @@ -319,16 +320,23 @@ def update_document_content_maybe_archive_file(document_id) -> None: parser: DocumentParser = parser_class(logging_group=uuid.uuid4()) + parser_is_new_style = isinstance( + parser, + ( + MailDocumentParser, + RemoteDocumentParser, + TextDocumentParser, + TikaDocumentParser, + ), + ) + # TODO(stumpylog): Remove branch in the future when all parsers use new protocol - if isinstance(parser, (TextDocumentParser, TikaDocumentParser)): + if parser_is_new_style: parser.__enter__() try: # TODO(stumpylog): Remove branch in the future when all parsers use new protocol - if isinstance( - parser, - (MailDocumentParser, TextDocumentParser, TikaDocumentParser), - ): + if parser_is_new_style: parser.configure(ParserContext()) parser.parse(document.source_path, mime_type) else: @@ -339,10 +347,7 @@ def update_document_content_maybe_archive_file(document_id) -> None: ) # TODO(stumpylog): Remove branch in the future when all parsers use new protocol - if isinstance( - parser, - (MailDocumentParser, TextDocumentParser, TikaDocumentParser), - ): + if parser_is_new_style: thumbnail = parser.get_thumbnail(document.source_path, mime_type) else: thumbnail = parser.get_thumbnail(