From 4df825d36ee5306d0d834711236ddddea4aa4b36 Mon Sep 17 00:00:00 2001 From: JulienPeloton Date: Sat, 24 May 2025 22:24:52 +0200 Subject: [PATCH 1/2] Do not trigger cutout addition if cutout is None. Also fix a bug in generating cutout from API if other than Science. --- fink_utils/tg_bot/utils.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/fink_utils/tg_bot/utils.py b/fink_utils/tg_bot/utils.py index d2122ca..b4787af 100644 --- a/fink_utils/tg_bot/utils.py +++ b/fink_utils/tg_bot/utils.py @@ -175,7 +175,7 @@ def add(data, text=None, parse_mode=parse_mode): if isinstance(cutout, list): for c in cutout: add(c) - else: + elif isinstance(cutout, io.BytesIO): add(cutout) res = requests.post( @@ -262,6 +262,8 @@ def get_cutout(cutout=None, ztf_id=None, kind="Difference", origin="alert"): ztf_id : str, optional unique identifier for this object. Only used for origin=API. + kind: str, optional + Science, Difference, or Template origin: str, optional Choose between `alert`[default], or API. @@ -269,6 +271,18 @@ def get_cutout(cutout=None, ztf_id=None, kind="Difference", origin="alert"): ------- out : BytesIO stream cutout image in png format + + Examples + -------- + From API + >>> out = get_cutout(ztf_id="ZTF23aapvluy", origin="API", kind="Science") + >>> assert isinstance(out, io.BytesIO) + + From cutout + >>> pdf = pd.read_parquet("../test_data/online/science/day=04/alert_samples.parquet") + >>> cutout = pdf["cutoutTemplate"].apply(lambda x: x["stampData"]).to_numpy()[0] + >>> out = get_cutout(cutout, kind="Science") + >>> assert isinstance(out, io.BytesIO) """ if origin == "API": assert ztf_id is not None @@ -279,7 +293,7 @@ def get_cutout(cutout=None, ztf_id=None, kind="Difference", origin="alert"): ) if not status_check(r, header=ztf_id): return io.BytesIO() - data = np.log(np.array(r.json()["b:cutoutScience_stampData"], dtype=float)) + data = np.log(np.array(r.json()["b:cutout{}_stampData".format(kind)], dtype=float)) plt.axis("off") plt.imshow(data, cmap="PuBu_r") buf = io.BytesIO() From 136ab71cb6114cbc9647ff194bd3ef946ebd3388 Mon Sep 17 00:00:00 2001 From: JulienPeloton Date: Sat, 24 May 2025 22:28:29 +0200 Subject: [PATCH 2/2] Ruff --- fink_utils/tg_bot/utils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fink_utils/tg_bot/utils.py b/fink_utils/tg_bot/utils.py index b4787af..817a50b 100644 --- a/fink_utils/tg_bot/utils.py +++ b/fink_utils/tg_bot/utils.py @@ -293,7 +293,9 @@ def get_cutout(cutout=None, ztf_id=None, kind="Difference", origin="alert"): ) if not status_check(r, header=ztf_id): return io.BytesIO() - data = np.log(np.array(r.json()["b:cutout{}_stampData".format(kind)], dtype=float)) + data = np.log( + np.array(r.json()["b:cutout{}_stampData".format(kind)], dtype=float) + ) plt.axis("off") plt.imshow(data, cmap="PuBu_r") buf = io.BytesIO()