From 89eb5135e7d74760446d08c7b25b3f82f525fa1c Mon Sep 17 00:00:00 2001 From: zlt Date: Wed, 9 Sep 2026 10:30:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=84=E6=9E=90=E7=9B=AE=E6=A0=87=E5=90=8D?= =?UTF-8?q?=E5=8D=95=E5=8F=96=E5=B1=95=E7=A4=BA=E7=BB=99=E4=BA=BA=E7=9A=84?= =?UTF-8?q?=E5=80=99=E9=80=89=E5=8D=95=EF=BC=8C=E4=B8=8D=E5=8F=96=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E4=B8=BB=E6=A6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5.1 --- review_targets.py | 6 +++++- test_review_targets.py | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/review_targets.py b/review_targets.py index 3f1a64d..8a12e32 100644 --- a/review_targets.py +++ b/review_targets.py @@ -62,7 +62,11 @@ def save(ds: str, rows: list, conn_factory=None) -> None: def persist(ds: str, snap: dict, write=None) -> dict: - rows = build_rows(ds, snap.get("main") or [], snap.get("observe") or []) + """目标是计划里展示给人的那一份候选单(主榜前几十只加观察档),不是全部主榜;快照里叫 main_shown / observe_shown, + 老快照没有这两个键就退回 main / observe。""" + main = snap.get("main_shown") if snap.get("main_shown") is not None else (snap.get("main") or []) + obs = snap.get("observe_shown") if snap.get("observe_shown") is not None else (snap.get("observe") or []) + rows = build_rows(ds, main, obs) (write or save)(ds, rows) n_main = sum(1 for r in rows if r["source"] == "main") print(f" 评析目标名单 {ds}:主榜 {n_main},观察 {len(rows) - n_main},写入 {TABLE}") diff --git a/test_review_targets.py b/test_review_targets.py index 8654bb7..f11d62f 100644 --- a/test_review_targets.py +++ b/test_review_targets.py @@ -17,6 +17,9 @@ def main(): out = rt.persist("2026-09-08", snap, write=lambda ds, rs: got.setdefault(ds, rs)) t("写入可注入且读数正确", out["rows"] == 3 and out["main"] == 2 and len(got["2026-09-08"]) == 3) t("认不出的代码丢弃", all(len(r["ts_code"]) == 9 for r in rows)) + shown = {"main": [{"code": "SH600519"}] * 3, "observe": [], "main_shown": [{"code": "SZ300750"}], "observe_shown": [{"code": "SZ000001"}]} + out2 = rt.persist("2026-09-09", shown, write=lambda ds, rs: got.setdefault(ds, rs)) + t("优先取展示给人的那份候选单", out2["rows"] == 2 and got["2026-09-09"][0]["ts_code"] == "300750.SZ") print("ALL OK — 评析目标名单")