Статті

Назва статті

ПРОСТИЙ ГЕНЕРАТОР ІНТЕРАКТИВНИХ ДОКУМЕНТІВ JUPYTER NOTEBOOK З РОЗМІЧЕНОГО ПРОГРАМНОГО КОДУ PYTHON

Номер віснику

22

DOI:

10.36994/2707-4110-2019-1-22-31

Автори

Копей В. Б., к.т.н., доц., Івано-Франківський національний технічний університет нафти і газу, Івано-Франківськ, Україна. vkopey@gmail.com

Ключові слова

інтерактивні обчислення, Python, Jupyter Notebook, мова розмітки, Markdown, регулярний вираз

Анотація

Jupyter Notebook широко застосовується для інтерактивних обчислень в різних галузях науки і техніки. Як правило документи Jupyter Notebook створюються безпосередньо в браузері, але існує можливість їх програмної генерації, наприклад з Python-коду, який містить рядкові Python-літерали з кодом Markdown. Генерація з Python-коду дозволяє зберігати документи в зручному для редагування текстовому форматі. Крім того, в деяких випадках, цей Python-код може бути виконаний стандартним інтерпретатором Python і без наявності установленого Jupyter Notebook. Це забезпечує універсальність формату. На даний момент існує кілька інструментів для перетворення Python-коду в документ Jupyter Notebook (.ipynb). Недоліком їх є або підтримка застарілих форматів або незручний спосіб розмітки комірок документу Jupyter Notebook. Описано принципи роботи та розроблено програму мовою Python для генерації інтерактивних документів Jupyter Notebook (.ipynb v4) з розміченого найпростішим способом Python-коду, яка має можливість подальшої конвертації .ipynb в формати HTML і docx. Програма може бути використана для полегшення створення та редагування документів на основі Jupyter Notebook. У порівнянні з аналогами програма має простий і зрозумілий алгоритм на основі регулярних виразів, що дозволяє її просту модифікацію для інших задач. Додатковою перевагою є простий спосіб розмітки Python-коду на комірки, який полягає у розташуванні блоків Markdown-тексту в багато-ряд¬кових Python-літералах в лапках та розділенні блоків коду символами ##. Наведено приклад створення Python-коду, який містить: блок Markdown з такими можливостями як форматування різними шрифтами, гіперпосилання, рисунки, блоки програмного коду, LaTeX формули та таблиці; блок коду для побудови інтерактивного графіка за допомогою Python-бібліотек Matplotlib та ipywid¬gets; блок коду, який виводить неформатований текст та результати інтерпретації коду HTML, Markdown, SVG функцією display з модуля IPython.display. Показано приклад конвертації цього коду у формати Jupyter Notebook (у тому числі інтерактивний), Markdown, HTML, docx.