Skip to content

Tables

rerun.blueprint.table

Configure catalog table layouts, columns, and segment previews.

⚠️ The rerun.blueprint.table namespace is unstable and may change significantly.

CardLayout dataclass

Display table records as cards.

PARAMETER DESCRIPTION
title

Physical Arrow column name to use for card titles. If unset or not found in the table, uses the first visible string field.

TYPE: str | None DEFAULT: None

link

Physical Arrow column name containing the target to open when a card is activated. If unset or not found in the table, uses the first visible field with a PreviewCell.

TYPE: str | None DEFAULT: None

fields

Fields to configure, in display order, with each source listed at most once. Listed fields are visible unless visible=False; unlisted fields are hidden. At most one visible FlagCell is allowed; it appears in the card header rather than the labeled-field list.

TYPE: Sequence[Column] DEFAULT: ()

Column dataclass

Configure a source column's appearance and behavior in one layout.

PARAMETER DESCRIPTION
source

Physical Arrow column name, not a display label.

TYPE: str

name

Display label, overriding column_display_mode. If unset, the label is derived from source.

TYPE: str | None DEFAULT: None

editable

Allow editing; disabled by default. Requires write permission on a remote table with a column marked by rerun:is_table_index metadata. Only boolean values rendered with FlagCell support editing.

TYPE: bool | None DEFAULT: None

cell

Cell renderer. If unset, the Viewer infers it from the component or Arrow datatype.

TYPE: LinkCell | ThumbnailCell | FlagCell | EntryKindCell | PreviewCell | None DEFAULT: None

visible

Override visibility in this layout. Configured columns are visible by default. Set to False to hide a column while retaining its configuration and position.

TYPE: bool | None DEFAULT: None

EntryKindCell dataclass

Bases: _Cell

Render an integer as a human-readable Rerun entry kind.

Filter dataclass

A SQL expression that selects the rows of a table.

Build filters for one column with col, which writes the SQL the Viewer shows as an editable filter in the filter bar. Any other SQL expression also filters the table, and the Viewer shows it as SQL text.

A filter has no truth value, so not, and and or raise a TypeError.

PARAMETER DESCRIPTION
sql

A SQL expression that evaluates to a boolean, in the generic SQL dialect of DataFusion. Column names are double-quoted, e.g. "task" ILIKE '%pick%'. Functions that combine rows, such as sum or count, are not allowed.

TYPE: str

FilterColumn

Bases: _ValueFilters

The column a Filter applies to.

Create it with col.

Comparisons such as col("score") >= 3 and the methods of this class return a Filter. Every filter is one the Viewer shows as an editable filter in its filter bar, when the column has the type the filter is for:

The negated filters select the rows where the filter is false or null.

col doesn't know the type of the column, so nothing stops a filter for another type, such as col("score").str.contains("1") on a number column, or col("tags") >= 3 on a list column. The Viewer shows such a filter as SQL text. If the SQL doesn't work on the column, the Viewer shows the error on that filter and doesn't apply it.

For a list column, use the same filters on list.

list property

The values of a list column, e.g. col("tags").list.str.contains("pick").

str property

The filters of a string column, e.g. col("task").str.contains("pick").

after
def after(timestamp: datetime) -> Filter

Select rows with a timestamp at or after timestamp.

A datetime without a time zone is in UTC.

before
def before(timestamp: datetime) -> Filter

Select rows with a timestamp before timestamp.

A datetime without a time zone is in UTC.

between
def between(start: datetime, end: datetime) -> Filter

Select rows with a timestamp at or after start and before end.

A datetime without a time zone is in UTC.

eq
def eq(value: Number) -> Filter

Select rows where the value equals value. Same as col(…) == value.

ge
def ge(value: Number) -> Filter

Select rows where the value is at least value. Same as col(…) >= value.

gt
def gt(value: Number) -> Filter

Select rows where the value is greater than value. Same as col(…) > value.

is_false
def is_false() -> Filter

Select rows where the value is false.

is_not_false
def is_not_false() -> Filter

Select rows where the value is true or null.

is_not_null
def is_not_null() -> Filter

Select rows where the value is not null.

For a list column, this selects non-empty lists without nulls.

is_not_true
def is_not_true() -> Filter

Select rows where the value is false or null.

is_null
def is_null() -> Filter

Select rows where the value is null.

For a list column, this selects null rows, empty lists, and lists that contain a null.

is_true
def is_true() -> Filter

Select rows where the value is true.

last_24_hours
def last_24_hours() -> Filter

Select rows with a timestamp in the last 24 hours.

last_week
def last_week() -> Filter

Select rows with a timestamp last week, in the time zone of the Viewer's query session.

le
def le(value: Number) -> Filter

Select rows where the value is at most value. Same as col(…) <= value.

lt
def lt(value: Number) -> Filter

Select rows where the value is less than value. Same as col(…) < value.

ne
def ne(value: Number) -> Filter

Select rows where the value is not value, or is null. Same as col(…) != value.

not_between
def not_between(start: datetime, end: datetime) -> Filter

Select rows the between filter does not select.

not_last_24_hours
def not_last_24_hours() -> Filter

Select rows the last_24_hours filter does not select.

not_last_week
def not_last_week() -> Filter

Select rows the last_week filter does not select.

not_this_week
def not_this_week() -> Filter

Select rows the this_week filter does not select.

not_today
def not_today() -> Filter

Select rows the today filter does not select.

not_yesterday
def not_yesterday() -> Filter

Select rows the yesterday filter does not select.

this_week
def this_week() -> Filter

Select rows with a timestamp this week, in the time zone of the Viewer's query session.

today
def today() -> Filter

Select rows with a timestamp today, in the time zone of the Viewer's query session.

yesterday
def yesterday() -> Filter

Select rows with a timestamp yesterday, in the time zone of the Viewer's query session.

FlagCell dataclass

Bases: _Cell

Render a boolean as a flag.

Editable columns currently require this renderer.

LinkCell dataclass

Bases: _Cell

Render a Rerun URI as an interactive link.

ListFilters

Bases: _ValueFilters

The filters of a list column.

Get them with FilterColumn.list, e.g. col("scores").list >= 3 or col("tags").list.str.contains("pick"). They are the filters of FilterColumn, and a row is selected when the filter holds for any value of its list. The negated filters, such as ne, select the rows where no value matches.

str property

The filters of a string column, e.g. col("task").str.contains("pick").

after
def after(timestamp: datetime) -> Filter

Select rows with a timestamp at or after timestamp.

A datetime without a time zone is in UTC.

before
def before(timestamp: datetime) -> Filter

Select rows with a timestamp before timestamp.

A datetime without a time zone is in UTC.

between
def between(start: datetime, end: datetime) -> Filter

Select rows with a timestamp at or after start and before end.

A datetime without a time zone is in UTC.

eq
def eq(value: Number) -> Filter

Select rows where the value equals value. Same as col(…) == value.

ge
def ge(value: Number) -> Filter

Select rows where the value is at least value. Same as col(…) >= value.

gt
def gt(value: Number) -> Filter

Select rows where the value is greater than value. Same as col(…) > value.

is_false
def is_false() -> Filter

Select rows where the value is false.

is_not_false
def is_not_false() -> Filter

Select rows where the value is true or null.

is_not_null
def is_not_null() -> Filter

Select rows where the value is not null.

For a list column, this selects non-empty lists without nulls.

is_not_true
def is_not_true() -> Filter

Select rows where the value is false or null.

is_null
def is_null() -> Filter

Select rows where the value is null.

For a list column, this selects null rows, empty lists, and lists that contain a null.

is_true
def is_true() -> Filter

Select rows where the value is true.

last_24_hours
def last_24_hours() -> Filter

Select rows with a timestamp in the last 24 hours.

last_week
def last_week() -> Filter

Select rows with a timestamp last week, in the time zone of the Viewer's query session.

le
def le(value: Number) -> Filter

Select rows where the value is at most value. Same as col(…) <= value.

lt
def lt(value: Number) -> Filter

Select rows where the value is less than value. Same as col(…) < value.

ne
def ne(value: Number) -> Filter

Select rows where the value is not value, or is null. Same as col(…) != value.

not_between
def not_between(start: datetime, end: datetime) -> Filter

Select rows the between filter does not select.

not_last_24_hours
def not_last_24_hours() -> Filter

Select rows the last_24_hours filter does not select.

not_last_week
def not_last_week() -> Filter

Select rows the last_week filter does not select.

not_this_week
def not_this_week() -> Filter

Select rows the this_week filter does not select.

not_today
def not_today() -> Filter

Select rows the today filter does not select.

not_yesterday
def not_yesterday() -> Filter

Select rows the yesterday filter does not select.

this_week
def this_week() -> Filter

Select rows with a timestamp this week, in the time zone of the Viewer's query session.

today
def today() -> Filter

Select rows with a timestamp today, in the time zone of the Viewer's query session.

yesterday
def yesterday() -> Filter

Select rows with a timestamp yesterday, in the time zone of the Viewer's query session.

PreviewCell dataclass

Bases: _Cell

Render a recording reference using one or more embedded views.

Preview timing is shared by all preview columns through PreviewsConfig.

PreviewsConfig

Bases: Archetype

Archetype: Shared configuration for every preview cell in a table blueprint.

This archetype is stored at the entity /table alongside archetypes.TableBlueprint.

⚠️ This type is unstable and may change significantly in a way that the data won't be backwards compatible.

__init__
def __init__(*, timeline: Utf8Like | None = None) -> None

Create a new instance of the PreviewsConfig archetype.

PARAMETER DESCRIPTION
timeline

The timeline used by every preview cell.

If left empty a timeline is automatically picked, preferring custom over built-in.

TYPE: Utf8Like | None DEFAULT: None

cleared classmethod
def cleared() -> PreviewsConfig

Clear all the fields of a PreviewsConfig.

from_fields classmethod
def from_fields(
    *,
    clear_unset: bool = False,
    timeline: Utf8Like | None = None,
) -> PreviewsConfig

Update only some specific fields of a PreviewsConfig.

PARAMETER DESCRIPTION
clear_unset

If true, all unspecified fields will be explicitly cleared.

TYPE: bool DEFAULT: False

timeline

The timeline used by every preview cell.

If left empty a timeline is automatically picked, preferring custom over built-in.

TYPE: Utf8Like | None DEFAULT: None

SortBy

Encoding: The column and direction a table's rows are sorted by.

⚠️ This type is unstable and may change significantly in a way that the data won't be backwards compatible.

__init__
def __init__(
    column: Utf8Like,
    *,
    direction: SortDirectionLike | None = None,
) -> None

Create a new instance of the SortBy encoding.

PARAMETER DESCRIPTION
column

The name of the column the rows are sorted by.

Same semantics as components.ColumnName.

TYPE: Utf8Like

direction

The direction the rows are sorted in.

If not set, the viewer sorts ascending.

TYPE: SortDirectionLike | None DEFAULT: None

StringFilters

The filters of a string column.

Get them with FilterColumn.str, e.g. col("task").str.contains("pick"). The text is matched as plain text, ignoring case, not as a regular expression.

contains
def contains(text: str) -> Filter

Select rows where the value contains text, ignoring case.

does_not_contain
def does_not_contain(text: str) -> Filter

Select rows where the value does not contain text, ignoring case, or is null.

For a list column, this selects rows where no value of the list contains text.

ends_with
def ends_with(text: str) -> Filter

Select rows where the value ends with text, ignoring case.

starts_with
def starts_with(text: str) -> Filter

Select rows where the value starts with text, ignoring case.

TableBlueprint dataclass

Configure layouts and segment previews for a catalog table.

This configures a table, not a Viewer viewport Blueprint. Save it as an .rbl file and register its server-accessible URI with TableEntry.register_blueprint(uri) or DatasetEntry.register_blueprint(uri, segment_table=True). See Configure table layouts and segment previews for the full workflow.

PARAMETER DESCRIPTION
table_layout

Row-and-column layout, available by default.

TYPE: TableLayout | None DEFAULT: None

card_layout

Card layout, disabled unless configured.

TYPE: CardLayout | None DEFAULT: None

default_layout

Initial layout: "table" or "cards". If unset, uses cards when configured, otherwise the table layout. "cards" requires card_layout.

TYPE: Literal['table', 'cards'] | None DEFAULT: None

column_display_mode

Column-name formatting in both layouts; defaults to compact formatting. Explicit Column.name labels take precedence.

TYPE: ColumnDisplayModeLike | None DEFAULT: None

previews_config

Timeline selection shared by every PreviewCell in both layouts. If no timeline is specified, one is picked automatically, preferring custom over built-in timelines.

TYPE: PreviewsConfig | None DEFAULT: None

filters

Row filters, shared by both layouts. A row is only shown when all filters select it. Build filters for one column with col, which the Viewer shows as editable filters. Instead of a Filter, you can also provide a string with a raw SQL expression.

TYPE: Sequence[Filter | str] DEFAULT: ()

sort_by

Source column the rows are sorted by, with an optional direction. Without a direction the viewer sorts ascending. Use SortBy to set the direction. If unset, rows keep the order of the data.

TYPE: str | SortBy | None DEFAULT: None

save
def save(
    application_id: str, path: str | Path | None = None
) -> None

Save this table blueprint to an .rbl file for catalog registration.

PARAMETER DESCRIPTION
application_id

Application ID stored in the blueprint recording.

TYPE: str

path

Output file path; defaults to <application_id>.rbl.

TYPE: str | Path | None DEFAULT: None

TableLayout dataclass

Display table records as rows and columns.

PARAMETER DESCRIPTION
columns

Columns to configure, in display order, with each source listed at most once. Listed columns appear first and are visible unless visible=False. Unlisted columns follow in default order and retain Viewer visibility defaults.

TYPE: Sequence[Column] DEFAULT: ()

ThumbnailCell dataclass

Bases: _Cell

Render an image blob as a thumbnail.

col

def col(name: str) -> FilterColumn

Start a filter on the column name.

import rerun.blueprint as rrb
from rerun.blueprint.table import col

rrb.TableBlueprint(
    filters=[
        col("score") >= 3,
        col("success").is_true(),
        col("task").str.contains("pick"),
        col("created").last_week(),
        col("tags").list.does_not_contain("broken"),
    ],
)

For a list column, filter its values with list.

PARAMETER DESCRIPTION
name

Physical Arrow column name.

TYPE: str