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() -> PurePath | 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(str(data_path))
df.head()
RETURNS DESCRIPTION
PurePath | None

Path | None: A 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.

Currently, threads can append to a cell's output using mo.output.append, but messages written to stdout and stderr won't be forwarded to the frontend.

run

run() -> None