Repository navigation
fantasyfb v0.7.0
fantasyfb v0.7.0
Multi-platform league support: SleeperClient and a fully synthetic generic mock mode join Yahoo behind a shared FantasyPlatformClient interface, with --platform now available across all three draft CLIs. Also includes dual (position + flex) VORP, simadd win/earnings-delta evaluation during live drafts, and a rebranded navy/green logo.
pip install --upgrade fantasyfbHighlights
- Sleeper and generic mock leagues, alongside Yahoo.
League(platform="yahoo"|"sleeper"|"generic")picks its backend through a sharedFantasyPlatformClientinterface. Sleeper reads a league's real rosters/scoring/schedule from its public API with zero credentials, just asleeper_league_id.genericneeds nothing at all: it synthesizes teams, rosters, and a round-robin schedule against the real current NFL player pool, and is now the default platform when--platformis omitted.--platform/--sleeper-league-id/--num-teams/--mock-scoringare wired into all three draft CLIs (snake-draft,salary-cap-draft,draft-prep). - Dual VORP: position-specific and flex-aware.
compute_vorpnow also emitsflex_replacement_rate,vorp_flex_per_game, andvorp_flex_season, computed against the combined pool of everyone eligible for the deepest flex slot. In a superflex league this correctly compresses QB value since the superflex slot would otherwise go to a WR/RB/TE. Every draft decision surface (cockpitvorp_adjusted, salary cap dollar values, mock draft strategies) now runs on flex VORP by default. simadd: sim a hypothetical pick before committing. New command onsnake-draftandsalary-cap-draftsims the top-N available candidates per position and ranks them by win/playoff/earnings delta from a cached baseline, so you can evaluate a pick's real impact mid-draft. Onsalary-cap-draft, each candidate is priced at itsmax_my_bidbefore the hypothetical add is simulated, since adding a candidate there costs cap space rather than being free.best/simaddnow prompt for pool and scoring instead of a combinatorial explosion of separate commands (nearest,bestball,nearestbestball,nearestsimadd,bestballsimaddare gone). Pick best-available vs. nearest-ADP, and normal vs. bestball-upside scoring, interactively.- Rebranded logo and docs site. New navy/green "FFB51" mark replaces the old navy/gold snake-and-shield. The docs site's Yahoo-only setup page is now Connecting a league, covering the credential-free Sleeper and generic options alongside Yahoo OAuth.
Also in this release
- ADP blended into
random/random til me's auto-pick sampling weights, so a market-favorite with poor personal-VORP standing (or vice versa) doesn't get picked as often. --fresh-draftonsnake-draft/salary-cap-draftfor mock-drafting against a league's current settings without keeper-preservation logic kicking in.- Persistent, filesystem-backed
nflreadpycaching (24h TTL) so repeated draft-prep CLI runs reuse a warm cache instead of re-downloading;--refresh-cacheforces a fresh pull. YahooFantasyClient.list_team_names(season)for resolving a multi-team account's teams without the old interactive-input()-only path (which hung in non-interactive contexts like a Streamlit app).- Breaking change:
--sfbremoved fromsnake-draft/draft-prep, along withLeague(sfb=...). Use--platform sleeper --sleeper-league-id <id>instead, which now pulls a live Sleeper league's scoring/roster settings directly, including SFB leagues. - Several offline-draft-prep crash fixes:
NflreadpyProvider.get_depth_chartsandPlayerDataManager.add_injuriesno longer hard-fail on a cold cache with no network. connect_to_leaguefix for accounts with teams spread across multiple leagues in the same season, where the wrong league could silently get selected.PlayerDataManager.map_player_idsnow honors Sleeper-resolved player IDs instead of assuming Yahoo-shaped IDs everywhere.
See CHANGELOG.md for the full list.