Skip to main content

Python

Executes a Python script for each message inside a sandboxed WebAssembly runtime (Python 3.12). The incoming message is exposed as the global variable this, and the value assigned to root becomes the new message.

FieldTypeDefaultDescription
ScriptPython-The Python script to execute (required)
Importslist of strings[]Optional Python modules to pre-import for the script

How messages flow​

Each message is decoded into Python as this. Whatever you assign to root becomes the outgoing message. To drop a message, assign None to root.

A typical script looks like:

root = {
"full_name": f"{this['first_name']} {this['last_name']}",
"age": this["age"],
}

Imports​

The runtime ships with a curated set of standard libraries. To use one in your script, list it in Imports. For example, to use math and json, add both as separate entries.

Runtime​

This processor is experimental. The script runs in a WASM-hosted Python interpreter, so it is isolated from the host filesystem and network. C extensions and arbitrary pip packages are not available - only modules that ship with the embedded runtime.

When to use​

  • You need transformation logic that is awkward to express in Bloblang
  • The team is more comfortable maintaining Python than learning Bloblang
  • You want a sandboxed alternative to the Command processor that does not spawn host processes

For simple field renames and conversions, prefer Mapping - Bloblang has no per-message interpreter startup cost.