Skip to content

Latest commit

 

History

History
250 lines (187 loc) · 16 KB

File metadata and controls

250 lines (187 loc) · 16 KB

再現性が高く、Git対応で、スクリプトやアプリとして展開できるリアクティブなPythonノートブック。

ドキュメント · Discord · サンプル · ギャラリー · YouTube

English | 简体中文 | 日本語 | Español

discord Pepy Total Downloads Conda Downloads

marimoはリアクティブなPythonノートブックです:セルを実行したりUI要素を操作すると、marimoは自動的に依存するセルを実行(またはそれらを古いものとしてマーク)し、コードと出力の一貫性を保ちます。marimoノートブックは純粋なPythonとして保存され、スクリプトとして実行でき、アプリとして展開できます。

主な特徴

pip install marimo && marimo tutorial intro

オンラインプレイグラウンドでmarimoを試してみてください。完全にブラウザ内で動作します!

CLIの基本的な使い方についてはクイックスタートをご覧ください。

リアクティブなプログラミング環境

marimoはノートブックのコード、出力、プログラムの状態の一貫性を保証します。これにより、Jupyterのような従来のノートブックに関連する多くの問題を解決します。

リアクティブなプログラミング環境 セルを実行すると、marimoは_リアクト_し、その変数を参照するセルを自動的に実行することで、手動でセルを再実行するというエラーが起きやすいタスクを排除します。セルを削除すると、marimoはその変数をプログラムのメモリから削除し、隠れた状態を排除します。

計算コストの高いノートブックとの互換性 marimoでは、ランタイムを遅延評価に設定することができ、影響を受けるセルを自動的に実行する代わりに古いものとしてマークします。これにより、プログラムの状態に関する保証を提供しながら、コストの高いセルの偶発的な実行を防ぎます。

同期されたUI要素 スライダードロップダウンデータフレーム変換チャットインターフェースなどのUI要素を操作すると、それらを使用するセルが自動的に最新の値で再実行されます。

インタラクティブなデータフレーム 何百万行ものデータをページング、検索、フィルタリング、ソートを、コード不要で驚くほど高速に実行できます。

高性能ランタイム marimoはコードを静的に分析することで、実行が必要なセルのみを実行します。

動的なマークダウンとSQL マークダウンを使用して、Pythonデータに依存する動的なストーリーを作成できます。または、Pythonの値に依存するSQLクエリを構築し、データフレーム、データベース、CSV、Google Sheets、またはその他のものに対して実行できます。組み込みのSQLエンジンを使用すると、結果がPythonのデータフレームとして返されます。

マークダウンやSQLを使用しても、ノートブックは純粋なPythonのままです。

決定論的な実行順序 ノートブックは、セルのページ上の位置ではなく、変数の参照に基づいて決定論的な順序で実行されます。伝えたいストーリーに最適な方法でノートブックを整理できます。

組み込みパッケージ管理 marimoには主要なパッケージマネージャーのサポートが組み込まれており、インポート時にパッケージをインストールできます。marimoはパッケージの要件をシリアル化してノートブックファイルに保存し、隔離されたvenv環境に自動的にインストールすることもできます。

必要な機能がすべて揃っている marimoにはGitHub Copilot、AIアシスタント、Ruffコードフォーマット、HTML出力、高速コード補完、VS Code拡張機能、インタラクティブなデータフレームビューワー、その他多くの便利な機能が含まれています。

クイックスタート

インストール ターミナルで次を実行します:

pip install marimo  # または conda install -c conda-forge marimo
marimo tutorial intro

SQL セル、AI 補完などの追加機能を含めてインストールするには、次を実行します:

pip install marimo[recommended]

ノートブックの作成

次のコマンドでノートブックを作成または編集します:

marimo edit

アプリの実行 ノートブックをウェブアプリとして実行し、Pythonコードを非表示かつ編集不可にします:

marimo run your_notebook.py

スクリプトとして実行 ノートブックをコマンドラインでスクリプトとして実行します:

python your_notebook.py

Jupyterノートブックの自動変換 CLIを使用してJupyterノートブックをmarimoノートブックに自動変換します:

marimo convert your_notebook.ipynb > your_notebook.py

またはウェブインターフェースを使用します。

チュートリアル すべてのチュートリアルをリストします:

marimo tutorial --help

質問がありますか?

FAQをご覧ください。

もっと詳しく

marimoは簡単に始められ、パワーユーザー向けの多くの機能があります。 例えば、marimoで作成された埋め込み可視化ツールです (動画):

詳細については、ドキュメント使用例ギャラリーをご覧ください。

チュートリアル 入力 プロット レイアウト

コントリビューション

すべての貢献を歓迎します!専門家である必要はありません。 開始方法の詳細については、CONTRIBUTING.mdをご覧ください。

質問がありますか?Discordでお問い合わせください。

コミュニティ

コミュニティを構築中です。ぜひ参加してください!

インスピレーション ✨

marimoは、エラーが発生しやすいJSONのスクラッチパッドではなく、再現性が高く、インタラクティブで、共有可能なPythonプログラムとしてのPythonノートブックの再発明です。

私たちは、使用するツールが私たちの思考方法を形作ると信じています—より良いツールが、より良い思考をもたらします。marimoを通じて、研究を行い、それを伝えるため、コードを実験し、それを共有するため、計算科学を学び、それを教えるために、Pythonコミュニティにより良いプログラミング環境を提供したいと考えています。

私たちのインスピレーションは多くの場所やプロジェクト、特にPluto.jlObservableHQBret Victorのエッセイから来ています。marimoはリアクティブなデータフロープログラミングへの大きな動きの一部です。IPyflowstreamlitTensorFlowPyTorchJAXReactから、関数型、宣言型、リアクティブプログラミングの考え方が広範囲のツールを良い方向に変革しています。