0.5.2 (March 04, 2021)#

Added#

  • Project template to be used as a starting point for projects intending to go into production.

  • atoti.Session.start_transaction() to group a set of store operations in a single transaction.

  • mode parameter to atoti.Cube.query(). The "raw" mode uses a faster data transfer technique than the one used by the default "pretty" mode, leading to drastic performance improvements for larger query results (issue #146).

  • include_totals parameter to atoti.Cube.query() and atoti_query.QueryCube.query to indicate whether the returned DataFrame should include the grand total and subtotals.

  • keep_totals parameter to atoti.Session.query_mdx() and atoti_query.QuerySession.query_mdx to indicate whether the returned DataFrame should contain, if they are present in the query result, the grand total and subtotals.

  • atoti.config.create_kerberos_authentication() to support Kerberos authentication providers.

User interface#

  • Convert to Widget Below JupyterLab command available on (not mutated) DataFrames returned by the atoti.Cube.query() and atoti_query.QueryCube.query methods (issue #49).

    convert MDX query result to interactive widget

    This command provides a bridge from queries run from the Python API to widgets offering more interactivity. It can be executed by:#

    • right-clicking on the DataFrame and selecting the corresponding context menu item.

    • selecting it in the command palette when the DataFrame cell is the active one.

  • Defer updates checkbox in the JupyterLab extension sidebar (issue #25).

    deferring updates in the JupyterLab extension

    Deferring updates reduces the load on the server by avoiding intermediate queries.#

  • Pivot table columns can be resized (issue #206).

    • resizing a pivot table column manually

      Dragging the left border of a column resize the column to the desired width.#

    • resizing a pivot table column automatically

      Double clicking on the left border resize the column to fit its content.#

    • resizing all the columns of a pivot table automatically

      Selecting all the cells and double clicking on the left border of any column.#

  • Pivot tables support expansion by another hierarchy.

    expanding a pivot table cell by another hierarchy

    Drag and drop a hierarchy to a pivot table cell to expand it.#

Experimental#

  • atoti.experimental.create_date_hierarchy() to create a multilevel date hierarchy based on a date column.

Changed#

  • Improve atoti.where() performance when either:

    • no false_measure is passed.

    • the passed condition on levels is made only of == or != comparisons to None and at most one == or != comparison to a non-None value.

Fixed#

  • Issue when accessing query session hierarchies and levels (issue #202).

  • Issue where switching to an incompatible widget type would crash the JupyterLab extension (issue #211).

  • Issue with glob path on Windows.

  • Prevent redefining reserved roles such as ROLE_USER and ROLE_ADMIN by raising an error in atoti.config.create_role().

  • Respect sampling mode when adding rows with atoti.store.Store.append() and the += operator.