This commit is contained in:
xunbu
2025-07-29 23:22:12 +08:00
parent 46a7cf4663
commit b7e9c16c9f
4 changed files with 13 additions and 14 deletions

View File

@@ -20,13 +20,14 @@ from fastapi.responses import HTMLResponse, JSONResponse, StreamingResponse, Fil
from fastapi.staticfiles import StaticFiles
from pydantic import BaseModel, Field
from docutranslate.global_values.conditional_import import DOCLING_FLAG
from docutranslate.global_values.conditional_import import DOCLING_EXIST
# --- 核心代码重构后的新 Imports ---
from docutranslate.manager.base_manager import BaseManager
from docutranslate.manager.interfaces import HTMLExportable, MDFormatsExportable, TXTExportable
from docutranslate.manager.md_based_manager import MarkdownBasedManager
from docutranslate.manager.txt_manager import TXTManager
from docutranslate.manager.interfaces import HTMLExportable, MDFormatsExportable, TXTExportable
if DOCLING_FLAG or TYPE_CHECKING:
if DOCLING_EXIST or TYPE_CHECKING:
from docutranslate.converter.x2md.converter_docling import ConverterDoclingConfig
from docutranslate.converter.x2md.converter_mineru import ConverterMineruConfig
from docutranslate.exporter.md2x.md2html_exporter import MD2HTMLExportConfig
@@ -37,7 +38,6 @@ from docutranslate.translater.txt_translator import TXTTranslateConfig
# ------------------------------------
from docutranslate import __version__
from docutranslate.global_values import available_packages
from docutranslate.logger import global_logger
from docutranslate.translater import default_params
from docutranslate.utils.resource_utils import resource_path
@@ -908,7 +908,7 @@ async def service_content(
async def service_get_engin_list():
"""返回可用的文档解析引擎列表。"""
engin_list = ["mineru"]
if available_packages.get("docling"):
if DOCLING_EXIST:
engin_list.append("docling")
return JSONResponse(content=engin_list)
@@ -1115,4 +1115,4 @@ def run_app(port: int | None = None):
if __name__ == "__main__":
run_app()
run_app()

View File

@@ -1,14 +1,14 @@
from typing import Literal, TYPE_CHECKING
from docutranslate.converter.x2md.converter_mineru import ConverterMineruConfig
from docutranslate.global_values.conditional_import import DOCLING_FLAG
from docutranslate.global_values.conditional_import import DOCLING_EXIST
if DOCLING_FLAG or TYPE_CHECKING:
if DOCLING_EXIST or TYPE_CHECKING:
from docutranslate.converter.x2md.converter_docling import ConverterDoclingConfig
convert_engin_type = Literal["mineru", "docling"]
if DOCLING_FLAG or TYPE_CHECKING:
if DOCLING_EXIST or TYPE_CHECKING:
x2md_convert_config_type = ConverterDoclingConfig | ConverterMineruConfig
else:
x2md_convert_config_type = ConverterMineruConfig

View File

@@ -12,8 +12,7 @@ def conditional_import(packagename,alias=None):
available_packages[packagename]=True
return True
except ImportError:
# print(f"package:{packagename}不存在")
available_packages[packagename]=False
return False
DOCLING_FLAG=conditional_import("docling")
DOCLING_EXIST=conditional_import("docling")

View File

@@ -3,9 +3,9 @@ from pathlib import Path
from typing import Self, Literal, overload, TYPE_CHECKING
from docutranslate.cacher import md_based_convert_cacher
from docutranslate.global_values.conditional_import import DOCLING_FLAG
from docutranslate.global_values.conditional_import import DOCLING_EXIST
if DOCLING_FLAG or TYPE_CHECKING:
if DOCLING_EXIST or TYPE_CHECKING:
from docutranslate.converter.x2md.converter_docling import ConverterDoclingConfig, ConverterDocling
from docutranslate.converter.x2md.converter_identity import ConverterIdentity
from docutranslate.converter.x2md.converter_mineru import ConverterMineruConfig, ConverterMineru
@@ -23,7 +23,7 @@ class MarkdownBasedManager(BaseManager, HTMLExportable, MDFormatsExportable):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if DOCLING_FLAG or TYPE_CHECKING:
if DOCLING_EXIST or TYPE_CHECKING:
self._converter_factory: dict[str:tuple[X2MarkdownConverter, x2md_convert_config_type]] = {
"mineru": (ConverterMineru, ConverterMineruConfig),
"docling": (ConverterDocling, ConverterDoclingConfig)