Как обернуть вывод Jupyter в пользовательский HTML? - PullRequest
0 голосов
/ 03 апреля 2020

Я хочу иметь возможность взять нормальный вывод для объекта и вставить его в пользовательские компоненты HTML. В частности, я хочу разрешить такие вещи, как помещение нескольких диаграмм в элемент пользовательского интерфейса аккордеона или наличие скрытых фреймов данных, которые отображаются при нажатии кнопки. Есть ли способ получить HTML, который обычно выводится, обернуть его в мои собственные HTML компоненты, а затем вывести его?

Я пытался:

import IPython.display as dp

dp.display(dp.HTML('<div id="mycontainer">')) # Just a simple div, 
                                              # but ideally would be e.g. bootstrap component
dp.display(my_obj) # my_obj here could be a (potentially styled) dataframe 
                   # or a plot from matplotlib/altair/etc.
dp.display(dp.HTML('</div>'))

Однако незамкнутый <div> просто автоматически закрывается, поэтому my_obj не вставляется в него. Некоторые объекты имеют _repr_html_(), но не все имеют (особенно диаграммы). Тем не менее, Jupyter, очевидно, имеет некоторый способ извлечения HTML из произвольных объектов.

Кажется, при попытке прочитать источник, nbconvert используется, чтобы изменить объект на HTML, но я не конечно, если A) я правильно понимаю или B) как получить HTML от произвольного объекта, которого нет в объекте узла ноутбука (или как самому построить такой объект).

...