MetadataValue¶
Typed metadata values for asset outputs. Each variant has a static constructor and typed attributes.
import rivers as rs
meta = rs.MetadataValue.text("hello")
meta = rs.MetadataValue.int(42)
meta = rs.MetadataValue.json('{"key": "value"}')
Variants¶
| Variant | Constructor | Attributes |
|---|---|---|
Text |
.text(value: str) |
value: str |
Int |
.int(value: int) |
value: int |
Float |
.float_(value: float) |
value: float |
Bool |
.bool_(value: bool) |
value: bool |
Url |
.url(value: str) |
value: str |
Path |
.path(value: str) |
value: str |
Json |
.json(value: str) |
value: str |
Markdown |
.md(value: str) |
value: str |
Timestamp |
.timestamp(value: float) |
value: float |
Null |
.null() |
-- |
Bytes |
.bytes(value: int) |
value: int |
Duration |
.duration(value: float) |
value: float |
Sql |
.sql(query, dialect=None) |
query: str, dialect: str \| None |
CodeBlock |
.code_block(code, language=None) |
code: str, language: str \| None |
Image |
.image(value: str) |
value: str |
Percentage |
.percentage(value: float) |
value: float |
List |
.list_(values: list[MetadataValue]) |
values: list[MetadataValue] |
DateRange |
.date_range(start, end) |
start: datetime, end: datetime |
Schema |
.schema(value: ArrowSchemaExportable) |
ipc_bytes: bytes |
DataVersion |
.data_version(value: str) |
value: str |
Type checking¶
Use isinstance to check the variant:
meta = rs.MetadataValue.int(42)
assert isinstance(meta, rs.MetadataValue.Int)
assert meta.value == 42
raw_value()¶
Extract the underlying Python value:
meta = rs.MetadataValue.text("hello")
meta.raw_value() # "hello"
meta = rs.MetadataValue.date_range(start, end)
meta.raw_value() # (start, end)
meta = rs.MetadataValue.null()
meta.raw_value() # None
Return type: str | int | float | bool | None | list[MetadataValue] | tuple[datetime, datetime] | Schema
Automatic conversion¶
When passing values to context.add_output_metadata(), primitive types are automatically converted:
| Python type | MetadataValue variant |
|---|---|
str |
Text |
int |
Int |
float |
Float |
bool |
Bool |
None |
Null |