Build typed IPython app execution pipeline
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# IPython demo
|
||||
|
||||
The application-facing API is:
|
||||
|
||||
```python
|
||||
from ipython_demo import App
|
||||
|
||||
app = App()
|
||||
call = app.run_code(
|
||||
"print('hello'); 2 + 2",
|
||||
shell_name="new",
|
||||
collapsed=False,
|
||||
)
|
||||
```
|
||||
|
||||
`call` contains the submitted `code`, `call_id`, `shell_name`, `collapsed`
|
||||
state, a typed `result`, and ordered typed `events`. Event sequences are
|
||||
stable within a call, so a frontend can use `(call_id, sequence)` as its
|
||||
idempotency and React key pair.
|
||||
|
||||
For MIME output, retain the complete bundle and choose a renderer in the UI.
|
||||
The initial preference is `text/html`, JavaScript, `text/latex`, then
|
||||
`text/plain`, with image MIME types handled by their image renderers. HTML
|
||||
must be sanitized, and JavaScript should be treated as untrusted unless the
|
||||
host explicitly opts into a sandboxed execution policy.
|
||||
|
||||
Run the JSON showcase with:
|
||||
|
||||
```text
|
||||
uv run ipython-demo
|
||||
```
|
||||
Reference in New Issue
Block a user