@@ -122,6 +122,32 @@ def _get_wasm_assets() -> tuple[str | None, bytes | None, str | None]:
122122 return _WASM_ASSET_CACHE
123123
124124
125+ def _mime_requested (mimetype : str , kwargs : dict [str , Any ]) -> bool :
126+ include = kwargs .get ("include" )
127+ exclude = kwargs .get ("exclude" )
128+ if include is not None and mimetype not in include :
129+ return False
130+ if exclude is not None and mimetype in exclude :
131+ return False
132+ return True
133+
134+
135+ def _with_text_plain (
136+ bundle : tuple [dict [str , Any ], dict [str , Any ]] | None ,
137+ text : str ,
138+ kwargs : dict [str , Any ],
139+ ) -> tuple [dict [str , Any ], dict [str , Any ]] | None :
140+ if bundle is None :
141+ return None
142+ data , metadata = bundle
143+ data = dict (data )
144+ if _mime_requested ("text/plain" , kwargs ):
145+ data ["text/plain" ] = text
146+ else :
147+ data .pop ("text/plain" , None )
148+ return data , metadata
149+
150+
125151def _to_float32_1d (data : Any , * , arg_name : str ) -> np .ndarray :
126152 arr = np .asarray (data )
127153 if arr .ndim != 1 :
@@ -2326,6 +2352,16 @@ def show(self) -> None:
23262352 display (self )
23272353 return None
23282354
2355+ def __repr__ (self ) -> str :
2356+ title = f", title={ self .title !r} " if self .title else ""
2357+ return (
2358+ f"nbimplot.Plot(width={ self .width } , height={ self .height } { title } , "
2359+ f"series={ len (self ._series )} , primitives={ len (self ._primitives )} , renderer='wasm-implot')"
2360+ )
2361+
2362+ def _repr_mimebundle_ (self , ** kwargs : Any ) -> tuple [dict [str , Any ], dict [str , Any ]] | None :
2363+ return _with_text_plain (super ()._repr_mimebundle_ (** kwargs ), repr (self ), kwargs )
2364+
23292365 def close (self ) -> None :
23302366 if not getattr (self , "_closed" , True ):
23312367 self .send ({"type" : "dispose" })
@@ -3065,6 +3101,16 @@ def show(self) -> None:
30653101 self ._plot .show ()
30663102 return None
30673103
3104+ def __repr__ (self ) -> str :
3105+ cls_name = type (self ).__name__
3106+ return (
3107+ f"nbimplot.{ cls_name } (rows={ self .rows } , cols={ self .cols } , title={ self .title !r} , "
3108+ f"renderer='wasm-implot')"
3109+ )
3110+
3111+ def _repr_mimebundle_ (self , ** kwargs : Any ) -> tuple [dict [str , Any ], dict [str , Any ]] | None :
3112+ return _with_text_plain (self ._plot ._repr_mimebundle_ (** kwargs ), repr (self ), kwargs )
3113+
30683114 def render (self ) -> None :
30693115 self ._plot .render ()
30703116
0 commit comments