ipython / ipython/ipykernel

Interrupt on swallowed `KeyboardInterrupt` exceptions (`SIGINT`) when pressing twice (within 5 seconds)

Aperta
#1,550 1 commento 1 reazione 1 assegnatario Rivendicata da @Carreau Vedi su GitHub
Lingua principale
Python
Stelle
734
Fork
412
Merge medio
1g 5h
PR unite (30g)
8

Descrizione

Consider

```python
import time
while True:
try:
time.sleep(1)
except BaseException:
pass
```

It is impossible to interrupt. But it does not have to be! With Python 3.12 we now have `sys.monitoring` and could instead show:

> The running code caught the interrupt and kept going. Interrupt again within 5 seconds to force it to stop.

Current behaviour:

https://github.com/user-attachments/assets/aa51f4cc-afb3-4d6b-9d4f-cc32361417a3

Proposed behaviour:

https://github.com/user-attachments/assets/f5e891d1-fa78-4c7a-87af-ff0d3458c146

This would be similar to what jupyter-server does for interrupts with Ctrl + C (pressing it twice forces shutdown).

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.