Skip to content
Snippets Groups Projects

FIX: `to_table` failed on lists

Merged Daniel Hornung requested to merge f-fix-table-converter-list into dev
@@ -49,19 +49,15 @@ def generate_property_name(prop):
def to_table(container):
""" creates a table from the records in a container """
"""Create a table from the records in a container."""
if len(container) == 0:
raise ValueError("Container is empty")
properties = set()
for rec in container:
properties.update([generate_property_name(p)
for p in container[0].get_properties()])
df = pd.DataFrame(columns=list(properties))
# TODO Why not this? return pd.DataFrame()
rts = {p.name for p in container[0].parents}
for ii, rec in enumerate(container):
data = []
for rec in container:
if {p.name for p in rec.parents} != rts:
raise ValueError("Parents differ")
@@ -69,17 +65,10 @@ def to_table(container):
for prop in rec.get_properties():
propname = generate_property_name(prop)
row_dict[propname] = prop.value
# if propname == "p5":
# breakpoint()
# if isinstance(prop.value, list):
# if propname not in df:
# df[propname] = pd.Series(dtype=object)
# elif df[propname].dtype != object:
# df[propname] = df[propname].astype(object)
# df.at[ii, propname] = prop.value
df.loc[ii] = row_dict
return df
data.append(row_dict)
result = pd.DataFrame(data=data)
return result
def from_table(spreadsheet, recordtype):
Loading