Files
trailofbits-buttercup/orchestrator/pyproject.toml
dependabot[bot] fb8aa17076 build(deps): bump the uv group across 7 directories with 1 update (#541)
Bumps the uv group with 1 update in the /common directory: [urllib3](https://github.com/urllib3/urllib3).
Bumps the uv group with 1 update in the /fuzzer directory: [urllib3](https://github.com/urllib3/urllib3).
Bumps the uv group with 1 update in the /fuzzer_runner directory: [urllib3](https://github.com/urllib3/urllib3).
Bumps the uv group with 1 update in the /orchestrator directory: [urllib3](https://github.com/urllib3/urllib3).
Bumps the uv group with 1 update in the /patcher directory: [urllib3](https://github.com/urllib3/urllib3).
Bumps the uv group with 1 update in the /program-model directory: [urllib3](https://github.com/urllib3/urllib3).
Bumps the uv group with 1 update in the /seed-gen directory: [urllib3](https://github.com/urllib3/urllib3).


Updates `urllib3` from 2.6.3 to 2.7.0
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0)

Updates `urllib3` from 2.6.3 to 2.7.0
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0)

Updates `urllib3` from 2.6.3 to 2.7.0
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0)

Updates `urllib3` from 2.6.3 to 2.7.0
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0)

Updates `urllib3` from 2.6.3 to 2.7.0
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0)

Updates `urllib3` from 2.6.3 to 2.7.0
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0)

Updates `urllib3` from 2.6.3 to 2.7.0
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.7.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: urllib3
  dependency-version: 2.7.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: urllib3
  dependency-version: 2.7.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: urllib3
  dependency-version: 2.7.0
  dependency-type: direct:production
  dependency-group: uv
- dependency-name: urllib3
  dependency-version: 2.7.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: urllib3
  dependency-version: 2.7.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: urllib3
  dependency-version: 2.7.0
  dependency-type: indirect
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-11 19:08:41 +02:00

111 lines
3.0 KiB
TOML

[project]
name = "orchestrator"
version = "0.5.0"
description = "Buttercup orchestrator"
readme = "README.md"
authors = [{ name = "Trail of Bits", email = "opensource@trailofbits.com" }]
license = "AGPL-3.0-only"
requires-python = ">=3.12,<3.13"
dependencies = [
"argon2-cffi ~=21.3.0",
"common[full]",
"fastapi ~=0.128.0",
"pydantic ~=2.11.0",
"pydantic-settings ~=2.10.1",
"python-dateutil ~=2.9.0",
"pyyaml ~=6.0.1",
"requests ~=2.33.0",
"requests-file ~=2.1.0",
"rich ~=13.9.4",
"sqlalchemy ~=2.0.0",
"typing-extensions ~=4.12.2",
"urllib3~=2.7.0",
"uvicorn ~=0.34.0",
]
[project.urls]
Repository = "https://github.com/trailofbits/buttercup"
Issues = "https://github.com/trailofbits/buttercup/issues"
[project.scripts]
buttercup-task-server = "buttercup.orchestrator.task_server.__cli__:main"
buttercup-task-downloader = "buttercup.orchestrator.downloader.__cli__:main"
buttercup-scheduler = "buttercup.orchestrator.scheduler.__cli__:main"
buttercup-pov-reproducer = "buttercup.orchestrator.pov_reproducer.__cli__:main"
buttercup-auth-tool = "buttercup.orchestrator.task_server.auth_tool:main"
buttercup-scratch-cleaner = "buttercup.orchestrator.scratch_cleaner.__cli__:main"
buttercup-ui = "buttercup.orchestrator.ui.__cli__:main"
[dependency-groups]
dev = [
# Testing tools
"pytest ~=9.0.3",
"pytest-asyncio ~=1.3.0",
"pytest-cov ~=6.0.0",
"pytest-xdist ~=3.6.1",
"fastapi[standard] ~=0.128.0",
"responses ~=0.25.6",
"httpx ~=0.28.1",
# Linting and type checking
"ruff ~=0.14.0",
"ty", # Astral type checker (replaces mypy)
# Type stubs
"types-python-dateutil ~=2.9.0.20241206",
"types-requests ~=2.32.0",
"types-redis ~=4.6.0",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/buttercup"]
[tool.uv.sources]
common = { path = "../common", editable = true }
[tool.ruff]
line-length = 120
target-version = "py312"
exclude = [
"src/buttercup/orchestrator/competition_api_client",
"test/test_types_*.py",
"test/test_vulnerability_api.py",
"test/test_patch_api.py",
"test/test_sarif_api.py",
"src/buttercup/orchestrator/task_server/models/",
]
[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
"test/test_submissions.py" = ["S101", "D", "UP045"] # UP045: Protobuf enums don't support | operator
"*/__cli__.py" = ["T201"] # Allow print in CLI modules
"*/auth_tool.py" = ["T201"]
[tool.ty.environment]
python-version = "3.12"
[tool.ty.src]
# Explicitly include src directory
include = ["src"]
exclude = [
"src/buttercup/orchestrator/competition_api_client",
"src/buttercup/orchestrator/ui/competition_api/models",
]
[tool.ty.rules]
# Start permissive, tighten over time
unresolved-import = "warn"
unresolved-attribute = "warn"
[tool.pytest.ini_options]
asyncio_default_fixture_loop_scope = "function"