Files
MinerU/pyproject.toml
T

195 lines
4.8 KiB
TOML
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.
[build-system]
requires = ["setuptools>=77.0.3", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "mineru"
dynamic = ["version"]
license = "LicenseRef-MinerU-Open-Source-License"
license-files = ["LICENSE.md"]
description = "A practical document parsing tool for converting PDF, OFD, EPUB, HTML, images, CSV, RTF, OOXML, and OpenDocument files into Markdown and JSON"
readme = "README.md"
requires-python = ">=3.10,<3.15"
keywords = [
"mineru",
"magic-pdf",
"document-parsing",
"document-understanding",
"pdf",
"markdown",
"ocr",
"vlm",
"docx",
"pptx",
"xlsx",
"epub",
"ofd",
"csv",
"rtf",
"odt",
"ods",
"odp",
"multimodal",
]
classifiers = [
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]
dependencies = [
"docvortex>=0.3.0,<1",
"mineru-vl-utils>=2.0.0,<3",
"mineru-llama-cpp>=0.1.1,<1",
"click>=8.1.7",
"loguru>=0.7.2",
"numpy>=1.21.6",
"tqdm>=4.67.1",
"requests",
"httpx",
"pillow>=11.0.0",
"pypdfium2>=5.10.1,<6",
"PyYAML>=6.0.1,<7",
"packaging",
"modelscope>=1.26.0",
"huggingface-hub[hf_xet]>=0.32.4",
"filelock>=3.0.0",
"json-repair>=0.46.2",
"opencv-python>=4.11.0.86",
"openai>=1.70.0,<3",
"beautifulsoup4>=4.13.5,<5",
"aiosqlite>=0.20.0,<1",
"watchfiles>=1.0.0,<2",
"fastapi",
"python-multipart",
"uvicorn",
"pydantic>=2.12.5,<3",
"typer>=0.9.0",
"rich>=13.0.0",
"jieba>=0.42.1",
"onnxruntime>=1.17.0",
"ftfy>=6.3.1,<7",
"shapely>=2.0.7,<3",
"pyclipper>=1.3.0,<2",
"tokenizers>=0.22.0,<0.24",
]
[project.optional-dependencies]
dev = [
"lxml-stubs",
]
test = [
"pypdf>=5.6.0",
"reportlab",
"lxml>=4.0.0,<7.0.0",
"pytest",
"pytest-cov",
"coverage",
"fuzzywuzzy",
"tomli; python_version < '3.11'",
]
torch = [
"six>=1.17.0,<2",
"torch>=2.6.0,<3",
"torchvision",
"transformers>=5.10.1,<6",
"accelerate>=1.5.1",
"safetensors>=0.4.0,<1",
]
full = [
"mineru[torch]",
"vllm>=0.19.1,<0.29.0 ; sys_platform == 'linux'",
"lmdeploy>=0.17.0,<0.18 ; sys_platform == 'win32'",
"qwen-vl-utils>=0.0.14,<1 ; sys_platform == 'win32'",
"mlx-vlm>=0.7.0,<0.8.0 ; sys_platform == 'darwin' and platform_machine == 'arm64'",
]
gradio = [
"gradio>=6.8,<7",
"lxml>=5,<7",
]
all = [
"mineru[full]",
"mineru[gradio]",
]
[project.urls]
homepage = "https://mineru.net/"
documentation = "https://opendatalab.github.io/MinerU/"
repository = "https://github.com/opendatalab/MinerU"
issues = "https://github.com/opendatalab/MinerU/issues"
License = "https://github.com/opendatalab/MinerU/blob/master/LICENSE.md"
[project.scripts]
mineru = "mineru.cli.main:main"
mineru-kit = "mineru.kit.main:main"
mineru-router = "mineru.kit.router.cli:main"
mineru-gradio = "mineru.kit.commands.gradio:main"
mineru-openai-server = "mineru.kit.commands.vlm_server:main"
mineru-models-download = "mineru.kit.commands.models:download_main"
mineru-api = "mineru.kit.commands.api_server:main"
[tool.setuptools.dynamic]
version = { attr = "mineru.version.__version__" }
[tool.setuptools.packages.find]
include = ["mineru*"]
namespaces = false
[tool.setuptools.package-data]
"mineru" = ["resources/**"]
"mineru.kit.gradio._vendor.ofd2html" = ["LICENSE", "UPSTREAM.md"]
"mineru.doclib.migrations" = ["*.sql"]
"mineru.model._internal.pytorchocr.utils" = ["resources/**"]
[tool.setuptools]
include-package-data = true
zip-safe = false
[tool.pytest.ini_options]
addopts = "-s --cov=mineru --cov-report html"
markers = [
"e2e: MinerU CLI 端到端用例(脚本化 docs/next/cli/mineru-e2e-test-cases.md)",
"smoke: 快速回归子集(无需本地 quality tier)",
"slow: 单用例预计超过 60s",
"remote: 依赖 mineru.net 云端 parse-server(默认套件包含)",
"full_stack: 需要 MINERU_MODEL_STACK=full 与 full 模型集",
"isolated_home: 使用独立 MINERU_HOME",
"lifecycle: 会 stop/start/restart doclib server",
]
[tool.coverage.run]
command_line = "-m pytest tests/unittest"
source = ["mineru/"]
omit = [
"*/gradio_app.py",
"*/fast_api.py",
"*/cli/client.py",
"*/vlm_vllm_server.py",
"*/cli_parser.py",
]
[tool.coverage.html]
directory = "htmlcov"
[tool.coverage.report]
exclude_also = [
'def __repr__',
'if self.debug:',
'if settings.DEBUG',
'raise AssertionError',
'raise NotImplementedError',
'if 0:',
'if __name__ == .__main__.:',
'if TYPE_CHECKING:',
'class .*\bProtocol\):',
'@(abc\.)?abstractmethod',
]
[tool.ruff]
line-length = 128
[tool.ruff.lint]
select = ["C", "E", "F", "W", "ANN"]
ignore = ["C901", "ANN204", "ANN401"]