Skip to main content

Automate playing Yahoo Fantasy Football

Project description

fantasy-football-bot (ffbot)

PyPI Latest Release PyPI downloads License Code style: black Imports: isort codecov

Automate playing Yahoo Fantasy Football

Installation

pip install ffbot

Usage

>>> import ffbot

Scrape player forecasts

To connect to your Yahoo league and team, you need your league ID and team ID. Visit your team at https://football.fantasysports.yahoo.com/f1/, and the url will also include your league and team ID.

>>> LEAGUE = 123456
>>> TEAM = 1
>>> POSITIONS = "QB, WR, WR, WR, RB, RB, TE, W/R/T, K, DEF, BN, BN, BN, BN, IR"
>>> week = ffbot.current_week()
>>> df = ffbot.scrape(LEAGUE)
>>> # If playing an Individual Defensive Player (IDP) league, then scrape additional players with:
>>> # df = ffbot.scrape(LEAGUE, is_IDP=True)
Scraping all QB...
Scraping all WR...
Scraping all RB...
Scraping all TE...
Scraping all K...
Scraping all DEF...
Scraping weekly forecasts...
Total runtime: 0:10:33.784455

Optional methods to save data to CSV, and load data:

>>> ffbot.save(df, week)
>>> df, week = ffbot.load()  # loads latest file, but you can also provide a filepath

Optimize add and drop players

ffbot.optimize() is used to find players to add and drop that maximize your team's performance. The optimizer decides which players to add and drop, and how to assign each player to positions each week. Optimization is repeated for current roster, for one player add/drop, two player add/drops, etc.

>>> df_opt = ffbot.optimize(df, week, TEAM, POSITIONS)
>>> print(df_opt)
                              Add              Drop Total points Discounted points     VOR
0                <current roster>                        1583.94            367.51  226.73
1                     Kansas City                          16.27              2.24   -7.98
2                     Matt Bryant         Joey Slye          4.6              1.67   -3.63
3                  Dede Westbrook      Kenyan Drake         4.27              0.65    2.75
4 Jordan Howard - Waivers (Oct 2)  Marvin Jones Jr.        10.37             17.23   -3.54

which means that optimal weekly rosters of your current players scores 1583.94 points across the season and 367.51 discounted points (points in week 1 are worth more than week 12). The best free agent to add is Kansas City, which increases discounted points by 2.24 (although lowers total season points by 16.27 and lowers value over replacement by 7.98). Two other free agent pickups improve discounted points. Only one Waiver claim (for Jordon Howard) increases discounted points.

Contribution

Please add Issues or submit Pull Requests!

For local development, install optional testing dependencies and pre-commit hooks using

pip install ffbot[test]
pre-commit install

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ffbot-1.2.10.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

ffbot-1.2.10-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file ffbot-1.2.10.tar.gz.

File metadata

  • Download URL: ffbot-1.2.10.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for ffbot-1.2.10.tar.gz
Algorithm Hash digest
SHA256 a31acf3a1e384849bb1edb32d870580071533ff762e9c57ae12980417dee68ac
MD5 64f31c52e4f31bfe60dcd76deb853006
BLAKE2b-256 e26fa88762fc8990d037f9ae2c431ebe3a816f4d50d6442a5e0d9c93ff50d4c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffbot-1.2.10.tar.gz:

Publisher: python-publish.yml on amarvin/fantasy-football-bot

Attestations:

File details

Details for the file ffbot-1.2.10-py3-none-any.whl.

File metadata

  • Download URL: ffbot-1.2.10-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for ffbot-1.2.10-py3-none-any.whl
Algorithm Hash digest
SHA256 d9518d3a812b6b74ac79f9dfc7f388e05a8fe9f83864f45d8650a20254123020
MD5 6415e24f48e90db273d0d2a77bdb23fa
BLAKE2b-256 ce95c30be66b8ca589bc134f675220b3417bbe4d9589a3e89d3f196dd64e57f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for ffbot-1.2.10-py3-none-any.whl:

Publisher: python-publish.yml on amarvin/fantasy-football-bot

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page