From 45adbbb2e13e0f90dfe96d6aef0be73ffca9b354 Mon Sep 17 00:00:00 2001 From: user <59329744+dilpath@users.noreply.github.com> Date: Fri, 13 Mar 2026 17:39:07 +0100 Subject: [PATCH 1/2] disallow truthy/falsey values in estimate column --- petab/v1/lint.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/petab/v1/lint.py b/petab/v1/lint.py index 434b5030..33e2d619 100644 --- a/petab/v1/lint.py +++ b/petab/v1/lint.py @@ -675,7 +675,7 @@ def assert_parameter_estimate_is_boolean(parameter_df: pd.DataFrame) -> None: AssertionError: in case of problems """ for estimate in parameter_df[ESTIMATE]: - if int(estimate) not in [True, False]: + if str(estimate) not in ["0", "1"]: raise AssertionError( f"Expected 0 or 1 but got {estimate} in {ESTIMATE} column." ) From a983544cc776f8fb1dfaa270b065b2c0b888fdc5 Mon Sep 17 00:00:00 2001 From: user <59329744+dilpath@users.noreply.github.com> Date: Sat, 14 Mar 2026 21:01:01 +0100 Subject: [PATCH 2/2] enforce estimate column type --- petab/v1/parameters.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/petab/v1/parameters.py b/petab/v1/parameters.py index 82e23669..2f01447b 100644 --- a/petab/v1/parameters.py +++ b/petab/v1/parameters.py @@ -58,7 +58,10 @@ def get_parameter_df( parameter_df = parameter_file elif isinstance(parameter_file, str | Path): parameter_df = pd.read_csv( - parameter_file, sep="\t", float_precision="round_trip" + parameter_file, + sep="\t", + float_precision="round_trip", + dtype={ESTIMATE: 'Int64'}, ) elif isinstance(parameter_file, Iterable): dfs = [get_parameter_df(x) for x in parameter_file if x]