0.4.2 (2020-07-15)


  • Kafka streaming data source through atoti.store.Store.load_kafka().

  • atoti.Session.endpoint() decorator adds HTTP endpoints to the session from a Python callback.

  • atoti.array.sort() has a new ascending parameter. True by default, it allows to choose the sorting order.

  • atoti.scope.cumulative() has a new dense parameter. False by default, it allows to choose whether to include all of a level’s members in the cumulative aggregation, even those for which the underlying measure has no values.

  • Atoti+ now supports i18n. en-US is the only locale supported by default but additional locales can be made available by providing custom translation files. These can be configured with atoti.config.create_config() A good starting point for adding new locales is to use the template containing all the translatable items, which can be obtained by using atoti.Session.export_translations_template().

  • The Gauss error function atoti.math.erf() and its complementary atoti.math.erfc() (#92).


  • The name_attribute parameter used to select the displayed username when using an OpenID Connect can be configured.

  • The scope parameter used to select the requested scopes when using an OpenID Connect provider can be configured. The openid scope is always passed by default.


  • Missing images in the tutorial (#80).

  • Wrong results when using atoti.where() (#17).

  • Issue when reading pandas DataFrame with NaN (#77).

  • atoti.Hierarchy.isin() and atoti.Level.isin() can be used with more than 2 values (#93).

  • Issue with array types not displayed correctly in the stores schema.

  • Issue when joining a column of type int to a column of type long if the store is based on a parquet file (#76).