fastapi>=0.110
uvicorn[standard]>=0.27
pydantic>=2.5
pydantic-settings>=2.1
sqlalchemy>=2.0
alembic>=1.13
typer>=0.9
rich>=13
structlog>=24
python-multipart>=0.0.9
jinja2>=3.1
itsdangerous>=2.1
argon2-cffi>=23
httpx>=0.26
requests>=2.31
pillow>=10
numpy>=1.24
openpyxl>=3.1
prometheus-client>=0.19
pypdfium2>=4.20

[:sys_platform != "darwin" or platform_machine != "x86_64"]
cryptography>=42

[:sys_platform == "darwin" and platform_machine == "x86_64"]
cryptography<49,>=42

[all]
ocrroute[api,desktop,local]

[api]
requests>=2.31
mistralai>=1.0

[calamari]
calamari-ocr>=2.3
tensorflow>=2.15

[desktop]
ManyQt>=0.4.5
PyQt5>=5.15
keyring>=24

[dev]
pytest>=8
pytest-cov
respx>=0.20
ruff
black
mypy
types-requests

[easyocr]
easyocr>=1.7

[keras]
keras-ocr>=0.9

[local]
pytesseract>=0.3.10
opencv-python-headless>=4.8

[olmocr]
olmocr>=0.4
transformers>=4.45
torch>=2.4
pypdf>=4

[paddle]
paddleocr>=3.0
paddlepaddle>=3.0

[surya]
surya-ocr<0.20,>=0.17
transformers<5,>=4.56.1

[surya2]
surya-ocr>=0.20

[torch]
ocrroute[easyocr,surya,transformers]

[transformers]
transformers>=4.45
torch>=2.4
accelerate>=0.33

[vlm]
ocrroute[transformers]
