Skip to content

feat: Build complete Market Data backend#5

Merged
kplayz merged 1 commit intomainfrom
claude/issue-4-20260413-1032
Apr 13, 2026
Merged

feat: Build complete Market Data backend#5
kplayz merged 1 commit intomainfrom
claude/issue-4-20260413-1032

Conversation

@kplayz
Copy link
Copy Markdown
Owner

@kplayz kplayz commented Apr 13, 2026

Implements the complete market data backend layer per planning docs:

  • market/types.py — PricePoint dataclass
  • market/cache.py — thread-safe PriceCache
  • market/base.py — MarketDataProvider ABC
  • market/simulator.py — GBM SimulatorProvider (500ms ticks, correlation, random events)
  • market/massive.py — MassiveProvider (REST polling every 15s)
  • market/factory.py — env-driven provider selection
  • Full unit test suite with pytest, pytest-asyncio, and respx

Closes #4

Generated with Claude Code

Implements the market data layer from scratch per planning/MARKET_INTERFACE.md,
planning/MARKET_SIMULATOR.md, and planning/MASSIVE_API.md:

- market/types.py      — PricePoint dataclass
- market/cache.py      — thread-safe PriceCache with update/get/remove/clear
- market/base.py       — MarketDataProvider abstract base class
- market/simulator.py  — GBM SimulatorProvider: correlated moves, random events,
                          500ms tick loop, any ticker string accepted
- market/massive.py    — MassiveProvider: REST polling every 15s, validate_ticker
- market/factory.py    — create_provider() selects provider via MASSIVE_API_KEY env var
- tests/               — full unit test suite covering cache, simulator, Massive
                          client (via respx mocks), and factory selection

Also creates db/.gitkeep for the SQLite volume mount directory.

Co-authored-by: Ashish <kplayz@users.noreply.github.com>
@kplayz kplayz merged commit 9d6f61c into main Apr 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build complete Market Data backend

1 participant