[project] name = "pawn" version = "0.1.0" description = "PAWN: Playstyle-Agnostic World-model Network for Chess" requires-python = ">=3.10,<3.13" license = "Apache-2.0" dependencies = [ "chess-engine", "numpy~=2.2.0", "psutil>=5.9.0", "safetensors>=0.4.0", "tqdm~=4.67.0", "wandb~=0.25.0", "huggingface-hub>=0.20.0", # Eval + probes "seaborn>=0.13.2", "matplotlib>=3.10.8", "polars>=1.39.0", "pyarrow>=23.0.1", # Dashboard "solara>=1.0.0", "plotly>=5.18.0", "pandas>=2.0.0", "anywidget>=0.9.21", # Sweeps "optuna>=4.0.0", "optuna-dashboard>=0.17.0", # Dev "pytest~=9.0.0", "ipykernel>=7.2.0", ] [project.optional-dependencies] rocm = ["torch~=2.10.0", "triton-rocm>=3.6.0"] cu128 = ["torch~=2.10.0"] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["pawn"] [tool.uv.workspace] members = ["engine"] [tool.uv] conflicts = [ [ { extra = "rocm" }, { extra = "cu128" }, ], ] environments = ["sys_platform == 'linux'"] [tool.uv.sources] chess-engine = { workspace = true } torch = [ { index = "pytorch-rocm", extra = "rocm" }, { index = "pytorch-cu128", extra = "cu128" }, ] triton-rocm = [ { index = "pytorch-rocm", extra = "rocm" }, ] [[tool.uv.index]] name = "pytorch-rocm" url = "https://download.pytorch.org/whl/rocm7.1" explicit = true [[tool.uv.index]] name = "pytorch-cu128" url = "https://download.pytorch.org/whl/cu128" explicit = true [tool.pyright] pythonVersion = "3.10" typeCheckingMode = "basic" reportMissingTypeStubs = false reportPrivateImportUsage = false reportMissingImports = "warning" include = ["pawn"] [tool.pytest.ini_options] testpaths = ["tests"]