- config.py: KIS_APP_KEY/SECRET/ACCOUNT/IS_VIRTUAL + V1_TOKEN_PATH env - state.py: PollState extended with minute_bars (deque) and asking_price - requirements.txt: websockets>=12 19 existing tests still pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
19 lines
560 B
Python
19 lines
560 B
Python
"""PollState — process-wide singleton."""
|
|
from collections import deque
|
|
from dataclasses import dataclass, field
|
|
|
|
|
|
@dataclass
|
|
class PollState:
|
|
portfolio: dict | None = None
|
|
news_sentiment: dict | None = None
|
|
screener_preview: dict | None = None
|
|
# Phase 3a additions
|
|
minute_bars: dict[str, deque] = field(default_factory=dict)
|
|
asking_price: dict[str, dict] = field(default_factory=dict)
|
|
last_updated: dict[str, str] = field(default_factory=dict)
|
|
fetch_errors: dict[str, int] = field(default_factory=dict)
|
|
|
|
|
|
state = PollState()
|