Release notes

Notes about releases, API changes, etc.


First stable release with full feature parity with the Pond JS code base.



NOTE: key means “the specific timestamp, index or time range an event object exists at.”

Major changes:

  • Event.merge() has been changed and is not backwards compatible with the 0.4 version. Previously it took a list of Event objects at the same key and returns a single, merged Event. Now it takes a list of Event objects that can be of differing keys and returns a list of Events where the events at the same key have their values merged into a single event. To wit: [e(1, {'a': 1}), e(1, {'b': 2}), e(2, {'a': 3}), e(2, {'b': 4})] -> [e(1, {'a': 1, 'b': 2}), e(2, {'a': 3, 'b': 4})]
  • Event.combine() has been re-worked to accommodate this, but this is mostly for performance and should be transparent to the user.
  • Event.avg() and Event.sum() (which are helper functions that use Event.combine()) now behave like Event.merge() and return a list of summed/averaged events, rather than a single event at one key.


  • Collection.at_key() retrieves all the events in a Collection at a specified key.
  • Collection.dedup() removes duplicate (events at the same key) Event objects from a Collection.
  • Collection.event_list_as_map() returns the Event objects in a Collection as a dict of list where the key is the key and the list contains the events at that key.
  • Event.key() and Event.type() have been added but are mostly used internally. Have been added to all three event variants.
  • Event.is_duplicate() compares two events and returns True if they are of the same time and exist at the same key. Can also be used to compare payload values as well with an optional flag.


  • Added a boolean flag to allow TimeSeries.daily_rollup() .monthly_rollup() and .yearly_rollup() to render results in UTC rather than localtime. They default to rendering in localtime due to client-side concerns (like rendering a chart), but can now render in UTC since it is being used in server-side applications.
  • Fixed a bug that impacted TimeSeries/Collection.at_time() when the first event should be returned.