Open gforsyth opened 1 month ago
thanks @gforsyth for considering this!
would it be feasible to aim for something like:
pip install ibis-framework duckdb
lets me run Ibis with DuckDB as engine, without requiring pandas/PyArrowpip install ibis-framework[duckdb]
brings in pandas+PyArrow too, so that t.to_pyarrow_table
works by default and it's a good user experience for people getting started?
I believe that's the intention -- then in the first case you'll get import errors for things like t.to_pandas()
, but most things should work
Today, you can install
ibis-framework
and generate expressions and compile to any of our backends without installing any of the backend-specific libraries.However, if you want to actually execute that expression, and get data back, you need
pandas
andpyarrow
installed.We should separate out and isolate those imports, such that someone could attempt to use only one-or-the-other, or a separate method of pulling data back (like the pycapsule interface), without having those dependencies installed.
We would not be removing them as required imports, because that would make for a bad user-experience when people are getting started, but it would allow for users to explicitly install or uninstall dependencies they don't want, while maintaining other functionality.
xref #10120