v0.3.1 — nested refs + TeamRef metadata
Bundles the 0.3.0 (nested refs) and 0.3.1 (TeamRef metadata) work into a single published release. 0.3.0 was never tagged; install 0.3.1 to get all of it.
Added
Nested reference objects (was 0.3.0)
Every odds, opportunity, and reference-list row may now carry optional structured ref objects alongside the legacy flat fields. All additive — clients on older API versions just see None and behave identically.
- New models:
TeamRef,SportRef,EntityRef,Team OddsLine,EVOpportunity,ArbitrageOpportunity,MiddleOpportunity,LowHoldOpportunity— gainhome,away,sport_ref,league_ref,market_ref,sportsbook_refArbitrageLeggainssportsbook_refClosingOddsLinegainsmarket_ref+sportsbook_refClosingSnapshotgainshome,away,sport_ref,league_refSport,League,Sportsbook,Marketgainnumerical_idEventgainshome,away,sport_ref,league_ref
TeamRef metadata (was 0.3.1)
TeamRef and the Team reference shape gain five optional metadata fields:
logo— full CDN URL (~93% coverage)city,mascot,conference,division
All default to None. Unmapped rows omit the field rather than emitting null.
Repo / packaging hygiene
- Add
LICENSE(MIT) andSECURITY.md(hello@sharpapi.io) - Author email updated
support@→hello@ - Tighten the sdist via
[tool.hatch.build.targets.sdist]so.github/workflow YAML no longer ships to PyPI - Drop
tests/from the repo (kept locally for development); CI gate is now lint + typecheck across Python 3.10 → 3.13
Compatibility
No existing field was renamed, retyped, or removed. Code on 0.2.x continues to work.