Files
trailofbits-buttercup/fuzzer/pyproject.toml
Dan Guido 0206c0f6e1 chore: update Python dependencies and pyproject.toml configs
Update dependencies across all components:
- Update ruff to v0.12.0
- Add ty (Astral type checker) as dev dependency
- Standardize pyproject.toml configurations
- Regenerate uv.lock files

Components updated:
- common
- orchestrator
- fuzzer
- fuzzer_runner
- patcher
- program-model
- seed-gen

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 11:44:48 +01:00

77 lines
2.0 KiB
TOML

[project]
name = "fuzzing-infra"
version = "0.1.0"
description = "Automated vulnerability discovery and fuzzing infrastructure"
authors = [{ name = "Trail of Bits", email = "opensource@trailofbits.com" }]
license = "AGPL-3.0-only"
requires-python = ">=3.12,<3.13"
dependencies = [
"common[full]",
"redis ~=5.2.1",
"pydantic-settings ~=2.7.1",
"beautifulsoup4 ~=4.13.3",
"lxml ~=5.3.1",
"cxxfilt>=0.3.0",
]
[project.urls]
Repository = "https://github.com/trailofbits/buttercup"
Issues = "https://github.com/trailofbits/buttercup/issues"
[project.scripts]
buttercup-fuzzer-builder = "buttercup.fuzzing_infra.builder_bot:main"
buttercup-fuzzer = "buttercup.fuzzing_infra.fuzzer_bot:main"
buttercup-coverage-bot = "buttercup.fuzzing_infra.coverage_bot:main"
buttercup-tracer-bot = "buttercup.fuzzing_infra.tracer_bot:main"
buttercup-corpus-sync = "buttercup.fuzzing_infra.corpus_sync:main"
buttercup-corpus-merger = "buttercup.fuzzing_infra.corpus_merger:main"
buttercup-fuzzer-utils = "buttercup.fuzzing_infra.utils_cli:main"
[tool.uv.sources]
common = { path = "../common", editable = true }
[tool.hatch.build.targets.wheel]
packages = ["src/buttercup"]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[dependency-groups]
dev = [
# Testing tools
"pytest ~=8.3.4",
"pytest-cov ~=6.0.0",
# Linting and type checking
"ruff ~=0.14.0",
"ty", # Astral type checker (replaces mypy)
# Type stubs
"types-redis ~=4.6.0",
"hypothesis>=6.148.7",
]
[tool.ruff]
line-length = 120
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "W", "UP"]
ignore = [
"COM812", "ISC001", # Formatter conflicts
]
[tool.ruff.lint.per-file-ignores]
"tests/**/*.py" = ["S101", "D"] # Allow asserts, no docstrings in tests
[tool.ty.environment]
python-version = "3.12"
[tool.ty.src]
# Explicitly include src directory
include = ["src"]
[tool.ty.rules]
# Start permissive, tighten over time
unresolved-import = "warn"
unresolved-attribute = "warn"