0.5.0 (2020-12-08)


  • Some functionalities have been moved to plugin packages to lighten the core atoti package.

  • The web application and the JupyterLab extension have been rewritten from scratch to provide better performances and a simpler experience. atoti’s JupyterLab extension leverages JupyterLab 3’s federated extension system meaning that Node.js and the rebuilding of JupyterLab are not required anymore for its installation. It is also distributed as an atoti plugin instead of a separate npm or Conda package.

  • Data can be loaded from more sources: Amazon S3, Azure Blob Storage, Google Cloud Storage, and SQL databases. On the fly decompression of CSV files stored in .gz, .tar.gz, or .zip archives has also been added.

  • The name of the default dimension of a hierarchy has changed from Hierarchies to the name of the store on which the hierarchy is based.



The atoti.experimental module regroups new features that can go through breaking changes in minor and/or patch releases. Its initial content is:



  • BREAKING: agg.stop() moved to agg._stop() as its behavior can be replicated with where():

    - m["Stopped price"] = tt.agg.stop(m["Price"], lvl["Product"], lvl["Shop"])
    + m["Stopped price"] = tt.where(
    +     (lvl["Product"] != None) & (lvl["Shop"] != None), m["Price"]
    + )
  • BREAKING: agg.single_value() moved to agg._single_value() as value() can be used for its main use-case: creating a measure based on the value of a store column.