Source

AI/Data/Classes/generators.js

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