content: # pyproject.toml
  
  [build-system]
  requires = ["hatchling", "hatch-vcs"]
  build-backend = "hatchling.build"
  
  [project]
  name = "attn_gym"
  authors = [{ name = "Driss Guessous", email = "drisspguessous@gmail.com" }]
  description = "Helpful tools and examples for working with flex-attention"
  readme = "README.md"
  dynamic = ["version"]
  requires-python = ">=3.9"
  classifiers = [
      "Programming Language :: Python :: 3",
      "License :: OSI Approved :: BSD License",
      "Operating System :: OS Independent",
  ]
  
  dependencies = [
      "torch",
  ]
  
  [project.optional-dependencies]
  dev = [
      "pre-commit==3.6.0",
      "bumpver",
      "pip-tools",
      "pytest",
      "ruff",
      "jsonargparse",
      "docstring-parser",
      "pytest",
      "numpy"
  ]
  
  viz = [
      "matplotlib",
      "numpy",
      "jsonargparse",
      "docstring-parser",
      "tabulate",
      "pyyaml",
      "marimo",
  ]
  
  # ---------- TOOL CONFIGURATIONS ------------
  [tool.hatch.version]
  source = "vcs"
  
  # ---------- RUFF ------------
  [tool.ruff]
  target-version = "py310"
  line-length = 99
  # Exclude a variety of commonly ignored directories.
  exclude = [
      ".bzr",
      ".direnv",
      ".eggs",
      ".git",
      ".git-rewrite",
      ".hg",
      ".ipynb_checkpoints",
      ".mypy_cache",
      ".nox",
      ".pants.d",
      ".pyenv",
      ".pytest_cache",
      ".pytype",
      ".ruff_cache",
      ".svn",
      ".tox",
      ".venv",
      ".vscode",
      "__pypackages__",
      "_build",
      "buck-out",
      "build",
      "dist",
      "node_modules",
      "site-packages",
      "venv",
      "*.ipynb",
  ]
  
  [tool.ruff.lint]
  ignore = ['E231', 'E731']
  
  [tool.ruff.lint.per-file-ignores]
  "__init__.py" = ["F401", "F403"]
  