Реактивный блокнот Python, который воспроизводится, удобен для git и развертывается в виде сценариев или приложений.
Документы · Discord · Примеры
Английский |简体中文
marimo — это реактивный блокнот Python: запускайте ячейку или взаимодействуйте с элементом пользовательского интерфейса, и marimo автоматически запускает зависимые ячейки (или помечает их как устаревшие), сохраняя согласованность кода и выходных данных. Блокноты marimo хранятся на чистом Python, исполняются как сценарии и развертываются как приложения.
Основные моменты .
jupyter
, streamlit
, jupytext
, ipywidgets
, papermill
и другие..py
pip install marimo & & marimo tutorial intro
Попробуйте marimo на нашей онлайн-игровой площадке, которая полностью работает в браузере!
Перейдите к краткому руководству для ознакомления с нашим интерфейсом командной строки.
marimo гарантирует, что код вашего ноутбука, выходные данные и состояние программы согласованы. Это решает многие проблемы, связанные с традиционными блокнотами, такими как Jupyter.
Реактивная среда программирования. Запустите ячейку, и marimo отреагирует автоматическим запуском ячеек, которые ссылаются на ее переменные, устраняя чреватую ошибками задачу повторного запуска ячеек вручную. Удалите ячейку, и marimo очистит ее переменные из памяти программы, исключив скрытое состояние.
Совместим с дорогими ноутбуками. marimo позволяет настроить среду выполнения на ленивый режим, помечая затронутые ячейки как устаревшие вместо их автоматического запуска. Это дает вам гарантии состояния программы и предотвращает случайное выполнение дорогостоящих ячеек.
Синхронизированные элементы пользовательского интерфейса. Взаимодействуйте с элементами пользовательского интерфейса, такими как ползунки, раскрывающиеся списки, преобразователи кадров данных и интерфейсы чата, а ячейки, которые их используют, автоматически перезапускаются с последними значениями.
Интерактивные фреймы данных. Пролистывайте, ищите, фильтруйте и сортируйте миллионы строк невероятно быстро, без необходимости кода.
Производительное время выполнения. marimo запускает только те ячейки, которые необходимо запустить путем статического анализа вашего кода.
Динамическая уценка и SQL. Используйте уценку, чтобы рассказывать динамические истории, зависящие от данных Python. Или создавайте SQL-запросы, которые зависят от значений Python, и выполняйте их к фреймам данных, базам данных, CSV-файлам, таблицам Google или чему-либо еще, используя наш встроенный механизм SQL, который возвращает результат в виде фрейма данных Python.
Ваши блокноты по-прежнему написаны на чистом Python, даже если они используют уценку или SQL.
Детерминированный порядок выполнения. Блокноты выполняются в детерминированном порядке на основе ссылок на переменные, а не позиций ячеек на странице. Организуйте свои блокноты так, чтобы они лучше всего соответствовали историям, которые вы хотите рассказать.
Встроенное управление пакетами. marimo имеет встроенную поддержку всех основных менеджеров пакетов, что позволяет устанавливать пакеты при импорте. marimo может даже сериализовать требования к пакетам в файлах блокнотов и автоматически устанавливать их в изолированные песочницы venv.
Батарейки в комплекте. marimo поставляется с GitHub Copilot, помощниками искусственного интеллекта, форматированием кода Ruff, экспортом HTML, быстрым завершением кода, расширением VS Code, интерактивным средством просмотра кадров данных и многими другими функциями, повышающими качество жизни.
Установка. В терминале запустите
pip install marimo # or conda install -c conda-forge marimo
marimo tutorial intro
Создайте блокноты.
Создавайте и редактируйте блокноты с помощью
marimo edit
Запускайте приложения. Запустите свой блокнот как веб-приложение со скрытым и недоступным для редактирования кодом Python:
marimo run your_notebook.py
Выполнять как сценарии. Запустите блокнот как скрипт в командной строке:
python your_notebook.py
Автоматически конвертируйте блокноты Jupyter. Автоматически конвертируйте блокноты Jupyter в блокноты marimo с помощью интерфейса командной строки.
marimo convert your_notebook.ipynb > your_notebook.py
или воспользуйтесь нашим веб-интерфейсом.
Учебники. Список всех уроков:
marimo tutorial --help
См. часто задаваемые вопросы в нашей документации.
С marimo легко начать работу, и у него достаточно места для опытных пользователей. Например, вот визуализатор встраивания, сделанный в marimo (видео):
Чтобы узнать больше, просмотрите нашу документацию, папку examples/
и нашу галерею.
Учебник | Входы | Участки | Макет |
Мы ценим каждый вклад! Вам не нужно быть экспертом, чтобы помочь. Пожалуйста, посетите CONTRIBUTING.md для получения более подробной информации о том, как начать.
Вопросы? Свяжитесь с нами в Discord.
Мы строим сообщество. Приходите тусоваться с нами!
marimo — это новое изобретение блокнота Python как воспроизводимой, интерактивной и совместно используемой программы Python вместо подверженного ошибкам блокнота JSON.
Мы считаем, что инструменты, которые мы используем, формируют наше мышление — лучшие инструменты для лучших умов. С помощью marimo мы надеемся предоставить сообществу Python лучшую среду программирования для проведения исследований и распространения информации о них; экспериментировать с кодом и делиться им; изучать вычислительную науку и преподавать ее.
Наше вдохновение черпается из многих мест и проектов, особенно из Pluto.jl, ObservableHQ и эссе Брета Виктора. marimo является частью более широкого движения к реактивному программированию потоков данных. Идеи функционального, декларативного и реактивного программирования, начиная с IPyflow,streamlit, TensorFlow, PyTorch, JAX и React, преобразуют к лучшему широкий спектр инструментов.