ipython / ipython/ipykernel

Custom `loop_factory` for `asyncio`

Open
#1,313 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
734
Forks
412
Avg merge
1d 5h
Merged PRs (30d)
8

Description

Hello,

I have a use-case where we'd like to run the `ipykernel` main-loop using a specific `asyncio.AbstractEventLoop` implementation (not the stdlib's default one). Since in the `main` branch of `ipykernel` the code was migrated to use `anyio`, I believe this boils down to passing a suitable `loop_factory` value in the `backend_options` passed to `anyio.run` (unless Trio mode is enabled, of course).

Would there be any interest in a patch to allow this, essentially adding a `--IPKernelApp.asyncio_loop_factory` config option (a `DottedObjectName`)?

Thanks!

Contributor guide

Open the contributing guide

Research direction

Start by tracing ipykernel's main-loop startup and the anyio.run call, focusing on how backend_options are passed and how Trio mode is selected. The requested change would expose an IPKernelApp.asyncio_loop_factory DottedObjectName and use it for asyncio mode while preserving Trio behavior; no specific files or tests are named.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.