Release history
Changelog
All notable changes to the Opensport SDK and documentation site. Follows semantic versioning.
v0.4.0
minor2026-03-12Added
- –TTLCache and
@ttl_cachedecorator inopensport.utils— thread-safe in-memory caching with per-entry time-to-live. - –Caching applied to
PremierLeagueProvider.get_events()(300 s) andget_odds()(120 s) to protect free-tier rate limits. - –
stream_odds()onMockProvider— async generator that yields freshOddsSnapshotobjects with jittered prices, simulating a live price feed without network calls. - –Live score demo card on the Demo page —
get_live_score()shown in the interactive playground. - –Daily value-bet digest scheduled skill — creates a Notion page each morning with that day's top +EV opportunities.
Changed
- –Demo API route now returns a
live: booleanfield so the playground can distinguish real vs. mock data.
v0.3.0
minor2026-03-08Added
- –Interactive Demo page at
/demo— run live code snippets against real Premier League data with no API key required. - –API route at
/api/demobacking the playground — gracefully falls back to curated mock data when keys are absent. - –Live / Mock badge in demo output to indicate the data source at a glance.
- –Real Matchweek 30 fixture data (14–16 March 2026) with correct GMT kick-off times baked into mock fallback.
- –Demo page linked from the main navigation and footer.
Changed
- –GitHub links updated throughout to
github.com/nellychaos/opensport.
v0.2.0
minor2026-03-01Added
- –
PremierLeagueProvider— production-ready Premier League connector combining Football-Data.org (fixtures/scores) and The Odds API (bookmaker prices). - –
FootballDataClientandOddsApiClientHTTP clients with full error handling andRateLimitErrorpropagation. - –Mapper utilities:
fbd_match_to_event,odds_to_snapshot,find_odds_event,normalize_team. - –
PremierLeagueProvider.verify()classmethod — validates both API keys cheaply before running an agent. - –47 offline unit tests covering all mappers, clients (with httpx mocks), and provider edge-cases.
- –
ProviderRegistry.from_env()— auto-discovers providers from environment variables (FOOTBALL_DATA_API_KEY,ODDS_API_KEY). - –MCP server (
opensport serve) — exposesget_events,get_odds, andfind_eventsas MCP tools consumable by Claude, Cursor, and other AI clients.
Changed
- –
BaseProvider.get_live_score()default implementation now returns{}instead of raisingNotImplementedError.
v0.1.0
major2026-02-20Added
- –Core data models —
Event,Team,Venue,OddsSnapshot,MarketOdds,OutcomeOdds,MarketType. - –
BaseProviderabstract class — standard interface (get_events,get_odds,get_markets,get_live_score,stream_odds,find_events) for all data providers. - –
MockProvider— fully in-memory provider generating realistic events and odds across soccer, NFL, NBA, and tennis. No API keys required. - –
MultiProvider+ProviderRegistry— fan-outget_events()across providers; routeget_odds()byevent_id_prefix. - –
get_value_bets()utility — strips vig, computes consensus fair probabilities, surfaces positive-EV outcomes. - –
format_odds_table()andpnl_report()display helpers. - –Python 3.11+, zero hard dependencies; optional
httpxviapip install 'opensport[http]'. - –Comprehensive test suite with 100% offline coverage of core models.