From 892ebfada77124473fdba84dfd659b0cc1c02fa0 Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Mon, 1 Jul 2024 10:12:02 +0200 Subject: [PATCH] Support pre-petab.v1 --- petabtests/file.py | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/petabtests/file.py b/petabtests/file.py index b58ffb8..5d0c5d9 100644 --- a/petabtests/file.py +++ b/petabtests/file.py @@ -8,8 +8,6 @@ import petab import yaml from petab.C import * # noqa: F403 -from petab.v1.lint import lint_problem as lint_problem_v1 -from petab.v2.lint import lint_problem as lint_problem_v2 from .C import * # noqa: F403 __all__ = [ @@ -185,17 +183,28 @@ def write_problem( with open(yaml_path, 'w') as outfile: yaml.dump(config, outfile, default_flow_style=False) - # validate written PEtab files - if format_version == 1: - # PEtab v1 - problem = petab.Problem.from_yaml(yaml_path) - if lint_problem_v1(problem): - raise RuntimeError("Invalid PEtab problem, see messages above.") - else: - # v2 - validation_result = lint_problem_v2(yaml_path) - if validation_result: - print(validation_result) + # FIXME Until a first libpetab with petab.v1 subpackage is released + try: + # new petab version + from petab.v1.lint import lint_problem as lint_problem_v1 + from petab.v2.lint import lint_problem as lint_problem_v2 + + # validate written PEtab files + if format_version == 1: + # PEtab v1 + problem = petab.Problem.from_yaml(yaml_path) + if lint_problem_v1(problem): + raise RuntimeError("Invalid PEtab problem, see messages above.") + else: + # v2 + validation_result = lint_problem_v2(yaml_path) + if validation_result: + print(validation_result) + raise RuntimeError("Invalid PEtab problem, see messages above.") + except ModuleNotFoundError: + # old petab version (will fail validation for some v2 tests) + problem = petab.Problem.from_yaml(os.path.join(dir_, yaml_file)) + if petab.lint_problem(problem): raise RuntimeError("Invalid PEtab problem, see messages above.")