Skip to content

Commit 6d8029f

Browse files
authored
Merge branch 'main' into v2_rm_vis
2 parents 34a6ed4 + c94bb1b commit 6d8029f

File tree

5 files changed

+24
-14
lines changed

5 files changed

+24
-14
lines changed

petab/schemas/petab_schema.v2.0.0.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ properties:
2323
- type: integer
2424
description: Version of the PEtab format
2525

26-
parameter_file:
27-
oneOf:
28-
- type: string
29-
- type: array
26+
parameter_files:
27+
type: array
3028
description: |
31-
File name (absolute or relative) or URL to PEtab parameter table
32-
containing parameters of all models listed in `problems`. A single
33-
table may be split into multiple files and described as an array here.
29+
List of PEtab parameter files.
30+
items:
31+
type: string
32+
description: |
33+
File name (absolute or relative) or URL to a PEtab parameter table.
3434

3535
model_files:
3636
type: object
@@ -95,7 +95,7 @@ properties:
9595

9696
required:
9797
- format_version
98-
- parameter_file
98+
- parameter_files
9999
- model_files
100100
- observable_files
101101
- measurement_files

petab/v2/C.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,8 @@
236236
# YAML
237237
#: PEtab version key in the YAML file
238238
FORMAT_VERSION = "format_version"
239-
#: Parameter file key in the YAML file
240-
PARAMETER_FILE = "parameter_file"
239+
#: Parameter files key in the YAML file
240+
PARAMETER_FILES = "parameter_files"
241241
#: Problems key in the YAML file
242242
PROBLEMS = "problems"
243243
#: Model files key in the YAML file

petab/v2/petab1to2.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,9 @@ def petab_files_1to2(yaml_config: Path | str, output_dir: Path | str):
9595

9696
# parameter table
9797
parameter_df = v1v2_parameter_df(petab_problem.parameter_df.copy())
98-
file = yaml_config[v2.C.PARAMETER_FILE]
99-
v2.write_parameter_df(parameter_df, get_dest_path(file))
98+
v2.write_parameter_df(
99+
parameter_df, get_dest_path(new_yaml_config.parameter_files[0])
100+
)
100101

101102
# copy files that don't need conversion: models
102103
for file in (
@@ -290,6 +291,15 @@ def _update_yaml(yaml_config: dict) -> dict:
290291
if file_type in problem:
291292
yaml_config[file_type] = problem[file_type]
292293
del problem[file_type]
294+
del yaml_config[v1.C.PROBLEMS]
295+
296+
# parameter_file -> parameter_files
297+
if not isinstance(
298+
(par_files := yaml_config.pop(v1.C.PARAMETER_FILE, [])), list
299+
):
300+
par_files = [par_files]
301+
yaml_config[v2.C.PARAMETER_FILES] = par_files
302+
293303
return yaml_config
294304

295305

petab/v2/problem.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1277,7 +1277,7 @@ class ProblemConfig(BaseModel):
12771277
# rename to parameter_files in yaml for consistency with other files?
12781278
# always a list?
12791279
parameter_files: list[str | AnyUrl] = Field(
1280-
default=[], alias=PARAMETER_FILE
1280+
default=[], alias=PARAMETER_FILES
12811281
)
12821282

12831283
# TODO: consider changing str to Path

tests/v2/test_problem.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def test_problem_from_yaml_multiple_files():
6767
"""
6868
yaml_config = """
6969
format_version: 2.0.0
70-
parameter_file: []
70+
parameter_files: []
7171
condition_files: [conditions1.tsv, conditions2.tsv]
7272
measurement_files: [measurements1.tsv, measurements2.tsv]
7373
observable_files: [observables1.tsv, observables2.tsv]

0 commit comments

Comments
 (0)