feat: sync all remaining python source board configurations
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
export const sound_effect_add = function(_block, _generator) {
|
||||
if (!_generator.definitions_['import_sound']) {
|
||||
_generator.definitions_['import_sound'] = 'import sound';
|
||||
}
|
||||
|
||||
const effect = _block.getFieldValue("EFFECT");
|
||||
const valueInput = _block.getInputTargetBlock("VALUE");
|
||||
let val;
|
||||
|
||||
if (valueInput) {
|
||||
if (valueInput.type === "math_number") {
|
||||
val = valueInput.getFieldValue("NUM") || "10";
|
||||
} else {
|
||||
val = _generator.valueToCode(valueInput, "VALUE", _generator.ORDER_NONE) || "10";
|
||||
}
|
||||
} else {
|
||||
val = "10";
|
||||
}
|
||||
|
||||
return `sound.adjust_effect("${effect}", ${val})\n`;
|
||||
};
|
||||
@@ -0,0 +1,7 @@
|
||||
export const sound_effect_clear = function(_block, _generator) {
|
||||
if (!_generator.definitions_['import_sound']) {
|
||||
_generator.definitions_['import_sound'] = 'import sound';
|
||||
}
|
||||
|
||||
return "sound.clear_effects()\n";
|
||||
};
|
||||
@@ -0,0 +1,21 @@
|
||||
export const sound_effect_set = function(_block, _generator) {
|
||||
if (!_generator.definitions_['import_sound']) {
|
||||
_generator.definitions_['import_sound'] = 'import sound';
|
||||
}
|
||||
|
||||
const effect = _block.getFieldValue("EFFECT");
|
||||
const valueInput = _block.getInputTargetBlock("VALUE");
|
||||
let val;
|
||||
|
||||
if (valueInput) {
|
||||
if (valueInput.type === "math_number") {
|
||||
val = valueInput.getFieldValue("NUM") || "100";
|
||||
} else {
|
||||
val = _generator.valueToCode(valueInput, "VALUE", _generator.ORDER_NONE) || "100";
|
||||
}
|
||||
} else {
|
||||
val = "100";
|
||||
}
|
||||
|
||||
return `sound.set_effect("${effect}", ${val})\n`;
|
||||
};
|
||||
@@ -0,0 +1,11 @@
|
||||
export const sound_play = function(_block, _generator) {
|
||||
if (!_generator.definitions_['import_sound']) {
|
||||
_generator.definitions_['import_sound'] = 'import sound';
|
||||
}
|
||||
|
||||
const sound = _block.getFieldValue("SOUND");
|
||||
if (sound === "record") {
|
||||
return `sound.record()\n`;
|
||||
}
|
||||
return `sound.play("${sound}")\n`;
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
export const sound_play_frequency = function (_block, generator) {
|
||||
if (!generator.definitions_['import_sound']) {
|
||||
generator.definitions_['import_sound'] = 'import sound';
|
||||
}
|
||||
|
||||
const frequencyInput = generator.valueToCode(this, "FREQUENCY", generator.ORDER_ATOMIC);
|
||||
const durationInput = generator.valueToCode(this, "DURATION", generator.ORDER_ATOMIC);
|
||||
|
||||
return `sound.play_frequency(${frequencyInput}, ${durationInput})\n`;
|
||||
};
|
||||
@@ -0,0 +1,9 @@
|
||||
export const sound_play_frequency_no_duration = function (_block, generator) {
|
||||
if (!generator.definitions_['import_sound']) {
|
||||
generator.definitions_['import_sound'] = 'import sound';
|
||||
}
|
||||
|
||||
const frequencyInput = generator.valueToCode(this, "FREQUENCY", generator.ORDER_ATOMIC);
|
||||
|
||||
return `sound.play_frequency_no_duration(${frequencyInput})\n`;
|
||||
};
|
||||
@@ -0,0 +1,9 @@
|
||||
export const sound_play_note_list = function(_block, _generator) {
|
||||
if (!_generator.definitions_['import_sound']) {
|
||||
_generator.definitions_['import_sound'] = 'import sound';
|
||||
}
|
||||
|
||||
const noteList = this.getFieldValue("NOTE_LIST");
|
||||
|
||||
return `sound.play_note_list("${noteList}")\n`;
|
||||
};
|
||||
@@ -0,0 +1,12 @@
|
||||
export const sound_play_wait = function(_block, _generator) {
|
||||
if (!_generator.definitions_['import_sound']) {
|
||||
_generator.definitions_['import_sound'] = 'import sound';
|
||||
}
|
||||
|
||||
const sound = _block.getFieldValue("SOUND");
|
||||
if (sound === "record") {
|
||||
return `sound.record()\n`;
|
||||
}
|
||||
|
||||
return `sound.play_blocking("${sound}")\n`;
|
||||
};
|
||||
@@ -0,0 +1,7 @@
|
||||
export const sound_record = function(_block, _generator) {
|
||||
if (!_generator.definitions_['import_sound']) {
|
||||
_generator.definitions_['import_sound'] = 'import sound';
|
||||
}
|
||||
|
||||
return `sound.record()\n`;
|
||||
};
|
||||
@@ -0,0 +1,7 @@
|
||||
export const sound_note = function (_block, generator) {
|
||||
// 获取频率值(字符串格式)
|
||||
const frequency = this.getFieldValue("NOTE");
|
||||
return [frequency, generator.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
export const sound_stop_all = function(_block, _generator) {
|
||||
if (!_generator.definitions_['import_sound']) {
|
||||
_generator.definitions_['import_sound'] = 'import sound';
|
||||
}
|
||||
|
||||
return "sound.stop_all()\n";
|
||||
};
|
||||
@@ -0,0 +1,8 @@
|
||||
export const sound_volume_add = function(_block, generator) {
|
||||
if (!generator.definitions_['import_sound']) {
|
||||
generator.definitions_['import_sound'] = 'import sound';
|
||||
}
|
||||
|
||||
const val = generator.valueToCode(_block, "VALUE", generator.ORDER_NONE) || "0";
|
||||
return `sound.adjust_volume(${val})\n`;
|
||||
};
|
||||
@@ -0,0 +1,7 @@
|
||||
export const sound_volume_get = function(_block, generator) {
|
||||
if (!generator.definitions_['import_sound']) {
|
||||
generator.definitions_['import_sound'] = 'import sound';
|
||||
}
|
||||
|
||||
return ['sound.get_volume()', generator.ORDER_ATOMIC];
|
||||
};
|
||||
@@ -0,0 +1,8 @@
|
||||
export const sound_volume_set = function(_block, generator) {
|
||||
if (!generator.definitions_['import_sound']) {
|
||||
generator.definitions_['import_sound'] = 'import sound';
|
||||
}
|
||||
|
||||
const val = generator.valueToCode(_block, "VALUE", generator.ORDER_NONE) || "100";
|
||||
return `sound.set_volume(${val})\n`;
|
||||
};
|
||||
@@ -0,0 +1,97 @@
|
||||
export const tensorflow_init_tensor = function (_, generator) {
|
||||
var VALUE_INPUT_VAR = generator.valueToCode(this, "VAR", generator.ORDER_ATOMIC);
|
||||
generator.definitions_['import_tensorflow'] = 'import tensorflow';
|
||||
var code = 'tensorflow.tensor(' + VALUE_INPUT_VAR + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
export const tensorflow_sequential = function (_, generator) {
|
||||
generator.definitions_['import_tensorflow'] = 'import tensorflow';
|
||||
var code = 'tensorflow.sequential()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
export const tensorflow_layers_dense = function (_, generator) {
|
||||
generator.definitions_['import_tensorflow'] = 'import tensorflow';
|
||||
var VALUE_INPUT_VAR1 = generator.valueToCode(this, "VAR1", generator.ORDER_ATOMIC);
|
||||
var VALUE_INPUT_VAR2 = generator.valueToCode(this, "VAR2", generator.ORDER_ATOMIC);
|
||||
var code = 'tensorflow.layers.dense(units = ' + VALUE_INPUT_VAR1 + ', input_shape = ' + VALUE_INPUT_VAR2 + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
export const tensorflow_add = function (_, generator) {
|
||||
generator.definitions_['import_tensorflow'] = 'import tensorflow';
|
||||
var VALUE_INPUT_VAR1 = generator.valueToCode(this, "VAR1", generator.ORDER_ATOMIC);
|
||||
var VALUE_INPUT_VAR2 = generator.valueToCode(this, "VAR2", generator.ORDER_ATOMIC);
|
||||
var code = VALUE_INPUT_VAR1 + '.add(' + VALUE_INPUT_VAR2 + ')\n';
|
||||
return code;
|
||||
};
|
||||
|
||||
export const tensorflow_compile = function (_, generator) {
|
||||
generator.definitions_['import_tensorflow'] = 'import tensorflow';
|
||||
var VALUE_INPUT_VAR1 = generator.valueToCode(this, "VAR1", generator.ORDER_ATOMIC);
|
||||
var VALUE_INPUT_VAR2 = this.getFieldValue("VAR2");
|
||||
var VALUE_INPUT_VAR3 = this.getFieldValue("VAR3");
|
||||
var code = VALUE_INPUT_VAR1 + '.compile(loss = "' + VALUE_INPUT_VAR2 + '", optimizer = "' + VALUE_INPUT_VAR3 + '")\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const tensorflow_fit = function (_, generator) {
|
||||
generator.definitions_['import_tensorflow'] = 'import tensorflow';
|
||||
var VALUE_INPUT_VAR1 = generator.valueToCode(this, "VAR1", generator.ORDER_ATOMIC);
|
||||
var VALUE_INPUT_VAR2 = generator.valueToCode(this, "VAR2", generator.ORDER_ATOMIC);
|
||||
var VALUE_INPUT_VAR3 = generator.valueToCode(this, "VAR3", generator.ORDER_ATOMIC);
|
||||
var VALUE_INPUT_VAR4 = generator.valueToCode(this, "VAR4", generator.ORDER_ATOMIC);
|
||||
var VALUE_INPUT_VAR5 = generator.valueToCode(this, "VAR5", generator.ORDER_ATOMIC);
|
||||
var code = 'await ' + VALUE_INPUT_VAR1 + '.fit(' + VALUE_INPUT_VAR2 + ', ' + VALUE_INPUT_VAR3 + ', epochs=' + VALUE_INPUT_VAR4 + ', verbose=' + VALUE_INPUT_VAR5 + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
export const tensorflow_get_loss = function (_, generator) {
|
||||
generator.definitions_['import_tensorflow'] = 'import tensorflow';
|
||||
var VALUE_INPUT_VAR = generator.valueToCode(this, "VAR", generator.ORDER_ATOMIC);
|
||||
var code = VALUE_INPUT_VAR + '.history.loss';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
export const tensorflow_predict = function (_, generator) {
|
||||
generator.definitions_['import_tensorflow'] = 'import tensorflow';
|
||||
var VALUE_INPUT_VAR1 = generator.valueToCode(this, "VAR1", generator.ORDER_ATOMIC);
|
||||
var VALUE_INPUT_VAR2 = generator.valueToCode(this, "VAR2", generator.ORDER_ATOMIC);
|
||||
var code = VALUE_INPUT_VAR1 + '.predict(' + VALUE_INPUT_VAR2 + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
export const tensorflow_get_tensor_data = function (_, generator) {
|
||||
generator.definitions_['import_tensorflow'] = 'import tensorflow';
|
||||
var VALUE_INPUT_VAR1 = generator.valueToCode(this, "VAR", generator.ORDER_ATOMIC);
|
||||
var code = "(await " + VALUE_INPUT_VAR1 + ".data())";
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
export const tensorflow_save_or_export_model = function (_, generator) {
|
||||
generator.definitions_['import_tensorflow'] = 'import tensorflow';
|
||||
|
||||
var VALUE_INPUT_NAME1 = generator.valueToCode(this, "NAME1", generator.ORDER_ATOMIC);
|
||||
var FIELD_NAME = this.getFieldValue("NAME");
|
||||
var VALUE_INPUT_NAME2 = generator.valueToCode(this, "NAME2", generator.ORDER_ATOMIC).replace(/^'|'$/g, '');
|
||||
if (FIELD_NAME == "export") {
|
||||
return `await ${VALUE_INPUT_NAME1}.save("downloads://${VALUE_INPUT_NAME2}")\n`;
|
||||
}
|
||||
return `await ${VALUE_INPUT_NAME1}.save("indexeddb://${VALUE_INPUT_NAME2}")\n`;
|
||||
};
|
||||
|
||||
export const tensorflow_use_load_model = function (_, generator) {
|
||||
generator.definitions_['import_tensorflow'] = 'import tensorflow';
|
||||
|
||||
var VALUE_INPUT_NAME = generator.valueToCode(this, "NAME", generator.ORDER_ATOMIC).replace(/^'|'$/g, '');
|
||||
return [`await tensorflow.load_model("${VALUE_INPUT_NAME}")`, generator.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
export const tensorflow_prepare_picture = function (_, generator) {
|
||||
generator.definitions_['import_tensorflow'] = 'import tensorflow';
|
||||
generator.definitions_['import_numpy'] = 'import numpy';
|
||||
generator.definitions_['import_PIL'] = 'import PIL';
|
||||
var VALUE_INPUT_NAME = generator.valueToCode(this, "NAME", generator.ORDER_ATOMIC);
|
||||
return [`(await tensorflow.prepare_qmyixtxi(tensorflow.tensor(numpy.array(PIL.Image.open(${VALUE_INPUT_NAME}).convert('RGB')))))`, generator.ORDER_ATOMIC];
|
||||
};
|
||||
Reference in New Issue
Block a user