@@ -52,6 +52,10 @@ use datafusion_ffi::catalog_provider_list::FFI_CatalogProviderList;
5252use datafusion_ffi:: execution:: FFI_TaskContextProvider ;
5353use datafusion_ffi:: proto:: logical_extension_codec:: FFI_LogicalExtensionCodec ;
5454use datafusion_proto:: logical_plan:: DefaultLogicalExtensionCodec ;
55+ use datafusion_python_util:: {
56+ create_logical_extension_capsule, ffi_logical_codec_from_pycapsule, get_global_ctx,
57+ get_tokio_runtime, spawn_future, validate_pycapsule, wait_for_future,
58+ } ;
5559use object_store:: ObjectStore ;
5660use pyo3:: IntoPyObjectExt ;
5761use pyo3:: exceptions:: { PyKeyError , PyValueError } ;
@@ -82,10 +86,6 @@ use crate::udaf::PyAggregateUDF;
8286use crate :: udf:: PyScalarUDF ;
8387use crate :: udtf:: PyTableFunction ;
8488use crate :: udwf:: PyWindowUDF ;
85- use crate :: utils:: {
86- create_logical_extension_capsule, extract_logical_extension_codec, get_global_ctx,
87- get_tokio_runtime, spawn_future, validate_pycapsule, wait_for_future,
88- } ;
8989
9090/// Configuration options for a SessionContext
9191#[ pyclass(
@@ -1187,8 +1187,7 @@ impl PySessionContext {
11871187 & self ,
11881188 codec : Bound < ' py , PyAny > ,
11891189 ) -> PyDataFusionResult < Self > {
1190- let py = codec. py ( ) ;
1191- let logical_codec = extract_logical_extension_codec ( py, Some ( codec) ) ?;
1190+ let logical_codec = Arc :: new ( ffi_logical_codec_from_pycapsule ( codec) ?) ;
11921191
11931192 Ok ( {
11941193 Self {
0 commit comments