Skip to content

Commit 19d056a

Browse files
author
minjk-bl
committed
Improve required checking module
1 parent 73f4696 commit 19d056a

File tree

1 file changed

+35
-14
lines changed

1 file changed

+35
-14
lines changed

visualpython/js/m_ml/Pipeline.js

Lines changed: 35 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ define([
8383
modelStep: 1,
8484
step: [
8585
{ name: 'ml_dataSplit', label: 'Data Split', useApp: true },
86-
{ name: 'ml_regression', label: 'Regressor', useApp: true },
86+
{ name: 'ml_regression', label: 'Regressor', useApp: true, child: ['pp_fit', 'pp_predict'] },
8787
{ name: 'pp_fit', label: 'Fit' },
8888
{ name: 'pp_predict', label: 'Predict' },
8989
{ name: 'ml_evaluation', label: 'Evaluation', useApp: true, state: { modelType: 'rgs' } },
@@ -94,7 +94,7 @@ define([
9494
modelStep: 1,
9595
step: [
9696
{ name: 'ml_dataSplit', label: 'Data Split', useApp: true },
97-
{ name: 'ml_classification', label: 'Classifier', useApp: true },
97+
{ name: 'ml_classification', label: 'Classifier', useApp: true, child: ['pp_fit', 'pp_predict'] },
9898
{ name: 'pp_fit', label: 'Fit' },
9999
{ name: 'pp_predict', label: 'Predict' },
100100
{ name: 'ml_evaluation', label: 'Evaluation', useApp: true, state: { modelType: 'clf' } },
@@ -104,7 +104,7 @@ define([
104104
label: 'Clustering',
105105
modelStep: 0,
106106
step: [
107-
{ name: 'ml_clustering', label: 'Clustering', useApp: true },
107+
{ name: 'ml_clustering', label: 'Clustering', useApp: true, child: ['pp_fit', 'pp_predict', 'pp_transform'] },
108108
{ name: 'pp_fit', label: 'Fit' },
109109
{ name: 'pp_predict', label: 'Predict' },
110110
{ name: 'pp_transform', label: 'Transform' },
@@ -115,7 +115,7 @@ define([
115115
label: 'Dimension Reduction',
116116
modelStep: 0,
117117
step: [
118-
{ name: 'ml_dimensionReduction', label: 'Dimension Reduction', useApp: true },
118+
{ name: 'ml_dimensionReduction', label: 'Dimension Reduction', useApp: true, child: ['pp_fit', 'pp_transform'] },
119119
{ name: 'pp_fit', label: 'Fit' },
120120
{ name: 'pp_transform', label: 'Transform' }
121121
]
@@ -125,7 +125,7 @@ define([
125125
modelStep: 1,
126126
step: [
127127
{ name: 'ml_dataSplit', label: 'Data Split', useApp: true },
128-
{ name: 'ml_gridSearch', label: 'GridSearch', useApp: true },
128+
{ name: 'ml_gridSearch', label: 'GridSearch', useApp: true, child: ['pp_fit', 'pp_predict'] },
129129
{ name: 'pp_fit', label: 'Fit' },
130130
{ name: 'pp_predict', label: 'Predict' },
131131
{ name: 'ml_evaluation', label: 'Evaluation', useApp: true },
@@ -283,7 +283,7 @@ define([
283283
let appFileList = [];
284284
// load pipeline items
285285
tplObj.step.forEach((stepObj, idx) => {
286-
let { name, label, useApp=false, state={} } = stepObj;
286+
let { name, label, useApp=false, child=[], state={} } = stepObj;
287287
ppTag.appendFormatLine(`<div class="vp-pp-item" data-flag="enabled" data-name="{0}" data-seq="{1}" data-label="{2}">
288288
<span>{3}</span>
289289
<div class="vp-pp-item-menu">
@@ -308,6 +308,7 @@ define([
308308
};
309309
if (tplObj.modelStep === idx) {
310310
pipeObj.modelStep = true;
311+
pipeObj.child = child;
311312
}
312313
that.state.pipeline.push(pipeObj);
313314
// append pages
@@ -329,9 +330,9 @@ define([
329330
let MlComponent = that.MlAppComponent[obj.name];
330331
if (MlComponent) {
331332
// DUP AREA: pp-1
332-
let { name, label, index, file } = obj;
333+
let { name, index, file } = obj;
333334
let mlComponent = new MlComponent({
334-
config: { id: name, name: label, path: file, category: 'Pipeline', resizable: false },
335+
config: { id: name, name: that.state.pipeline[index].label, path: file, category: 'Pipeline', resizable: false },
335336
...that.state.pipeline[index].state
336337
});
337338
mlComponent.loadState();
@@ -363,7 +364,7 @@ define([
363364
// DUP AREA: pp-1
364365
let { name, label, index, file } = obj;
365366
let mlComponent = new MlComponent({
366-
config: { id: name, name: label, path: file, category: 'Pipeline', resizable: false },
367+
config: { id: name, name: that.state.pipeline[index].label, path: file, category: 'Pipeline', resizable: false },
367368
...that.state.pipeline[index].state
368369
});
369370
mlComponent.loadState();
@@ -375,6 +376,10 @@ define([
375376
that.state.modelType = mlComponent.state.modelType;
376377
let modelObj = that.modelConfig[that.state.modelType];
377378
that.state.modelTypeName = modelObj.code.split('(')[0];
379+
380+
that.state.pipeline[index].child.forEach(childId => {
381+
that.renderApp(childId);
382+
});
378383
}
379384
// handle app view
380385
that.handleAppView(name, mlComponent);
@@ -477,7 +482,11 @@ define([
477482
label = com_util.optionToLabel(label);
478483
optBox.appendFormatLine('<label for="{0}" title="{1}">{2}</label>'
479484
, opt.name, opt.name, label);
480-
let content = com_generator.renderContent(this, opt.component[0], opt, this.state);
485+
let tmpState = {};
486+
if (opt.value && opt.value !== '') {
487+
tmpState[opt.name] = opt.value;
488+
}
489+
let content = com_generator.renderContent(this, opt.component[0], opt, tmpState);
481490
optBox.appendLine(content[0].outerHTML);
482491
});
483492
return optBox.toString();
@@ -590,18 +599,30 @@ define([
590599
code.appendLine();
591600
code.appendLine();
592601
}
593-
code.appendFormatLine("# [{0}] {1}", stepNo, label);
594602
if (useApp) {
595-
code.append(app.generateCode());
603+
let appCode = app.generateCode();
604+
if (appCode instanceof Array) {
605+
appCode = appCode.join('\n');
606+
}
607+
if (appCode && appCode.trim() !== '') {
608+
code.appendFormatLine("# [{0}] {1}", stepNo++, label);
609+
if (name === 'ml_evaluation') {
610+
// import auto generate
611+
code.appendLine(app.generateImportCode().join('\n'));
612+
}
613+
code.append(appCode);
614+
}
596615
// save state
597616
that.state.pipeline[idx].state = app.state;
598617
} else {
599618
let ppResult = that.generateCodeForOptionPage(name);
600-
code.append(ppResult.code);
619+
if (ppResult && ppResult?.code?.trim() !== '') {
620+
code.appendFormatLine("# [{0}] {1}", stepNo++, label);
621+
code.append(ppResult.code);
622+
}
601623
// save state
602624
that.state.pipeline[idx].state = ppResult.state;
603625
}
604-
stepNo++;
605626
}
606627
});
607628

0 commit comments

Comments
 (0)