Skip to content

v0.50.0

Choose a tag to compare

@github-actions github-actions released this 02 Jul 23:23
· 10 commits to main since this release

0.50.0

Breaking Changes

  • Session and its records and operations moved wholesale from roboto.domain.sessions to roboto.experimental.sessions. The package-root re-exports (from roboto import Session, SessionFile, SessionFileRecord, SessionRecord) will keep working; only roboto.domain.sessions... imports need updating.
  • Session.list_topics() now yields roboto.experimental.topics.Topic instances instead of TopicIdentityRecords.

Features Added

  • Read topic data over a time window (experimental): an evolution of the existing roboto.domain.topics.Topic.get_data / get_data_as_df reads. Where the existing roboto.domain.topics.Topic is scoped to a single file, roboto.experimental.topics.Topic is a durable handle to one topic — a single recorded stream of data, such as a sensor channel — that stays valid across every file carrying that stream. Load one with Topic.from_id("ti_..."), then read its rows within a time window with get_data(start_time=..., end_time=...), which yields the same (timestamp, record) pairs as before — timestamp an integer of nanoseconds since the Unix epoch, record a dict of the topic's fields. The same window is also available as a pandas DataFrame from get_data_as_df(...) and, new on this surface, as Apache Arrow RecordBatches from get_data_as_record_batches(...) for columnar processing. Narrow any read to just the fields you need with fields_include / fields_exclude. Rows come back in the order they were recorded, not necessarily time order. This surface is in progress and may change.
  • Session.get_topic(topic_name) (experimental) returns the single topic reachable from a session by exact name in one request, raising RobotoNotFoundException when none matches — including when the topic exists in the org but does not contribute within the session's window. It is the by-name complement to Session.list_topics().