content: [project]
  name = "openpipe-art"
  version = "0.5.0"
  description = "The OpenPipe Agent Reinforcement Training (ART) library"
  readme = "README.md"
  requires-python = ">=3.10"
  dependencies = [
      "openai>=1.65.5,<=1.99.1",
      "typer>=0.15.2",
      "litellm==1.74.1",
      "weave>=0.51.51",
  ]
  
  [project.optional-dependencies]
  plotting = ["matplotlib>=3.10.1", "seaborn>=0.13.2"]
  
  backend = [
      "peft>=0.14.0",
      "hf-xet>=1.1.0",
      "bitsandbytes>=0.45.2",
      "unsloth==2025.9.6",
      "unsloth-zoo==2025.9.7",
      "vllm>=0.9.2,<=0.10.0",
      "torchtune",
      "trl>=0.19.0",
      "torch>=2.7.0",
      "torchao>=0.9.0",
      "accelerate==1.7.0",
      "awscli>=1.38.1",
      "setproctitle>=1.3.6",
      "tblib>=3.0.0",
      "setuptools>=78.1.0",
      "wandb==0.21.0",
      "polars>=1.26.0",
      "transformers==4.53.2",
      "trl==0.20.0",
      "nbclient>=0.10.1",
      "pytest>=8.4.1",
      "nbmake>=1.5.5",
      "gql<4",
  ]
  
  skypilot = [
      "semver>=3.0.4",
      "skypilot[cudo,do,fluidstack,gcp,lambda,kubernetes,paperspace,runpod]==0.10.3.post1",
  ]
  
  langgraph = [
      "langchain-core>=0.3.51",
      "langgraph>=0.6.2",
      "langchain-openai>=0.3.27",
  ]
  
  [project.scripts]
  art = "art.cli:app"
  stop-server = "art.skypilot.stop_server:main"
  
  [build-system]
  requires = ["hatchling"]
  build-backend = "hatchling.build"
  
  [tool.hatch.metadata]
  allow-direct-references = true
  
  [tool.hatch.build.targets.wheel]
  packages = ["src/art", "src/mp_actors"]
  
  [tool.hatch.build]
  sources = ["src"]
  
  [tool.hatch.build.targets.sdist]
  exclude = [
    "/dev",
    "/wandb",
    "/.art",
    "/.ruff_cache",
    "/.venv",
    "/dist",
    "/.git",
    "/.github",
    "/examples/*/data",
    "/examples/*/wandb",
    "**/__pycache__",
    "**/*.pyc",
  ]
  
  [tool.ruff.lint]
  select = ["I"]
  
  [tool.ruff.lint.isort]
  case-sensitive = false
  
  [tool.pytest.ini_options]
  asyncio_mode = "auto"
  
  [tool.uv]
  required-version = ">=0.6.15"
  dev-dependencies = [
      "black>=25.1.0",
      "ipykernel>=6.29.5",
      "ipywidgets>=8.1.5",
      "openpipe>=4.49.0",
      "hatch>=1.14.1",
      "ruff>=0.12.1",
      "pytest>=8.4.1",
      "nbval>=0.11.0",
      "pytest-xdist>=3.8.0",
      "pyright[nodejs]>=1.1.403",
      "pytest-asyncio>=1.1.0",
  ]
  
  [tool.uv.sources]
  panza = { git = "https://github.com/corbt/panza.git" }
  sweagent = { git = "https://github.com/bradhilton/SWE-agent" }
  torchtune = { git = "https://github.com/pytorch/torchtune.git", rev = "2344509cf83bd886538fe3e8263e5145d1afb5c2" }
  