Files
coorl-lost-cities/pyproject.toml
T
coolguy e69f3165b6 Add SO-ISMCTS mini trainer
Implements a proof-of-concept single-observer IS-MCTS trainer with AlphaZero-style policy/value network, determinization, replay, self-play, CLI configs, and focused tests. Mini acceptance run reaches positive random eval while keeping play_action_rate above the Deep CFR trap threshold.

Tests: uv run python -m pytest tests/games/classic/ismcts/ -x; uv run python -m pytest tests/games/classic/test_deep_cfr_trainer.py -x; uv run lost-cities-ismcts train --config configs/ismcts/mini.yaml
2026-05-10 22:46:22 +09:00

73 lines
1.6 KiB
TOML

[project]
name = "coolrl-lost-cities"
version = "0.1.0"
description = "Focused Lost Cities classic game extraction"
readme = "README.md"
authors = [
{ name = "정시원", email = "sebastianrcnt@gmail.com" }
]
requires-python = ">=3.11"
dependencies = [
"numpy>=1.26.0",
"matplotlib>=3.8",
"pydantic>=2.7",
"PyYAML>=6.0",
"torch>=2.3.0",
]
[project.optional-dependencies]
gui = [
"pygame>=2.6.1",
"pygame-gui>=0.6.14",
]
wandb = [
"wandb>=0.17",
]
[project.scripts]
lost-cities-classic = "coolrl_lost_cities.games.classic:main"
lost-cities-eval = "coolrl_lost_cities.games.classic.evaluation:main"
lost-cities-classic-gui = "coolrl_lost_cities.games.classic.pygame_pvp:main"
lost-cities-deep-cfr = "coolrl_lost_cities.games.classic.deep_cfr.cli:main"
lost-cities-ismcts = "coolrl_lost_cities.games.classic.ismcts.cli:main"
[dependency-groups]
dev = [
"cython>=3.0",
"pre-commit>=4.0.0",
"pytest>=9.0.3",
"ruff>=0.8.0",
]
[build-system]
requires = ["setuptools>=69", "wheel", "Cython>=3.0", "numpy>=1.26.0"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["src"]
include = ["coolrl_lost_cities*"]
[tool.setuptools.package-data]
"coolrl_lost_cities.games.classic" = [
"assets/*.json",
"fixtures/*.json",
"docs/*.md",
"*.pxd",
"*.pyx",
]
"coolrl_lost_cities.games.classic.deep_cfr" = [
"*.pxd",
"*.pyx",
]
[tool.ruff]
line-length = 100
target-version = "py311"
extend-exclude = [
"src/coolrl_lost_cities/games/classic/game.pyx",
]
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]
ignore = ["E501"]