Skip to content

Miscellaneous

marimo.running_in_notebook

running_in_notebook() -> bool

Returns True if running in a marimo notebook, False otherwise

marimo.defs

defs() -> tuple[str, ...]

Get the definitions of the currently executing cell.

RETURNS DESCRIPTION
tuple[str, ...]

tuple[str, ...]: A tuple of the currently executing cell's defs.

marimo.refs

refs() -> tuple[str, ...]

Get the references of the currently executing cell.

RETURNS DESCRIPTION
tuple[str, ...]

tuple[str, ...]: A tuple of the currently executing cell's refs.

marimo.notebook_dir

notebook_dir() -> Path | None

Get the directory of the currently executing notebook.

RETURNS DESCRIPTION
Path | None

pathlib.Path | None: A pathlib.Path object representing the directory of the current notebook, or None if the notebook's directory cannot be determined.

Examples:

data_file = mo.notebook_dir() / "data" / "example.csv"
# Use the directory to read a file
if data_file.exists():
    print(f"Found data file: {data_file}")
else:
    print("No data file found")

marimo.notebook_location

notebook_location() -> Path | None

Get the location of the currently executing notebook.

In WASM, this is the URL of webpage, for example, https://my-site.com. For nested paths, this is the URL including the origin and pathname. https://<my-org>.github.io/<my-repo>/folder.

In non-WASM, this is the directory of the notebook, which is the same as mo.notebook_dir().

Examples:

In order to access data both locally and when a notebook runs via WebAssembly (e.g. hosted on GitHub Pages), you can use this approach to fetch data from the notebook's location.

import polars as pl

data_path = mo.notebook_location() / "public" / "data.csv"
df = pl.read_csv(data_path)
df.head()
RETURNS DESCRIPTION
Path | None

pathlib.Path | None: A pathlib.Path object representing the URL or directory of the current notebook, or None if the notebook's directory cannot be determined.

marimo.Thread

Thread(*args: Any, **kwargs: Any)

Bases: Thread

A Thread subclass that is aware of marimo internals.

mo.Thread has the same API as threading.Thread, but mo.Threads are able to communicate with the marimo frontend, whereas threading.Thread can't.

run

run() -> None