by Patrick Clarke
09 January 2023
Ibis 4.0 has officially been released as the latest version of the package. This release includes several new backends, improved functionality, and some major internal refactors. A full list of the changes can be found in the project release notes. Let’s talk about some of the new changes 4.0 brings for Ibis users.
Ibis 4.0 brings Polars, Snowflake, and Trino into an already-impressive stock of supported backends. The Polars backend adds another way for users to work locally with DataFrames. The Snowflake and Trino backends add a free and familiar python API to popular data warehouses.
Alongside these new backends, Google BigQuery and Microsoft SQL have been moved to the main repo, so their release cycle will follow the Ibis core.
There are a lot of improvements incoming, but some notable changes include:
- read API: allows users to read various file formats directly into their configured
default_backend(default DuckDB) through
read_*functions, which makes working with local files easier than ever.
- to_pyarrow and to_pyarrow_batches: users can now return PyArrow objects (Tables, Arrays, Scalars, RecordBatchReader) and therefore grants all of the functionality that PyArrow provides
- JSON getitem: users can now run getitem on a JSON field using Ibis expressions with some backends
- Plotting support through
__array__: allows users to plot Ibis expressions out of the box
This won't be visible to most users, but the project underwent a series of refactors that spans multiple PRs. Notable changes include removing intermediate expressions, improving the testing framework, and UX updates.
As mentioned previously, additional functionality, bugfixes, and more have been included in the latest 4.0 release. To stay up to date and learn more about recent changes: check out the project's homepage at ibis-project.org, follow @IbisData on Twitter, find the source code and community on GitHub, and join the discussion on Gitter.
As always, try Ibis by installing it today.