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:
|
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
TYPE:
|
fields
|
Fields to configure, in display order, with each source listed at most once.
Listed fields are visible unless |
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:
|
name
|
Display label, overriding
TYPE:
|
editable
|
Allow editing; disabled by default.
Requires write permission on a remote table with a column marked by
TYPE:
|
cell
|
Cell renderer. If unset, the Viewer infers it from the component or Arrow datatype.
TYPE:
|
visible
|
Override visibility in this layout.
Configured columns are visible by default.
Set to
TYPE:
|
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.
TYPE:
|
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:
- numbers:
eq,ne,lt,le,gtandge, or the operators==,!=,<,<=,>and>= - booleans:
is_trueandis_false, and for nullable columns alsois_null,is_not_true,is_not_falseandis_not_null - strings:
str.contains,str.does_not_contain,str.starts_withandstr.ends_with - timestamps:
before,after,betweenand the relative ranges such astoday, and the negated ranges such asnot_betweenandnot_today
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
list: ListFilters
The values of a list column, e.g. col("tags").list.str.contains("pick").
str
property
str: StringFilters
The filters of a string column, e.g. col("task").str.contains("pick").
after
Select rows with a timestamp at or after timestamp.
A datetime without a time zone is in UTC.
before
Select rows with a timestamp before timestamp.
A datetime without a time zone is in UTC.
between
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_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_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.
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
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.
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
str: StringFilters
The filters of a string column, e.g. col("task").str.contains("pick").
after
Select rows with a timestamp at or after timestamp.
A datetime without a time zone is in UTC.
before
Select rows with a timestamp before timestamp.
A datetime without a time zone is in UTC.
between
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_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_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.
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
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.
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:
|
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:
|
timeline
|
The timeline used by every preview cell. If left empty a timeline is automatically picked, preferring custom over built-in.
TYPE:
|
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
TYPE:
|
direction
|
The direction the rows are sorted in. If not set, the viewer sorts ascending.
TYPE:
|
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
Select rows where the value contains text, ignoring case.
does_not_contain
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
Select rows where the value ends 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:
|
card_layout
|
Card layout, disabled unless configured.
TYPE:
|
default_layout
|
Initial layout:
TYPE:
|
column_display_mode
|
Column-name formatting in both layouts; defaults to compact formatting.
Explicit
TYPE:
|
previews_config
|
Timeline selection shared by every
TYPE:
|
filters
|
|
sort_by
|
Source column the rows are sorted by, with an optional direction.
Without a direction the viewer sorts ascending.
Use |
save
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 |
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:
|