Conversation
This comment was marked as outdated.
This comment was marked as outdated.
6e4c061 to
06d1539
Compare
- All methods are async - widget restoration on page refresh - Preliminary support for multiple pages - Added python classes - Ipylab - Singular - HasApp - Fixed - Typing instances - Transform - Connection
a34eeb8 to
24497fa
Compare
…adopted aiologic for synchronisation primitives (Event & Lock).
'Fixed' and its type hints have been transferred to async-kernel.common. Future has been renamed to Pending and Caller.get_instance has been renamed to Caller.get.
|
This illustrates how awaitables can be used to add in more functionality. |
|
Yeh, the goal over on #162 was to add some more optional features without breaking the public APIs (even though that took a good deal of mangling). The Until there is a proper upstream |
Your comment "Until there is a proper upstream ipywidgets async" made me realize that the patched libraries aren't required for this PR; so I've removed them. At the moment it still requires the kernel to be async-kernel, which was developed specifically to make ipylab work nicely in notebooks. In this PR:
|
- log.py - incorrectly included hookimpl
- Add subshell support with greater dependence on async kernel.
…LabIcon for the life of the Icon.
|
I've been working on a Jupyterlite plugin for 'async-kernel' which now mostly working. For the moment the code is being hosted here: https://github.com/fleming79/echo-kernel. The interface is simple in design and should be pretty robust. It uses a web worker to run pyodide which loads and runs the kernel. Messages are transferred using the builtin post functions and kernel messages are passed via a single callback function on each side, the messages are serialized to json for The kernel is started with a script which is configurable, by default script searches for wheels locally, and installs them prior to starting the kernel. This helps to make it easier to bundle wheels in jupyterlite. There are a few associated PRs about interrupts, which is the main missing feature.
I've adapted ipylab readthedocs to use the new kernel. You can access the most recent docs here. |

This PR is a subset of #160
This PR enables asynchronous code execution as follows:
async def)Pending(just like an asyncio.Future). When the frontend replies, the pending is set done and the result is returned.Demo running all cells at once
Awaiting in each cell ensures the result is available for the next cell. The gif below is 0.5x playback speed.
Menus
This gif demonstrates the usage of menus and restoration when the page is refreshed.
Async execution is enabled in notebooks with async-kernel.
Subshells
Requires async-kernel
Leverages on the concept of kernel subshells to provide isolated
user_nsand commonglobal_user_ns.resolves #11
Replaces #160