packages/causality-datasets/src/dataSource.mixins.js
/**
* This pipeline mixin provides DataSourceReader attibute, source reading methods for pipeline
* and getting Source in pipelineConfig
* @class DataSourceMixins
* @extends Event
* @example
* [EXAMPLE ../examples/dataset.mixins.babel.js]
*/
const DataSourceMixins = (BasePipelineClass)=> class extends BasePipelineClass {
set DataSourceReader(sourceReader){
this.sourceReader = sourceReader;
}
get DataSourceReader(){
return this.sourceReader;
}
setByConfig(pipelineConfig){
if(super.setByConfig){
super.setByConfig(pipelineConfig);
}
this.Logger.groupBegin('set Source by config');
const { Source } = pipelineConfig.Dataset;
if(Source){
this.DataSourceReader = Source;
}
else{
this.DataSourceReader = null;
this.Logger.log('***Source is not defined \n' +
'***TrainDataGenerator and TestDataGenerator must be set manually');
}
this.Logger.groupEnd();
return pipelineConfig;
}
async read(numChunks){
let selectedChunk = this.DataSourceReader.chunkSelect(numChunks);
this.Logger.log({'select chunks': selectedChunk});
await this.DataSourceReader.read();
return this.Preprocessing.PreprocessingData;
}
};
export default DataSourceMixins;