import%20marimo%0A%0A__generated_with%20%3D%20%220.8.4%22%0Aapp%20%3D%20marimo.App()%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20mo.md(%22%23%20Welcome%20to%20marimo!%20%F0%9F%8C%8A%F0%9F%8D%83%22)%0A%20%20%20%20return%20mo%2C%0A%0A%0A%40app.cell%0Adef%20__(mo)%3A%0A%20%20%20%20slider%20%3D%20mo.ui.slider(1%2C%2022)%0A%20%20%20%20return%20slider%2C%0A%0A%0A%40app.cell%0Adef%20__(mo%2C%20slider)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20marimo%20is%20a%20**reactive**%20Python%20notebook.%0A%0A%20%20%20%20%20%20%20%20This%20means%20that%20unlike%20traditional%20notebooks%2C%20marimo%20notebooks%20**run%0A%20%20%20%20%20%20%20%20automatically**%20when%20you%20modify%20them%20or%0A%20%20%20%20%20%20%20%20interact%20with%20UI%20elements%2C%20like%20this%20slider%3A%20%7Bslider%7D.%0A%0A%20%20%20%20%20%20%20%20%7B%22%23%23%22%20%2B%20%22%F0%9F%8D%83%22%20*%20slider.value%7D%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.accordion(%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Tip%3A%20disabling%20automatic%20execution%22%3A%20mo.md(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rf%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20marimo%20lets%20you%20disable%20automatic%20execution%3A%20just%20go%20into%20the%0A%20%20%20%20%20%20%20%20%20%20%20%20notebook%20settings%20and%20set%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Runtime%20%3E%20On%20Cell%20Change%22%20to%20%22lazy%22.%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20When%20the%20runtime%20is%20lazy%2C%20after%20running%20a%20cell%2C%20marimo%20marks%20its%0A%20%20%20%20%20%20%20%20%20%20%20%20descendants%20as%20stale%20instead%20of%20automatically%20running%20them.%20The%0A%20%20%20%20%20%20%20%20%20%20%20%20lazy%20runtime%20puts%20you%20in%20control%20over%20when%20cells%20are%20run%2C%20while%0A%20%20%20%20%20%20%20%20%20%20%20%20still%20giving%20guarantees%20about%20the%20notebook%20state.%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20Tip%3A%20This%20is%20a%20tutorial%20notebook.%20You%20can%20create%20your%20own%20notebooks%0A%20%20%20%20%20%20%20%20by%20entering%20%60marimo%20edit%60%20at%20the%20command%20line.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20).callout()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%201.%20Reactive%20execution%0A%0A%20%20%20%20%20%20%20%20A%20marimo%20notebook%20is%20made%20up%20of%20small%20blocks%20of%20Python%20code%20called%0A%20%20%20%20%20%20%20%20cells.%0A%0A%20%20%20%20%20%20%20%20marimo%20reads%20your%20cells%20and%20models%20the%20dependencies%20among%20them%3A%20whenever%0A%20%20%20%20%20%20%20%20a%20cell%20that%20defines%20a%20global%20variable%20%20is%20run%2C%20marimo%0A%20%20%20%20%20%20%20%20**automatically%20runs**%20all%20cells%20that%20reference%20that%20variable.%0A%0A%20%20%20%20%20%20%20%20Reactivity%20keeps%20your%20program%20state%20and%20outputs%20in%20sync%20with%20your%20code%2C%0A%20%20%20%20%20%20%20%20making%20for%20a%20dynamic%20programming%20environment%20that%20prevents%20bugs%20before%20they%0A%20%20%20%20%20%20%20%20happen.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(changed%2C%20mo)%3A%0A%20%20%20%20(%0A%20%20%20%20%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20**%E2%9C%A8%20Nice!**%20The%20value%20of%20%60changed%60%20is%20now%20%7Bchanged%7D.%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20When%20you%20updated%20the%20value%20of%20the%20variable%20%60changed%60%2C%20marimo%0A%20%20%20%20%20%20%20%20%20%20%20%20**reacted**%20by%20running%20this%20cell%20automatically%2C%20because%20this%20cell%0A%20%20%20%20%20%20%20%20%20%20%20%20references%20the%20global%20variable%20%60changed%60.%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20Reactivity%20ensures%20that%20your%20notebook%20state%20is%20always%0A%20%20%20%20%20%20%20%20%20%20%20%20consistent%2C%20which%20is%20crucial%20for%20doing%20good%20science%3B%20it's%20also%20what%0A%20%20%20%20%20%20%20%20%20%20%20%20enables%20marimo%20notebooks%20to%20double%20as%20tools%20and%20%20apps.%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20if%20changed%0A%20%20%20%20%20%20%20%20else%20mo.md(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20**%F0%9F%8C%8A%20See%20it%20in%20action.**%20In%20the%20next%20cell%2C%20change%20the%20value%20of%20the%0A%20%20%20%20%20%20%20%20%20%20%20%20variable%20%20%60changed%60%20to%20%60True%60%2C%20then%20click%20the%20run%20button.%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__()%3A%0A%20%20%20%20changed%20%3D%20False%0A%20%20%20%20return%20changed%2C%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.accordion(%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Tip%3A%20execution%20order%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20The%20order%20of%20cells%20on%20the%20page%20has%20no%20bearing%20on%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20the%20order%20in%20which%20cells%20are%20executed%3A%20marimo%20knows%20that%20a%20cell%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20reading%20a%20variable%20must%20run%20after%20the%20cell%20that%20%20defines%20it.%20This%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20frees%20you%20to%20organize%20your%20code%20in%20the%20way%20that%20makes%20the%20most%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sense%20for%20you.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20**Global%20names%20must%20be%20unique.**%20To%20enable%20reactivity%2C%20marimo%20imposes%20a%0A%20%20%20%20%20%20%20%20constraint%20on%20how%20names%20appear%20in%20cells%3A%20no%20two%20cells%20may%20define%20the%20same%0A%20%20%20%20%20%20%20%20variable.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.accordion(%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Tip%3A%20encapsulation%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20By%20encapsulating%20logic%20in%20functions%2C%20classes%2C%20or%20Python%20modules%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20you%20can%20minimize%20the%20number%20of%20global%20variables%20in%20your%20notebook.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.accordion(%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Tip%3A%20private%20variables%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Variables%20prefixed%20with%20an%20underscore%20are%20%22private%22%20to%20a%20cell%2C%20so%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20they%20can%20be%20defined%20by%20multiple%20cells.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%202.%20UI%20elements%0A%0A%20%20%20%20%20%20%20%20Cells%20can%20output%20interactive%20UI%20elements.%20Interacting%20with%20a%20UI%0A%20%20%20%20%20%20%20%20element%20**automatically%20triggers%20notebook%20execution**%3A%20when%0A%20%20%20%20%20%20%20%20you%20interact%20with%20a%20UI%20element%2C%20its%20value%20is%20sent%20back%20to%20Python%2C%20and%0A%20%20%20%20%20%20%20%20every%20cell%20that%20references%20that%20element%20is%20re-run.%0A%0A%20%20%20%20%20%20%20%20marimo%20provides%20a%20library%20of%20UI%20elements%20to%20choose%20from%20under%0A%20%20%20%20%20%20%20%20%60marimo.ui%60.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%22%22%22**%F0%9F%8C%8A%20Some%20UI%20elements.**%20Try%20interacting%20with%20the%20below%20elements.%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__(mo)%3A%0A%20%20%20%20icon%20%3D%20mo.ui.dropdown(%5B%22%F0%9F%8D%83%22%2C%20%22%F0%9F%8C%8A%22%2C%20%22%E2%9C%A8%22%5D%2C%20value%3D%22%F0%9F%8D%83%22)%0A%20%20%20%20return%20icon%2C%0A%0A%0A%40app.cell%0Adef%20__(icon%2C%20mo)%3A%0A%20%20%20%20repetitions%20%3D%20mo.ui.slider(1%2C%2016%2C%20label%3Df%22number%20of%20%7Bicon.value%7D%3A%20%22)%0A%20%20%20%20return%20repetitions%2C%0A%0A%0A%40app.cell%0Adef%20__(icon%2C%20repetitions)%3A%0A%20%20%20%20icon%2C%20repetitions%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__(icon%2C%20mo%2C%20repetitions)%3A%0A%20%20%20%20mo.md(%22%23%20%22%20%2B%20icon.value%20*%20repetitions.value)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%203.%20marimo%20is%20just%20Python%0A%0A%20%20%20%20%20%20%20%20marimo%20cells%20parse%20Python%20(and%20only%20Python)%2C%20and%20marimo%20notebooks%20are%0A%20%20%20%20%20%20%20%20stored%20as%20pure%20Python%20files%20%E2%80%94%20outputs%20are%20_not_%20included.%20There's%20no%0A%20%20%20%20%20%20%20%20magical%20syntax.%0A%0A%20%20%20%20%20%20%20%20The%20Python%20files%20generated%20by%20marimo%20are%3A%0A%0A%20%20%20%20%20%20%20%20-%20easily%20versioned%20with%20git%2C%20yielding%20minimal%20diffs%0A%20%20%20%20%20%20%20%20-%20legible%20for%20both%20humans%20and%20machines%0A%20%20%20%20%20%20%20%20-%20formattable%20using%20your%20tool%20of%20choice%2C%0A%20%20%20%20%20%20%20%20-%20usable%20as%20Python%20%20scripts%2C%20with%20UI%20%20elements%20taking%20their%20default%0A%20%20%20%20%20%20%20%20values%2C%20and%0A%20%20%20%20%20%20%20%20-%20importable%20by%20other%20modules%20(more%20on%20that%20in%20the%20future).%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%204.%20Running%20notebooks%20as%20apps%0A%0A%20%20%20%20%20%20%20%20marimo%20notebooks%20can%20double%20as%20apps.%20Click%20the%20app%20window%20icon%20in%20the%0A%20%20%20%20%20%20%20%20bottom-right%20to%20see%20this%20notebook%20in%20%22app%20view.%22%0A%0A%20%20%20%20%20%20%20%20Serve%20a%20notebook%20as%20an%20app%20with%20%60marimo%20run%60%20at%20the%20command-line.%0A%20%20%20%20%20%20%20%20Of%20course%2C%20you%20can%20use%20marimo%20just%20to%20level-up%20your%0A%20%20%20%20%20%20%20%20notebooking%2C%20without%20ever%20making%20apps.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%205.%20The%20%60marimo%60%20command-line%20tool%0A%0A%20%20%20%20%20%20%20%20**Creating%20and%20editing%20notebooks.**%20Use%0A%0A%20%20%20%20%20%20%20%20%60%60%60%0A%20%20%20%20%20%20%20%20marimo%20edit%0A%20%20%20%20%20%20%20%20%60%60%60%0A%0A%20%20%20%20%20%20%20%20in%20a%20terminal%20to%20start%20the%20marimo%20notebook%20server.%20From%20here%0A%20%20%20%20%20%20%20%20you%20can%20create%20a%20new%20notebook%20or%20edit%20existing%20ones.%0A%0A%0A%20%20%20%20%20%20%20%20**Running%20as%20apps.**%20Use%0A%0A%20%20%20%20%20%20%20%20%60%60%60%0A%20%20%20%20%20%20%20%20marimo%20run%20notebook.py%0A%20%20%20%20%20%20%20%20%60%60%60%0A%0A%20%20%20%20%20%20%20%20to%20start%20a%20webserver%20that%20serves%20your%20notebook%20as%20an%20app%20in%20read-only%20mode%2C%0A%20%20%20%20%20%20%20%20with%20code%20cells%20hidden.%0A%0A%20%20%20%20%20%20%20%20**Convert%20a%20Jupyter%20notebook.**%20Convert%20a%20Jupyter%20notebook%20to%20a%20marimo%0A%20%20%20%20%20%20%20%20notebook%20using%20%60marimo%20convert%60%3A%0A%0A%20%20%20%20%20%20%20%20%60%60%60%0A%20%20%20%20%20%20%20%20marimo%20convert%20your_notebook.ipynb%20%3E%20your_app.py%0A%20%20%20%20%20%20%20%20%60%60%60%0A%0A%20%20%20%20%20%20%20%20**Tutorials.**%20marimo%20comes%20packaged%20with%20tutorials%3A%0A%0A%20%20%20%20%20%20%20%20-%20%60dataflow%60%3A%20more%20on%20marimo's%20automatic%20execution%0A%20%20%20%20%20%20%20%20-%20%60ui%60%3A%20how%20to%20use%20UI%20elements%0A%20%20%20%20%20%20%20%20-%20%60markdown%60%3A%20how%20to%20write%20markdown%2C%20with%20interpolated%20values%20and%0A%20%20%20%20%20%20%20%20%20%20%20LaTeX%0A%20%20%20%20%20%20%20%20-%20%60plots%60%3A%20how%20plotting%20works%20in%20marimo%0A%20%20%20%20%20%20%20%20-%20%60sql%60%3A%20how%20to%20use%20SQL%0A%20%20%20%20%20%20%20%20-%20%60layout%60%3A%20layout%20elements%20in%20marimo%0A%20%20%20%20%20%20%20%20-%20%60fileformat%60%3A%20how%20marimo's%20file%20format%20works%0A%20%20%20%20%20%20%20%20-%20%60markdown-format%60%3A%20for%20using%20%60.md%60%20files%20in%20marimo%0A%20%20%20%20%20%20%20%20-%20%60for-jupyter-users%60%3A%20if%20you%20are%20coming%20from%20Jupyter%0A%0A%20%20%20%20%20%20%20%20Start%20a%20tutorial%20with%20%60marimo%20tutorial%60%3B%20for%20example%2C%0A%0A%20%20%20%20%20%20%20%20%60%60%60%0A%20%20%20%20%20%20%20%20marimo%20tutorial%20dataflow%0A%20%20%20%20%20%20%20%20%60%60%60%0A%0A%20%20%20%20%20%20%20%20In%20addition%20to%20tutorials%2C%20we%20have%20examples%20in%20our%0A%20%20%20%20%20%20%20%20%5Bour%20GitHub%20repo%5D(https%3A%2F%2Fwww.github.com%2Fmarimo-team%2Fmarimo%2Ftree%2Fmain%2Fexamples).%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%206.%20The%20marimo%20editor%0A%0A%20%20%20%20%20%20%20%20Here%20are%20some%20tips%20to%20help%20you%20get%20started%20with%20the%20marimo%20editor.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20__(mo%2C%20tips)%3A%0A%20%20%20%20mo.accordion(tips)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%22%22%22%23%23%20Finally%2C%20a%20fun%20fact%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20The%20name%20%22marimo%22%20is%20a%20reference%20to%20a%20type%20of%20algae%20that%2C%20under%0A%20%20%20%20%20%20%20%20the%20right%20conditions%2C%20clumps%20together%20to%20form%20a%20small%20sphere%0A%20%20%20%20%20%20%20%20called%20a%20%22marimo%20moss%20ball%22.%20Made%20of%20just%20strands%20of%20algae%2C%20these%0A%20%20%20%20%20%20%20%20beloved%20assemblages%20are%20greater%20than%20the%20sum%20of%20their%20parts.%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20__()%3A%0A%20%20%20%20tips%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%22Saving%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20**Saving**%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20-%20_Name_%20your%20app%20using%20the%20box%20at%20the%20top%20of%20the%20screen%2C%20or%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20with%20%60Ctrl%2FCmd%2Bs%60.%20You%20can%20also%20create%20a%20named%20app%20at%20the%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20command%20line%2C%20e.g.%2C%20%60marimo%20edit%20app_name.py%60.%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20-%20_Save_%20by%20clicking%20the%20save%20icon%20on%20the%20bottom%20right%2C%20or%20by%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20inputting%20%60Ctrl%2FCmd%2Bs%60.%20By%20default%20marimo%20is%20configured%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20to%20autosave.%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%22Running%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%201.%20_Run%20a%20cell_%20by%20clicking%20the%20play%20(%20%E2%96%B7%20)%20button%20on%20the%20bottom%0A%20%20%20%20%20%20%20%20%20%20%20%20right%20of%20a%20cell%2C%20or%20by%20inputting%20%60Ctrl%2FCmd%2BEnter%60.%0A%0A%20%20%20%20%20%20%20%20%20%20%20%202.%20_Run%20a%20stale%20cell_%20%20by%20clicking%20the%20yellow%20run%20button%20to%20the%0A%20%20%20%20%20%20%20%20%20%20%20%20right%20of%20the%20cell%2C%20or%20by%20inputting%20%60Ctrl%2FCmd%2BEnter%60.%20A%20cell%20is%0A%20%20%20%20%20%20%20%20%20%20%20%20stale%20when%20its%20code%20has%20been%20modified%20but%20not%20run.%0A%0A%20%20%20%20%20%20%20%20%20%20%20%203.%20_Run%20all%20stale%20cells_%20by%20clicking%20the%20play%20(%20%E2%96%B7%20)%20button%20on%0A%20%20%20%20%20%20%20%20%20%20%20%20the%20bottom%20right%20of%20the%20screen%2C%20or%20input%20%60Ctrl%2FCmd%2BShift%2Br%60.%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%22Console%20Output%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Console%20output%20(e.g.%2C%20%60print()%60%20statements)%20is%20shown%20below%20a%0A%20%20%20%20%20%20%20%20%20%20%20%20cell.%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%22Creating%2C%20Moving%2C%20and%20Deleting%20Cells%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%201.%20_Create_%20a%20new%20cell%20above%20or%20below%20a%20given%20one%20by%20clicking%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20the%20plus%20button%20to%20the%20left%20of%20the%20cell%2C%20which%20appears%20on%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mouse%20hover.%0A%0A%20%20%20%20%20%20%20%20%20%20%20%202.%20_Move_%20a%20cell%20up%20or%20down%20by%20dragging%20on%20the%20handle%20to%20the%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20right%20of%20the%20cell%2C%20which%20appears%20on%20mouse%20hover.%0A%0A%20%20%20%20%20%20%20%20%20%20%20%203.%20_Delete_%20a%20cell%20by%20clicking%20the%20trash%20bin%20icon.%20Bring%20it%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20back%20by%20clicking%20the%20undo%20button%20on%20the%20bottom%20right%20of%20the%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20screen%2C%20or%20with%20%60Ctrl%2FCmd%2BShift%2Bz%60.%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%22Disabling%20Automatic%20Execution%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Via%20the%20notebook%20settings%20(gear%20icon)%20or%20footer%20panel%2C%20you%0A%20%20%20%20%20%20%20%20%20%20%20%20can%20disable%20automatic%20execution.%20This%20is%20helpful%20when%0A%20%20%20%20%20%20%20%20%20%20%20%20working%20with%20expensive%20notebooks%20or%20notebooks%20that%20have%0A%20%20%20%20%20%20%20%20%20%20%20%20side-effects%20like%20database%20transactions.%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%22Disabling%20Cells%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20You%20can%20disable%20a%20cell%20via%20the%20cell%20context%20menu%20(open%20it%0A%20%20%20%20%20%20%20%20%20%20%20%20by%20clicking%20the%20icon%20to%20the%20right%20of%20a%20cell).%20marimo%20will%0A%20%20%20%20%20%20%20%20%20%20%20%20never%20run%20a%20disabled%20cell%20or%20any%20cells%20that%20depend%20on%20it.%20This%0A%20%20%20%20%20%20%20%20%20%20%20%20can%20help%20prevent%20accidental%20execution%20of%20expensive%20computations%0A%20%20%20%20%20%20%20%20%20%20%20%20when%20editing%20a%20notebook.%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%22Code%20Folding%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20You%20can%20collapse%20or%20fold%20the%20code%20in%20a%20cell%20by%20clicking%20the%20arrow%0A%20%20%20%20%20%20%20%20%20%20%20%20icons%20in%20the%20line%20number%20column%20to%20the%20left%2C%20or%20by%20using%20keyboard%0A%20%20%20%20%20%20%20%20%20%20%20%20shortcuts.%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20Use%20the%20command%20palette%20(%60Ctrl%2FCmd%2Bk%60)%20or%20a%20keyboard%20shortcut%20to%0A%20%20%20%20%20%20%20%20%20%20%20%20quickly%20fold%20or%20unfold%20all%20cells.%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%22Code%20Formatting%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20If%20you%20have%20%5Bruff%5D(https%3A%2F%2Fgithub.com%2Fastral-sh%2Fruff)%20installed%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20you%20can%20format%20a%20cell%20with%20the%20keyboard%20shortcut%20%60Ctrl%2FCmd%2Bb%60.%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%22Command%20Palette%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Use%20%60Ctrl%2FCmd%2Bk%60%20to%20open%20the%20command%20palette.%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%22Keyboard%20Shortcuts%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Open%20the%20notebook%20menu%20(top-right)%20or%20input%20%60Ctrl%2FCmd%2BShift%2Bh%60%20to%0A%20%20%20%20%20%20%20%20%20%20%20%20view%20a%20list%20of%20all%20keyboard%20shortcuts.%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%22Configuration%22%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20Configure%20the%20editor%20by%20clicking%20the%20gears%20icon%20near%20the%20top-right%0A%20%20%20%20%20%20%20%20%20%20%20of%20the%20screen.%0A%20%20%20%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%7D%0A%20%20%20%20return%20tips%2C%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A