AdaptiveSolvePlanner is a production-oriented adaptive tournament planner and solver. It supports sequential and process-parallel search over retention/decay parameters to produce "nice" tournament round plans (groups, qualifiers, wildcards) while honoring configurable limits.
To install from PyPI:
python -m pip install adaptivesolveplannerTo install latest from GitHub:
pip install git+https://github.com/Smoki-Cool/adaptivesolveplanner.gitfrom adaptive_solve_planner import plan
p = plan(start_guess=100, finals_target=12, rounds_desired=5, strictness="generous",
prefer_wc=True, allow_wc_down=True, top_k_per_round=12, max_nodes=300000, time_limit=12.0)
print(p["_meta"])
for r in p["rows"]:
print(r)Two primary entry points:
plan(...)— sequential single-process plannerparallel_plan(...)— process-parallel planner with auto-tuning
Both return a dict with:
rows— per-round dictsfinal_total— final number of players_meta— diagnostic metadata_score— score used for selecting best plan
See examples/ for runnable samples.
PlannerConfig centralizes defaults and can be overridden from environment variables using the ASP_ prefix (e.g. ASP_WC_PCT=0.12). See adaptive_solve_planner/config.py.
If you installed the package with the console script, run:
adaptivesolveplanner --helpCreate a virtualenv, install dev requirements, run tests:
python -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install build twine pytest
python -m pytestSee CONTRIBUTING.md.
This project is licensed under the GNU General Public License v3.0 — see the LICENSE file.