4646 import pandas as pd
4747 import polars as pl
4848
49- from datafusion import TableProvider
5049 from datafusion .plan import ExecutionPlan , LogicalPlan
5150
5251
@@ -735,7 +734,7 @@ def from_polars(self, data: pl.DataFrame, name: str | None = None) -> DataFrame:
735734 # https://github.com/apache/datafusion-python/pull/1016#discussion_r1983239116
736735 # is the discussion on how we arrived at adding register_view
737736 def register_view (self , name : str , df : DataFrame ) -> None :
738- """Register a :py:class:`~datafusion.dataframe .DataFrame` as a view.
737+ """Register a :py:class: `~datafusion.detaframe .DataFrame` as a view.
739738
740739 Args:
741740 name (str): The name to register the view under.
@@ -744,32 +743,16 @@ def register_view(self, name: str, df: DataFrame) -> None:
744743 view = df .into_view ()
745744 self .ctx .register_table (name , view )
746745
747- def register_table (
748- self , name : str , table : Table | TableProvider | TableProviderExportable
749- ) -> None :
750- """Register a :py:class:`~datafusion.catalog.Table` or
751- :py:class:`~datafusion.TableProvider`.
752-
753- The registered table can be referenced from SQL statements executed against
754- this context.
755-
756- Plain :py:class:`~datafusion.dataframe.DataFrame` objects are not supported;
757- convert them first with :meth:`datafusion.dataframe.DataFrame.into_view` or
758- :meth:`datafusion.TableProvider.from_dataframe`.
746+ def register_table (self , name : str , table : Table ) -> None :
747+ """Register a :py:class: `~datafusion.catalog.Table` as a table.
759748
760- Objects implementing ``__datafusion_table_provider__`` are also supported
761- and treated as :py:class:`~datafusion.TableProvider` instances.
749+ The registered table can be referenced from SQL statement executed against.
762750
763751 Args:
764752 name: Name of the resultant table.
765- table: DataFusion :class:`Table`, :class:`TableProvider`, or any object
766- implementing ``__datafusion_table_provider__`` to add to the session
767- context.
753+ table: DataFusion table to add to the session context.
768754 """
769- if isinstance (table , Table ):
770- self .ctx .register_table (name , table .table )
771- else :
772- self .ctx .register_table (name , table )
755+ self .ctx .register_table (name , table .table )
773756
774757 def deregister_table (self , name : str ) -> None :
775758 """Remove a table from the session."""
@@ -789,21 +772,14 @@ def register_catalog_provider(
789772 self .ctx .register_catalog_provider (name , provider )
790773
791774 def register_table_provider (
792- self , name : str , provider : Table | TableProvider | TableProviderExportable
775+ self , name : str , provider : TableProviderExportable
793776 ) -> None :
794777 """Register a table provider.
795778
796- Deprecated: use :meth:`register_table` instead.
797-
798- Objects implementing ``__datafusion_table_provider__`` are also supported
799- and treated as :py:class:`~datafusion.TableProvider` instances.
779+ This table provider must have a method called ``__datafusion_table_provider__``
780+ which returns a PyCapsule that exposes a ``FFI_TableProvider``.
800781 """
801- warnings .warn (
802- "register_table_provider is deprecated; use register_table" ,
803- DeprecationWarning ,
804- stacklevel = 2 ,
805- )
806- self .register_table (name , provider )
782+ self .ctx .register_table_provider (name , provider )
807783
808784 def register_udtf (self , func : TableFunction ) -> None :
809785 """Register a user defined table function."""
0 commit comments