Jupyter: как реализовать функцию просмотра изображений в новом ядре

В настоящее время я играю с Cling (интерпретатором C ++) и его ядром jupyter, и мне хотелось бы отобразить изображение в блокноте Jupyter, используя какую-то функцию C ++, аналогичную IPython.display.
Что будет лучшим подходом для этого?

Обновить

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

0

Решение

Эта функция должна быть реализована на уровне ядра, то есть, если сам по себе cling не дает вам запасного люка, вы, вероятно, не можете этого сделать.

Технически под капотом, когда вы что-то выводите, цепляет display_data сообщение, содержащее mimebundle (отображение типа mimetype на данные), поэтому для этого нужно подключиться к самому ядру.

Я пока не верю, что это в Клинге, хотя QuantStack люди недавно сделали демонстрацию на JupyterCon (видео еще не в сети), где они показали виджеты в их Xeus-льнет ядро.

Поэтому я настоятельно рекомендую вам попробовать xeus-cling и спросить у разработчиков (откройте проблему на GitHub или попробуйте канал Gitter, на который они реагируют).

2

Другие решения

Будет ли это делать то, что вам нужно? Из цепочки / tools / Jupyter / Kernel.cpp:

/// Push MIME stuff to Jupyter. To be called from user code.
///\param contentDict - dictionary of MIME type versus content. E.g.
/// {{"text/html", {"<div></div>", }}
///\returns `false` if the output could not be sent.
bool pushOutput(const std::map<std::string, MIMEDataRef> contentDict) {
2

Я рекомендую вам ознакомиться с функцией рендеринга типа MIME xeus-cling ядро.

Для любого типа вы можете переопределить mime_bundle_repr функция. Он выбирается с помощью поиска, зависящего от аргументов, и ваш объект будет волшебно отображаться в записной книжке Jupyter.

введите описание изображения здесь

xeus-cling также поддерживает интерактивные виджеты Jupyter и быструю документацию.

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

1
По вопросам рекламы [email protected]