From 7ff74bb97db3cb77e054b4e1fed60b526e0418c3 Mon Sep 17 00:00:00 2001 From: vegu-ai-tools <152010387+vegu-ai-tools@users.noreply.github.com> Date: Mon, 16 Feb 2026 15:12:09 +0200 Subject: [PATCH] linting --- .../agents/summarize/context_history.py | 33 ++++++++++++++----- tests/test_context_history.py | 33 +++++++++++++------ 2 files changed, 48 insertions(+), 18 deletions(-) diff --git a/src/talemate/agents/summarize/context_history.py b/src/talemate/agents/summarize/context_history.py index 53675fb6..fc2f66d6 100644 --- a/src/talemate/agents/summarize/context_history.py +++ b/src/talemate/agents/summarize/context_history.py @@ -286,7 +286,9 @@ class ContextHistoryMixin: @property def scene_history_best_fit_min_dialogue(self) -> int: - return self.actions["manage_scene_history"].config["best_fit_min_dialogue"].value + return ( + self.actions["manage_scene_history"].config["best_fit_min_dialogue"].value + ) # --- Shared Primitives --- @@ -913,8 +915,7 @@ class ContextHistoryMixin: # in the delta accounting. Trim from the oldest entries of the # lowest non-empty level until we fit. total = sum( - sum(level.tokens[s:e]) - for level, (s, e) in zip(levels, render_ranges) + sum(level.tokens[s:e]) for level, (s, e) in zip(levels, render_ranges) ) if total > budget: # Walk levels bottom-up, trim oldest (lowest start) entries @@ -1009,7 +1010,10 @@ class ContextHistoryMixin: # 2. Reserve budget for guaranteed minimum dialogue min_dialogue = self._best_fit_ensure_min_dialogue( - scene, [], params, min_count=min_count, + scene, + [], + params, + min_count=min_count, ) min_dialogue_tokens = count_tokens(min_dialogue) @@ -1022,7 +1026,10 @@ class ContextHistoryMixin: # 4. Merge guaranteed messages (de-duped by ensure_min) parts_dialogue = self._best_fit_ensure_min_dialogue( - scene, parts_dialogue, params, min_count=min_count, + scene, + parts_dialogue, + params, + min_count=min_count, ) dialogue_tokens = count_tokens(parts_dialogue) @@ -1150,7 +1157,11 @@ class ContextHistoryMixin: if eff_best_fit: return self._context_history_preview_best_fit( - scene, budget, params, summarized_to, eff_max_budget, + scene, + budget, + params, + summarized_to, + eff_max_budget, eff_best_fit_min_dialogue, ) @@ -1274,7 +1285,10 @@ class ContextHistoryMixin: # Reserve budget for guaranteed minimum dialogue min_dialogue = self._best_fit_ensure_min_dialogue( - scene, [], params, min_count=eff_best_fit_min_dialogue, + scene, + [], + params, + min_count=eff_best_fit_min_dialogue, ) min_dialogue_tokens = count_tokens(min_dialogue) @@ -1287,7 +1301,10 @@ class ContextHistoryMixin: # Merge guaranteed messages (de-duped) parts_dialogue = self._best_fit_ensure_min_dialogue( - scene, parts_dialogue, params, min_count=eff_best_fit_min_dialogue, + scene, + parts_dialogue, + params, + min_count=eff_best_fit_min_dialogue, ) dialogue_tokens = count_tokens(parts_dialogue) summary_budget = budget - dialogue_tokens diff --git a/tests/test_context_history.py b/tests/test_context_history.py index cde13adb..f5011bba 100644 --- a/tests/test_context_history.py +++ b/tests/test_context_history.py @@ -2543,8 +2543,7 @@ class TestBestFit: # Lower level: 10 entries, each 100 tokens lower_entries = [ - {"text": _pad(f"lower-{i}", 100), "ts": f"PT{i}M"} - for i in range(10) + {"text": _pad(f"lower-{i}", 100), "ts": f"PT{i}M"} for i in range(10) ] lower_formatted = [e["text"] for e in lower_entries] lower_tokens = [100] * 10 # 1000 tokens total @@ -2554,12 +2553,27 @@ class TestBestFit: # Entry 1: covers lower 3-4 (GAP: lower 5 uncovered) # Entry 2: covers lower 6-8 (GAP: lower 5 skipped, lower 9 uncovered) upper_entries = [ - {"text": _pad("upper-0", 50), "ts_start": "PT0M", "ts_end": "PT3M", - "start": 0, "end": 2}, - {"text": _pad("upper-1", 50), "ts_start": "PT3M", "ts_end": "PT5M", - "start": 3, "end": 4}, - {"text": _pad("upper-2", 50), "ts_start": "PT6M", "ts_end": "PT9M", - "start": 6, "end": 8}, + { + "text": _pad("upper-0", 50), + "ts_start": "PT0M", + "ts_end": "PT3M", + "start": 0, + "end": 2, + }, + { + "text": _pad("upper-1", 50), + "ts_start": "PT3M", + "ts_end": "PT5M", + "start": 3, + "end": 4, + }, + { + "text": _pad("upper-2", 50), + "ts_start": "PT6M", + "ts_end": "PT9M", + "start": 6, + "end": 8, + }, ] upper_formatted = [e["text"] for e in upper_entries] upper_tokens = [50] * 3 # 150 tokens total @@ -2597,8 +2611,7 @@ class TestBestFit: # Compute actual rendered tokens total = sum( - sum(level.tokens[s:e]) - for level, (s, e) in zip(levels, render_ranges) + sum(level.tokens[s:e]) for level, (s, e) in zip(levels, render_ranges) ) assert total <= budget, (