Skip to content

Commit cfb7b9c

Browse files
committed
perf: use set for O(1) membership check in TestFiles.add()
The previous implementation used `if test_file not in self.test_files` which performs O(n) equality comparison across all TestFile objects. Replace with a `_seen_paths` set keyed on `instrumented_behavior_file_path` for O(1) deduplication lookups.
1 parent 9399561 commit cfb7b9c

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

codeflash/models/models.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,9 +426,15 @@ class TestFile(BaseModel):
426426

427427
class TestFiles(BaseModel):
428428
test_files: list[TestFile]
429+
_seen_paths: set[Path] = PrivateAttr(default_factory=set)
430+
431+
def model_post_init(self, __context: Any, /) -> None:
432+
self._seen_paths = {tf.instrumented_behavior_file_path for tf in self.test_files}
429433

430434
def add(self, test_file: TestFile) -> None:
431-
if test_file not in self.test_files:
435+
key = test_file.instrumented_behavior_file_path
436+
if key not in self._seen_paths:
437+
self._seen_paths.add(key)
432438
self.test_files.append(test_file)
433439
else:
434440
msg = "Test file already exists in the list"

0 commit comments

Comments
 (0)