Python Nodes
Python is the fastest Studio project-Node path today. Text Source, Transform, and Sink packages run through the trusted local Python development Host.
import muxiva
class Uppercase:
def on_process(self, frame, ctx):
ctx.emit(
"text_out",
muxiva.TextFrame(frame.text.upper(), sequence=frame.sequence),
)
ctx.publish_notification("example.text.uppercased", {"sequence": frame.sequence})
class ClientEvent:
def on_process(self, frame, ctx):
ctx.emit("event_out", muxiva.EventFrame(
"example.client.message", '{"text":"ready"}',
source="example.client_event", sequence=frame.sequence,
))
ctx.emit(port, frame) sends data without ending the callback.
ctx.emit_signal(name, payload) sends adjacent graph control, while
ctx.publish_notification(topic, payload) publishes a low-frequency notification to
the runtime NotificationBus. ctx.schedule_next_tick(delay_ms) requests one input-free
Runtime callback for bounded background-result draining; no tick_in Port or Clock Node is
needed. Returning a Frame or port mapping remains compatibility
sugar; new Nodes should prefer explicit context actions.
Declare matching ports:
[
{"name": "text_in", "direction": "input", "frame_type": "text"},
{"name": "text_out", "direction": "output", "frame_type": "text"}
]
Loading boundary
Saving, listing, or validating the package does not import Python source. Studio starts a managed host and loads the declared entrypoint only after a trusted local user selects Run.
Current boundary
- Text and Audio inputs plus Signal callbacks are supported by the Studio project Host;
- Text, Audio, Event, and Signal output Port declarations are supported; Nodes normally emit
Signal control with
ctx.emit_signal(...)and Event Frames withctx.emit(...); - Byte and Video project-Node frames are not yet implemented by this development Host;
- Source, Transform, and Sink roles are supported;
- process isolation and multimodal project-package transport remain planned;
- the standalone Python SDK already exposes multimodal Frames and hosted Graph Factory APIs for programmatic development.