juurio / pyproject.toml
samuli's picture
Juurio 0.1.0: code, wheel, model card and licences
9c2cf4c verified
Raw History Blame Contribute Delete
2.34 kB
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "juurio"
version = "0.1.0"
description = "Open-vocabulary Finnish morphology: a neural parser, an exception lexicon and tiny neural realizers for OOV/loan word forms"
readme = "README.md"
requires-python = ">=3.12"
license = { text = "MIT" }
license-files = ["LICENSE"]
authors = [{ name = "samuli" }]
keywords = ["finnish", "morphology", "nlp", "inflection", "dependency-parsing", "fst", "uralic"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: Finnish",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Text Processing :: Linguistic",
]
# Version floors track the tested versions and MUST NOT exceed what's installed/tested (guarded by
# tests/test_runtime_dep_floors.py) — a floor above the tested version makes a clean `pip install` pull
# an untested-newer dep. Inference needs only torch / numpy / transformers (the analysis path is the
# torch-only neural parser; generation uses the neural realizers + lexicon). huggingface-hub: it
# fetches the model/data artifacts from a HuggingFace repo via bootstrap.artifact_path.
dependencies = [
"transformers>=5.7",
"torch>=2.4",
"numpy>=1.26",
"huggingface-hub>=0.34",
]
[project.urls]
Homepage = "https://huggingface.co/samuli/juurio"
[project.optional-dependencies]
dev = ["pytest>=8", "packaging>=23"]
[project.scripts]
juurio = "juurio.cli:main"
# ─── Wheel ship-list ─────────────────────────────────────────────────────────────────────────────
# Ships the `juurio` package (top-level modules + the genlex override JSONs, juurio.analyze,
# and juurio.parser). The bulk serving artifacts (model checkpoints, wordlist, compressed tag table)
# are NOT bundled — they are fetched at runtime from the HuggingFace repo by `juurio setup`
# (bootstrap.py), sha256-verified. Guarded by tests/test_serving_wheel_contents.py.
[tool.hatch.build.targets.wheel]
only-include = ["juurio"]