fix: allow reordered subfamily member records

This commit is contained in:
wtx
2026-08-06 21:32:49 +08:00
parent 4750bcc76f
commit 8c3d601072
4 changed files with 83 additions and 4 deletions
+3 -3
View File
@@ -118,7 +118,7 @@ def _atomic_promote_pair(curated_id: Path, curated_pep: Path, final_id: Path, fi
tmp_pep.write_text(curated_pep.read_text(encoding="utf-8", errors="ignore"), encoding="utf-8")
tmp_ids = _read_id_list(tmp_id)
tmp_fasta_ids = _read_fasta_ids(tmp_pep)
if tmp_ids != tmp_fasta_ids:
if sorted(tmp_ids) != sorted(tmp_fasta_ids):
tmp_id.unlink(missing_ok=True)
tmp_pep.unlink(missing_ok=True)
raise RuntimeError(f"Temporary final member validation failed for {final_id.stem}")
@@ -160,7 +160,7 @@ def _promote_curated_members_to_final(final_dir: Path, prefixes: Iterable[str],
if not curated_ids:
raise ValueError(f"Curated member ID file is empty: {curated_id}")
fasta_ids = _read_fasta_ids(curated_pep)
if curated_ids != fasta_ids:
if sorted(curated_ids) != sorted(fasta_ids):
raise ValueError(
f"Curated member ID/FASTA mismatch for {member_prefix}: "
f"{len(curated_ids)} IDs vs {len(fasta_ids)} FASTA records"
@@ -179,7 +179,7 @@ def _promote_curated_members_to_final(final_dir: Path, prefixes: Iterable[str],
promoted_ids = _read_id_list(final_id)
promoted_fasta_ids = _read_fasta_ids(final_pep)
if promoted_ids != curated_ids or promoted_fasta_ids != curated_ids:
if sorted(promoted_ids) != sorted(curated_ids) or sorted(promoted_fasta_ids) != sorted(curated_ids):
raise RuntimeError(f"Post-promotion final member validation failed for {member_prefix}")
promotions.append({
"prefix": member_prefix,