[project]
name = "ontoenv"
description = "Python bindings for the OntoEnv Rust library. Manages ontology-based environments for building knowledge graphs."
readme = "README.md"
requires-python = ">=3.11"
dynamic = ["version"]
dependencies = [
    "oxrdflib>=0.5",
    "rdflib>=7.1.3",
]
authors = [
    { name = "Gabe Fierro", email = "gtfierro@mines.edu" }
]
license = "bsd-3-clause"

[project.scripts]
ontoenv = "ontoenv._cli:main"

[tool.maturin]
features = ["abi3", "cli"]
# This tells maturin to put the compiled native module
# INSIDE the 'ontoenv' package directory.
module-name = "ontoenv._native"

[build-system]
requires = ["maturin>=1.5,<2.0"]
build-backend = "maturin"

[dependency-groups]
dev = [
    "maturin>=1.9.0",
    "pytest>=8.3.5",
]

[tool.uv]
# Rebuild package when any rust files change
cache-keys = [{file = "pyproject.toml"}, {file = "Cargo.toml"}, {file = "**/*.rs"}, {file = "../lib/ontoenv/Cargo.toml"}, {file = "../lib/**/*.rs"}]
