Files
Lin Manhui b03f46425e [Feat] Support PP-OCRv6 (#18104)
* Fix bugs

* Fix for python3.8

* Fix mcp server

* Optimize

* Fix bugs

* Refactor

* Fix MCP

* Bump MCP to 0.8.1

* Fix bugs

* Bump version to 0.8.2

* Fix bugs and update docs

* Update docs and fix bugs

* Fix bugs

* update pp-ocrv6

* update pp-ocrv6

# Conflicts:
#	docs/version3.x/module_usage/text_detection.md
#	docs/version3.x/module_usage/text_recognition.md
#	docs/version3.x/pipeline_usage/OCR.md
#	paddleocr/_api_client/models.py
#	paddleocr/_pipelines/ocr.py

* Bump paddleocr version

* update PP-OCRv6 docs: add model metrics, fix sizes, update language count to 50

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* update PP-OCRv6: add model metrics/sizes to docs, support az/ku languages

- Add PP-OCRv6 model precision, sizes, descriptions to doc tables
- Add OCR pipeline introduction for PP-OCRv6
- Remove az/ku from unsupported latin langs (dict covers them)
- Update language count: 48->50 (medium/small), 47->49 (tiny)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Change languages

* Bump js version

* add PP-OCRv6 English docs: algorithm doc + update model tables

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Use default model

* Update doc

* Update mcp docs

* update PP-OCRv6 algorithm docs and mkdocs nav: sync speed table with paper

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Support more params

* Fix MCP

* update READMEs and index docs: PP-OCRv5 -> PP-OCRv6 features

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Update sdk

* Fix bugs

* Fix unsaved

* Bump versions

* Fix bugs

* updata readme

---------

Co-authored-by: weixin_46524038 <weixin_46524038@noreply.gitcode.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: zhangyubo0722 <zhangyubo0722@163.com>
2026-06-11 19:27:04 +08:00

144 lines
3.8 KiB
TOML

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "langchain-paddleocr"
version = "0.2.2"
description = "An integration package connecting PaddleOCR and LangChain"
authors = []
readme = "README.md"
license = { text = "Apache License 2.0" }
requires-python = ">=3.10"
dependencies = [
"paddleocr>=3.7.0",
"langchain-core>=1.2.5,<2.0.0",
"pydantic>=2.0.0,<3.0.0",
]
[project.urls]
"Source Code" = "https://github.com/PaddlePaddle/PaddleOCR/tree/main/langchain-paddleocr"
"Release Notes" = "https://github.com/PaddlePaddle/PaddleOCR/releases"
Repository = "https://github.com/PaddlePaddle/PaddleOCR"
[dependency-groups]
lint = ["ruff>=0.13.1,<0.14.0"]
typing = [
"mypy>=1.18.1,<1.19.0",
"types-requests>=2.31.0,<3.0.0",
]
test = [
"pytest>=8.4.0,<9.0.0",
"freezegun>=1.5.0,<2.0.0",
"pytest-mock>=3.14.0,<4.0.0",
"syrupy>=4.9.0,<5.0.0",
"pytest-watcher>=0.4.0,<1.0.0",
"pytest-asyncio>=0.21.0,<1.0.0",
"pytest-retry>=1.7.0,<2.0.0",
"pytest-socket>=0.7.0,<1.0.0",
"langchain-tests>=1.1.2,<2.0.0",
]
test_integration = [
"pytest>=8.4.0,<9.0.0",
]
[tool.ruff]
fix = true
[tool.ruff.format]
docstring-code-format = true
[tool.ruff.lint]
select = [ "ALL",]
ignore = [
"C90", # McCabe complexity
"COM812", # Messes with the formatter
"CPY", # No copyright
"FIX002", # Line contains TODO
"ISC001", # Messes with the formatter
"PERF203", # Rarely useful
"PLR09", # Too many something (arg, statements, etc)
"RUF012", # Doesn't play well with Pydantic
"TC001", # Doesn't play well with Pydantic
"TC002", # Doesn't play well with Pydantic
"TC003", # Doesn't play well with Pydantic
"TD002", # Missing author in TODO
"TD003", # Missing issue link in TODO
# TODO rules
"ANN401", # No Any types
"BLE", # Blind exceptions
"DOC", # Docstrings (preview)
"ERA", # No commented-out code
"PLR2004", # Comparison to magic number
"PLC0415", # Import top level
"SIM117", # Single with statement
"FBT", # Bool stuff
"PT",
"ARG", # Argument related
"SLF", # Self
"D", # Docstring related
"G",
"S",
"A",
"N",
"TRY",
"B",
"PGH",
"SIM",
"ASYNC",
"PTH",
"DTZ",
"PYI",
"PLW",
]
unfixable = [
"B028", # People should intentionally tune the stacklevel
"PLW1510", # People should intentionally set the check argument
]
[tool.ruff.lint.per-file-ignores]
"tests/**" = [ "D1", "S", "SLF", "ARG001", "PGH003", "PT011"]
"scripts/**" = [ "INP", "S",]
[tool.mypy]
plugins = ["pydantic.mypy"]
strict = true
disallow_untyped_defs = true
[[tool.mypy.overrides]]
module = ["paddleocr.*"]
ignore_missing_imports = true
# TODO: activate for 'strict' checking
disallow_any_generics = false
warn_return_any = false
[tool.coverage.run]
omit = [
"tests/*",
"*/site-packages/*",
"*/.venv/*",
"*/venv/*",
]
[tool.pytest.ini_options]
# --strict-markers will raise errors on unknown marks.
# https://docs.pytest.org/en/7.1.x/how-to/mark.html#raising-errors-on-unknown-marks
#
# https://docs.pytest.org/en/7.1.x/reference/reference.html
# --strict-config any warnings encountered while parsing the `pytest`
# section of the configuration file raise errors.
#
# https://github.com/tophat/syrupy
# --snapshot-warn-unused Prints a warning on unused snapshots rather than fail the test suite.
#addopts = "--snapshot-warn-unused --strict-markers --strict-config --durations=5"
# Registering custom markers.
# https://docs.pytest.org/en/7.1.x/example/markers.html#registering-markers
markers = [
"requires: mark tests as requiring a specific library",
"asyncio: mark tests as requiring asyncio",
"compile: mark placeholder test used to compile integration tests without running them",
]
asyncio_mode = "auto"