atoti.agg.sum_product()return a measure equal to the product and sum of two measures or fields.
%operation between measures (#48).
Support reading Parquet files from AWS S3 (#27).
atoti.store.Store.drop()remove rows from a store by specifying column names and values.
atoti widgets are snapshotted as SVG images in the notebook on save. These images will appear in HTML exports or in GitHub previews of the notebook.
Context menu actions for widgets of the atoti JupyterLab extension:
Java is no longer required in the pip installation since the atoti Python wheel now relies on jdk4py.
The Measure simulations and Source simulation editors have been redesigned. They now both have their dedicated page instead of being widgets embeddable in dashboards. The Measure simulations editor also issue more minimal updates to the underlying store (#70).
atoti_query.QueryCube.query()return DataFrames displaying formatted values and providing a
styleattribute reflecting the potential styling properties of the corresponding cell set (#91).
The first MDX query ran by an atoti widget in JupyterLab is now executed in Python and its resulting cell set is outputted to the corresponding notebook cell. It allows to ensure that the data displayed by the widget reflects the expected state of the cube without having to block the IPython kernel in a fragile way.
Added ability to append rows in all scenarios of a store with
The constructors of
atoti.config.OidcAuthenticationhave been made private and using them is deprecated. They have been replaced by factory functions:
atoti_query.basic_auth.BasicAuthentication, replaced by
The creation of calculated measures and the action to add a measure computing the difference between to table columns have been disabled in the JupyterLab widget extension to incentivize creating these measures in Python instead. These features are still available in the app (#21).