mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-04-08 03:00:28 -04:00
fix(backend): pad ragged rows with None in tabular conversion helpers
_tabular_to_column_dict and _tabular_to_list_of_dicts now use None for missing values in shorter rows instead of silently dropping them. This ensures all columns have equal length in column-dict output.
This commit is contained in:
@@ -302,19 +302,26 @@ def _is_tabular(parsed: Any) -> bool:
|
||||
|
||||
|
||||
def _tabular_to_list_of_dicts(parsed: list) -> list[dict[str, Any]]:
|
||||
"""Convert [[header], [row1], ...] → [{header[0]: row[0], ...}, ...]."""
|
||||
"""Convert [[header], [row1], ...] → [{header[0]: row[0], ...}, ...].
|
||||
|
||||
Ragged rows (fewer columns than the header) get None for missing values.
|
||||
"""
|
||||
header = parsed[0]
|
||||
return [
|
||||
{header[i]: row[i] for i in range(len(header)) if i < len(row)}
|
||||
{header[i]: (row[i] if i < len(row) else None) for i in range(len(header))}
|
||||
for row in parsed[1:]
|
||||
]
|
||||
|
||||
|
||||
def _tabular_to_column_dict(parsed: list) -> dict[str, list]:
|
||||
"""Convert [[header], [row1], ...] → {"col1": [val1, ...], ...}."""
|
||||
"""Convert [[header], [row1], ...] → {"col1": [val1, ...], ...}.
|
||||
|
||||
Ragged rows (fewer columns than the header) get None for missing values,
|
||||
ensuring all columns have equal length.
|
||||
"""
|
||||
header = parsed[0]
|
||||
return {
|
||||
header[i]: [row[i] for row in parsed[1:] if i < len(row)]
|
||||
header[i]: [row[i] if i < len(row) else None for row in parsed[1:]]
|
||||
for i in range(len(header))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user