New event loop integration system
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
Direção de pesquisa
A issue não identifica nenhum arquivo do repositório nem teste. Comece lendo o ponto de entrada proposto start_guest_run e os exemplos de callbacks do loop do host para asyncio, tkinter e Qt; esclareça qual API de integração e quais loops de eventos suportados estão no escopo antes da implementação. O trabalho estará concluído quando houver um design acordado e uma integração funcional em modo guest.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
I would like to change our event-loop integration with Trio's guest mode. Trio's guest mode also works on asyncio thanks to aioguest. For it to work, we just need to have a function that can schedule a callback in the host event-loop in a thread-safe way.
- in asyncio, that would be
loop.call_soon_threadsafe(callback), - in tkinter, that would be
tk.after(0, callback). - Qt supports Trio's guest mode, see here.
- ...
For instance, here is how it looks like when the host event-loop is tkinter's:
from tkinter import Tk
from anyio import sleep
from anyioutils import start_guest_run
def run_sync_soon_threadsafe(fn):
tk.after(0, fn)
def done_callback(outcome):
print("done")
async def foo():
for i in range(10):
await sleep(0.1)
print(i)
tk = Tk()
start_guest_run(foo, run_sync_soon_threadsafe=run_sync_soon_threadsafe, done_callback=done_callback)
tk.mainloop()
Before calling tk.mainloop(), we call start_guest_run() which runs foo as a task in tkinter's event-loop.
Thoughts?
- Linguagem predominante
- Python
- Estrelas
- 734
- Forks
- 411
- Merge médio
- 1d 11h
- PRs com merge (30d)
- 12
Preparar o ambiente
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de ipython/ipykernel
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 68/100
ipython/ipykernel#1554 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Interrupt on swallowed `KeyboardInterrupt` exceptions (`SIGINT`) when pressing twice (within 5 seconds)Talvez livre de novo @Carreau assumiu há 30 dias e não há nenhum pull request aberto. Aberta
ipython/ipykernel#1550 · 1 comentário · 1 reação · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 66/100
Mantenedores costumam responder em até 1 dia
Todas as issues de ipython/ipykernel
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
gradio-app/gradio#13895 ·
Mantenedores costumam responder em até 1 dia
-
build-error
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
spack/spack-packages#6713 ·
Mantenedores costumam responder em até 1 dia
-
Use issue templatesAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
ActivityWatch/activitywatch#1464 · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
[Bug]: The ckg tool drops the return type of every decorated Python method in class search resultsAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
bytedance/trae-agent#483 ·
Mantenedores costumam responder em até 1 dia