@@ -68,11 +68,13 @@ def data_preview(self) -> str:
6868 return json .dumps ({})
6969
7070 def default_title (self , name : str ) -> str :
71- return f"{ name } : a pinned { self ._obj_name } object"
71+ # TODO(compat): title says CSV rather than data.frame
72+ # see https://github.com/machow/pins-python/issues/5
73+ return f"{ name } : a pinned { self ._obj_name } "
7274
7375 @property
7476 def _obj_name (self ) -> str :
75- return type (self ._d ).__qualname__
77+ return f" { type (self ._d ).__qualname__ } object"
7678
7779
7880class _DFAdaptor (_Adaptor ):
@@ -81,6 +83,11 @@ class _DFAdaptor(_Adaptor):
8183 def __init__ (self , data : _DataFrame ) -> None :
8284 super ().__init__ (data )
8385
86+ @property
87+ def df_type (self ) -> str :
88+ # Consider over-riding this for specialized dataframes
89+ return "DataFrame"
90+
8491 @property
8592 @abstractmethod
8693 def columns (self ) -> list [Any ]: ...
@@ -107,11 +114,13 @@ def data_preview(self) -> str:
107114
108115 return json .dumps ({"data" : data_no_nulls , "columns" : columns })
109116
117+ @property
118+ def _obj_name (self ) -> str :
119+ return f"{ type (self ._d ).__qualname__ } object"
120+
110121 def default_title (self , name : str ) -> str :
111- # TODO(compat): title says CSV rather than data.frame
112- # see https://github.com/machow/pins-python/issues/5
113- shape_str = " x " .join (map (str , self .shape ))
114- return f"{ name } : a pinned { shape_str } DataFrame"
122+ row , col = self .shape
123+ return f"{ name } : a pinned { row } x { col } { self .df_type } "
115124
116125
117126class _PandasAdaptor (_DFAdaptor ):
0 commit comments