From 4d898177642afec09e851b484df79f7f924ca6c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Hendrik=20M=C3=BCller?= <44469195+kolibril13@users.noreply.github.com> Date: Fri, 6 Dec 2024 11:23:30 +0100 Subject: [PATCH 01/16] add md for uv install --- docs/guides/index.md | 1 + docs/guides/installation_uv.md | 93 ++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 docs/guides/installation_uv.md diff --git a/docs/guides/index.md b/docs/guides/index.md index d32a7c776e6..f8f6f563555 100644 --- a/docs/guides/index.md +++ b/docs/guides/index.md @@ -6,6 +6,7 @@ :hidden: overview + installation_uv reactivity interactivity outputs diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md new file mode 100644 index 00000000000..0bb54bbc64e --- /dev/null +++ b/docs/guides/installation_uv.md @@ -0,0 +1,93 @@ + +# Installation with uv + +There are four methods to run a Marimo notebook using UV: +1. Within a project environment +2. Temporary installation (cached) +3. Directly from a URL +4. Using UV as a globally installed tool + + +# Project evnironment + +We recommend using marimo in a project environemnt like this: +```py +uv venv +uv pip install marimo +uv run marimo edit hi.py +``` + +Note: this venv can also be activated via `source .venv/bin/activate` and then marimo can be started via `marimo edit hi.py`, but this pattern is **not recommended**. + +For specific python versions, use `uv venv --python 3.13`. +The default python version is defined at #TODO CHECK. + +There are 3 ways to install packages. + +a) Terminal: `pip install matplotlib polars` +b) In the notebook itelf type `import polars as pd` and a installation guide will pop up. +c) Go to the packages tab, and select the package. + +#Todo: screen recroding of packages tab. + +If you want to define your project dependecies in `pyproject.toml`, you can make the follwoing workflow: + +``` +uv init (this will create a pyproject.toml file) +uv add marimo (this will add "marimo>=0.9.9" to dependencies in pyproject.toml) +uv run marimo edit hi.py +``` + +# Temporary installation +This won't create a virtual environment folder in your working direory. +Instead, uv will cache all dependencies, make a temporary venv in your system, which will be destoyed after exiting the process. + +` +uv tool run marimo edit hi.py +` +this line is 100% identical to +` +uvx marimo edit hi.py +` + + + +# From URL + +This pattern will run marimo from a URL. + + +With uv run URL + +What is the word + +I'm looking for a word to describe this kind of code pattern. +`pip install +I can run a script like this +uv run https://gist.githubusercontent.com/kolibril13/f4597c16452b4b72965c8d20fe6c0978/raw/a7757d3f206d467f6e76eeea621e64b0cb92530c/benchmark.py +``` + + +# globally installed tool + +This is not recommended, as dependencies will be installed globally as well. #TODO:FactCheck + +``` +uv tool install marimo +``` + +Use a **specific python version** (this will overwrite the previous global installation): + +``` +UV_PYTHON=python3.11 uv tool install marimo +``` + +**Update** global version of marimo: +``` +uv tool install marimo --upgrade. +``` + +**Uninstall** +``` +uv tool install marimo +``` \ No newline at end of file From d0e7dcc06d05305985694d31cee3f79d87f99d61 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 6 Dec 2024 10:56:20 +0000 Subject: [PATCH 02/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/guides/installation_uv.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index 0bb54bbc64e..3afc3772b6c 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -10,7 +10,7 @@ There are four methods to run a Marimo notebook using UV: # Project evnironment -We recommend using marimo in a project environemnt like this: +We recommend using marimo in a project environment like this: ```py uv venv uv pip install marimo @@ -25,12 +25,12 @@ The default python version is defined at #TODO CHECK. There are 3 ways to install packages. a) Terminal: `pip install matplotlib polars` -b) In the notebook itelf type `import polars as pd` and a installation guide will pop up. +b) In the notebook itself type `import polars as pd` and a installation guide will pop up. c) Go to the packages tab, and select the package. #Todo: screen recroding of packages tab. -If you want to define your project dependecies in `pyproject.toml`, you can make the follwoing workflow: +If you want to define your project dependencies in `pyproject.toml`, you can make the following workflow: ``` uv init (this will create a pyproject.toml file) @@ -40,7 +40,7 @@ uv run marimo edit hi.py # Temporary installation This won't create a virtual environment folder in your working direory. -Instead, uv will cache all dependencies, make a temporary venv in your system, which will be destoyed after exiting the process. +Instead, uv will cache all dependencies, make a temporary venv in your system, which will be destroyed after exiting the process. ` uv tool run marimo edit hi.py From a89884817cf21162d9cb4556f12357b94d2c88cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Hendrik=20M=C3=BCller?= <44469195+kolibril13@users.noreply.github.com> Date: Fri, 6 Dec 2024 13:10:34 +0100 Subject: [PATCH 03/16] tweaks --- docs/_static/image-1.png | Bin 0 -> 68760 bytes docs/_static/image.png | Bin 0 -> 64326 bytes docs/guides/installation_uv.md | 119 +++++++++++++++++++++++++-------- 3 files changed, 91 insertions(+), 28 deletions(-) create mode 100644 docs/_static/image-1.png create mode 100644 docs/_static/image.png diff --git a/docs/_static/image-1.png b/docs/_static/image-1.png new file mode 100644 index 0000000000000000000000000000000000000000..af67ee19115b9d295f8bf44987d34e17988cef62 GIT binary patch literal 68760 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 ScXtH9yk5wv$W%xh1^gf8jJ=2e literal 0 HcmV?d00001 diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index 3afc3772b6c..f2442135960 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -1,58 +1,121 @@ -# Installation with uv +# Running Marimo with `uv` -There are four methods to run a Marimo notebook using UV: -1. Within a project environment -2. Temporary installation (cached) -3. Directly from a URL -4. Using UV as a globally installed tool +You can run a Marimo notebook using `uv` through one of the following methods: +1. **Within a project environment** +2. **Temporary installation (cached)** +3. **Directly from a URL** +4. **Using `uv` as a globally installed tool** -# Project evnironment +--- -We recommend using marimo in a project environment like this: -```py +## Running in a Project Environment + +We recommend running Marimo within a project-specific environment. +Here's how you can set it up: + +```bash uv venv uv pip install marimo uv run marimo edit hi.py ``` -Note: this venv can also be activated via `source .venv/bin/activate` and then marimo can be started via `marimo edit hi.py`, but this pattern is **not recommended**. +The `uv run` command provides the simplest way to access the virtual environment. -For specific python versions, use `uv venv --python 3.13`. -The default python version is defined at #TODO CHECK. +However, if you prefer to activate it manually, you can do so with the following commands: -There are 3 ways to install packages. +```bash +source .venv/bin/activate +marimo edit hi.py +``` -a) Terminal: `pip install matplotlib polars` -b) In the notebook itself type `import polars as pd` and a installation guide will pop up. -c) Go to the packages tab, and select the package. +--- +### Using Specific Python Versions -#Todo: screen recroding of packages tab. +To specify a Python version, add the `--python` option while creating the venv. For example: -If you want to define your project dependencies in `pyproject.toml`, you can make the following workflow: +```bash +uv venv --python 3.13 +``` +```{admonition} Tip +:class: tip + +uv will automatically fetch Python versions as needed — you don't need to install Python to get started. ``` -uv init (this will create a pyproject.toml file) -uv add marimo (this will add "marimo>=0.9.9" to dependencies in pyproject.toml) -uv run marimo edit hi.py + + + +If no version is specified, the default Python version is used (currently: **[TODO: Specify default Python version]**). + +--- + +### Installing Packages + +There are three ways to install additional packages: + +1. **Via Terminal** + Run the following command: + ```bash + uv pip install matplotlib polars + ``` + +2. **Within the Notebook** + Type `import polars as pd`. Run the cell, and a "Missing package" pop up window will appear. + +

+
+ +
+Screenshot demonstrating the "Missing package" window. +
+
+
+ + +1. **Using the Packages Tab** + Navigate to the "Packages" tab and select the desired package. + +
+
+ +
+Screenshot demonstrating the "Packages" tab. +
+
+
+ + +### Defining Dependencies with `pyproject.toml` + +A pyproject.toml file makes it easier to manage your project’s dependencies in one place. Using the uv tool, you can quickly set up and customize your project’s environment + +```bash +uv init # Creates a pyproject.toml file +uv add marimo # Adds "marimo>=0.9.31" to dependencies +uv run marimo edit hi.py ``` -# Temporary installation + +### Reading a `pyproject.toml` from an already exisiing project. + + +## Temporary installation This won't create a virtual environment folder in your working direory. Instead, uv will cache all dependencies, make a temporary venv in your system, which will be destroyed after exiting the process. -` +```bash uv tool run marimo edit hi.py -` +``` this line is 100% identical to -` +```bash uvx marimo edit hi.py -` - +``` +(`uvx` is an alias for `uv tool run`) -# From URL +## From URL This pattern will run marimo from a URL. From 47269a8f3fa6840e90e6d60e98041efb97e5a5c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Hendrik=20M=C3=BCller?= <44469195+kolibril13@users.noreply.github.com> Date: Fri, 6 Dec 2024 13:47:34 +0100 Subject: [PATCH 04/16] temp env --- docs/guides/installation_uv.md | 54 +++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 7 deletions(-) diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index f2442135960..0b5ecba1e9a 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -98,22 +98,62 @@ uv run marimo edit hi.py ``` -### Reading a `pyproject.toml` from an already exisiing project. - +### Reading a `pyproject.toml` from an Existing Project -## Temporary installation -This won't create a virtual environment folder in your working direory. -Instead, uv will cache all dependencies, make a temporary venv in your system, which will be destroyed after exiting the process. +If you already have a `pyproject.toml` file—for example, when cloning an existing project—you can use the `uv sync` command to synchronize and install the dependencies defined within it: + +```bash +uv sync +uv run marimo edit hi.py + +``` + + + +This command ensures that your environment matches the dependency specifications of the existing project, making it simple to get up and running without manually adding packages. + +## Temporary Installation + +When you run a command with `uv tool run`, no virtual environment folder is created in your working directory. Instead, `uv` will: + +1. **Cache the dependencies or re-use already cached ones** that are specified. +2. **Create a temporary virtual environment** on your system. +3. **Remove the temporary environment** as soon as the process exits. + +This lightweight approach keeps your workspace clean while still providing an isolated, dependency-managed environment for running commands. + +For example, you can run: ```bash uv tool run marimo edit hi.py ``` -this line is 100% identical to + +To specify additional requirements, enable the `--sandbox` mode by running: + +```bash +uv tool run marimo edit hi.py --sandbox +``` +While in the notebook, you can install packages as shown earlier, either using the pop-ups or through the packages tab. However, note that adding packages via the terminal is not supported in this mode. #TODO: fact check this. + +And the special thing: The notebook is now **fully self-contained** and can be reproduced by anyone. +THis is because the following package metadata was added to the notebook accroding to (PEP 723 – Inline script metadata)[https://peps.python.org/pep-0723/] + + +```python +# /// script +# requires-python = ">=3.11" +# dependencies = [ +# "polars==1.16.0", +# ] +# /// +``` + + ```bash uvx marimo edit hi.py ``` -(`uvx` is an alias for `uv tool run`) +Here, `uvx` is simply an alias for `uv tool run`. ## From URL From 9c492f5136a42ecb35f08575bbfb1b7982b1123a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 6 Dec 2024 12:47:53 +0000 Subject: [PATCH 05/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/guides/installation_uv.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index 0b5ecba1e9a..791fc5fce43 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -136,7 +136,7 @@ uv tool run marimo edit hi.py --sandbox While in the notebook, you can install packages as shown earlier, either using the pop-ups or through the packages tab. However, note that adding packages via the terminal is not supported in this mode. #TODO: fact check this. And the special thing: The notebook is now **fully self-contained** and can be reproduced by anyone. -THis is because the following package metadata was added to the notebook accroding to (PEP 723 – Inline script metadata)[https://peps.python.org/pep-0723/] +THis is because the following package metadata was added to the notebook according to (PEP 723 – Inline script metadata)[https://peps.python.org/pep-0723/] ```python From 7e63d339ee6c066316c02230fc1aeb813e7487c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Hendrik=20M=C3=BCller?= <44469195+kolibril13@users.noreply.github.com> Date: Fri, 6 Dec 2024 14:06:47 +0100 Subject: [PATCH 06/16] Fully Self-Contained Notebooks --- docs/guides/installation_uv.md | 53 +++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 11 deletions(-) diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index 791fc5fce43..c0713830640 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -89,7 +89,7 @@ Screenshot demonstrating the "Packages" tab. ### Defining Dependencies with `pyproject.toml` -A pyproject.toml file makes it easier to manage your project’s dependencies in one place. Using the uv tool, you can quickly set up and customize your project’s environment +A pyproject.toml file makes it easier to manage your project’s dependencies in one place. Using `uv`, you can quickly set up and customize your project’s environment ```bash uv init # Creates a pyproject.toml file @@ -114,11 +114,11 @@ This command ensures that your environment matches the dependency specifications ## Temporary Installation -When you run a command with `uv tool run`, no virtual environment folder is created in your working directory. Instead, `uv` will: +When you run a command with `uv tool run`, no virtual environment folder is created in your working directory. Instead, `uv` performs the following actions: -1. **Cache the dependencies or re-use already cached ones** that are specified. -2. **Create a temporary virtual environment** on your system. -3. **Remove the temporary environment** as soon as the process exits. +1. **Caches dependencies or reuses existing cached ones** as specified in the marimo notebook metadata. +2. **Creates a temporary virtual environment** on your system. +3. **Removes the temporary environment** immediately after the process exits. This lightweight approach keeps your workspace clean while still providing an isolated, dependency-managed environment for running commands. @@ -128,16 +128,21 @@ For example, you can run: uv tool run marimo edit hi.py ``` -To specify additional requirements, enable the `--sandbox` mode by running: +### Specifying Additional Requirements + +To include additional dependencies, use the `--sandbox` option: ```bash uv tool run marimo edit hi.py --sandbox ``` -While in the notebook, you can install packages as shown earlier, either using the pop-ups or through the packages tab. However, note that adding packages via the terminal is not supported in this mode. #TODO: fact check this. -And the special thing: The notebook is now **fully self-contained** and can be reproduced by anyone. -THis is because the following package metadata was added to the notebook according to (PEP 723 – Inline script metadata)[https://peps.python.org/pep-0723/] +While working in the notebook, packages can be installed as described earlier, either through pop-ups or via the packages tab. However, **adding packages via the terminal is not supported in this mode**. *( #TODO Fact-check pending.)* + +--- +### Fully Self-Contained Notebooks + +A unique feature of this setup is that the notebook becomes **fully self-contained** and reproducible by anyone. This is achieved by embedding package metadata directly in the notebook, following the guidelines of [PEP 723 – Inline Script Metadata](https://peps.python.org/pep-0723/). If you open the notebook in a plain text editor, you’ll see the following metadata embedded inside: *(#TODO: Replace this with a screenshot from the text editor.)* ```python # /// script @@ -146,14 +151,40 @@ THis is because the following package metadata was added to the notebook accordi # "polars==1.16.0", # ] # /// + +import marimo + +__generated_with = "0.9.31" +app = marimo.App(width="medium") + + +@app.cell +def __(): + import polars + return (polars,) ``` +After closing the session, all dependencies will be cleard. +Running this line will reconstruct the session: +```bash +uv tool run marimo edit hi.py --sandbox +``` +Marimo will auto-detect that dependencies were added in sandbox mode, so you can also just run ```bash -uvx marimo edit hi.py +uv tool run marimo edit hi.py +``` +and the marimo cli will ask you: +`Run in a sandboxed venv containing this notebook's dependencies?` + +This can become even easier. `uvx` is an alias for `uv tool run`. +Therefore, the two below lines are the same +``` +uv tool run marimo edit hi.py +uvx run marimo edit hi.py + ``` -Here, `uvx` is simply an alias for `uv tool run`. ## From URL From 3a7a71cdb1d639fe08e258875542a39b6ac49d5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Hendrik=20M=C3=BCller?= <44469195+kolibril13@users.noreply.github.com> Date: Fri, 6 Dec 2024 14:17:09 +0100 Subject: [PATCH 07/16] another ntoe --- docs/guides/installation_uv.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index c0713830640..9438bb49b9f 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -127,6 +127,8 @@ For example, you can run: ```bash uv tool run marimo edit hi.py ``` +You can install packages during the session, however the packge information will be lost after ther session is closes. +That's where the notebook metadata comes in, and here's how to use it! ### Specifying Additional Requirements @@ -181,7 +183,7 @@ This can become even easier. `uvx` is an alias for `uv tool run`. Therefore, the two below lines are the same ``` uv tool run marimo edit hi.py -uvx run marimo edit hi.py +uvx marimo edit hi.py ``` From f75303c8f27b7e07cdd2aad58c58f22c07bff460 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 6 Dec 2024 13:17:27 +0000 Subject: [PATCH 08/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/guides/installation_uv.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index 9438bb49b9f..d3e3b727557 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -127,7 +127,7 @@ For example, you can run: ```bash uv tool run marimo edit hi.py ``` -You can install packages during the session, however the packge information will be lost after ther session is closes. +You can install packages during the session, however the package information will be lost after ther session is closes. That's where the notebook metadata comes in, and here's how to use it! ### Specifying Additional Requirements From 9a220a22ab008b6dc92cc625bde0888d0e8bde3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Hendrik=20M=C3=BCller?= <44469195+kolibril13@users.noreply.github.com> Date: Fri, 6 Dec 2024 14:43:56 +0100 Subject: [PATCH 09/16] tweaks --- docs/guides/installation_uv.md | 51 +++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index d3e3b727557..493ecc0a554 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -112,39 +112,44 @@ uv run marimo edit hi.py This command ensures that your environment matches the dependency specifications of the existing project, making it simple to get up and running without manually adding packages. + ## Temporary Installation -When you run a command with `uv tool run`, no virtual environment folder is created in your working directory. Instead, `uv` performs the following actions: +When you execute a command using `uv tool run`, no virtual environment folder is created in your working directory. Instead, `uv` takes the following steps: -1. **Caches dependencies or reuses existing cached ones** as specified in the marimo notebook metadata. +1. **Caches dependencies or reuses existing cached ones** based on the metadata in the Marimo notebook. 2. **Creates a temporary virtual environment** on your system. -3. **Removes the temporary environment** immediately after the process exits. +3. **Deletes the temporary environment** immediately after the process ends. This lightweight approach keeps your workspace clean while still providing an isolated, dependency-managed environment for running commands. -For example, you can run: +For instance, you can run: ```bash uv tool run marimo edit hi.py ``` -You can install packages during the session, however the package information will be lost after ther session is closes. -That's where the notebook metadata comes in, and here's how to use it! + +During the session, you can install additional packages, but their information will not be preserved once the session ends. This is where notebook metadata comes into play, as explained in the following section. + +--- ### Specifying Additional Requirements -To include additional dependencies, use the `--sandbox` option: +To include dependency information to the metadata, use the --sandbox option: ```bash uv tool run marimo edit hi.py --sandbox ``` -While working in the notebook, packages can be installed as described earlier, either through pop-ups or via the packages tab. However, **adding packages via the terminal is not supported in this mode**. *( #TODO Fact-check pending.)* +While working in the notebook, you can install packages through pop-ups or via the **Packages** tab. However, **adding packages through the terminal is not supported in sandbox mode.** *(#TODO: Fact-check this limitation.)* --- ### Fully Self-Contained Notebooks -A unique feature of this setup is that the notebook becomes **fully self-contained** and reproducible by anyone. This is achieved by embedding package metadata directly in the notebook, following the guidelines of [PEP 723 – Inline Script Metadata](https://peps.python.org/pep-0723/). If you open the notebook in a plain text editor, you’ll see the following metadata embedded inside: *(#TODO: Replace this with a screenshot from the text editor.)* +A unique feature of this setup is that the notebook becomes **fully self-contained** and reproducible by anyone. This is achieved by embedding package metadata directly within the notebook, following the guidelines of [PEP 723 – Inline Script Metadata](https://peps.python.org/pep-0723/). + +When opened in a plain text editor, the notebook displays the following embedded metadata: *(#TODO: Replace this example with a screenshot from a text editor.)* ```python # /// script @@ -166,28 +171,36 @@ def __(): return (polars,) ``` -After closing the session, all dependencies will be cleard. -Running this line will reconstruct the session: +Once the session ends, the venv is cleared. +To reconstruct the session, simply run: + ```bash uv tool run marimo edit hi.py --sandbox ``` -Marimo will auto-detect that dependencies were added in sandbox mode, so you can also just run +Marimo detects the embedded dependencies in sandbox mode, so you can also use: + ```bash uv tool run marimo edit hi.py ``` -and the marimo cli will ask you: -`Run in a sandboxed venv containing this notebook's dependencies?` -This can become even easier. `uvx` is an alias for `uv tool run`. -Therefore, the two below lines are the same -``` -uv tool run marimo edit hi.py -uvx marimo edit hi.py +In this case, the Marimo CLI will show: +```bash +Run in a sandboxed venv containing this notebook's dependencies? +[Y/n] ``` +--- + +### Simplifying with `uvx` + +For convenience, `uvx` is a shorthand for `uv tool run`. These two commands are equivalent: +```bash +uv tool run marimo edit hi.py +uvx marimo edit hi.py +``` ## From URL This pattern will run marimo from a URL. From edde7cc07ffa6332b0b55e2a5a4d3c0223f02265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Hendrik=20M=C3=BCller?= <44469195+kolibril13@users.noreply.github.com> Date: Fri, 6 Dec 2024 14:58:35 +0100 Subject: [PATCH 10/16] global --- docs/guides/installation_uv.md | 38 ++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index 493ecc0a554..47fa5e48e3a 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -214,29 +214,41 @@ I'm looking for a word to describe this kind of code pattern. `pip install I can run a script like this uv run https://gist.githubusercontent.com/kolibril13/f4597c16452b4b72965c8d20fe6c0978/raw/a7757d3f206d467f6e76eeea621e64b0cb92530c/benchmark.py -``` -# globally installed tool -This is not recommended, as dependencies will be installed globally as well. #TODO:FactCheck +# Globally Installed Tool -``` +It is generally **not recommended** to install tools globally, as dependencies will also be installed globally. *(#TODO: Fact-check this recommendation.)* + +### Installation + +To install the tool globally, use: + +```bash uv tool install marimo ``` -Use a **specific python version** (this will overwrite the previous global installation): +### Using a Specific Python Version -``` -UV_PYTHON=python3.11 uv tool install marimo -``` +To install the tool globally with a specific Python version, use the following command. This will overwrite any existing global installation: -**Update** global version of marimo: -``` -uv tool install marimo --upgrade. +```bash +UV_PYTHON=python3.11 uv tool install marimo ``` -**Uninstall** +### Updating the Global Version + +To update the global version of Marimo, run: + +```bash +uv tool install marimo --upgrade ``` -uv tool install marimo + +### Uninstallation + +To uninstall the globally installed tool, use: + +```bash +uv tool uninstall marimo ``` \ No newline at end of file From 9cf9aa2e02e8383c34de07f8e2c462d91cc09ee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Hendrik=20M=C3=BCller?= <44469195+kolibril13@users.noreply.github.com> Date: Fri, 6 Dec 2024 15:02:14 +0100 Subject: [PATCH 11/16] tweak --- docs/guides/installation_uv.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index 47fa5e48e3a..bcbae64c374 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -1,7 +1,7 @@ # Running Marimo with `uv` -You can run a Marimo notebook using `uv` through one of the following methods: +You can run a Marimo notebook using the package manager `uv` through one of the following methods: 1. **Within a project environment** 2. **Temporary installation (cached)** @@ -74,7 +74,7 @@ Screenshot demonstrating the "Missing package" window. -1. **Using the Packages Tab** +3. **Using the Packages Tab** Navigate to the "Packages" tab and select the desired package.
@@ -149,7 +149,7 @@ While working in the notebook, you can install packages through pop-ups or via t A unique feature of this setup is that the notebook becomes **fully self-contained** and reproducible by anyone. This is achieved by embedding package metadata directly within the notebook, following the guidelines of [PEP 723 – Inline Script Metadata](https://peps.python.org/pep-0723/). -When opened in a plain text editor, the notebook displays the following embedded metadata: *(#TODO: Replace this example with a screenshot from a text editor.)* +When opened in a plain text editor, the notebook displays the following embedded metadata: *(#TODO: Replace this example with a screenshot from a text editor. and add a green circle around the metadata)* ```python # /// script From ae3f42672b571e850e7ebadb8740fc6309ef8faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Hendrik=20M=C3=BCller?= <44469195+kolibril13@users.noreply.github.com> Date: Fri, 6 Dec 2024 15:05:33 +0100 Subject: [PATCH 12/16] Tweak --- docs/guides/installation_uv.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index bcbae64c374..31f6bd44796 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -135,6 +135,9 @@ During the session, you can install additional packages, but their information w ### Specifying Additional Requirements + +#Todo: check how similar this is to https://docs.marimo.io/guides/editor_features/package_management.html#package-management + To include dependency information to the metadata, use the --sandbox option: ```bash From 51c2b95d6389d391d5b83cfd1c42c071458b3e1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Hendrik=20M=C3=BCller?= <44469195+kolibril13@users.noreply.github.com> Date: Fri, 6 Dec 2024 16:38:35 +0100 Subject: [PATCH 13/16] url secion --- docs/guides/installation_uv.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index 31f6bd44796..7cf7ba643fd 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -6,7 +6,7 @@ You can run a Marimo notebook using the package manager `uv` through one of the 1. **Within a project environment** 2. **Temporary installation (cached)** 3. **Directly from a URL** -4. **Using `uv` as a globally installed tool** +4. **Globally Installed Tool** --- @@ -208,17 +208,19 @@ uvx marimo edit hi.py This pattern will run marimo from a URL. +uvx marimo edit --sandbox https://gist.githubusercontent.com/kolibril13/a59135dd0973b97d488ba21c650667fe/raw/5f98021b5d3c024d5827fa9464787517495178b4/marimo_minimal_numpy_example.py +``` -With uv run URL - -What is the word - -I'm looking for a word to describe this kind of code pattern. -`pip install -I can run a script like this -uv run https://gist.githubusercontent.com/kolibril13/f4597c16452b4b72965c8d20fe6c0978/raw/a7757d3f206d467f6e76eeea621e64b0cb92530c/benchmark.py - +#TODO One sentence about portability. +**Note:** +1. This command will run code from a URL. Make sure you trust the source before proceeding. +2. Upon execution, you’ll be prompted: + ``` + Would you like to run it in a secure docker container? [Y/n]: + ``` + To proceed securely, ensure you have [Docker](https://www.docker.com/) installed and running, then press `Y`. +3. Include `.py` at the end of the filename *(#TODO: Fact-check if that's really the case)* # Globally Installed Tool From dd9c85f34a0f451b675139837651f94fa7c1ed1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Hendrik=20M=C3=BCller?= <44469195+kolibril13@users.noreply.github.com> Date: Fri, 6 Dec 2024 16:53:50 +0100 Subject: [PATCH 14/16] tweak url --- docs/guides/installation_uv.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index 7cf7ba643fd..a3039346657 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -208,6 +208,7 @@ uvx marimo edit hi.py This pattern will run marimo from a URL. +``` uvx marimo edit --sandbox https://gist.githubusercontent.com/kolibril13/a59135dd0973b97d488ba21c650667fe/raw/5f98021b5d3c024d5827fa9464787517495178b4/marimo_minimal_numpy_example.py ``` From 9896b584431be720a7480b60945636ebd14b437f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Hendrik=20M=C3=BCller?= <44469195+kolibril13@users.noreply.github.com> Date: Sat, 7 Dec 2024 21:24:10 +0100 Subject: [PATCH 15/16] better whitespace, marimo in lowercase, uvx adjustment --- docs/guides/installation_uv.md | 68 ++++++++++++---------------------- 1 file changed, 24 insertions(+), 44 deletions(-) diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index a3039346657..a7606aa9173 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -1,18 +1,17 @@ +# Running marimo with `uv` -# Running Marimo with `uv` +You can run a marimo notebook using the package manager `uv` through one of the following methods: -You can run a Marimo notebook using the package manager `uv` through one of the following methods: - -1. **Within a project environment** -2. **Temporary installation (cached)** -3. **Directly from a URL** +1. **Within a project environment** +2. **Temporary installation (cached)** +3. **Directly from a URL** 4. **Globally Installed Tool** --- ## Running in a Project Environment -We recommend running Marimo within a project-specific environment. +We recommend running marimo within a project-specific environment. Here's how you can set it up: ```bash @@ -21,16 +20,17 @@ uv pip install marimo uv run marimo edit hi.py ``` -The `uv run` command provides the simplest way to access the virtual environment. +The `uv run` command provides the simplest way to access the virtual environment. However, if you prefer to activate it manually, you can do so with the following commands: ```bash source .venv/bin/activate marimo edit hi.py -``` +``` --- + ### Using Specific Python Versions To specify a Python version, add the `--python` option while creating the venv. For example: @@ -44,8 +44,8 @@ uv venv --python 3.13 uv will automatically fetch Python versions as needed — you don't need to install Python to get started. ``` - + If no version is specified, the default Python version is used (currently: **[TODO: Specify default Python version]**). @@ -56,7 +56,8 @@ If no version is specified, the default Python version is used (currently: **[TO There are three ways to install additional packages: 1. **Via Terminal** - Run the following command: + Run the following command: + ```bash uv pip install matplotlib polars ``` @@ -73,7 +74,6 @@ Screenshot demonstrating the "Missing package" window.
- 3. **Using the Packages Tab** Navigate to the "Packages" tab and select the desired package. @@ -86,7 +86,6 @@ Screenshot demonstrating the "Packages" tab. - ### Defining Dependencies with `pyproject.toml` A pyproject.toml file makes it easier to manage your project’s dependencies in one place. Using `uv`, you can quickly set up and customize your project’s environment @@ -97,7 +96,6 @@ uv add marimo # Adds "marimo>=0.9.31" to dependencies uv run marimo edit hi.py ``` - ### Reading a `pyproject.toml` from an Existing Project If you already have a `pyproject.toml` file—for example, when cloning an existing project—you can use the `uv sync` command to synchronize and install the dependencies defined within it: @@ -108,16 +106,13 @@ uv run marimo edit hi.py ``` - - -This command ensures that your environment matches the dependency specifications of the existing project, making it simple to get up and running without manually adding packages. - +This command ensures that your environment matches the dependency specifications of the existing project, making it simple to get up and running without manually adding packages. ## Temporary Installation When you execute a command using `uv tool run`, no virtual environment folder is created in your working directory. Instead, `uv` takes the following steps: -1. **Caches dependencies or reuses existing cached ones** based on the metadata in the Marimo notebook. +1. **Caches dependencies or reuses existing cached ones** based on the metadata in the marimo notebook. 2. **Creates a temporary virtual environment** on your system. 3. **Deletes the temporary environment** immediately after the process ends. @@ -135,7 +130,6 @@ During the session, you can install additional packages, but their information w ### Specifying Additional Requirements - #Todo: check how similar this is to https://docs.marimo.io/guides/editor_features/package_management.html#package-management To include dependency information to the metadata, use the --sandbox option: @@ -144,15 +138,15 @@ To include dependency information to the metadata, use the --sandbox option: uv tool run marimo edit hi.py --sandbox ``` -While working in the notebook, you can install packages through pop-ups or via the **Packages** tab. However, **adding packages through the terminal is not supported in sandbox mode.** *(#TODO: Fact-check this limitation.)* +While working in the notebook, you can install packages through pop-ups or via the **Packages** tab. However, **adding packages through the terminal is not supported in sandbox mode.** _(#TODO: Fact-check this limitation.)_ --- ### Fully Self-Contained Notebooks -A unique feature of this setup is that the notebook becomes **fully self-contained** and reproducible by anyone. This is achieved by embedding package metadata directly within the notebook, following the guidelines of [PEP 723 – Inline Script Metadata](https://peps.python.org/pep-0723/). +A unique feature of this setup is that the notebook becomes **fully self-contained** and reproducible by anyone. This is achieved by embedding package metadata directly within the notebook, following the guidelines of [PEP 723 – Inline Script Metadata](https://peps.python.org/pep-0723/). -When opened in a plain text editor, the notebook displays the following embedded metadata: *(#TODO: Replace this example with a screenshot from a text editor. and add a green circle around the metadata)* +When opened in a plain text editor, the notebook displays the following embedded metadata: _(#TODO: Replace this example with a screenshot from a text editor. and add a green circle around the metadata)_ ```python # /// script @@ -181,29 +175,14 @@ To reconstruct the session, simply run: uv tool run marimo edit hi.py --sandbox ``` -Marimo detects the embedded dependencies in sandbox mode, so you can also use: -```bash -uv tool run marimo edit hi.py -``` -In this case, the Marimo CLI will show: -```bash -Run in a sandboxed venv containing this notebook's dependencies? -[Y/n] +Using [`uvx`](https://docs.astral.sh/uv/#tool-management)(an alias for `uv tool run`), you can also run ``` - ---- - -### Simplifying with `uvx` - -For convenience, `uvx` is a shorthand for `uv tool run`. These two commands are equivalent: - -```bash -uv tool run marimo edit hi.py uvx marimo edit hi.py ``` + ## From URL This pattern will run marimo from a URL. @@ -215,17 +194,18 @@ uvx marimo edit --sandbox https://gist.githubusercontent.com/kolibril13/a59135dd #TODO One sentence about portability. **Note:** + 1. This command will run code from a URL. Make sure you trust the source before proceeding. 2. Upon execution, you’ll be prompted: ``` Would you like to run it in a secure docker container? [Y/n]: ``` To proceed securely, ensure you have [Docker](https://www.docker.com/) installed and running, then press `Y`. -3. Include `.py` at the end of the filename *(#TODO: Fact-check if that's really the case)* +3. Include `.py` at the end of the filename _(#TODO: Fact-check if that's really the case)_ # Globally Installed Tool -It is generally **not recommended** to install tools globally, as dependencies will also be installed globally. *(#TODO: Fact-check this recommendation.)* +It is generally **not recommended** to install tools globally, as dependencies will also be installed globally. _(#TODO: Fact-check this recommendation.)_ ### Installation @@ -245,7 +225,7 @@ UV_PYTHON=python3.11 uv tool install marimo ### Updating the Global Version -To update the global version of Marimo, run: +To update the global version of marimo, run: ```bash uv tool install marimo --upgrade @@ -257,4 +237,4 @@ To uninstall the globally installed tool, use: ```bash uv tool uninstall marimo -``` \ No newline at end of file +``` From 3d16d16edb69867c4c41772ce3dca7599ae4bb7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Hendrik=20M=C3=BCller?= <44469195+kolibril13@users.noreply.github.com> Date: Sat, 7 Dec 2024 21:26:54 +0100 Subject: [PATCH 16/16] better names for images --- .../{image-1.png => docs-add-package_tab.png} | Bin .../{image.png => docs-missing-package-popup.png} | Bin docs/guides/installation_uv.md | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) rename docs/_static/{image-1.png => docs-add-package_tab.png} (100%) rename docs/_static/{image.png => docs-missing-package-popup.png} (100%) diff --git a/docs/_static/image-1.png b/docs/_static/docs-add-package_tab.png similarity index 100% rename from docs/_static/image-1.png rename to docs/_static/docs-add-package_tab.png diff --git a/docs/_static/image.png b/docs/_static/docs-missing-package-popup.png similarity index 100% rename from docs/_static/image.png rename to docs/_static/docs-missing-package-popup.png diff --git a/docs/guides/installation_uv.md b/docs/guides/installation_uv.md index a7606aa9173..cc7805b1eb8 100644 --- a/docs/guides/installation_uv.md +++ b/docs/guides/installation_uv.md @@ -67,7 +67,7 @@ There are three ways to install additional packages:
- +
Screenshot demonstrating the "Missing package" window.
@@ -79,7 +79,7 @@ Screenshot demonstrating the "Missing package" window.
- +
Screenshot demonstrating the "Packages" tab.