Commit Graph

3 Commits

Author SHA1 Message Date
Claude
6615c5f7d0 fix(python): fan out only on JSON-array output, not any IEnumerable
The old code iterated every IEnumerable, so `output = "hello"` emitted one
item per character (a string is IEnumerable-of-char) and `output = {"a":1}`
emitted the keys as items. Now the script's output is serialized first and
the ValueKind decides: JSON array → per-element items; anything else →
single item. `output = None` remains an empty emission.

New tests cover string, dict, number, and None shapes.
2026-08-31 11:21:55 +00:00
Claude
3fa541a032 fix(python): surface Python tracebacks in node error + dialog Output
Backend: PythonTransformNode wraps script execution in a try/catch that
runs the exception through IronPython's ExceptionOperations.FormatException.
Users now see a proper Python-style traceback (file, line, type, message)
instead of the bare CLR message (which was often empty or just "unexpected
token"). Source is named "script" for readable File lines in the trace.

Frontend: findLatestIo also returns status + error; NodeEditorDialog
renders a red-bordered traceback block in the Output column when the
node failed, replacing the misleading "No data yet" state.
2026-08-31 10:47:34 +00:00
Claude
df64e9e512 feat(nodes): PythonTransformNode (IronPython 3) — items in, output out 2026-08-28 15:22:49 +00:00