From 46955f06441b5c60911bf9a8fc0eb6a15ccad98a Mon Sep 17 00:00:00 2001 From: Michael Pilosov Date: Mon, 6 Apr 2026 14:25:16 -0600 Subject: [PATCH] Cache built-in game parsing to avoid recomputation per request --- pyproject.toml | 2 +- src/chess_pressure/app.py | 2 ++ uv.lock | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 22c67db..1a745a6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "chess-pressure" -version = "0.1.1" +version = "0.1.2" description = "Chess pressure heatmap visualization" readme = "README.md" requires-python = ">=3.11" diff --git a/src/chess_pressure/app.py b/src/chess_pressure/app.py index 5b4e153..3f45e50 100644 --- a/src/chess_pressure/app.py +++ b/src/chess_pressure/app.py @@ -2,6 +2,7 @@ from __future__ import annotations +from functools import lru_cache from pathlib import Path import uvicorn @@ -39,6 +40,7 @@ def list_games(): @app.get("/api/games/{game_id}") +@lru_cache(maxsize=16) def load_game(game_id: str): pgn = get_game_pgn(game_id) if pgn is None: diff --git a/uv.lock b/uv.lock index 08d5e76..f9f94a2 100644 --- a/uv.lock +++ b/uv.lock @@ -41,7 +41,7 @@ sdist = { url = "https://files.pythonhosted.org/packages/93/09/7d04d7581ae3bb8b5 [[package]] name = "chess-pressure" -version = "0.1.1" +version = "0.1.2" source = { editable = "." } dependencies = [ { name = "fastapi" },