Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 3 additions & 8 deletions src/bioetl/application/core/batch_writer_columns_mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from __future__ import annotations

import itertools
from typing import TYPE_CHECKING, Literal

if TYPE_CHECKING:
Expand Down Expand Up @@ -86,14 +87,8 @@ def _get_schema_columns(

def _collect_record_columns(self, records: list[GoldRecord]) -> list[str]:
"""Collect columns in stable first-seen order."""
columns: list[str] = []
seen: set[str] = set()
for record in records:
for key in record:
if key not in seen:
seen.add(key)
columns.append(key)
return columns
# Optimized: C-level iteration and insertion-order preservation via dict.fromkeys
return list(dict.fromkeys(itertools.chain.from_iterable(records)))

def _get_column_order(self, columns: Sequence[str]) -> list[str] | None:
"""Resolve explicit column order from configured column groups."""
Expand Down
9 changes: 2 additions & 7 deletions src/bioetl/infrastructure/config/base_config_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,13 +141,8 @@ def _merge_lists(
"""
# Default: simple concatenation with deduplication for string lists
if base and isinstance(base[0], str):
seen: set[str] = set()
result: list[str] = []
for item in base + override:
if item not in seen:
seen.add(item)
result.append(item)
return result
# Optimized: C-level iteration and insertion-order preservation via dict.fromkeys
return list(dict.fromkeys(base + override))
# Non-string lists: just concatenate
return base + override

Expand Down
11 changes: 2 additions & 9 deletions src/bioetl/infrastructure/config/filter_config_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -304,15 +304,8 @@ def _merge_string_lists(
Returns:
Merged list with unique values, base items first.
"""
seen: set[str] = set()
result: list[str] = []

for item in base + override:
if item not in seen:
seen.add(item)
result.append(item)

return result
# Optimized: C-level iteration and insertion-order preservation via dict.fromkeys
return list(dict.fromkeys(base + override))


__all__ = ["FilterConfigLoader"]
Loading