@@ -797,23 +797,29 @@ def _register_python_object(self, name: str, obj: Any) -> bool:
797797 if isinstance (obj , DataFrame ):
798798 self .register_view (name , obj )
799799 registered = True
800- elif (
801- obj .__class__ .__module__ .startswith ("polars." )
802- and obj .__class__ .__name__ == "DataFrame"
803- ):
804- self .from_polars (obj , name = name )
805- registered = True
806- elif (
807- obj .__class__ .__module__ .startswith ("pandas." )
808- and obj .__class__ .__name__ == "DataFrame"
809- ):
810- self .from_pandas (obj , name = name )
811- registered = True
812- elif isinstance (obj , (pa .Table , pa .RecordBatch , pa .RecordBatchReader )) or (
813- hasattr (obj , "__arrow_c_stream__" ) or hasattr (obj , "__arrow_c_array__" )
814- ):
800+ elif isinstance (obj , (pa .Table , pa .RecordBatch , pa .RecordBatchReader )):
815801 self .from_arrow (obj , name = name )
816802 registered = True
803+ else :
804+ exports_arrow_capsule = hasattr (obj , "__arrow_c_stream__" ) or hasattr (
805+ obj , "__arrow_c_array__"
806+ )
807+
808+ if exports_arrow_capsule :
809+ self .from_arrow (obj , name = name )
810+ registered = True
811+ elif (
812+ obj .__class__ .__module__ .startswith ("polars." )
813+ and obj .__class__ .__name__ == "DataFrame"
814+ ):
815+ self .from_polars (obj , name = name )
816+ registered = True
817+ elif (
818+ obj .__class__ .__module__ .startswith ("pandas." )
819+ and obj .__class__ .__name__ == "DataFrame"
820+ ):
821+ self .from_pandas (obj , name = name )
822+ registered = True
817823
818824 if registered :
819825 try :
0 commit comments