Рассматривается фреймворк marimo, названной в честь аквариумной водоросли, изображенной на заставке к статье. marimo позволяет работать с блокнотами — текстовыми файлами Python, ячейки блокнотов представляют собой декорированные функции Python. Переменные в ячейках реактивные, изменение значения переменной в ячейке приводит пересчету всех ячеек, где есть ссылки на данную переменную. Это позволяет представить вычисление ячеек блокнота в виде направленного ациклического графа, решает проблему скрытых состояний и воспроизводимости вычислений, имеющуюся в блокнотах Jupyter.
Наряду с ячейками Markdown и Python в marimo предусмотрены ячейки SQL, можно делать запросы не только к реляционным базам данных, но и фреймам данных pandas, polars, имеются удобные виджеты для работы с данными. По сравнению с Jupyter расширены возможности Markdown, в тексте могут отображаться значения переменных из других ячеек, виджеты пользовательского интерфейса, подсвеченный исходный текст, различные диаграммы.
В marimo встроен мощный редактор, позволяющий, редактировать и выполнять исходный текст Python, осуществлять интерактивную визуализацию с помощью библиотек altair, matplotlib и plotly, разрабатывать приложения с графическим пользовательским интерфейсом, легко переключаться между режимами редактирования, выполнения приложения, показа презентации.
Приложения marimo интегрируются в веб-приложения Flask, FastAPIи FastHTML.