memory_models.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. """
  2. 记忆系统数据模型 — 单日仪表盘快照(指数 / 自选 / 热点资讯)
  3. """
  4. from __future__ import annotations
  5. from datetime import date, datetime
  6. from typing import Optional
  7. class MemorySnapshot:
  8. """单日仪表盘数据快照"""
  9. def __init__(
  10. self,
  11. date_str: str = "",
  12. indices: Optional[list] = None,
  13. watchlist: Optional[dict] = None,
  14. hot_news: Optional[dict] = None,
  15. watchlist_count: int = 0,
  16. ):
  17. self.date_str = date_str or date.today().isoformat()
  18. self.indices = indices or []
  19. self.watchlist = watchlist or {}
  20. self.hot_news = hot_news or {}
  21. self.watchlist_count = watchlist_count
  22. self.created_at = datetime.now().isoformat()
  23. def to_dict(self) -> dict:
  24. return {
  25. "date_str": self.date_str,
  26. "indices": self.indices,
  27. "watchlist": self.watchlist,
  28. "hot_news": self.hot_news,
  29. "watchlist_count": self.watchlist_count,
  30. "created_at": self.created_at,
  31. }
  32. @classmethod
  33. def from_dict(cls, d: dict) -> MemorySnapshot:
  34. return cls(
  35. date_str=d.get("date_str", ""),
  36. indices=d.get("indices", []),
  37. watchlist=d.get("watchlist", {}),
  38. hot_news=d.get("hot_news", {}),
  39. watchlist_count=d.get("watchlist_count", 0),
  40. )