[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "naijaml"
version = "0.1.2"
description = "Open-source ML tools, libraries, and notebooks for the Nigerian ML ecosystem"
readme = "README.md"
license = "Apache-2.0"
requires-python = ">=3.8"
authors = [{ name = "Ugochukwu Onyebuchi" }]
keywords = ["machine-learning", "nigeria", "nlp", "african-languages", "yoruba", "hausa", "igbo"]
classifiers = [
    "Development Status :: 1 - Planning",
    "Intended Audience :: Developers",
    "Intended Audience :: Science/Research",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
    "Programming Language :: Python :: 3",
]
dependencies = [
    "requests>=2.28",
    "numpy>=1.21",
    "tqdm>=4.64",
]

[project.optional-dependencies]
nlp = ["transformers>=4.30", "sentencepiece>=0.1.99", "torch>=2.0"]
speech = ["transformers>=4.30", "torch>=2.0", "librosa>=0.10"]
all = ["naijaml[nlp]", "naijaml[speech]"]
dev = ["pytest>=7.0", "pytest-cov", "ruff", "mypy", "build", "twine"]

[project.urls]
Homepage = "https://github.com/naijaml/naijaml"
Repository = "https://github.com/naijaml/naijaml"

[tool.hatch.build.targets.wheel]
# Include bundled model files (<7MB each), exclude large HF-only models
exclude = [
    "src/naijaml/nlp/diacritic_model.json",
    "src/naijaml/nlp/word_diacritic_model.json",
]

[dependency-groups]
dev = [
    "datasets>=3.1.0",
    "huggingface-hub[cli]>=0.36.2",
    "ipykernel>=6.29.5",
    "pytest>=8.3.5",
]
