From 9ee20d48c603d503ed8f814def2bbc22212ab340 Mon Sep 17 00:00:00 2001 From: Tom Palmer Date: Wed, 11 Mar 2026 11:07:46 +0000 Subject: [PATCH 1/2] Guard against None models in SEQoutput.summary() When a treatment-level subset lacks sufficient unique values, _fit_numerator/_fit_denominator append None to the fits list. summary() now skips None entries to avoid AttributeError. --- pySEQTarget/SEQoutput.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pySEQTarget/SEQoutput.py b/pySEQTarget/SEQoutput.py index 42a848e..d01a9a7 100644 --- a/pySEQTarget/SEQoutput.py +++ b/pySEQTarget/SEQoutput.py @@ -83,7 +83,7 @@ def summary( case _: models = self.outcome_models - return [model.summary() for model in models] + return [model.summary() for model in models if model is not None] def retrieve_data( self, From 55ff1c8687aee2139f675b3628cb82cc6454453f Mon Sep 17 00:00:00 2001 From: Tom Palmer Date: Wed, 11 Mar 2026 11:08:12 +0000 Subject: [PATCH 2/2] Bump version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f480e67..830ec6c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pySEQTarget" -version = "0.12.3" +version = "0.12.4" description = "Sequentially Nested Target Trial Emulation" readme = "README.md" license = {text = "MIT"}