0.6.5 (March 25, 2022)#

Added#

  • columns parameter to read_csv(), read_parquet(), atoti.Table.load_csv(), and atoti.Table.load() to rename or filter columns to be loaded in a Table (issue #462).

  • Support for isolated Table deletion (issue #85).

    del session.tables[table_name]
    
  • atoti_query.OAuth2ResourceOwnerPasswordAuthentication to authenticate programmatically against a session secured with OIDC.

  • isnan() to compare measures to NaN (issue #414).

  • context parameter to atoti.Cube.query(), atoti_query.QueryCube.query, atoti.Session.query_mdx() and atoti_query.QuerySession.query_mdx (issue #517).

  • atoti_plus.security.DefaultRoles can be granted to users who had no roles granted by atoti_plus.security.IndividualRoles and atoti_plus.security.RoleMapping in an OIDC secured session.

User interface#

  • atoti_plus.app_extension.ADVANCED_APP_EXTENSION to activate advanced features of the app.

  • Style section at the bottom of the Atoti sidebar (for widgets supporting it):

Changed#

  • Creating and configuring a session is done by passing the corresponding parameters to atoti.Session().

    -  session = tt.create_session(
    -   config={
    -      "authentication": {"basic": {"realm": "Example"}},
    -      "port": 9090,
    -    }
    -  )
    +  session = tt.Session(
    +    authentication=tt.BasicAuthenticationConfig(realm="Example"),
    +    port=9090,
    +  )
    
  • Passing a atoti.UserContentStorageConfig pointing to a local H2 database will automatically migrate the database to H2 v2 format during session startup.

User interface#

Deprecated#

  • atoti.create_session(). Instantiate atoti.Session directly instead.

  • atoti_aws.create_aws_key_pair() and atoti_aws.create_aws_kms_config(). Instantiate atoti_aws.AwsKeyPair and atoti_aws.AwsKmsConfig directly instead.

  • atoti_azure.create_azure_key_pair(). Instantiate atoti_azure.AzureKeyPair directly instead.

  • atoti.level.Level.comparator.

    • instead of atoti.comparator.ASCENDING and atoti.comparator.DESCENDING, use NaturalOrder.

    • instead of atoti.comparator.first_members(), use CustomOrder.

  • atoti_kafka.create_deserializer(). Use the default ~atoti_kafka.deserializer.JSON_DESERIALIZER instead.

  • Passing timeouts as instances of int. Use datetime.timedelta instead.

Removed#

  • Support for Python 3.7.

Fixed#