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 fastapi.staticfiles import StaticFiles
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from docutranslate.global_values.conditional_import import DOCLING_FLAG from docutranslate.global_values.conditional_import import DOCLING_EXIST
# --- 核心代码重构后的新 Imports --- # --- 核心代码重构后的新 Imports ---
from docutranslate.manager.base_manager import BaseManager 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.md_based_manager import MarkdownBasedManager
from docutranslate.manager.txt_manager import TXTManager 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_docling import ConverterDoclingConfig
from docutranslate.converter.x2md.converter_mineru import ConverterMineruConfig from docutranslate.converter.x2md.converter_mineru import ConverterMineruConfig
from docutranslate.exporter.md2x.md2html_exporter import MD2HTMLExportConfig 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 import __version__
from docutranslate.global_values import available_packages
from docutranslate.logger import global_logger from docutranslate.logger import global_logger
from docutranslate.translater import default_params from docutranslate.translater import default_params
from docutranslate.utils.resource_utils import resource_path from docutranslate.utils.resource_utils import resource_path
@@ -908,7 +908,7 @@ async def service_content(
async def service_get_engin_list(): async def service_get_engin_list():
"""返回可用的文档解析引擎列表。""" """返回可用的文档解析引擎列表。"""
engin_list = ["mineru"] engin_list = ["mineru"]
if available_packages.get("docling"): if DOCLING_EXIST:
engin_list.append("docling") engin_list.append("docling")
return JSONResponse(content=engin_list) return JSONResponse(content=engin_list)

View File

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

View File

@@ -12,8 +12,7 @@ def conditional_import(packagename,alias=None):
available_packages[packagename]=True available_packages[packagename]=True
return True return True
except ImportError: except ImportError:
# print(f"package:{packagename}不存在")
available_packages[packagename]=False available_packages[packagename]=False
return 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 typing import Self, Literal, overload, TYPE_CHECKING
from docutranslate.cacher import md_based_convert_cacher 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_docling import ConverterDoclingConfig, ConverterDocling
from docutranslate.converter.x2md.converter_identity import ConverterIdentity from docutranslate.converter.x2md.converter_identity import ConverterIdentity
from docutranslate.converter.x2md.converter_mineru import ConverterMineruConfig, ConverterMineru from docutranslate.converter.x2md.converter_mineru import ConverterMineruConfig, ConverterMineru
@@ -23,7 +23,7 @@ class MarkdownBasedManager(BaseManager, HTMLExportable, MDFormatsExportable):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*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]] = { self._converter_factory: dict[str:tuple[X2MarkdownConverter, x2md_convert_config_type]] = {
"mineru": (ConverterMineru, ConverterMineruConfig), "mineru": (ConverterMineru, ConverterMineruConfig),
"docling": (ConverterDocling, ConverterDoclingConfig) "docling": (ConverterDocling, ConverterDoclingConfig)