Files
docutranslate/docutranslate/translator/base.py
2025-09-09 17:32:08 +08:00

36 lines
872 B
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SPDX-FileCopyrightText: 2025 QinHan
# SPDX-License-Identifier: MPL-2.0
from abc import ABC, abstractmethod
from dataclasses import dataclass
from logging import Logger
from typing import TypeVar, Generic
from docutranslate.ir.document import Document
from docutranslate.logger import global_logger
@dataclass(kw_only=True)
class TranslatorConfig:
logger: Logger = global_logger
T = TypeVar('T', bound=Document)
class Translator(ABC, Generic[T]):
"""
翻译中间文本原地替换Translator不做格式转换
"""
def __init__(self, config: TranslatorConfig | None = None):
self.config = config
self.logger = config.logger or global_logger
@abstractmethod
def translate(self, document: T) -> Document:
...
@abstractmethod
async def translate_async(self, document: T) -> Document:
...