Skip to content

Commit

Permalink
#68 fix get1sample
Browse files Browse the repository at this point in the history
  • Loading branch information
funkchaser committed Feb 17, 2025
1 parent d89fbfb commit 70d0c02
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 17 deletions.
2 changes: 1 addition & 1 deletion src/aixd_ara/components/ara_DatasetOneSample/code.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
cid = component_id(session_id(), ghenv.Component, "DatasetOneSample")


if not item:
if item is None:
item = -1

if get:
Expand Down
37 changes: 21 additions & 16 deletions src/aixd_ara/controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -504,24 +504,29 @@ def get_one_sample(self, item):
n = len(self.dataset.design_par.data)
item = random.randint(0, n)

dp_df = self.dataset.design_par.data.iloc[item] # pd.series
pa_df = self.dataset.perf_attributes.data.iloc[item] # pd.series

def _reduce_list(x):
# if the list has only one element, return the element instead of a list
if isinstance(x, list):
if len(x) == 1:
return x[0]
return x

sample = {"design_parameters": {}, "performance_attributes": {}}
for name, values in dp_df.items():
if name == "uid":
continue
typed_values = self.cast_to_python_type(name, values)
sample["design_parameters"][name] = _reduce_list(typed_values)

for name, values in pa_df.items():
if name in ["uid", "error"]:
continue
typed_values = self.cast_to_python_type(name, values)
sample["performance_attributes"][name] = _reduce_list(typed_values)

dct = reformat_dataframeflat_to_dict(self.dataset.design_par.data, self.dataset.design_par.dobj_list)
for key, values in dct.items():
dct[key] = self.cast_to_python_type(key, values[item])
sample["design_parameters"] = dct

dct = reformat_dataframeflat_to_dict(self.dataset.perf_attributes.data, self.dataset.perf_attributes.dobj_list)
for key, values in dct.items():
dct[key] = self.cast_to_python_type(key, values[item])
sample["performance_attributes"] = dct

# for single-value entries, unpack them from a list [123] -> 123
for x in sample.keys():
for k, v in sample[x].items():
if isinstance(v, list):
if len(v) == 1:
sample[x][k] = v[0]
return sample

def request_designs(self, request, n_samples=1):
Expand Down

0 comments on commit 70d0c02

Please sign in to comment.