INNER CODE UNIT · Python
build
renee-jia/trading-bot · ai_portfolio.py:142
def build(ranked, macro_result=None, sell_put_plan=None, held=None, today=None):
"""Return {'names': [...core], 'watch': [...], 'summary': {...}, 'event': {...}}."""
import daily_watch
names = portfolio_list()
watch = watchlist_names(names)
rows = {(r.get("ticker") or "").upper(): r for r in (ranked or [])}
subset = [rows[n] for n in names + watch if n in rows]
cards, event = daily_watch.annotate(
subset, held=held, today=today, tape=(macro_result or {}).get("macro_tape"))
card_map = {c["ticker"]: c for c in cards}
plan_map = {p["ticker"]: p for p in ((sell_put_plan or {}).get("names") or [])}
out = [_item(n, rows.get(n), card_map.get(n), plan_map.get(n)) for n in names]
watch_items = [_item(n, rows.get(n), card_map.get(n), plan_map.get(n)) for n in watch]
scored = [x for x in out if x["score"] is not None]
d1 = [x["change_1d"] for x in out if x["change_1d"] is not None]