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,31 +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 ``TableProvider``.
751-
752- The registered table can be referenced from SQL statements executed against
753- this context.
754-
755- Plain :py:class:`~datafusion.dataframe.DataFrame` objects are not supported;
756- convert them first with :meth:`datafusion.dataframe.DataFrame.into_view` or
757- :meth:`datafusion.catalog.TableProvider.from_dataframe`.
746+ def register_table (self , name : str , table : Table ) -> None :
747+ """Register a :py:class: `~datafusion.catalog.Table` as a table.
758748
759- Objects implementing ``__datafusion_table_provider__`` are also supported
760- and treated as :class:`~datafusion.catalog.TableProvider` instances.
749+ The registered table can be referenced from SQL statement executed against.
761750
762751 Args:
763752 name: Name of the resultant table.
764- table: DataFusion :class:`Table`, :class:`TableProvider`, or any object
765- implementing ``__datafusion_table_provider__`` to add to the session
766- context.
753+ table: DataFusion table to add to the session context.
767754 """
768- if isinstance (table , Table ):
769- self .ctx .register_table (name , table .table )
770- else :
771- self .ctx .register_table (name , table )
755+ self .ctx .register_table (name , table .table )
772756
773757 def deregister_table (self , name : str ) -> None :
774758 """Remove a table from the session."""
@@ -788,21 +772,14 @@ def register_catalog_provider(
788772 self .ctx .register_catalog_provider (name , provider )
789773
790774 def register_table_provider (
791- self , name : str , provider : Table | TableProvider | TableProviderExportable
775+ self , name : str , provider : TableProviderExportable
792776 ) -> None :
793777 """Register a table provider.
794778
795- Deprecated: use :meth:`register_table` instead.
796-
797- Objects implementing ``__datafusion_table_provider__`` are also supported
798- and treated as :class:`~datafusion.catalog.TableProvider` instances.
779+ This table provider must have a method called ``__datafusion_table_provider__``
780+ which returns a PyCapsule that exposes a ``FFI_TableProvider``.
799781 """
800- warnings .warn (
801- "register_table_provider is deprecated; use register_table" ,
802- DeprecationWarning ,
803- stacklevel = 2 ,
804- )
805- self .register_table (name , provider )
782+ self .ctx .register_table_provider (name , provider )
806783
807784 def register_udtf (self , func : TableFunction ) -> None :
808785 """Register a user defined table function."""
0 commit comments