0.5.3 (April 16, 2021)#
Added#
Ability to define an aggregated measure by combining multiple store columns. For example:
tt.agg.sum( - m["Quantity.SUM"] * m["Unit price.SUM"], + store["Quantity"] * store["Unit price"], # More efficient scope=tt.scope.origin(l["Sale ID"]) )
atoti.Session.security
to configure roles and restrictions on a running session.Glob pattern support in
atoti.Session.read_parquet()
andatoti.store.Store.load_parquet()
methods.atoti.config.create_logging_config
to set the path of the file where the session logs are written.
User interface#
Tree table widget.
The tree table is like a pivot table where the row headers are squashed into a single column displayed as a tree.#
The Drillthrough context menu item already available in the app is also supported in JupyterLab.
Triggering the context menu of tables or charts from a selection with a single element allows to create a drillthrough widget that can be used to know the facts contributing to this aggregate.#
The Convert to Widget Below JupyterLab command is also available on DataFrames returned by
atoti.Session.query_mdx()
andatoti_query.QuerySession.query_mdx
.Query editor drawer in the app to manipulate the MDX query of the selected widget.
Changed#
DocSearch has been integrated to the docs to provide faster and better search results (issue #168).
The
atoti-plus
package has been restructured from a standalone package that could be installed instead of theatoti
package to a plugin that can be installed alongside theatoti
package.Performance of
atoti.store.Store.append()
has been improved (issue #255).Stores are no longer automatically partitioned.
Deprecated#
Creating roles with
atoti.config.create_role()
.Creating Basic authentication users with
atoti.config.create_basic_user()
.Creating Kerberos users with
atoti.config.create_kerberos_user()
.Displaying part of the logs with
atoti.Session.logs_tail()
.!tail -n 10 $session.logs_path
can be used instead in Jupyter on Unix for example.
Fixed#
Issue where uploading a file from the project root via the source simulation widget would cause it to be deleted when restarting the session (issue #253).
Issue with date columns when using SQL sources (issue #263).
atoti.value()
correctly differentiatesNone
due to different values andNone
due to missing data.