Skip to content

Changelog

Unreleased

0.6.0 - 2026-02-23

Added

  • Add py.typed marker to declare sgn-ts as a typed library
  • Add masked array methods to TSFrame
  • Add offset validation checks
  • Expose extra internal source pads in composed transforms

Changed

  • Overhaul documentation: restructure into User Guide, Developer Guide, Background, and Reference sections following Divio guidelines; add dedicated offset background page; split built-in elements reference into Sources, Transforms, and Sinks; add testable code snippets throughout
  • Standardize on seconds for time quantities, expose _ns properties for nanosecond equivalents
  • Standardize start/end parameters for TSSource and TSResourceSource
  • Change TSResourceSource base class from ParallelizeSourceElement to ParallelizeBase
  • Have TSResourceSource derive from TSSource
  • Simplify TSCompose to wrap Compose while keeping the public API
  • Add TS-enabled support to TSFrameCollectSink
  • Bump minimum sgn version to 0.6

Fixed

  • Fix EventBuffer gap detection check
  • Fix make_ts_element hanging by defining pull()/internal() methods
  • Fix typing issues: add type: ignore in array checks, use re-exports in array_ops module, explicitly declare NumpyArray as type alias

0.5.0 - 2026-01-20

Added

  • Add TSCompose wrappers (TSComposedSourceElement, TSComposedTransformElement, TSComposedSinkElement)
  • Add TSFrameCollectSink for collecting input streams into frames
  • Add TSAppSink for user-defined buffer callbacks
  • Add TSPlotSink and plotting utilities (plot_buffer(), plot_frame())
  • Add TSIterSource for iterating through pre-built frames
  • Add TSCollectFrame context manager for atomic buffer appends
  • Add BitVector transform for bit-level operations
  • Add NaryTransform for N-ary reduction operations
  • Add TSFrame.tarr and TSFrame.samples properties
  • Add static pad configuration for elements
  • Add opt-in process() API for simplified element implementation

Changed

  • Redesign EventFrame and TSFrame to share a TimeSpanFrame parent class
  • Replace SeriesBuffer.replace() with copy()
  • Switch AdapterConfig from disable to enable/is_enabled flag

Fixed

  • Fix gap handling in AdaptiveCorrelate
  • Fix offset shift when skip_gaps or align_buffers is set

0.4.0 - 2025-11-07

Added

  • Add SegmentSource for time-segment-based data production
  • Add ANDTransform for logical AND across inputs
  • Add align_to option in AdapterConfig for offset boundary alignment
  • Add make_ts_element() factory function for wrapping SGN elements
  • Add element entry point registration
  • Add Average element (mean/median)

Changed

  • Update TSResourceSource to use ParallelizeSourceElement
  • Bump minimum sgn version to 0.4

Fixed

  • Fix Correlate latency handling
  • Fix offset-to-sample rounding during alignment
  • Fix pad name in Align
  • Propagate worker exceptions in TSResourceSource

0.3.0 - 2025-05-11

Added

  • Add DataSpec for time-series validation
  • Add per-pad signal parameters for FakeSeriesSource
  • Add EventBuffer default start/end times

0.2.0 - 2025-04-17

Added

  • SeriesBuffer, TSFrame, EventBuffer, EventFrame data types
  • Offset system for precise time bookkeeping
  • Time constants for nanosecond-based conversions
  • TSSlice and TSSlices for time interval operations
  • Audioadapter and AdapterConfig for streaming buffer management
  • ArrayBackend abstraction with NumpyBackend and TorchBackend
  • FakeSeriesSource with white noise, sine, impulse, and constant signals
  • TSResourceSource for data-driven sources
  • Amplify, Adder, Align, Correlate, AdaptiveCorrelate, Converter, Gate, Matmul, Resampler, SumIndex, Threshold transforms
  • DumpSeriesSink, NullSeriesSink sinks
  • TimeSeriesMixin for cross-channel frame alignment