Skip to content

Commit 2ae4b6a

Browse files
committed
fixed repeat names
1 parent adc7e55 commit 2ae4b6a

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

RATapi/utils/orso.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Readers from file formats."""
22

33
from dataclasses import dataclass
4+
from itertools import count
45
from pathlib import Path
56
from textwrap import shorten
67
from typing import Union
@@ -27,9 +28,17 @@ class ORSOProject:
2728

2829
def __init__(self, filepath: Union[str, Path], absorption: bool = False):
2930
ort_data = load_orso(filepath)
30-
self.data = ClassList(
31-
[Data(name=dataset.info.data_source.sample.name, data=dataset.data) for dataset in ort_data]
32-
)
31+
datasets = [Data(name=dataset.info.data_source.sample.name, data=dataset.data) for dataset in ort_data]
32+
# orso datasets in the same file can have repeated names!
33+
# but classlists do not allow this
34+
# use this dict to keep track of counts for repeated names
35+
name_counts = {d.name: count(1) for d in datasets}
36+
names = [d.name for d in datasets]
37+
if len(names) > len(list(set(names))):
38+
for i, data in enumerate(datasets):
39+
if data.name in names[:i]:
40+
data.name += f"-{name_counts[data.name]}"
41+
self.data = ClassList(datasets)
3342
self.samples = [
3443
orso_model_to_rat(dataset.info.data_source.sample.model, absorption=absorption) for dataset in ort_data
3544
]

0 commit comments

Comments
 (0)