Salida por celda para portátiles IPython con hilos

No quiero plantear esto como un problema, porque parece una solicitud de características completamente irrazonable para lo que es una herramienta bastante sorprendente. Pero si algún lector estuviera familiarizado con la arquitectura, me interesaría saber si una posible extensión parece factible.

Hace poco escribí una libreta con un código simple para ver qué pasaría cuando lo ejecutara. El código del cuaderno (tl; dr inicia una serie de subprocesos paralelos que se imprimen en un ciclo de reposo) está disponible enhttps://gist.github.com/4562840.

Al presionar SHIFT-RETURN varias veces mientras se ejecuta el código, puede observar que cualquier salida del kernel aparece en el área de salida de la celda actual, no en la celda en la que se ejecutó el código.

Me preguntaba si sería posible, si las hebras estuvieran activas para una celda, mostrar un botón de "actualización" que permita que el área de salida se actualice de forma asíncrona. Idealmente, el botón de actualización desaparecería si se hiciera clic después de que todos los subprocesos hubieran finalizado (después de una actualización final).

Sin embargo, esto dependería de poder identificar e interceptar la salida de impresión de cada hilo y dirigirlo a un búfer para la salida de la celda específica. Entonces, dos preguntas.

¿Tengo razón al creer que el cableado de la declaración de impresión de Python 2 significa que esta mejora no se puede implementar con un intérprete estándar?

¿Las perspectivas para Python 3 son mejores, dado que es posible introducir otra capa en la pila de impresión () dentro del kernel IPython? Y especialmente para aquellos que no siguieron un enlace de Python para llegar aquí,

[nadie espera la Inquisición española] De manera más general, ¿puedes señalar ejemplos (sin lenguaje) de múltiples transmisiones en una página? ¿Hay alguna práctica recomendada establecida para construir y modificar el DOM para manejar esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta