Выход на ячейку для многопоточных ноутбуков IPython

Я не хочу поднимать это как проблему, потому что это кажется совершенно необоснованным запросом на функцию того, что является довольно удивительным инструментом. Но если кто-то из читателей знаком с архитектурой, мне было бы интересно узнать, возможно ли потенциальное расширение.

Недавно я написал блокнот с простым многопоточным кодом, чтобы посмотреть, что произойдет, когда я его запустил. Код записной книжки (tl; dr запускает несколько параллельных потоков, которые печатаются в цикле сна) доступен по адресуhttps://gist.github.com/4562840.

Несколько раз нажав SHIFT-RETURN во время выполнения кода, вы можете заметить, что любой вывод из ядра появляется в области вывода текущей ячейки, а не в той ячейке, в которой был выполнен код.

Мне было интересно, было бы возможно, если бы потоки были активны для ячейки, чтобы отобразить кнопку «обновить», позволяющую асинхронно обновлять область вывода. В идеале кнопка обновления исчезла бы, если бы она была нажата после завершения всех потоков (после окончательного обновления).

Однако это будет зависеть от возможности идентифицировать и перехватывать выходные данные для печати для каждого потока и направлять его в буфер для вывода конкретной ячейки. Итак, два вопроса.

Правильно ли я считаю, что жесткая формулировка выражения печати Python 2 означает, что это улучшение не может быть реализовано с помощью стандартного интерпретатора?

Есть ли перспективы для Python 3 лучше, учитывая, что можно вставить еще один слой в стек print () внутри ядра IPython? И особенно для тех, кто не пошел по ссылке Python, чтобы попасть сюда,

[никто не ожидает испанской инквизиции] В более широком смысле, можете ли вы указать (не зависящие от языка) примеры нескольких потоков, доставляемых на страницу? Существуют ли лучшие передовые практики для создания и модификации DOM, чтобы справиться с этим?

Ответы на вопрос(1)

Ваш ответ на вопрос