Skip to content

SDK

0.0.10

Added

  • Agent SDK (zelos_sdk.agent): Connect to a running Zelos Agent from Python and query live or recorded data through one handle — browse the signal catalog, query and downsample time-series into Arrow/pandas, read latest values, watch for live updates, run actions, manage extensions, and open .trz trace files. Read more.
  • Layout version history: agent.layouts CRUD (list/show/create/update/delete) plus full version history — list a layout's versions, restore a previous version, or label one. Read more.
  • Typed Check API: agent.check.that(lhs, op, rhs) asserts a predicate against a live signal or .trz trace, with temporal quantifiers such as always/eventually evaluated server-side; agent.check.suite(...) runs a JSON suite of checks in one round-trip. Read more.
  • zelos_sdk.schemas.Log — a predefined schema for typed log events (zelos.log.v1); pass a schema class directly to add_event(name, schema) instead of a field list. Read more.
  • TraceSource.log_batch() — log a pyarrow.RecordBatch or Table directly for zero-copy, high-throughput ingestion.
  • TraceSource.log_many() — log a list of (time_ns, event_name, data) tuples in a single call, cutting Python↔Rust overhead for high-frequency sources like CAN decoders.
  • TraceSource(name, strict=True) — opt into strict type coercion; rejects lossy float→int narrowing instead of silently truncating it.
  • TraceNamespace.drain() — flush every source and block until all queued events reach subscribers, for deterministic teardown ahead of closing a TraceWriter.

Changed

  • Action execution now returns a typed ActionExecuteResult (value + status) with PASS/FAIL/ERROR/DONE states instead of a bare value; the old ActionResult/ExecuteStatus names remain as deprecated aliases.
  • Action JSON Schema and UI Schema property order now matches @action declaration order end-to-end instead of being alphabetized, so generated forms render fields in the order they were declared.

Fixed

  • SignalFrame now resolves columns correctly when the same signal name appears across multiple producers or segments, raising AmbiguousSignal on a genuine tie instead of matching the wrong column.
  • TraceReader no longer drops a trace's last row when its timestamp has sub-microsecond precision.
  • TraceWriter now captures every event logged before its with block exits, without needing a sleep before close to avoid losing in-flight data.
  • TraceSourceCache now stores a Python None as a null value instead of raising an error.
0.0.9

Added

  • FolderPickerWidget for Actions, enabling folder selection in extension UIs
  • pyarrow as a direct dependency — no longer needs to be installed separately for TraceReader

Fixed

  • NaN and Infinity float values are now properly stored as null and read back as None instead of causing serialization errors
0.0.8

Added

  • TraceReader API: Read .trz trace files for offline analysis, debugging, and post-processing. Read more.
    • Query specific signals and time ranges from trace files
    • Discover available fields hierarchically (sources → events → fields)
    • List data segments and metadata
    • Full PyArrow integration for efficient data processing
  • Trace File Utilities:
    • Hook to open existing trace files (useful for merging WAL and TRZ after ungraceful exit)
0.0.7

Added

  • Added value-table support to TraceSourceCacheLast
  • Additional widgets and validation hooks for Actions

Fixed

  • Addressed lingering lint warnings across pytest helpers and ensured artifact directories are configurable in automated runs.
0.0.6

Added

  • Action decorators now capture a field_type, enabling richer, type-aware rendering in the Zelos App without custom widgets.
  • Action parameters default to required=True, surfacing missing inputs during validation instead of at execution time.

Improved

  • Updated examples and tests to exercise the stricter defaults so extension authors can adopt the new metadata with confidence.
0.0.5

Added

  • Zelos Actions: A powerful new way to script interactions with your devices and services.
    • Define actions with simple Python functions and decorators.
    • Automatic discovery and registration of actions.
    • Support for various field types for action inputs, including object.
    • Note: Only available in the python release of the SDK

Changed

  • Dependencies: Removed the setuptools dependency.

Fixed

  • Zelos Trace:
    • Resolved a deadlock that could occur in async contexts.
    • Fixed an issue that could prevent querying data if a TraceSegmentStart message was missed.
    • Fixed URL handling in the TracePublishClient.