diff --git a/src/paperless/parsers/remote.py b/src/paperless/parsers/remote.py index 074688cb2..45311cdbd 100644 --- a/src/paperless/parsers/remote.py +++ b/src/paperless/parsers/remote.py @@ -377,6 +377,13 @@ class RemoteDocumentParser: str | None Extracted text, or None if the Azure call failed. """ + if TYPE_CHECKING: + # Callers must have already validated config via engine_is_valid(): + # engine_is_valid() asserts api_key is not None and (for azureai) + # endpoint is not None, so these casts are provably safe. + assert config.endpoint is not None + assert config.api_key is not None + from azure.ai.documentintelligence import DocumentIntelligenceClient from azure.ai.documentintelligence.models import AnalyzeDocumentRequest from azure.ai.documentintelligence.models import AnalyzeOutputOption diff --git a/src/paperless_remote/signals.py b/src/paperless_remote/signals.py index a5de1c3f2..4059126ca 100644 --- a/src/paperless_remote/signals.py +++ b/src/paperless_remote/signals.py @@ -1,10 +1,15 @@ -def get_parser(*args, **kwargs): +from __future__ import annotations + +from typing import Any + + +def get_parser(logging_group: object = None) -> Any: from paperless.parsers.remote import RemoteDocumentParser - return RemoteDocumentParser(*args, **kwargs) + return RemoteDocumentParser(logging_group) -def get_supported_mime_types(): +def get_supported_mime_types() -> dict[str, str]: from django.conf import settings from paperless.parsers.remote import RemoteDocumentParser @@ -20,7 +25,7 @@ def get_supported_mime_types(): return RemoteDocumentParser.supported_mime_types() -def remote_consumer_declaration(sender, **kwargs): +def remote_consumer_declaration(sender: Any, **kwargs: Any) -> dict[str, Any]: return { "parser": get_parser, "weight": 5,