Python DSL reference
Project page -> Python DSLPython DSL in Designer
Edit a complete modular Python topology project directly in the browser without a Python server.
When to use
Open the Python DSL tab when typed declarations are easier to review or modify than graph forms or canonical YAML.
Behavior
- Designer converts the current graph YAML into a modular Python project in a Web Worker.
- Pyodide loads the vendored
sa-python-dslwheel and executes conversion entirely in the browser. - The file tree contains project settings, packages, modules, pools, types, connectors, endpoints, services, and pipeline files.
- Selecting a canonical example rebuilds its Python workspace and replaces an older autosaved draft for that example.
- Edits are autosaved in browser local storage and remain separate for each normalized project name.
- The project menu can download the current Python files as a ZIP archive without calling backend infrastructure.
Browser conversion flow
LoadGraph or canonical YAMLDesigner owns the current visual model.
ConvertYAML to modular PythonPyodide worker creates files and an entrypoint.
EditTyped Python workspaceFiles autosave locally under the project identity.
ApplyPython to canonical YAMLValidate, compare revisions, and merge into the graph.
Workspace actions properties
Controls shown in the Python DSL tab and project menu.
PropertyTypeDescription
Apply to Graphvalidate and mergeExecute the Python entrypoint, produce YAML, and apply reviewed model changes.
Reset from Graphdestructive rebuildRegenerate managed Python files from the current graph after confirmation.
Save / Save Asbrowser project storageStore canonical YAML together with the current Python workspace.
Download Python projectclient-side ZIPArchive all current Python files in the browser.
Generate projectbackend ZIPGenerate target-runtime source, build, Docker, and Kubernetes assets through ServiceGen.
Managed workspace shape
<project_package>/
project/
packages/
modules/
pools/
types/
connectors/
endpoints/
services/<service>/pipelines/
main.py