protocols.py
689 Bytes
"""Protocols for translation service backends."""
from __future__ import annotations
from typing import List, Optional, Protocol, Sequence, Union, runtime_checkable
TranslateInput = Union[str, Sequence[str]]
TranslateOutput = Union[Optional[str], List[Optional[str]]]
@runtime_checkable
class TranslationBackendProtocol(Protocol):
"""Shared protocol implemented by translation backends."""
model: str
@property
def supports_batch(self) -> bool:
...
def translate(
self,
text: TranslateInput,
target_lang: str,
source_lang: Optional[str] = None,
scene: Optional[str] = None,
) -> TranslateOutput:
...