apache / datafusion-python

Apache DataFusion Python Bindings
https://datafusion.apache.org/python
Apache License 2.0
321 stars 64 forks source link

Pyo3 refactorings #740

Closed Michael-J-Ward closed 3 days ago

Michael-J-Ward commented 3 days ago

Which issue does this PR close?

Part of #727.

Rationale for this change

pyo3 recommend using the Python token from a Bound<'_, T> type or automatically passed in as a method parameter for a #[pymethods] or #[pyfunction] because they are zero-cost.

Python::with_gil carries a runtime check overhead.

What changes are included in this PR?

I changed all the places that had straightforward removal of Python::with_gil.

Additionally, I removed some manual type conversion work by letting pyo3 do it automatically as we cross the python-rust boundary.

Are there any user-facing changes?

No