content: [build-system]
  requires = ["setuptools", "wheel"]
  build-backend = "setuptools.build_meta"
  
  [tool.setuptools]
  packages = ["cogweb", "devops", "experiments", "metta", "mettascope"]
  py-modules = []
  
  [project]
  dependencies = [
    "altair>=5.5.0",
    "anywidget>=0.9.18",
    "bidict>=0.23.1",
    "boto3>=1.38.32",
    "codebot",
    "cogames",
    "colorama>=0.4.6",
    "cpplint>=2.0.2",
    "ddtrace>=2.6.0",
    "duckdb>=1.3.0",
    "einops>=0.8.1",
    "fastapi>=0.115.5",
    "google-api-python-client>=2.0.0",
    "google-auth>=2.0.0",
    "google-auth-oauthlib>=1.0.0",
    "gymnasium>=1.1.1",
    "heavyball>=1.7.2",
    "httpx>=0.28.1",
    "imageio>=2.37.0",
    "jmespath>=1.0.1",
    "matplotlib>=3.10.3",
    "metta-agent",
    "metta-app-backend",
    "metta-common",
    "numpy>=2",
    "nvidia-ml-py",
    "omegaconf>=2.3.0",
    "pandas>=2.3.0",
    "pettingzoo>=1.25",
    "pixie-python>=4.3.0",
    "plotly>=6.1.1",
    "psycopg[binary]>=3.2.9",
    "pufferlib-core",
    "pyarrow>=21.0.0",
    "pybind11>=2.10.4",
    "pydantic>=2.11.5",
    "pydantic-settings>=2.10.1",
    "pyro-ppl>=1.9.1",
    "python-dotenv>=1.1.0",
    "pyyaml>=6.0.2",
    "schedulefree>=1.4.0",
    "rich>=13.9.4",
    "scipy>=1.15.3",
    "setuptools>=80.9.0",
    "simple-term-menu>=1.6.4",
    "skypilot==0.10.3",
    "softmax",
    "sympy>=1.13.3",
    "tabulate>=0.9.0",
    "tensordict>=0.8.3",
    "termcolor>=2.4.0",
    "tiktoken>=0.9.0",
    "torch>=2.7.1",
    "torchrl>=0.8.1",
    "tqdm>=4.67.1",
    "typer>=0.19.2",
    "uvicorn[standard]>=0.34.2",
    "wandb>=0.19.11",
    "wandb-core>=0.17.0b11",
  ]
  name = "metta"
  version = "0.1"
  description = "Metta AI framework"
  readme = "README.md"
  requires-python = "==3.11.7"
  license = "MIT"
  
  [dependency-groups]
  testing = [
    "gcovr>=8.3",
    "pytest>=8.3.3",
    "pytest-benchmark>=5.1.0",
    "pytest-cov>=6.1.1",
    "pytest-testmon>=2.1.3",
    "pytest-timeout>=2.4.0",
    "pytest-xdist>=3.8.0",
    "testcontainers>=4.10.0",
    "pyright>=1.1.401",
  ]
  lint = ["cpplint>=2.0.2", "mypy>=1.18.2", "ruff>=0.11.13"]
  interactive = [
    "anywidget>=0.9.18",
    "ipykernel>=6.29.5",
    "ipython>=9.4.0",
    "ipywidgets>=8.1.7",
    "jupyterlab>=4.4.4",
    "marimo==0.15.0",
    "notebook>=7.4.4",
    "traitlets>=5.14.3",
    "widgetsnbextension>=4.0.14",
  ]
  dev = [{ include-group = "testing" }, { include-group = "lint" }]
  
  [project.scripts]
  metta = "metta.setup.metta_cli:main"
  skypilot = "devops.skypilot.launch:main"
  skypilot-sandbox = "devops.skypilot.sandbox:main"
  mapgen = "tools.map.gen:main"
  mapgen-scene = "tools.map.gen_scene:main"
  
  [tool.coverage.run]
  source = [
    "codebot",
    "cogames",
    "gitta",
    "metta",
    "mettagrid",
    "metta.common",
    "metta.agent",
    "metta.app_backend",
    "pufferlib-core",
  ]
  
  [tool.pytest.ini_options]
  testpaths = ["tests"]
  python_files = ["test_*.py"]
  python_functions = ["test_*"]
  python_classes = ["Test*"]
  filterwarnings = [
    "ignore::DeprecationWarning:wandb.analytics.sentry",
    "ignore:The @wait_container_is_ready decorator is deprecated.*:DeprecationWarning",
  ]
  markers = [
    "slow: marks tests as slow (deselect with '-m \"not slow\"')",
    "network: marks tests as requiring network access (deselect with '-m \"not network\"')",
  ]
  console_output_style = "progress"
  addopts = "-n auto --import-mode=importlib --ignore-glob=**/bazel-*"
  pythonpath = [".", "packages/mettagrid/python/src"]
  norecursedirs = ["bazel-*", ".bazel_output"]
  
  [tool.uv]
  cache-keys = [
    { file = "pyproject.toml" },
    { file = "packages/mettagrid/BUILD" },
    { file = "packages/mettagrid/MODULE.bazel" },
    { file = "metta/**/*.{cpp,hpp}" },
  ]
  default-groups = ["interactive", "dev"]
  
  [tool.uv.workspace]
  members = [
    "agent",
    "app_backend",
    "common",
    "experiments",
    "packages/codebot",
    "packages/cogames",
    "packages/gitta",
    "packages/mettagrid",
    "packages/pufferlib-core",
    "softmax",
  ]
  
  [tool.uv.sources]
  codebot = { workspace = true }
  cogames = { workspace = true }
  gitta = { workspace = true }
  metta-agent = { workspace = true }
  metta-app-backend = { workspace = true }
  metta-common = { workspace = true }
  pufferlib-core = { workspace = true }
  softmax = { workspace = true }
  