(
drift_state: Dict[str, Any],
*,
date: str,
signal: Dict[str, Any],
)
| 445 | |
| 446 | def _append_signal_window( |
| 447 | drift_state: Dict[str, Any], |
| 448 | *, |
| 449 | date: str, |
| 450 | signal: Dict[str, Any], |
| 451 | ) -> Dict[str, Any]: |
| 452 | window = list(drift_state.get("signal_window", []) or []) |
| 453 | window.append( |
| 454 | { |
| 455 | "date": date, |
| 456 | "topic": signal.get("topic"), |
| 457 | "hits": int(signal.get("hits") or 0), |
| 458 | "ratio": float(signal.get("ratio") or 0.0), |
| 459 | "top_topic": signal.get("top_topic"), |
| 460 | "hidden_anchor": signal.get("hidden_anchor"), |
| 461 | "hidden_anchor_hits": int(signal.get("hidden_anchor_hits") or 0), |
| 462 | "hidden_anchor_ratio": float(signal.get("hidden_anchor_ratio") or 0.0), |
| 463 | "hidden_anchor_is_top": bool(signal.get("hidden_anchor_is_top")), |
| 464 | } |
| 465 | ) |
| 466 | drift_state["signal_window"] = window[-ANCHOR_SIGNAL_WINDOW:] |
| 467 | |
| 468 | counter = Counter(entry.get("topic") for entry in drift_state["signal_window"] if entry.get("topic")) |
| 469 | drift_state["top_shift_topics"] = [topic for topic, _count in counter.most_common(3)] |
| 470 | return drift_state |
| 471 | |
| 472 | |
| 473 | def _compute_topic_staleness( |
| 474 | profile: Dict[str, Any], |
no test coverage detected