mtg-deck-completion / server /selfcheck.py
nsaroiu's picture
Deploy 07d224d
8538f10 verified
Raw History Blame Contribute Delete
1.23 kB
"""
selfcheck.py
Loads the installed model the way the server does and builds one deck.
The Docker build runs it right after installing the model files, so a
release this code can't load (a changed architecture, a newer tokenizer
format) fails the build instead of producing an image that crashes on
startup. Exits non-zero on any failure:
python -m server.selfcheck
"""
from __future__ import annotations
import time
COMMANDER = "Meren of Clan Nel Toth"
DECKLIST = "1 Sol Ring\n1 Sakura-Tribe Elder\n4 Swamp"
def main() -> None:
from server.deckbuilder import DeckBuilder
from server.model_files import read_version
start = time.perf_counter()
builder = DeckBuilder(read_version())
loaded = time.perf_counter()
completion = builder.complete([COMMANDER], DECKLIST)
total = completion.to_dict()["summary"]["total"]
if total != 100:
raise SystemExit(f"Selfcheck failed: built a {total}-card deck for {COMMANDER}, expected 100.")
sha = (builder.version or {}).get("sha", "unknown")[:7]
print(f"Selfcheck passed: model {sha} loaded in {loaded - start:.1f}s, "
f"built a 100-card deck in {time.perf_counter() - loaded:.1f}s.")
if __name__ == "__main__":
main()