readCsvAsDatacat static method
Reads a CSV file and returns a Datacat.
This function uses CsvToListConverter from the csv package,
which properly handles quoted fields and escaped commas.
Implementation
static Future<Datacat> readCsvAsDatacat(String path) async {
final content = await readFile(path);
// Using CsvToListConverter with default settings:
// textDelimiter is '"' and fieldDelimiter is ','.
final converter =
CsvToListConverter(eol: "\n", textDelimiter: '"', fieldDelimiter: ',');
List<List<dynamic>> rows = converter.convert(content);
if (rows.isEmpty) return Datacat(columns: [], rows: []);
// Assume the first row contains column headers.
final columns = rows.first.map((e) => e.toString()).toList();
final dataRows = rows.skip(1).toList();
return Datacat(columns: columns, rows: dataRows);
}