import { Order } from 'blockly/javascript';
/**
* @category AI
* @subcategory Data
* @module Properties
*/
/**
* Returns column names of the csv dataset.
*
* @param {CSVDataset} csvDataset The tensorflow.js csv dataset.
* @returns {Promise} await csvDataset.columnNames().
*/
function getCSVColumns(block, generator) {
const csvDataset = generator.valueToCode(block, 'CSV', Order.NONE) || '';
return [`await ${csvDataset}.columnNames()`, Order.VOID];
}
/**
* Extracts column data asynchronously from CSV CSVDataset.
*
* @param {CSVDataset} csvDataset The tensorflow.js csv dataset.
* @param {Array} columns The columns to extract data from.
* @param {Array} array The array to push into the extracted data.
* @returns {Promise} await csvDataset.columnNames().
*/
function extractColumnFromCSV(block, generator) {
const csvDataset = generator.valueToCode(block, 'CSV', Order.NONE) || '';
const columns = generator.valueToCode(block, 'COLUMN', Order.NONE);
const variable = generator.valueToCode(block, 'VAR', Order.NONE) || '';
const _c = columns
.slice(1)
.slice(0, -1)
.split(',')
.map((i) => i.replace(/'/g, '"'));
return `await ${csvDataset}.forEachAsync(row => ${variable}.push([${_c.map((c) => `row[${c}]`)}]));`;
}
export const dataClassesBlockGenerator = {
['get_csv_columns']: getCSVColumns,
['extract_column_from_csv']: extractColumnFromCSV,
};
//# sourceMappingURL=generators.js.map
Source