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

[project]
name = "rubric-eval"
version = "0.1.1"
description = "The independent LLM & AI agent evaluation framework. pytest for AI."
readme = "README.md"
license = { text = "MIT" }
authors = [
  { name = "Kareem Rashed", email = "kareemrashed2018@gmail.com" },
]
keywords = [
  "llm", "evaluation", "testing", "ai", "agents", "evals",
  "openai", "anthropic", "langchain", "rag", "benchmarking",
]
classifiers = [
  "Development Status :: 3 - Alpha",
  "Intended Audience :: Developers",
  "License :: OSI Approved :: MIT License",
  "Programming Language :: Python :: 3",
  "Programming Language :: Python :: 3.9",
  "Programming Language :: Python :: 3.10",
  "Programming Language :: Python :: 3.11",
  "Programming Language :: Python :: 3.12",
  "Topic :: Software Development :: Testing",
  "Topic :: Scientific/Engineering :: Artificial Intelligence",
]
requires-python = ">=3.9"
dependencies = []  # Zero required dependencies — keeps it lightweight

[project.optional-dependencies]
semantic = ["sentence-transformers>=2.0", "numpy>=1.21"]
rouge = ["rouge-score>=0.1.2"]
openai = ["openai>=1.0"]
anthropic = ["anthropic>=0.20"]
all = [
  "sentence-transformers>=2.0",
  "numpy>=1.21",
  "rouge-score>=0.1.2",
  "openai>=1.0",
  "anthropic>=0.20",
]
dev = [
  "pytest>=7.0",
  "pytest-asyncio",
  "ruff",
  "mypy",
  "hatchling",
  "build",
  "twine",
]

[project.urls]
Homepage = "https://kareem-rashed.github.io/rubric-eval"
Documentation = "https://github.com/Kareem-Rashed/rubric-eval#readme"
Repository = "https://github.com/Kareem-Rashed/rubric-eval"
"Bug Tracker" = "https://github.com/Kareem-Rashed/rubric-eval/issues"
Changelog = "https://github.com/Kareem-Rashed/rubric-eval/blob/main/CHANGELOG.md"

[project.scripts]
rubric = "rubriceval.cli.main:main"

[project.entry-points."pytest11"]
rubric = "rubriceval.integrations.pytest_plugin"

[tool.hatch.build.targets.wheel]
packages = ["rubriceval"]

[tool.ruff]
line-length = 100
target-version = "py39"

[tool.ruff.lint]
select = ["E", "F", "I"]

[tool.mypy]
python_version = "3.9"
ignore_missing_imports = true
