From c1f8aeec995a22b687a66632b0d9d8673578901b Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Mon, 8 Jun 2026 13:23:55 +0000 Subject: [PATCH] perf: O(n) rank map lookup in reranking results instead of O(n^2) nested generator Pre-computes a dictionary mapping `idx` to `j + 1` from `mapped_scores` to avoid searching the entire list for every score. Co-authored-by: bashandbone <89049923+bashandbone@users.noreply.github.com> --- src/codeweaver/providers/reranking/providers/base.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/codeweaver/providers/reranking/providers/base.py b/src/codeweaver/providers/reranking/providers/base.py index 28e7a93b2..1cf6908c8 100644 --- a/src/codeweaver/providers/reranking/providers/base.py +++ b/src/codeweaver/providers/reranking/providers/base.py @@ -91,10 +91,14 @@ def default_reranking_output_transformer( mapped_scores = sorted( ((i, score) for i, score in enumerate(results)), key=lambda x: x[1], reverse=True ) + + # Performance: Pre-compute rank map to avoid O(n^2) algorithmic complexity from nested iteration over mapped_scores + rank_map = {idx: j + 1 for j, (idx, _) in enumerate(mapped_scores)} + processed_results.extend( RerankingResult( original_index=i, - batch_rank=next((j + 1 for j, (idx, _) in enumerate(mapped_scores) if idx == i), -1), + batch_rank=rank_map.get(i, -1), score=score, chunk=chunk, )