Skip to content

Commit 4c64b1e

Browse files
committed
refactor: remove unused imports and simplify table provider extraction logic
1 parent a70e3d6 commit 4c64b1e

1 file changed

Lines changed: 3 additions & 8 deletions

File tree

src/utils.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,14 @@ use crate::{
2020
common::data_type::PyScalarValue,
2121
dataframe::PyDataFrame,
2222
dataset::Dataset,
23-
errors::{py_datafusion_err, PyDataFusionError, PyDataFusionResult},
23+
errors::{PyDataFusionError, PyDataFusionResult},
2424
table::PyTableProvider,
2525
TokioRuntime,
2626
};
2727
use datafusion::{
2828
common::ScalarValue, datasource::TableProvider, execution::context::SessionContext,
2929
logical_expr::Volatility,
3030
};
31-
use datafusion_ffi::table_provider::{FFI_TableProvider, ForeignTableProvider};
3231
use pyo3::prelude::*;
3332
use pyo3::{exceptions::PyValueError, types::PyCapsule};
3433
use std::{
@@ -134,12 +133,8 @@ pub(crate) fn table_provider_from_pycapsule(
134133
) -> PyResult<Option<Arc<dyn TableProvider>>> {
135134
if obj.hasattr("__datafusion_table_provider__")? {
136135
let capsule = obj.getattr("__datafusion_table_provider__")?.call0()?;
137-
let capsule = capsule.downcast::<PyCapsule>().map_err(py_datafusion_err)?;
138-
validate_pycapsule(capsule, "datafusion_table_provider")?;
139-
140-
let provider = unsafe { capsule.reference::<FFI_TableProvider>() };
141-
let provider: ForeignTableProvider = provider.into();
142-
Ok(Some(Arc::new(provider) as Arc<dyn TableProvider>))
136+
let provider = PyTableProvider::from_capsule(capsule)?;
137+
Ok(Some(provider.into_inner()))
143138
} else {
144139
Ok(None)
145140
}

0 commit comments

Comments
 (0)