From 08d11ad916dd1b1c4b452a8752ed37aa8a899174 Mon Sep 17 00:00:00 2001 From: Guillaume Fraux Date: Wed, 25 Sep 2024 16:45:44 +0200 Subject: [PATCH] Special error message for force/virial/stress targets --- src/metatrain/utils/data/readers/readers.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/metatrain/utils/data/readers/readers.py b/src/metatrain/utils/data/readers/readers.py index 436134b6..b095195b 100644 --- a/src/metatrain/utils/data/readers/readers.py +++ b/src/metatrain/utils/data/readers/readers.py @@ -193,10 +193,16 @@ def read_targets( is_standard_target = target_key in standard_outputs_list if not is_standard_target and not target_key.startswith("mtt::"): - raise ValueError( - f"Target name ({target_key}) must either be one of " - f"{standard_outputs_list} or start with `mtt::`." - ) + if target_key.lower() in ["force", "forces", "virial", "stress"]: + raise ValueError( + f"{target_key!r} should not be it's own top-level target, " + "but rather a sub-section of the 'energy' target" + ) + else: + raise ValueError( + f"Target name ({target_key}) must either be one of " + f"{standard_outputs_list} or start with `mtt::`." + ) if target["quantity"] == "energy": blocks = read_energy(