fixing support for dicts of lists and lists of dicts

This commit is contained in:
evilchili
2023-12-08 14:52:40 -08:00
parent 3fbcb57aca
commit fd917bb59b
2 changed files with 18 additions and 9 deletions
+10 -4
View File
@@ -135,17 +135,23 @@ class RollTable:
values.append([option])
continue
if hasattr(ds.data[option], 'keys'):
rand_key = random.choice(list(ds.data[option].keys()))
choice = [rand_key, *ds.data[option][rand_key]]
k, v = random.choice(list(ds.data[option].items()))
choice = [k] + v
else:
choice = random.choice(ds.data[option])
if hasattr(choice, 'keys'):
c = [option]
for (k, v) in choice.items():
c.extend([k, v])
if type(v) is list:
c.extend([k, *v])
else:
c.extend([k, v])
values.append(c)
else:
values.append([option, choice])
if type(choice) is list:
values.append([option, *choice])
else:
values.append([option, choice])
return sorted(values)
ds_values = [values_from_datasource(t) for t in self._data]