def collate_table(path: str) -> list: with open(path) as f: contents = f.read() first_options = [] second_options = [] values = [ {"name": "First Column", "value": "first", "selected": False, "options": first_options}, {"name": "Second Column", "value": "second", "selected": False, "options": second_options}, ] seen_in_column_1 = set() seen_in_column_2 = set() for line in contents.splitlines(): parts = line.split("\t") if len(parts) >= 1: val = parts[0] if val not in seen_in_column_1: first_options.append({"name": val.upper(), "value": val, "selected": False, "options": []}) seen_in_column_1.add(val) if len(parts) >= 2: val = parts[1] if val not in seen_in_column_2: second_options.append({"name": val.upper(), "value": val, "selected": False, "options": []}) seen_in_column_2.add(val) return values