@@ -20,6 +20,7 @@ use std::sync::Arc;
2020
2121use datafusion:: datasource:: TableProvider ;
2222use datafusion_ffi:: table_provider:: { FFI_TableProvider , ForeignTableProvider } ;
23+ use pyo3:: exceptions:: PyDeprecationWarning ;
2324use pyo3:: prelude:: * ;
2425use pyo3:: types:: PyCapsule ;
2526
@@ -53,21 +54,39 @@ impl PyTableProvider {
5354 #[ staticmethod]
5455 pub fn from_capsule ( capsule : Bound < ' _ , PyAny > ) -> PyResult < Self > {
5556 let capsule = capsule. downcast :: < PyCapsule > ( ) . map_err ( py_datafusion_err) ?;
56- validate_pycapsule ( & capsule, "datafusion_table_provider" ) ?;
57+ validate_pycapsule ( capsule, "datafusion_table_provider" ) ?;
5758
5859 let provider = unsafe { capsule. reference :: < FFI_TableProvider > ( ) } ;
5960 let provider: ForeignTableProvider = provider. into ( ) ;
6061
6162 Ok ( Self :: new ( Arc :: new ( provider) ) )
6263 }
6364
64- /// Create a `TableProvider` from a DataFrame by converting it into a view
65+ /// Create a `TableProvider` from a `DataFrame`.
66+ ///
67+ /// This method simply delegates to `DataFrame.into_view`.
6568 #[ staticmethod]
66- pub fn from_view ( df : & PyDataFrame ) -> PyDataFusionResult < Self > {
67- let table_provider = df. into_view_provider ( ) ;
69+ pub fn from_dataframe ( df : & PyDataFrame ) -> PyDataFusionResult < Self > {
70+ let table_provider = df. to_view_provider ( ) ;
6871 Ok ( Self :: new ( table_provider) )
6972 }
7073
74+ /// Create a `TableProvider` from a `DataFrame` by converting it into a view.
75+ ///
76+ /// Deprecated: prefer `DataFrame.into_view` or
77+ /// `TableProvider.from_dataframe` instead.
78+ #[ staticmethod]
79+ pub fn from_view ( py : Python < ' _ > , df : & PyDataFrame ) -> PyDataFusionResult < Self > {
80+ py. import ( "warnings" ) ?. call_method1 (
81+ "warn" ,
82+ (
83+ "PyTableProvider.from_view() is deprecated; use DataFrame.into_view() or TableProvider.from_dataframe() instead." ,
84+ py. get_type :: < PyDeprecationWarning > ( ) ,
85+ ) ,
86+ ) ?;
87+ Self :: from_dataframe ( df)
88+ }
89+
7190 fn __datafusion_table_provider__ < ' py > (
7291 & self ,
7392 py : Python < ' py > ,
0 commit comments