Files
MinerU/pyproject.toml
myhloli 366fadb1c9 Promote TSV to an independent file suffix (ADR-0034)
- Route tsv through the shared CSV flash pipeline with an independent
  file_type and metadata.file_suffix; bump docvortex pin to 0.4.9
- Add ADR-0034 documenting the content-addressed cache identity decision,
  annotate ADR-0028, and update docs/next tier-group wording, telemetry
  and e2e specs
- Cover detection, sync/async analyze, API server jobs and doclib
  lifecycle for tsv in tests
2026-09-16 17:55:07 +08:00

193 lines
4.8 KiB
TOML
Raw Permalink 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.4.9,<1",
"gradio>=6.8,<7",
"mineru[torch] ; sys_platform == 'darwin' and platform_machine == 'arm64'",
"mineru-vl-utils>=2.0.4,<3",
"mineru-llama-cpp>=0.1.2,<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",
"typing_extensions>=4.0.0",
"typer>=0.9.0",
"rich>=13.0.0",
"jieba>=0.42.1",
"onnxruntime>=1.20.1",
"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 = [
"torch>=2.7.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'",
]
all = [
"mineru[full]",
]
[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-webui = "mineru.kit.commands.webui: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/**"]
"mineru.model.ocr" = ["data/*.txt"]
[tool.setuptools]
include-package-data = true
zip-safe = false
[tool.pytest.ini_options]
testpaths = ["tests"]
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: 需要 Torch 小模型与本地 VLM 模型集",
"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"]