From f90a1db8ccc2947f714c61d6bc3669f72c95189c Mon Sep 17 00:00:00 2001 From: Xavier Robin <xavalias-github@xavier.robin.name> Date: Thu, 1 Feb 2024 14:54:27 +0100 Subject: [PATCH] fix: improve handling of invalid biounit indices --- actions/ost-compare-structures | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/actions/ost-compare-structures b/actions/ost-compare-structures index 56c6087a8..78aea3eda 100644 --- a/actions/ost-compare-structures +++ b/actions/ost-compare-structures @@ -579,8 +579,14 @@ def _LoadStructure(structure_path, sformat, fault_tolerant, bu_idx): cif_entity, cif_seqres, cif_info = \ io.LoadMMCIF(structure_path, info=True, seqres=True, fault_tolerant=fault_tolerant) - if bu_idx >= len(cif_info.biounits): - raise RuntimeError(f"Invalid biounit index - requested {bu_idx} " + if len(cif_info.biounits) == 0: + raise RuntimeError(f"No biounit found - requested index" + f" {bu_idx}.") + elif bu_idx < 0: + raise RuntimeError(f"Invalid biounit - requested index {bu_idx}, " + f"must be a positive integer or 0.") + elif bu_idx >= len(cif_info.biounits): + raise RuntimeError(f"Invalid biounit - requested index {bu_idx}, " f"must be < {len(cif_info.biounits)}.") biounit = cif_info.biounits[bu_idx] entity = ost.mol.alg.CreateBU(cif_entity, biounit) -- GitLab