0.5.3 (2021-04-16)¶
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.Session.security
to configure roles and restrictions on a running session.Glob pattern support in
atoti.session.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.Session.query_mdx()
andatoti_query.query_session.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 (#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 (#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.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 (#253).
Issue with date columns when using SQL sources (#263).
atoti.value()
correctly differentiatesNone
due to different values andNone
due to missing data.