Notebook Python reaktif yang dapat direproduksi, ramah git, dan dapat diterapkan sebagai skrip atau aplikasi.
Dokumen · Perselisihan · Contoh
Bahasa Inggris |简体中文
marimo adalah buku catatan Python reaktif: menjalankan sel atau berinteraksi dengan elemen UI, dan marimo secara otomatis menjalankan sel yang bergantung (atau menandainya sebagai basi), menjaga kode dan keluaran tetap konsisten. notebook marimo disimpan sebagai Python murni, dapat dieksekusi sebagai skrip, dan dapat digunakan sebagai aplikasi.
Sorotan .
jupyter
, streamlit
, jupytext
, ipywidgets
, papermill
, dan banyak lagi.py
pip install marimo & & marimo tutorial intro
Coba marimo di taman bermain online kami, yang sepenuhnya dijalankan di browser!
Lompat ke panduan mulai cepat untuk mendapatkan informasi dasar tentang CLI kami.
marimo menjamin kode notebook Anda, keluaran, dan status program konsisten. Ini memecahkan banyak masalah yang terkait dengan notebook tradisional seperti Jupyter.
Lingkungan pemrograman reaktif. Jalankan sel dan marimo bereaksi dengan secara otomatis menjalankan sel yang mereferensikan variabelnya, menghilangkan tugas rawan kesalahan saat menjalankan kembali sel secara manual. Hapus sel dan marimo menghapus variabelnya dari memori program, menghilangkan keadaan tersembunyi.
Kompatibel dengan notebook mahal. marimo memungkinkan Anda mengonfigurasi waktu proses menjadi lambat, menandai sel yang terpengaruh sebagai basi alih-alih menjalankannya secara otomatis. Hal ini memberi Anda jaminan pada status program sekaligus mencegah eksekusi sel mahal yang tidak disengaja.
Elemen UI yang disinkronkan. Berinteraksi dengan elemen UI seperti penggeser, tarik-turun, transformator kerangka data, dan antarmuka obrolan, dan sel yang menggunakannya secara otomatis dijalankan kembali dengan nilai terbarunya.
Kerangka data interaktif. Telusuri halaman, telusuri, filter, dan urutkan jutaan baris dengan sangat cepat, tanpa perlu kode.
Waktu proses yang berkinerja. marimo hanya menjalankan sel-sel yang perlu dijalankan dengan menganalisis kode Anda secara statis.
Penurunan harga dinamis dan SQL. Gunakan penurunan harga untuk menceritakan kisah dinamis yang bergantung pada data Python. Atau buat kueri SQL yang bergantung pada nilai Python dan jalankan terhadap kerangka data, database, CSV, Google Spreadsheet, atau apa pun menggunakan mesin SQL bawaan kami, yang mengembalikan hasilnya sebagai kerangka data Python.
Buku catatan Anda masih menggunakan Python murni, meskipun menggunakan penurunan harga atau SQL.
Perintah eksekusi deterministik. Buku catatan dijalankan dalam urutan deterministik, berdasarkan referensi variabel, bukan posisi sel pada halaman. Atur buku catatan Anda agar sesuai dengan cerita yang ingin Anda sampaikan.
Manajemen paket bawaan. marimo memiliki dukungan bawaan untuk semua manajer paket utama, memungkinkan Anda menginstal paket saat diimpor. marimo bahkan dapat membuat serial persyaratan paket dalam file notebook, dan menginstalnya secara otomatis di kotak pasir venv yang terisolasi.
Sudah termasuk baterai. marimo hadir dengan GitHub Copilot, asisten AI, pemformatan kode Ruff, ekspor HTML, penyelesaian kode cepat, ekstensi VS Code, penampil kerangka data interaktif, dan banyak lagi fitur kualitas hidup.
Instalasi. Di terminal, jalankan
pip install marimo # or conda install -c conda-forge marimo
marimo tutorial intro
Buat buku catatan.
Membuat atau mengedit buku catatan dengan
marimo edit
Jalankan aplikasi. Jalankan buku catatan Anda sebagai aplikasi web, dengan kode Python tersembunyi dan tidak dapat diedit:
marimo run your_notebook.py
Jalankan sebagai skrip. Jalankan buku catatan sebagai skrip di baris perintah:
python your_notebook.py
Konversi notebook Jupyter secara otomatis. Secara otomatis mengonversi notebook Jupyter ke notebook marimo dengan CLI
marimo convert your_notebook.ipynb > your_notebook.py
atau gunakan antarmuka web kami.
Tutorial. Daftar semua tutorial:
marimo tutorial --help
Lihat FAQ di dokumen kami.
marimo mudah untuk memulai, dengan banyak ruang untuk pengguna tingkat lanjut. Misalnya, berikut adalah visualisator penyematan yang dibuat di marimo (video):
Lihat dokumen kami, examples/
folder, dan galeri kami untuk mempelajari lebih lanjut.
tutorial | Masukan | Plot | Tata Letak |
Kami menghargai semua kontribusi! Anda tidak perlu menjadi ahli untuk membantu. Silakan lihat CONTRIBUTING.md untuk rincian lebih lanjut tentang cara memulai.
Pertanyaan? Hubungi kami di Discord.
Kami sedang membangun komunitas. Ayo bergaul dengan kami!
marimo adalah penemuan kembali buku catatan Python sebagai program Python yang dapat direproduksi, interaktif, dan dapat dibagikan, bukan sebuah papan gores JSON yang rawan kesalahan.
Kami percaya bahwa alat yang kami gunakan akan membentuk cara berpikir kami — alat yang lebih baik, untuk pikiran yang lebih baik. Dengan marimo, kami berharap dapat menyediakan lingkungan pemrograman yang lebih baik bagi komunitas Python untuk melakukan penelitian dan mengomunikasikannya; untuk bereksperimen dengan kode dan membagikannya; untuk mempelajari ilmu komputasi dan mengajarkannya.
Inspirasi kami datang dari banyak tempat dan proyek, terutama Pluto.jl, ObservableHQ, dan esai Bret Victor. marimo adalah bagian dari gerakan yang lebih besar menuju pemrograman aliran data reaktif. Mulai dari IPyflow, streamlit, TensorFlow, PyTorch, JAX, dan React, ide pemrograman fungsional, deklaratif, dan reaktif mengubah berbagai alat menjadi lebih baik.