@@ -175,7 +175,7 @@ def add(data, text=None, parse_mode=parse_mode):
175175 if isinstance (cutout , list ):
176176 for c in cutout :
177177 add (c )
178- else :
178+ elif isinstance ( cutout , io . BytesIO ) :
179179 add (cutout )
180180
181181 res = requests .post (
@@ -262,13 +262,27 @@ def get_cutout(cutout=None, ztf_id=None, kind="Difference", origin="alert"):
262262 ztf_id : str, optional
263263 unique identifier for this object. Only
264264 used for origin=API.
265+ kind: str, optional
266+ Science, Difference, or Template
265267 origin: str, optional
266268 Choose between `alert`[default], or API.
267269
268270 Returns
269271 -------
270272 out : BytesIO stream
271273 cutout image in png format
274+
275+ Examples
276+ --------
277+ From API
278+ >>> out = get_cutout(ztf_id="ZTF23aapvluy", origin="API", kind="Science")
279+ >>> assert isinstance(out, io.BytesIO)
280+
281+ From cutout
282+ >>> pdf = pd.read_parquet("../test_data/online/science/day=04/alert_samples.parquet")
283+ >>> cutout = pdf["cutoutTemplate"].apply(lambda x: x["stampData"]).to_numpy()[0]
284+ >>> out = get_cutout(cutout, kind="Science")
285+ >>> assert isinstance(out, io.BytesIO)
272286 """
273287 if origin == "API" :
274288 assert ztf_id is not None
@@ -279,7 +293,9 @@ def get_cutout(cutout=None, ztf_id=None, kind="Difference", origin="alert"):
279293 )
280294 if not status_check (r , header = ztf_id ):
281295 return io .BytesIO ()
282- data = np .log (np .array (r .json ()["b:cutoutScience_stampData" ], dtype = float ))
296+ data = np .log (
297+ np .array (r .json ()["b:cutout{}_stampData" .format (kind )], dtype = float )
298+ )
283299 plt .axis ("off" )
284300 plt .imshow (data , cmap = "PuBu_r" )
285301 buf = io .BytesIO ()
0 commit comments