blob: eb18e76668b99274d0eaa0265534aaf28955e862 [file]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "skill-evals"
version = "0.1.0"
description = "Behavioral eval harness for Apache Magpie skills."
readme = "README.md"
requires-python = ">=3.11"
license = { text = "Apache-2.0" }
dependencies = []
[project.scripts]
skill-eval = "skill_evals.runner:main"
[tool.hatch.build.targets.wheel]
packages = ["src/skill_evals"]
[tool.ruff]
line-length = 110
target-version = "py311"
src = ["src"]
# Eval fixtures are test *data*, not source. `report.md` files simulate what a
# contributor actually pasted into an issue or PR — single quotes, missing
# blank lines, and all. Ruff 0.16 began formatting Python inside Markdown
# fenced blocks, which would rewrite those bodies into house style and change
# the exact input the model is graded on. Several of these are prompt-injection
# cases whose whole point is that the untrusted text reaches the model verbatim.
# Formatting them would be a silent fixture edit, so the tree is excluded.
extend-exclude = ["evals/**/fixtures/**"]
[tool.ruff.lint]
select = ["E", "W", "F", "I", "B", "UP", "SIM", "C4", "RUF"]
ignore = ["E501"]
[tool.pytest.ini_options]
minversion = "8.0"
addopts = "-ra -q"
[dependency-groups]
# The shared toolchain (mypy, pytest, ruff) comes from `magpie-dev`
# (tools/dev), declared once for the whole workspace. The checks run each tool
# via `uv run --directory <member> --project . python -m <tool>` — see
# tools/dev/run-workspace-check.sh.
dev = ["magpie-dev"]