[project] name = "judgeval" version = "0.0.0" authors = [ { name = "Andrew Li", email = "andrew@judgmentlabs.ai" }, { name = "Alex Shan", email = "alex@judgmentlabs.ai" }, { name = "Joseph Camyre", email = "joseph@judgmentlabs.ai" }, ] maintainers = [{ name = "Judgment Labs", email = "contact@judgmentlabs.ai" }] description = "The open source post-building layer for Agent Behavior Monitoring." readme = "README.md" requires-python = ">=3.10" classifiers = [ "Programming Language :: Python :: 3", "Operating System :: OS Independent", ] license = "Apache-2.0" license-files = ["LICENSE.md"] dependencies = [ "httpx>=0.28.1", "requests>=2.0", "opentelemetry-exporter-otlp>=1.36.0", "opentelemetry-sdk>=1.36.0", "orjson>=3.9.0", "typer>=0.9.0", "dotenv>=0.9.9", "pathspec>=1.0.4", "packaging>=25.0", ] [project.urls] Homepage = "https://github.com/JudgmentLabs/judgeval" Issues = "https://github.com/JudgmentLabs/judgeval/issues" [project.scripts] judgeval = "judgeval.cli:app" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/judgeval"] include = [ "/src/judgeval", "/src/judgeval/**/*.py", "/src/judgeval/py.typed", ] [project.optional-dependencies] s3 = ["boto3>=1.40.11"] [dependency-groups] dev = [ "anthropic>=0.61.0", "boto3-stubs[s3]>=1.40.11", "google-genai>=1.28.0", "groq>=0.30.0", "mypy>=1.17.1", "openai>=1.92.0", "opentelemetry-instrumentation-openai>=0.44.1", "ruff>=0.9.1,<0.10.0", "together>=1.5.21", "types-pyyaml>=6.0.12.20250516", "pre-commit>=4.2.0", "pytest>=8.4.1", "pytest-cov>=6.2.1", "types-tqdm>=4.67.0.20250809", "pytest-asyncio>=1.1.0", "pytest-xdist>=3.8.0", "streamlit>=1.49.1", "dotenv>=0.9.9", "datasets>=4.4.1", "claude-agent-sdk>=0.1.6", "datamodel-code-generator==0.83.0", ] [tool.hatch.build] directory = "dist" exclude = [ "src/e2etests/*", "src/tests/*", "src/demo/*", ] [tool.hatch.build.targets.sdist] include = [ "/LICENSE.md", "/README.md", "/pyproject.toml", "/src/judgeval/**", ] [tool.mypy] check_untyped_defs = true warn_return_any = true warn_unreachable = false [tool.ruff] exclude = ["docs"] [tool.ruff.lint] ignore = [ "F403", "F405", "E402", ] # F403: star import, F405: undefined name from star import