Exporters¶
Exporters generate platform-specific code from a fitted DecisionTree. They are used
internally by Converter.convert(target=...) but can also be used directly.
create_exporter() Factory¶
format value |
Exporter class |
|---|---|
'cpp' or 'c++' |
CppExporter |
'arduino' |
ArduinoExporter |
'micropython' or 'python' |
MicroPythonExporter |
CppExporter¶
Generates a C++11 class inside an ml namespace.
from blackbox2c.exporters import CppExporter
exporter = CppExporter(
function_name='predict',
class_name='Predictor',
use_namespace=True,
namespace='ml',
use_fixed_point=False,
precision=8,
)
code = exporter.generate(tree, feature_names=['sl', 'sw', 'pl', 'pw'])
Output structure:
namespace ml {
class Predictor {
public:
static uint8_t predict(float features[4]) { ... }
};
} // namespace ml
ArduinoExporter¶
Generates an Arduino .h file with optional PROGMEM constants.
from blackbox2c.exporters import ArduinoExporter
exporter = ArduinoExporter(
function_name='predict',
use_progmem=True,
use_fixed_point=False,
precision=8,
)
code = exporter.generate(tree, feature_names=['temp', 'humidity'])
Include in your sketch:
#include "predict.h"
void loop() {
float features[2] = { readTemp(), readHumidity() };
uint8_t result = predict(features);
}
MicroPythonExporter¶
Generates a Python module for MicroPython-enabled boards (ESP32, Pico, etc.).
from blackbox2c.exporters import MicroPythonExporter
exporter = MicroPythonExporter(
function_name='predict',
class_name='Predictor',
use_const=True,
)
code = exporter.generate(tree, feature_names=['x', 'y'])
Usage on device: