-
Notifications
You must be signed in to change notification settings - Fork 133
Description
Hi guys, I'm Dario.
I have been struggling with an issue and I am trying to understand it.
I am trying to create my own cross-language library on top of datafusion and datafusion-python.
Let's call this library my-library.
I created a rust workspace and I have two crates:
my-library, to be used by other rust cratesmy-library-python, to be used by other Python packages
my-library has datafusion as a dependency and has just one function returning a datafusion::execution::context::SessionContext
my-library-python, has datafusion-python as a dependency and has just one function wrapping the datafusion::execution::context::SessionContext in a datafusion_python::context::PySessionContext
Now. when I install my-library-python in my python env through maturin develop and try to play with the SessionContext returned by the binding as follows:
python
ctx = my_library.get_context()
datafusion_df = ctx.sql(query)
I get the following error
pyo3_runtime.PanicException: called `Result::unwrap()` on an `Err` value: PyErr { type: <class 'ModuleNotFoundError'>, value: ModuleNotFoundError("No module named 'datafusion'"), traceback: None }My question then is:
Why should I add datafusion as a dependency in my python package, duplicating the library?
Is there a way to bring the dependency in my binding?