Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[experiment] Async shell (run everything under asyncio) #11347

Open
wants to merge 4 commits into
base: master
from

Conversation

@Carreau
Copy link
Member

commented Sep 30, 2018

prompted by #11336, in which I realized that patch_stdout was mostly meant for async based application.

This run the all IPython shell into an eventloop, which has the side-effect of making async bg task work.

@Carreau Carreau force-pushed the Carreau:async-shell branch from 658eac2 to 3511193 Oct 4, 2018

@jonathanslenders

This comment has been minimized.

Copy link
Contributor

commented Oct 13, 2018

Keep in mind that this could break the input hooks for UI toolkits which IPython has right now. (Did you test that?)

If so, I think a solution would be to use the asyncio even loop with a custom "selector". The selector is the blocking call that waits for any kind of IO. Within the selector you can run another event loop, and glue them together.

In any case, I think I like the direction where this is going!

@Carreau

This comment has been minimized.

Copy link
Member Author

commented Oct 13, 2018

Keep in mind that this could break the input hooks for UI toolkits which IPython has right now. (Did you test that?)

No I did not test, and this likely also bypass the pre and post execute hooks.

This was mostly an experiment to see how much change was needed, and think about what internal API to deprecate. As we just released 7.0 I doubt I want to merge this in the 7.x branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.