diff --git a/boards/default_src/python_mixpy/blocks/sklearn.js b/boards/default_src/python_mixpy/blocks/sklearn.js
index 97c8db1a..f03597e9 100644
--- a/boards/default_src/python_mixpy/blocks/sklearn.js
+++ b/boards/default_src/python_mixpy/blocks/sklearn.js
@@ -168,7 +168,12 @@ export const sklearn_data_target = {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_GET)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.EIGENVALUES, "data"], [Blockly.Msg.LABEL_VALUE, "target"], [Blockly.Msg.FEATURE, "feature_names"], [Blockly.Msg.mixpy_PYLAB_TICKS_TAG, "target_names"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.EIGENVALUES, "data"],
+ [Blockly.Msg.LABEL_VALUE, "target"],
+ [Blockly.Msg.FEATURE, "feature_names"],
+ [Blockly.Msg.mixpy_PYLAB_TICKS_TAG, "target_names"]
+ ]), "type");
this.setOutput(true, null);
this.setColour(SKLEARN_HUE);
this.setTooltip("");
@@ -303,7 +308,10 @@ export const sklearn_DecisionTreeClassifier_Regressor = {
init: function () {
this.appendDummyInput()
.appendField("sklearn " + Blockly.Msg.SKLEARN_DECISIONTREE_INIT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "DecisionTreeClassifier"], [Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "DecisionTreeRegressor"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "DecisionTreeClassifier"],
+ [Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "DecisionTreeRegressor"]
+ ]), "type");
this.appendValueInput("model_name")
.setCheck(null)
.setAlign(Blockly.inputs.Align.RIGHT)
@@ -330,7 +338,10 @@ export const sklearn_RandomForestClassifier_Regressor = {
init: function () {
this.appendDummyInput()
.appendField("sklearn " + Blockly.Msg.SKLEARN_RANDOMFOREST_INIT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "RandomForestClassifier"], [Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "RandomForestRegressor"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "RandomForestClassifier"],
+ [Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "RandomForestRegressor"]
+ ]), "type");
this.appendValueInput("model_name")
.setCheck(null)
.setAlign(Blockly.inputs.Align.RIGHT)
@@ -365,7 +376,10 @@ export const sklearn_KNeighborsClassifier_Regressor = {
init: function () {
this.appendDummyInput()
.appendField("sklearn " + Blockly.Msg.SKLEARN_KNN_INIT)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "KNeighborsClassifier"], [Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "KNeighborsRegressor"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.SKLEARN_CLASSIFICATION_ALGORITHM, "KNeighborsClassifier"],
+ [Blockly.Msg.SKLEARN_REGRESSION_ALGORITHM, "KNeighborsRegressor"]
+ ]), "type");
this.appendValueInput("model_name")
.setCheck(null)
.setAlign(Blockly.inputs.Align.RIGHT)
@@ -627,7 +641,10 @@ export const sklearn_coef_intercept = {
this.appendDummyInput()
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_GET)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.SKLEARN_COEF, "coef_"], [Blockly.Msg.SKLEARN_INTERCEPT, "intercept_"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.SKLEARN_COEF, "coef_"],
+ [Blockly.Msg.SKLEARN_INTERCEPT, "intercept_"]
+ ]), "type");
this.setOutput(true, null);
this.setColour(SKLEARN_HUE);
this.setTooltip("");
@@ -646,7 +663,11 @@ export const sklearn_cluster_centers_labels_inertia = {
.appendField(Blockly.Msg.MODEL_NAME);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET)
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.SKLEARN_CLUSTER_CENTER, "cluster_centers_"], [Blockly.Msg.SKLEARN_LABELS_AFTER_CLUSTERING, "labels_"], [Blockly.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES, "inertia_"]]), "type");
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.SKLEARN_CLUSTER_CENTER, "cluster_centers_"],
+ [Blockly.Msg.SKLEARN_LABELS_AFTER_CLUSTERING, "labels_"],
+ [Blockly.Msg.SKLEARN_CLUSTERING_SUM_OF_SQUARED_DISTANCES, "inertia_"]
+ ]), "type");
this.setInputsInline(true);
this.setOutput(true, null);
this.setColour(SKLEARN_HUE);
@@ -662,7 +683,10 @@ export const sklearn_save_load_model = {
.setCheck(null)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField("sklearn")
- .appendField(new Blockly.FieldDropdown([[Blockly.Msg.SKLEARN_SAVE_MODEL, "dump"], [Blockly.Msg.SKLEARN_LOAD_MODEL, "load"]]), "type")
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.SKLEARN_SAVE_MODEL, "dump"],
+ [Blockly.Msg.SKLEARN_LOAD_MODEL, "load"]
+ ]), "type")
.appendField(" " + Blockly.Msg.MODEL_NAME);
this.appendValueInput("address")
.setCheck(null)
diff --git a/boards/default_src/python_mixpy/generators/sklearn.js b/boards/default_src/python_mixpy/generators/sklearn.js
index 61617a9d..2cf28e8a 100644
--- a/boards/default_src/python_mixpy/generators/sklearn.js
+++ b/boards/default_src/python_mixpy/generators/sklearn.js
@@ -8,7 +8,7 @@ export const sklearn_make_classification = function (_, generator) {
var value_n_clusters_per_class = generator.valueToCode(this, 'n_clusters_per_class', generator.ORDER_ATOMIC) || '2';
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
generator.definitions_['import_sklearn_make_classification'] = 'from sklearn.datasets import make_classification';
- var code = 'make_classification(n_samples=' + value_n_samples + ',n_features=' + value_n_features + ',n_informative=' + value_n_informative + ',n_redundant=' + value_n_redundant + ',n_repeated=' + value_n_repeated + ',n_classes=' + value_n_classes + ',n_clusters_per_class=' + value_n_clusters_per_class + ',random_state=' + value_random_state + ')';
+ var code = 'make_classification(n_samples=' + value_n_samples + ', n_features=' + value_n_features + ', n_informative=' + value_n_informative + ', n_redundant=' + value_n_redundant + ', n_repeated=' + value_n_repeated + ', n_classes=' + value_n_classes + ', n_clusters_per_class=' + value_n_clusters_per_class + ', random_state=' + value_random_state + ')';
return [code, generator.ORDER_ATOMIC];
}
@@ -22,7 +22,7 @@ export const sklearn_make_regression = function (_, generator) {
var value_noise = generator.valueToCode(this, 'noise', generator.ORDER_ATOMIC) || '0.0';
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
generator.definitions_['import_sklearn_make_regression'] = 'from sklearn.datasets import make_regression';
- var code = 'make_regression(n_samples=' + value_n_samples + ',n_features=' + value_n_features + ',n_informative=' + value_n_informative + ',n_targets=' + value_n_targets + ',bias=' + value_bias + ',noise=' + value_noise + ',random_state=' + value_random_state + ')';
+ var code = 'make_regression(n_samples=' + value_n_samples + ', n_features=' + value_n_features + ', n_informative=' + value_n_informative + ', n_targets=' + value_n_targets + ', bias=' + value_bias + ', noise=' + value_noise + ', random_state=' + value_random_state + ')';
return [code, generator.ORDER_ATOMIC];
}
@@ -36,7 +36,7 @@ export const sklearn_make_blobs = function (_, generator) {
var value_shuffle = generator.valueToCode(this, 'shuffle', generator.ORDER_ATOMIC) || 'True';
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
generator.definitions_['import_sklearn_make_blobs'] = 'from sklearn.datasets import make_blobs';
- var code = 'make_blobs(n_samples=' + value_n_samples + ',n_features=' + value_n_features + ',centers=' + value_centers + ',cluster_std=' + value_cluster_std + ',center_box=' + value_center_box + ',shuffle=' + value_shuffle + ',random_state=' + value_random_state + ')';
+ var code = 'make_blobs(n_samples=' + value_n_samples + ', n_features=' + value_n_features + ', centers=' + value_centers + ', cluster_std=' + value_cluster_std + ', center_box=' + value_center_box + ', shuffle=' + value_shuffle + ', random_state=' + value_random_state + ')';
return [code, generator.ORDER_ATOMIC];
}
@@ -64,10 +64,11 @@ export const sklearn_train_test_split = function (_, generator) {
var value_test_size = generator.valueToCode(this, 'test_size', generator.ORDER_ATOMIC) || '0.3';
var value_rondom_state = generator.valueToCode(this, 'rondom_state', generator.ORDER_ATOMIC) || 'None';
generator.definitions_['import_sklearn_train_test_split'] = 'from sklearn.model_selection import train_test_split';
- if (value_train_target == 'None')
- var code = 'train_test_split(' + value_train_data + ',test_size = ' + value_test_size + ',random_state = ' + value_rondom_state + ')';
- else
- var code = 'train_test_split(' + value_train_data + ',' + value_train_target + ',test_size = ' + value_test_size + ',random_state = ' + value_rondom_state + ')';
+ if (value_train_target == 'None') {
+ var code = 'train_test_split(' + value_train_data + ', test_size=' + value_test_size + ', random_state=' + value_rondom_state + ')';
+ } else {
+ var code = 'train_test_split(' + value_train_data + ', ' + value_train_target + ', test_size=' + value_test_size + ', random_state=' + value_rondom_state + ')';
+ }
return [code, generator.ORDER_ATOMIC];
}
@@ -77,7 +78,7 @@ export const sklearn_train_test_split_no_target = function (_, generator) {
var value_test_size = generator.valueToCode(this, 'test_size', generator.ORDER_ATOMIC) || '0.3';
var value_rondom_state = generator.valueToCode(this, 'rondom_state', generator.ORDER_ATOMIC) || 'None';
generator.definitions_['import_sklearn_train_test_split'] = 'from sklearn.model_selection import train_test_split';
- var code = 'train_test_split(' + value_train_data + ',test_size = ' + value_test_size + ',random_state = ' + value_rondom_state + ')';
+ var code = 'train_test_split(' + value_train_data + ', test_size=' + value_test_size + ', random_state=' + value_rondom_state + ')';
return [code, generator.ORDER_ATOMIC];
}
@@ -88,7 +89,7 @@ export const sklearn_LinearRegression = function (_, generator) {
var value_normalize = generator.valueToCode(this, 'normalize', generator.ORDER_ATOMIC) || 'False';
var value_n_jobs = generator.valueToCode(this, 'n_jobs', generator.ORDER_ATOMIC) || 'None';
generator.definitions_['import_sklearn_linear_model'] = 'from sklearn.linear_model import LinearRegression';
- var code = value_model_name + ' = LinearRegression(fit_intercept = ' + value_fit_intercept + ',normalize = ' + value_normalize + ',n_jobs = ' + value_n_jobs + ')\n';
+ var code = value_model_name + ' = LinearRegression(fit_intercept=' + value_fit_intercept + ', normalize=' + value_normalize + ', n_jobs=' + value_n_jobs + ')\n';
return code;
}
@@ -101,7 +102,7 @@ export const sklearn_Ridge = function (_, generator) {
var value_max_iter = generator.valueToCode(this, 'max_iter', generator.ORDER_ATOMIC) || '300';
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
generator.definitions_['import_sklearn_linear_model'] = 'from sklearn.linear_model import Ridge';
- var code = value_model_name + ' = Ridge(alpha = ' + value_alpha + ',fit_intercept = ' + value_fit_intercept + ',normalize = ' + value_normalize + ',max_iter = ' + value_max_iter + ',random_state = ' + value_random_state + ')\n';
+ var code = value_model_name + ' = Ridge(alpha=' + value_alpha + ', fit_intercept=' + value_fit_intercept + ', normalize=' + value_normalize + ', max_iter=' + value_max_iter + ', random_state=' + value_random_state + ')\n';
return code;
}
@@ -112,7 +113,7 @@ export const sklearn_DecisionTreeClassifier_Regressor = function (_, generator)
var value_max_depth = generator.valueToCode(this, 'max_depth', generator.ORDER_ATOMIC) || 'None';
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
generator.definitions_['import_sklearn_' + dropdown_type] = 'from sklearn.tree import ' + dropdown_type;
- var code = value_model_name + ' = ' + dropdown_type + '(max_depth = ' + value_max_depth + ',random_state = ' + value_random_state + ')\n';
+ var code = value_model_name + ' = ' + dropdown_type + '(max_depth=' + value_max_depth + ', random_state=' + value_random_state + ')\n';
return code;
}
@@ -124,7 +125,7 @@ export const sklearn_RandomForestClassifier_Regressor = function (_, generator)
var value_n_jobs = generator.valueToCode(this, 'n_jobs', generator.ORDER_ATOMIC) || 'None';
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
generator.definitions_['import_sklearn_' + dropdown_type] = 'from sklearn.ensemble import ' + dropdown_type;
- var code = value_model_name + ' = ' + dropdown_type + '(n_estimators = ' + value_n_estimators + ',max_depth = ' + value_max_depth + ',n_jobs = ' + value_n_jobs + ',random_state = ' + value_random_state + ')\n';
+ var code = value_model_name + ' = ' + dropdown_type + '(n_estimators=' + value_n_estimators + ', max_depth=' + value_max_depth + ', n_jobs=' + value_n_jobs + ', random_state=' + value_random_state + ')\n';
return code;
}
@@ -135,7 +136,7 @@ export const sklearn_KNeighborsClassifier_Regressor = function (_, generator) {
var value_K = generator.valueToCode(this, 'K', generator.ORDER_ATOMIC) || '5';
var value_n_jobs = generator.valueToCode(this, 'n_jobs', generator.ORDER_ATOMIC) || 'None';
generator.definitions_['import_sklearn_' + dropdown_type] = 'from sklearn.neighbors import ' + dropdown_type;
- var code = value_model_name + ' = ' + dropdown_type + '(n_neighbors = ' + value_K + ',n_jobs = ' + value_n_jobs + ')\n';
+ var code = value_model_name + ' = ' + dropdown_type + '(n_neighbors=' + value_K + ', n_jobs=' + value_n_jobs + ')\n';
return code;
}
@@ -170,7 +171,7 @@ export const sklearn_KMeans = function (_, generator) {
var value_max_iter = generator.valueToCode(this, 'max_iter', generator.ORDER_ATOMIC) || '300';
var value_random_state = generator.valueToCode(this, 'random_state', generator.ORDER_ATOMIC) || 'None';
generator.definitions_['import_sklearn_KMeans'] = 'from sklearn.cluster import KMeans';
- var code = value_model_name + ' = KMeans(n_clusters = ' + value_n_clusters + ',max_iter = ' + value_max_iter + ',random_state = ' + value_random_state + ')\n';
+ var code = value_model_name + ' = KMeans(n_clusters=' + value_n_clusters + ', max_iter=' + value_max_iter + ', random_state=' + value_random_state + ')\n';
return code;
}
@@ -186,10 +187,11 @@ export const sklearn_fit = function (_, generator) {
var value_model_name = generator.valueToCode(this, 'model_name', generator.ORDER_ATOMIC) || 'model';
var value_train_data = generator.valueToCode(this, 'train_data', generator.ORDER_ATOMIC) || 'X_train';
var value_train_target = generator.valueToCode(this, 'train_target', generator.ORDER_ATOMIC) || 'y_train';
- if (value_train_target == 'None')
+ if (value_train_target == 'None') {
var code = value_model_name + '.fit(' + value_train_data + ')\n';
- else
- var code = value_model_name + '.fit(' + value_train_data + ',' + value_train_target + ')\n';
+ } else {
+ var code = value_model_name + '.fit(' + value_train_data + ', ' + value_train_target + ')\n';
+ }
return code;
}
@@ -214,10 +216,11 @@ export const sklearn_score = function (_, generator) {
var value_model_name = generator.valueToCode(this, 'model_name', generator.ORDER_ATOMIC) || 'model';
var value_train_data = generator.valueToCode(this, 'train_data', generator.ORDER_ATOMIC) || 'X_train';
var value_train_target = generator.valueToCode(this, 'train_target', generator.ORDER_ATOMIC) || 'y_train';
- if (value_train_target == 'None')
+ if (value_train_target == 'None') {
var code = value_model_name + '.score(' + value_train_data + ')';
- else
- var code = value_model_name + '.score(' + value_train_data + ',' + value_train_target + ')';
+ } else {
+ var code = value_model_name + '.score(' + value_train_data + ', ' + value_train_target + ')';
+ }
return [code, generator.ORDER_ATOMIC];
}
@@ -252,9 +255,10 @@ export const sklearn_save_load_model = function (_, generator) {
var value_address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC) || 'D:/mixly/test.pkl';
generator.definitions_['import_sklearn_joblib'] = 'import joblib';
var code = '';
- if (dropdown_type == 'dump')
- code = 'joblib.dump(' + value_model_name + ',' + value_address + ')\n';
- else
+ if (dropdown_type == 'dump') {
+ code = 'joblib.dump(' + value_model_name + ', ' + value_address + ')\n';
+ } else {
code = value_model_name + ' = joblib.load(' + value_address + ')\n';
+ }
return code;
}
\ No newline at end of file
diff --git a/boards/default_src/python_mixpy/template.xml b/boards/default_src/python_mixpy/template.xml
index 3c87e325..8ba4021a 100644
--- a/boards/default_src/python_mixpy/template.xml
+++ b/boards/default_src/python_mixpy/template.xml
@@ -3502,7 +3502,7 @@
- iris_X
+ iris_x
@@ -3623,7 +3623,7 @@
- X
+ x
@@ -3680,7 +3680,7 @@
- X
+ x
@@ -3692,7 +3692,7 @@
- X_train
+ x_train
@@ -3709,7 +3709,7 @@
- X_test
+ x_test
@@ -3726,7 +3726,7 @@
- X_test
+ x_test
diff --git a/boards/default_src/python_pyodide/blocks/sklearn.js b/boards/default_src/python_pyodide/blocks/sklearn.js
new file mode 100644
index 00000000..4a706272
--- /dev/null
+++ b/boards/default_src/python_pyodide/blocks/sklearn.js
@@ -0,0 +1,36 @@
+/**
+ * @typedef {import('@mixly/python-mixpy').PythonMixpySKLearnBlocks} PythonMixpySKLearnBlocks
+ */
+import * as Blockly from 'blockly/core';
+
+const SKLEARN_HUE = 80;
+
+
+/**
+ * @override Override {@link PythonMixpySKLearnBlocks.sklearn_LinearRegression}
+ */
+//sklearn 初始化线性回归
+export const sklearn_LinearRegression = {
+ init: function () {
+ this.appendDummyInput()
+ .appendField('sklearn ' + Blockly.Msg.SKLEARN_LINEARREGRESSION_INIT);
+ this.appendValueInput('model_name')
+ .setCheck(null)
+ .setAlign(Blockly.inputs.Align.RIGHT)
+ .appendField(Blockly.Msg.MODEL_NAME);
+ this.appendValueInput('fit_intercept')
+ .setCheck(null)
+ .setAlign(Blockly.inputs.Align.RIGHT)
+ .appendField(Blockly.Msg.SKLEARN_CALCULATE_MODEL_INTERRUPT);
+ this.appendValueInput('n_jobs')
+ .setCheck(null)
+ .setAlign(Blockly.inputs.Align.RIGHT)
+ .appendField(Blockly.Msg.SKLEARN_THREADS);
+ this.setInputsInline(false);
+ this.setPreviousStatement(true, null);
+ this.setNextStatement(true, null);
+ this.setColour(SKLEARN_HUE);
+ this.setTooltip('');
+ this.setHelpUrl('');
+ }
+};
\ No newline at end of file
diff --git a/boards/default_src/python_pyodide/export.js b/boards/default_src/python_pyodide/export.js
index e69de29b..70d64194 100644
--- a/boards/default_src/python_pyodide/export.js
+++ b/boards/default_src/python_pyodide/export.js
@@ -0,0 +1,7 @@
+import * as PythonPyodideSKLearnBlocks from './blocks/sklearn';
+import * as PythonPyodideSKLearnGenerators from './generators/sklearn';
+
+export {
+ PythonPyodideSKLearnBlocks,
+ PythonPyodideSKLearnGenerators
+};
\ No newline at end of file
diff --git a/boards/default_src/python_pyodide/generators/sklearn.js b/boards/default_src/python_pyodide/generators/sklearn.js
new file mode 100644
index 00000000..53dee6d7
--- /dev/null
+++ b/boards/default_src/python_pyodide/generators/sklearn.js
@@ -0,0 +1,13 @@
+/**
+ * @typedef {import('@mixly/python-mixpy').PythonMixpySKLearnGenerators} PythonMixpySKLearnGenerators
+ */
+
+// sklearn 初始化线性回归
+export const sklearn_LinearRegression = function (_, generator) {
+ const value_model_name = generator.valueToCode(this, 'model_name', generator.ORDER_ATOMIC) || 'model';
+ const value_fit_intercept = generator.valueToCode(this, 'fit_intercept', generator.ORDER_ATOMIC) || 'True';
+ const value_n_jobs = generator.valueToCode(this, 'n_jobs', generator.ORDER_ATOMIC) || 'None';
+ generator.definitions_['import_sklearn_linear_model'] = 'from sklearn.linear_model import LinearRegression';
+ const code = value_model_name + ' = LinearRegression(fit_intercept=' + value_fit_intercept + ', n_jobs=' + value_n_jobs + ')\n';
+ return code;
+}
\ No newline at end of file
diff --git a/boards/default_src/python_pyodide/index.js b/boards/default_src/python_pyodide/index.js
index eb3019da..85c308b0 100644
--- a/boards/default_src/python_pyodide/index.js
+++ b/boards/default_src/python_pyodide/index.js
@@ -67,6 +67,11 @@ import {
PythonMixpyTurtleGenerators
} from '@mixly/python-mixpy';
+import {
+ PythonPyodideSKLearnBlocks,
+ PythonPyodideSKLearnGenerators
+} from './';
+
import './others/loader';
import './css/color_mixpy_python_advance.css';
@@ -108,6 +113,7 @@ Object.assign(
PythonMixpySKLearnBlocks,
PythonMixpySystemBlocks,
PythonMixpyTurtleBlocks,
+ PythonPyodideSKLearnBlocks
);
Object.assign(
@@ -139,5 +145,6 @@ Object.assign(
PythonMixpySerialGenerators,
PythonMixpySKLearnGenerators,
PythonMixpySystemGenerators,
- PythonMixpyTurtleGenerators
+ PythonMixpyTurtleGenerators,
+ PythonPyodideSKLearnGenerators
);
\ No newline at end of file
diff --git a/boards/default_src/python_pyodide/template.xml b/boards/default_src/python_pyodide/template.xml
index 9001fdcb..1a58a660 100644
--- a/boards/default_src/python_pyodide/template.xml
+++ b/boards/default_src/python_pyodide/template.xml
@@ -3467,7 +3467,7 @@
- iris_X
+ iris_x
@@ -3495,11 +3495,6 @@
TRUE
-
-
- FALSE
-
-
@@ -3588,7 +3583,7 @@
- X
+ x
@@ -3645,7 +3640,7 @@
- X
+ x
@@ -3657,7 +3652,7 @@
- X_train
+ x_train
@@ -3674,7 +3669,7 @@
- X_test
+ x_test
@@ -3691,7 +3686,7 @@
- X_test
+ x_test
@@ -3717,7 +3712,7 @@
- D:/mixly/test.pkl
+ /test.pkl