pyproject.toml
Rama main · réplica de lectura del repositorio original.
# Pacchetto installabile di Tabularium (`uv tool install tabularium`).
#
# La wheel contiene il backend (`backend/app`) e, in `app/_bundle/`, le
# risorse che da un checkout stanno nella radice della repo: VERSION,
# l'interfaccia già compilata, gli script consegnati alle GPU e i profili.
# `config.py` le cerca lì quando l'app è installata.
#
# Prima del build serve `frontend/dist`: `npm ci && npm run build` in frontend/.
# Le dipendenze runtime devono restare allineate a backend/requirements.txt
# (lo verifica tests/test_packaging.py).
[build-system]
requires = ["hatchling>=1.25"]
build-backend = "hatchling.build"
[project]
name = "tabularium"
dynamic = ["version"]
description = "State-of-the-art OCR and fine-tuning for historical documents, made simple for researchers."
readme = "README.md"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ name = "Nicolò Badino" }]
requires-python = ">=3.11,<3.14"
keywords = ["ocr", "historical-documents", "digital-humanities", "document-ai", "table-recognition", "vlm", "fine-tuning"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Science/Research",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Scientific/Engineering :: Image Recognition",
"Topic :: Text Processing :: General",
]
dependencies = [
"fastapi>=0.141,<1",
"uvicorn[standard]>=0.52,<1",
"pydantic>=2.13,<3",
"pillow>=12,<13",
"numpy>=2,<3",
"apted>=1.0.3,<2",
"rapidfuzz>=3,<4",
"requests>=2.32,<3",
"rapidocr>=3,<4",
"onnxruntime>=1.17,<2",
"httpx>=0.28,<1",
"python-dotenv>=1.0,<2",
"python-multipart>=0.0.20,<1",
"cryptography>=44,<51",
"huggingface-hub>=0.27,<1",
]
[project.scripts]
tabularium = "app.cli:main"
[project.urls]
Homepage = "https://github.com/nbadino/tabularium"
Documentation = "https://nbadino.github.io/tabularium/"
Changelog = "https://github.com/nbadino/tabularium/blob/main/CHANGELOG.md"
Issues = "https://github.com/nbadino/tabularium/issues"
[tool.hatch.version]
path = "VERSION"
pattern = "(?P<version>[^\\s]+)"
[tool.hatch.build.targets.wheel]
packages = ["backend/app"]
exclude = ["**/__pycache__", "**/_bundle"]
[tool.hatch.build.targets.wheel.force-include]
"VERSION" = "app/_bundle/VERSION"
"frontend/dist" = "app/_bundle/frontend/dist"
"conf" = "app/_bundle/conf"
"scripts/cloud" = "app/_bundle/scripts/cloud"
"scripts/local" = "app/_bundle/scripts/local"
"scripts/serve_model.sh" = "app/_bundle/scripts/serve_model.sh"