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.
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