0.8.11 (April 04, 2024)#
Added#
Support for loading headerless CSV files with
read_csv()andatoti.Table.load_csv()by passing aSequenceto columns.Support for passing a broader set of conditions to
atoti.Cube.query()oratoti_query.QueryCube.query’s filter parameter:Conditions using inequality (e.g.
filter=l["Year"] >= 2022)Conditions on a deep level of a multilevel hierarchy (e.g.
filter=l["Geography", "City"] == "Paris"where Geography’s levels could be Continent, Country, and City)
Support for passing Arrow tables containing
pyarrow.decimal128()andpyarrow.decimal256()values toread_arrow()oratoti.Table.load_arrow(). These decimal values are stored asDOUBLEin the correspondingTable.
Changed#
Upgraded Atoti UI to 5.1.16 and Admin UI to 5.1.7.
Deprecated#
Passing a
tupleto one of the keys ofswitch()’s cases parameter. Pass aSetinstead:m["Continent"] = tt.switch( l["City"], { - ("Paris", "London"): "Europe", + frozenset({"Paris", "London"}): "Europe", "Singapore": "Asia", "NYC": "North America", } )
This will allow using
tuple(or anySequence) forINT_ARRAY,LONG_ARRAY,FLOAT_ARRAY, orDOUBLE_ARRAYconstants in a future release.
Fixed#
KeyError: ‘formattedValue’ being raised by
atoti.Session.query_mdx()oratoti_query.QuerySession.query_mdxwhen explicitly omitting the FORMATTED_VALUE property in the passed mdx. When a cell does not have a FORMATTED_VALUE, its stringified VALUE will be used instead.ValidationError being raised when setting a measure to infinity:
m["Infinity"] = math.inf.