sportsball 0.3.26__tar.gz → 0.3.28__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sportsball-0.3.26/sportsball.egg-info → sportsball-0.3.28}/PKG-INFO +1 -1
- {sportsball-0.3.26 → sportsball-0.3.28}/setup.py +1 -1
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/__init__.py +1 -1
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/afltables/afl_afltables_league_model.py +13 -4
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/combined/afl_combined_league_model.py +4 -4
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/espn/afl_espn_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +8 -3
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/espn/espn_league_model.py +7 -3
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/google/google_address_model.py +212 -63
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/league_model.py +7 -1
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/combined/nba_combined_league_model.py +6 -4
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/espn/nba_espn_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/nba/nba_nba_league_model.py +5 -3
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +7 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +5 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +7 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +2 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nfl/combined/nfl_combined_league_model.py +5 -3
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nfl/espn/nfl_espn_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +4 -2
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/oddsportal/oddsportal_game_model.py +15 -5
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/oddsportal/oddsportal_league_model.py +4 -3
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/oddsportal/oddsportal_team_model.py +11 -4
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/sportsdb/sportsdb_league_model.py +7 -3
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/sportsreference/sportsreference_league_model.py +7 -3
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +5 -1
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/proxy_session.py +1 -1
- {sportsball-0.3.26 → sportsball-0.3.28/sportsball.egg-info}/PKG-INFO +1 -1
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/oddsportal/oddsportal_game_model_test.py +18 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/LICENSE +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/MANIFEST.in +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/README.md +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/requirements.txt +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/setup.cfg +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/__main__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/args.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/cache.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/address_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/combined/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/espn/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/bookie_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/combined/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/combined/combined_address_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/combined/combined_game_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/combined/combined_league_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/combined/combined_player_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/combined/combined_team_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/combined/combined_venue_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/combined/combined_weather_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/espn/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/espn/espn_bookie_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/espn/espn_game_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/espn/espn_odds_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/espn/espn_player_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/espn/espn_team_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/espn/espn_venue_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/field_type.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/game_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/google/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/google/google_news_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/league.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/combined/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/espn/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/nba/nba_nba_player_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/oddsportal/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaab/combined/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaab/espn/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaaf/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaaf/combined/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaaf/espn/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/news_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nfl/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nfl/combined/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nfl/espn/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/odds_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/player_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/season_type.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/social_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/sportsreference/sportsreference_game_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/sportsreference/sportsreference_team_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/team_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/venue_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/weather/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/weather/gribstream/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/weather/multi_weather_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/weather/openmeteo/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/weather_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/wikipedia/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/x/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/x/x_social_model.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/logger.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/loglevel.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/session.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/sportsball.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/vendor/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball/vendor/pygooglenews/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball.egg-info/SOURCES.txt +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball.egg-info/dependency_links.txt +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball.egg-info/entry_points.txt +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball.egg-info/not-zip-safe +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball.egg-info/requires.txt +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/sportsball.egg-info/top_level.txt +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/afl/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/combined/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/combined/combined_game_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/combined/combined_player_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/espn/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/espn/espn_game_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/espn/espn_player_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/game_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/google/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/google/google_address_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/google/google_news_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/nba/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/nba/nba/nba_nba_player_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/nfl/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/player_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/social_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/team_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/x/__init__.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/data/x/x_social_model_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/proxy_session_test.py +0 -0
- {sportsball-0.3.26 → sportsball-0.3.28}/tests/sportsball_test.py +0 -0
@@ -26,7 +26,7 @@ def install_requires() -> typing.List[str]:
|
|
26
26
|
|
27
27
|
setup(
|
28
28
|
name='sportsball',
|
29
|
-
version='0.3.
|
29
|
+
version='0.3.28',
|
30
30
|
description='A library for pulling in and normalising sports stats.',
|
31
31
|
long_description=long_description,
|
32
32
|
long_description_content_type='text/markdown',
|
{sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/afltables/afl_afltables_league_model.py
RENAMED
@@ -1,7 +1,8 @@
|
|
1
1
|
"""AFL AFLTables league model."""
|
2
2
|
|
3
|
-
# pylint: disable=too-many-statements
|
3
|
+
# pylint: disable=too-many-statements,protected-access
|
4
4
|
import datetime
|
5
|
+
import logging
|
5
6
|
import os
|
6
7
|
import urllib.parse
|
7
8
|
from typing import Iterator
|
@@ -24,7 +25,9 @@ _SEASON_URL = "https://afltables.com/afl/seas/season_idx.html"
|
|
24
25
|
class AFLAFLTablesLeagueModel(LeagueModel):
|
25
26
|
"""AFL AFLTables implementation of the league model."""
|
26
27
|
|
27
|
-
def __init__(
|
28
|
+
def __init__(
|
29
|
+
self, session: requests_cache.CachedSession, position: int | None = None
|
30
|
+
) -> None:
|
28
31
|
super().__init__(League.AFL, session)
|
29
32
|
|
30
33
|
def _produce_games(
|
@@ -59,7 +62,13 @@ class AFLAFLTablesLeagueModel(LeagueModel):
|
|
59
62
|
if "Venue:" in td_text:
|
60
63
|
cleaned_text = td_text.split("Venue:")[0].split("Att:")[0].strip()
|
61
64
|
cleaned_text = " ".join(cleaned_text.split()[-3:])
|
62
|
-
|
65
|
+
try:
|
66
|
+
current_dt = parser.parse(cleaned_text)
|
67
|
+
except parser._parser.ParserError as exc: # type: ignore
|
68
|
+
logging.error(
|
69
|
+
"Failed to parse date in season URL: %s", season_url
|
70
|
+
)
|
71
|
+
raise exc
|
63
72
|
for a in table.find_all("a", href=True):
|
64
73
|
if a.get_text().strip().lower() == "match stats":
|
65
74
|
url = urllib.parse.urljoin(season_url, a.get("href"))
|
@@ -132,7 +141,7 @@ class AFLAFLTablesLeagueModel(LeagueModel):
|
|
132
141
|
def games(self) -> Iterator[GameModel]:
|
133
142
|
response = self.session.get(_SEASON_URL)
|
134
143
|
soup = BeautifulSoup(response.text, "html.parser")
|
135
|
-
with tqdm.tqdm() as pbar:
|
144
|
+
with tqdm.tqdm(position=self.position) as pbar:
|
136
145
|
for table in soup.find_all("table"):
|
137
146
|
for tr in table.find_all("tr"):
|
138
147
|
for td in tr.find_all("td"):
|
@@ -10,5 +10,7 @@ from ...league import League
|
|
10
10
|
class AFLAusSportsBettingLeagueModel(AusSportsBettingLeagueModel):
|
11
11
|
"""AFL AusSportsBetting implementation of the league model."""
|
12
12
|
|
13
|
-
def __init__(
|
14
|
-
|
13
|
+
def __init__(
|
14
|
+
self, session: requests_cache.CachedSession, position: int | None = None
|
15
|
+
) -> None:
|
16
|
+
super().__init__(League.AFL, session, position=position)
|
{sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/afl/combined/afl_combined_league_model.py
RENAMED
@@ -210,10 +210,10 @@ class AFLCombinedLeagueModel(CombinedLeagueModel):
|
|
210
210
|
session,
|
211
211
|
League.AFL,
|
212
212
|
[
|
213
|
-
AFLAFLTablesLeagueModel(session),
|
214
|
-
AFLESPNLeagueModel(session),
|
215
|
-
AFLAusSportsBettingLeagueModel(session),
|
216
|
-
AFLOddsPortalLeagueModel(session),
|
213
|
+
AFLAFLTablesLeagueModel(session, position=0),
|
214
|
+
AFLESPNLeagueModel(session, position=1),
|
215
|
+
AFLAusSportsBettingLeagueModel(session, position=2),
|
216
|
+
AFLOddsPortalLeagueModel(session, position=3),
|
217
217
|
],
|
218
218
|
)
|
219
219
|
|
@@ -13,5 +13,7 @@ _SEASON_URL = "https://sports.core.api.espn.com/v2/sports/australian-football/le
|
|
13
13
|
class AFLESPNLeagueModel(ESPNLeagueModel):
|
14
14
|
"""AFL ESPN implementation of the league model."""
|
15
15
|
|
16
|
-
def __init__(
|
17
|
-
|
16
|
+
def __init__(
|
17
|
+
self, session: requests_cache.CachedSession, position: int | None = None
|
18
|
+
) -> None:
|
19
|
+
super().__init__(_SEASON_URL, League.AFL, session, position=position)
|
@@ -11,5 +11,7 @@ from ...oddsportal.oddsportal_league_model import OddsPortalLeagueModel
|
|
11
11
|
class AFLOddsPortalLeagueModel(OddsPortalLeagueModel):
|
12
12
|
"""AFL OddsPortal implementation of the league model."""
|
13
13
|
|
14
|
-
def __init__(
|
15
|
-
|
14
|
+
def __init__(
|
15
|
+
self, session: requests_cache.CachedSession, position: int | None = None
|
16
|
+
) -> None:
|
17
|
+
super().__init__(League.AFL, session, position=position)
|
@@ -18,8 +18,13 @@ from .aussportsbetting_game_model import create_aussportsbetting_game_model
|
|
18
18
|
class AusSportsBettingLeagueModel(LeagueModel):
|
19
19
|
"""AusSportsBetting implementation of the league model."""
|
20
20
|
|
21
|
-
def __init__(
|
22
|
-
|
21
|
+
def __init__(
|
22
|
+
self,
|
23
|
+
league: League,
|
24
|
+
session: requests_cache.CachedSession,
|
25
|
+
position: int | None = None,
|
26
|
+
) -> None:
|
27
|
+
super().__init__(league, session, position=position)
|
23
28
|
match league:
|
24
29
|
case League.AFL:
|
25
30
|
self._spreadsheet_url = (
|
@@ -96,7 +101,7 @@ class AusSportsBettingLeagueModel(LeagueModel):
|
|
96
101
|
ws = workbook.active
|
97
102
|
if ws is None:
|
98
103
|
raise ValueError("ws is null.")
|
99
|
-
with tqdm.tqdm() as pbar:
|
104
|
+
with tqdm.tqdm(position=self.position) as pbar:
|
100
105
|
for row in ws.iter_rows():
|
101
106
|
game_model = self._row_to_game(row)
|
102
107
|
if game_model is not None:
|
@@ -29,9 +29,13 @@ class ESPNLeagueModel(LeagueModel):
|
|
29
29
|
"""ESPN implementation of the league model."""
|
30
30
|
|
31
31
|
def __init__(
|
32
|
-
self,
|
32
|
+
self,
|
33
|
+
start_url: str,
|
34
|
+
league: League,
|
35
|
+
session: requests_cache.CachedSession,
|
36
|
+
position: int | None = None,
|
33
37
|
) -> None:
|
34
|
-
super().__init__(league, session)
|
38
|
+
super().__init__(league, session, position=position)
|
35
39
|
self._start_url = start_url
|
36
40
|
|
37
41
|
def _produce_games(
|
@@ -138,7 +142,7 @@ class ESPNLeagueModel(LeagueModel):
|
|
138
142
|
@property
|
139
143
|
def games(self) -> Iterator[GameModel]:
|
140
144
|
page = 1
|
141
|
-
with tqdm.tqdm() as pbar:
|
145
|
+
with tqdm.tqdm(position=self.position) as pbar:
|
142
146
|
while True:
|
143
147
|
if page == 1:
|
144
148
|
with self.session.cache_disabled():
|
@@ -1378,6 +1378,69 @@ BOGOTA_SAVINGS_BANK_CENTER = SportsballGeocodeTuple(
|
|
1378
1378
|
housenumber="",
|
1379
1379
|
country="USA",
|
1380
1380
|
)
|
1381
|
+
CORBETT_SPORTS_CENTER = SportsballGeocodeTuple(
|
1382
|
+
city="Greensboro",
|
1383
|
+
state="NC",
|
1384
|
+
postal="27411",
|
1385
|
+
lat=36.076783,
|
1386
|
+
lng=-79.768849,
|
1387
|
+
housenumber="1601",
|
1388
|
+
country="USA",
|
1389
|
+
)
|
1390
|
+
EA_DIDDLE_ARENA = SportsballGeocodeTuple(
|
1391
|
+
city="Bowling Green",
|
1392
|
+
state="KY",
|
1393
|
+
postal="42101",
|
1394
|
+
lat=36.985833,
|
1395
|
+
lng=-86.4575,
|
1396
|
+
housenumber="1526",
|
1397
|
+
country="USA",
|
1398
|
+
)
|
1399
|
+
JMA_WIRELESS_DOME = SportsballGeocodeTuple(
|
1400
|
+
city="Syracuse",
|
1401
|
+
state="NY",
|
1402
|
+
postal="13244",
|
1403
|
+
lat=43.036111,
|
1404
|
+
lng=-76.136389,
|
1405
|
+
housenumber="900",
|
1406
|
+
country="USA",
|
1407
|
+
)
|
1408
|
+
AG_SPANOS_CENTER = SportsballGeocodeTuple(
|
1409
|
+
city="Stockton",
|
1410
|
+
state="CA",
|
1411
|
+
postal="95211",
|
1412
|
+
lat=37.976669,
|
1413
|
+
lng=-121.315095,
|
1414
|
+
housenumber="1178",
|
1415
|
+
country="USA",
|
1416
|
+
)
|
1417
|
+
WAR_MEMORIAL_GYMNASIUM = SportsballGeocodeTuple(
|
1418
|
+
city="San Francisco",
|
1419
|
+
state="CA",
|
1420
|
+
postal="94118",
|
1421
|
+
lat=37.776944,
|
1422
|
+
lng=-122.449444,
|
1423
|
+
housenumber="2335",
|
1424
|
+
country="USA",
|
1425
|
+
)
|
1426
|
+
HENDERSON_CENTER = SportsballGeocodeTuple(
|
1427
|
+
city="Huntington",
|
1428
|
+
state="WV",
|
1429
|
+
postal="25755",
|
1430
|
+
lat=38.424517,
|
1431
|
+
lng=-82.425211,
|
1432
|
+
housenumber="",
|
1433
|
+
country="USA",
|
1434
|
+
)
|
1435
|
+
TED_CONSTANT_CONVOCATION_CENTER = SportsballGeocodeTuple(
|
1436
|
+
city="Norfolk",
|
1437
|
+
state="VA",
|
1438
|
+
postal="",
|
1439
|
+
lat=36.884169,
|
1440
|
+
lng=-76.301231,
|
1441
|
+
housenumber="4320",
|
1442
|
+
country="USA",
|
1443
|
+
)
|
1381
1444
|
_CACHED_GEOCODES: dict[str, Any] = {
|
1382
1445
|
"S.C.G. - Australia": SCG,
|
1383
1446
|
"Victoria Park - Australia": SportsballGeocodeTuple(
|
@@ -2297,15 +2360,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
2297
2360
|
housenumber="1972",
|
2298
2361
|
country="USA",
|
2299
2362
|
),
|
2300
|
-
"JMA Wireless Dome - Syracuse - NY - 13244":
|
2301
|
-
city="Syracuse",
|
2302
|
-
state="NY",
|
2303
|
-
postal="13244",
|
2304
|
-
lat=43.036111,
|
2305
|
-
lng=-76.136389,
|
2306
|
-
housenumber="900",
|
2307
|
-
country="USA",
|
2308
|
-
),
|
2363
|
+
"JMA Wireless Dome - Syracuse - NY - 13244": JMA_WIRELESS_DOME,
|
2309
2364
|
"Davis Wade Stadium - Starkville - MS - 39762": SportsballGeocodeTuple(
|
2310
2365
|
city="Starkville",
|
2311
2366
|
state="MS",
|
@@ -3465,15 +3520,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
3465
3520
|
housenumber="1000",
|
3466
3521
|
country="USA",
|
3467
3522
|
),
|
3468
|
-
"Ted Constant Convocation Ctr., Norfolk, Virginia":
|
3469
|
-
city="Norfolk",
|
3470
|
-
state="VA",
|
3471
|
-
postal="",
|
3472
|
-
lat=36.884169,
|
3473
|
-
lng=-76.301231,
|
3474
|
-
housenumber="4320",
|
3475
|
-
country="USA",
|
3476
|
-
),
|
3523
|
+
"Ted Constant Convocation Ctr., Norfolk, Virginia": TED_CONSTANT_CONVOCATION_CENTER,
|
3477
3524
|
"Yanitelli Center, Jersey City, New Jersey": SportsballGeocodeTuple(
|
3478
3525
|
city="Jersey City",
|
3479
3526
|
state="NJ",
|
@@ -3657,15 +3704,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
3657
3704
|
housenumber="111",
|
3658
3705
|
country="USA",
|
3659
3706
|
),
|
3660
|
-
"Ellis Corbett Sports Center, Greensboro, North Carolina":
|
3661
|
-
city="Greensboro",
|
3662
|
-
state="NC",
|
3663
|
-
postal="27411",
|
3664
|
-
lat=36.076783,
|
3665
|
-
lng=-79.768849,
|
3666
|
-
housenumber="1601",
|
3667
|
-
country="USA",
|
3668
|
-
),
|
3707
|
+
"Ellis Corbett Sports Center, Greensboro, North Carolina": CORBETT_SPORTS_CENTER,
|
3669
3708
|
"Trask Coliseum, Wilmington, North Carolina": SportsballGeocodeTuple(
|
3670
3709
|
city="Wilmington",
|
3671
3710
|
state="NC",
|
@@ -4950,15 +4989,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
4950
4989
|
housenumber="18",
|
4951
4990
|
country="USA",
|
4952
4991
|
),
|
4953
|
-
"Henderson Center, Huntington, West Virginia":
|
4954
|
-
city="Huntington",
|
4955
|
-
state="WV",
|
4956
|
-
postal="25755",
|
4957
|
-
lat=38.424517,
|
4958
|
-
lng=-82.425211,
|
4959
|
-
housenumber="",
|
4960
|
-
country="USA",
|
4961
|
-
),
|
4992
|
+
"Henderson Center, Huntington, West Virginia": HENDERSON_CENTER,
|
4962
4993
|
"Costello Athletic Center, Lowell, Massachusetts": SportsballGeocodeTuple(
|
4963
4994
|
city="Lowell",
|
4964
4995
|
state="MA",
|
@@ -5094,15 +5125,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
5094
5125
|
housenumber="1",
|
5095
5126
|
country="USA",
|
5096
5127
|
),
|
5097
|
-
"E.A. Diddle Arena, Bowling Green, Kentucky":
|
5098
|
-
city="Bowling Green",
|
5099
|
-
state="KY",
|
5100
|
-
postal="42101",
|
5101
|
-
lat=36.985833,
|
5102
|
-
lng=-86.4575,
|
5103
|
-
housenumber="1526",
|
5104
|
-
country="USA",
|
5105
|
-
),
|
5128
|
+
"E.A. Diddle Arena, Bowling Green, Kentucky": EA_DIDDLE_ARENA,
|
5106
5129
|
"Don Haskins Center, El Paso, Texas": SportsballGeocodeTuple(
|
5107
5130
|
city="El Paso",
|
5108
5131
|
state="TX",
|
@@ -5130,15 +5153,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
5130
5153
|
housenumber="1",
|
5131
5154
|
country="USA",
|
5132
5155
|
),
|
5133
|
-
"A.G. Spanos Center, Stockton, California":
|
5134
|
-
city="Stockton",
|
5135
|
-
state="CA",
|
5136
|
-
postal="95211",
|
5137
|
-
lat=37.976669,
|
5138
|
-
lng=-121.315095,
|
5139
|
-
housenumber="1178",
|
5140
|
-
country="USA",
|
5141
|
-
),
|
5156
|
+
"A.G. Spanos Center, Stockton, California": AG_SPANOS_CENTER,
|
5142
5157
|
"Leavey Center, Santa Clara, California": SportsballGeocodeTuple(
|
5143
5158
|
city="Santa Clara",
|
5144
5159
|
state="CA",
|
@@ -5684,15 +5699,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
5684
5699
|
country="USA",
|
5685
5700
|
),
|
5686
5701
|
"John F. Savage Hall, Toledo, Ohio": SAVAGE_ARENA,
|
5687
|
-
"War Memorial at The Sobrato Center, San Francisco, California":
|
5688
|
-
city="San Francisco",
|
5689
|
-
state="CA",
|
5690
|
-
postal="94118",
|
5691
|
-
lat=37.776944,
|
5692
|
-
lng=-122.449444,
|
5693
|
-
housenumber="2335",
|
5694
|
-
country="USA",
|
5695
|
-
),
|
5702
|
+
"War Memorial at The Sobrato Center, San Francisco, California": WAR_MEMORIAL_GYMNASIUM,
|
5696
5703
|
"The Jungle, Indianapolis, Indiana": SportsballGeocodeTuple(
|
5697
5704
|
city="Indianapolis",
|
5698
5705
|
state="IN",
|
@@ -7676,6 +7683,148 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
7676
7683
|
),
|
7677
7684
|
"Gersten Pavilion, Los Angeles, California": GERSTEN_PAVILION,
|
7678
7685
|
"Rothman Center, Teaneck, New Jersey": BOGOTA_SAVINGS_BANK_CENTER,
|
7686
|
+
"Corbett Sports Center, Greensboro, North Carolina": CORBETT_SPORTS_CENTER,
|
7687
|
+
"Easton, Massachusetts": SportsballGeocodeTuple(
|
7688
|
+
city="Easton",
|
7689
|
+
state="MA",
|
7690
|
+
postal="",
|
7691
|
+
lat=42.024444,
|
7692
|
+
lng=-71.129167,
|
7693
|
+
housenumber="",
|
7694
|
+
country="USA",
|
7695
|
+
),
|
7696
|
+
"University Credit Union Center, Davis, California": SportsballGeocodeTuple(
|
7697
|
+
city="Davis",
|
7698
|
+
state="CA",
|
7699
|
+
postal="95616",
|
7700
|
+
lat=38.541667,
|
7701
|
+
lng=-121.759444,
|
7702
|
+
housenumber="1",
|
7703
|
+
country="USA",
|
7704
|
+
),
|
7705
|
+
"Buccaneer Field House, Charleston, South Carolina": SportsballGeocodeTuple(
|
7706
|
+
city="Charleston",
|
7707
|
+
state="SC",
|
7708
|
+
postal="29406",
|
7709
|
+
lat=32.980822,
|
7710
|
+
lng=-80.067125,
|
7711
|
+
housenumber="9200",
|
7712
|
+
country="USA",
|
7713
|
+
),
|
7714
|
+
"Credit Union 1 Arena, Chicago, Illinois": SportsballGeocodeTuple(
|
7715
|
+
city="Chicago",
|
7716
|
+
state="IL",
|
7717
|
+
postal="60607",
|
7718
|
+
lat=41.874722,
|
7719
|
+
lng=-87.656111,
|
7720
|
+
housenumber="525",
|
7721
|
+
country="USA",
|
7722
|
+
),
|
7723
|
+
"E. A. Diddle Arena, Bowling Green, Kentucky": EA_DIDDLE_ARENA,
|
7724
|
+
"JMA Wireless Dome, Syracuse, New York": JMA_WIRELESS_DOME,
|
7725
|
+
"Truist Arena, Highland Heights, Kentucky": SportsballGeocodeTuple(
|
7726
|
+
city="Highland Heights",
|
7727
|
+
state="KT",
|
7728
|
+
postal="41099",
|
7729
|
+
lat=39.032273,
|
7730
|
+
lng=-84.458864,
|
7731
|
+
housenumber="500",
|
7732
|
+
country="USA",
|
7733
|
+
),
|
7734
|
+
"Kress Events Center, Green Bay, Wisconsin": SportsballGeocodeTuple(
|
7735
|
+
city="Green Bay",
|
7736
|
+
state="WI",
|
7737
|
+
postal="",
|
7738
|
+
lat=44.530069,
|
7739
|
+
lng=-87.915967,
|
7740
|
+
housenumber="",
|
7741
|
+
country="USA",
|
7742
|
+
),
|
7743
|
+
"OceanFirst Bank Center, West Long Branch, New Jersey": SportsballGeocodeTuple(
|
7744
|
+
city="West Long Branch",
|
7745
|
+
state="NJ",
|
7746
|
+
postal="07764",
|
7747
|
+
lat=40.279475,
|
7748
|
+
lng=-74.007583,
|
7749
|
+
housenumber="400",
|
7750
|
+
country="USA",
|
7751
|
+
),
|
7752
|
+
"Alex G. Spanos Center, Stockton, California": AG_SPANOS_CENTER,
|
7753
|
+
"War Memorial Gymnasium, San Francisco, California": WAR_MEMORIAL_GYMNASIUM,
|
7754
|
+
"First National Bank Arena, Jonesboro, Arkansas": SportsballGeocodeTuple(
|
7755
|
+
city="Jonesboro",
|
7756
|
+
state="AR",
|
7757
|
+
postal="72401",
|
7758
|
+
lat=35.845422,
|
7759
|
+
lng=-90.670319,
|
7760
|
+
housenumber="217",
|
7761
|
+
country="USA",
|
7762
|
+
),
|
7763
|
+
"Frost Arena, Brookings, South Dakota": SportsballGeocodeTuple(
|
7764
|
+
city="Brookings",
|
7765
|
+
state="SD",
|
7766
|
+
postal="57007",
|
7767
|
+
lat=44.317984,
|
7768
|
+
lng=-96.779058,
|
7769
|
+
housenumber="1165",
|
7770
|
+
country="USA",
|
7771
|
+
),
|
7772
|
+
"Louisville, Kentucky": SportsballGeocodeTuple(
|
7773
|
+
city="Louisville",
|
7774
|
+
state="KT",
|
7775
|
+
postal="",
|
7776
|
+
lat=38.256111,
|
7777
|
+
lng=-85.751389,
|
7778
|
+
housenumber="",
|
7779
|
+
country="USA",
|
7780
|
+
),
|
7781
|
+
"Saint Charles, Missouri": SportsballGeocodeTuple(
|
7782
|
+
city="Saint Charles",
|
7783
|
+
state="MO",
|
7784
|
+
postal="",
|
7785
|
+
lat=38.789,
|
7786
|
+
lng=-90.514,
|
7787
|
+
housenumber="",
|
7788
|
+
country="USA",
|
7789
|
+
),
|
7790
|
+
"Cam Henderson Center, Huntington, West Virginia": HENDERSON_CENTER,
|
7791
|
+
"Ted Constant Convocaation Center, Norfolk, Virginia": TED_CONSTANT_CONVOCATION_CENTER,
|
7792
|
+
"Brooklyn, New York": SportsballGeocodeTuple(
|
7793
|
+
city="Brooklyn",
|
7794
|
+
state="NY",
|
7795
|
+
postal="",
|
7796
|
+
lat=40.65,
|
7797
|
+
lng=-73.95,
|
7798
|
+
housenumber="",
|
7799
|
+
country="USA",
|
7800
|
+
),
|
7801
|
+
"Chicago, Illinois": SportsballGeocodeTuple(
|
7802
|
+
city="Chicago",
|
7803
|
+
state="IL",
|
7804
|
+
postal="",
|
7805
|
+
lat=41.881944,
|
7806
|
+
lng=-87.627778,
|
7807
|
+
housenumber="",
|
7808
|
+
country="USA",
|
7809
|
+
),
|
7810
|
+
"Alabama A&M Events Center, Huntsville, Alabama": SportsballGeocodeTuple(
|
7811
|
+
city="Huntsville",
|
7812
|
+
state="AL",
|
7813
|
+
postal="35810",
|
7814
|
+
lat=34.781139,
|
7815
|
+
lng=-86.580528,
|
7816
|
+
housenumber="",
|
7817
|
+
country="USA",
|
7818
|
+
),
|
7819
|
+
"Vadalabene Center, Edwardsville, Illinois": SportsballGeocodeTuple(
|
7820
|
+
city="Edwardsville",
|
7821
|
+
state="IL",
|
7822
|
+
postal="",
|
7823
|
+
lat=38.795989,
|
7824
|
+
lng=-89.999883,
|
7825
|
+
housenumber="35",
|
7826
|
+
country="USA",
|
7827
|
+
),
|
7679
7828
|
}
|
7680
7829
|
|
7681
7830
|
|
@@ -32,10 +32,16 @@ class LeagueModel(Model):
|
|
32
32
|
|
33
33
|
_df: pd.DataFrame | None
|
34
34
|
|
35
|
-
def __init__(
|
35
|
+
def __init__(
|
36
|
+
self,
|
37
|
+
league: League,
|
38
|
+
session: requests_cache.CachedSession,
|
39
|
+
position: int | None = None,
|
40
|
+
) -> None:
|
36
41
|
super().__init__(session)
|
37
42
|
self._league = league
|
38
43
|
self._df = None
|
44
|
+
self.position = position
|
39
45
|
|
40
46
|
@property
|
41
47
|
def games(self) -> Iterator[GameModel]:
|
{sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/combined/nba_combined_league_model.py
RENAMED
@@ -6,6 +6,7 @@ from ...combined.combined_league_model import CombinedLeagueModel
|
|
6
6
|
from ...league import League
|
7
7
|
from ..espn.nba_espn_league_model import NBAESPNLeagueModel
|
8
8
|
from ..nba.nba_nba_league_model import NBANBALeagueModel
|
9
|
+
from ..oddsportal.nba_oddsportal_league_model import NBAOddsPortalLeagueModel
|
9
10
|
from ..sportsdb.nba_sportsdb_league_model import NBASportsDBLeagueModel
|
10
11
|
from ..sportsreference.nba_sportsreference_league_model import \
|
11
12
|
NBASportsReferenceLeagueModel
|
@@ -232,10 +233,11 @@ class NBACombinedLeagueModel(CombinedLeagueModel):
|
|
232
233
|
session,
|
233
234
|
League.NBA,
|
234
235
|
[
|
235
|
-
NBANBALeagueModel(session),
|
236
|
-
NBAESPNLeagueModel(session),
|
237
|
-
NBASportsDBLeagueModel(session),
|
238
|
-
NBASportsReferenceLeagueModel(session),
|
236
|
+
NBANBALeagueModel(session, position=0),
|
237
|
+
NBAESPNLeagueModel(session, position=1),
|
238
|
+
NBASportsDBLeagueModel(session, position=2),
|
239
|
+
NBASportsReferenceLeagueModel(session, position=3),
|
240
|
+
NBAOddsPortalLeagueModel(session, position=4),
|
239
241
|
],
|
240
242
|
)
|
241
243
|
|
@@ -13,5 +13,7 @@ _SEASON_URL = (
|
|
13
13
|
class NBAESPNLeagueModel(ESPNLeagueModel):
|
14
14
|
"""NBA ESPN implementation of the league model."""
|
15
15
|
|
16
|
-
def __init__(
|
17
|
-
|
16
|
+
def __init__(
|
17
|
+
self, session: requests_cache.CachedSession, position: int | None = None
|
18
|
+
) -> None:
|
19
|
+
super().__init__(_SEASON_URL, League.NBA, session, position=position)
|
@@ -67,8 +67,10 @@ class NBANBALeagueModel(LeagueModel):
|
|
67
67
|
start: datetime.datetime
|
68
68
|
games: int
|
69
69
|
|
70
|
-
def __init__(
|
71
|
-
|
70
|
+
def __init__(
|
71
|
+
self, session: requests_cache.CachedSession, position: int | None = None
|
72
|
+
) -> None:
|
73
|
+
super().__init__(League.NBA, session, position=position)
|
72
74
|
self._league_id = "00"
|
73
75
|
NBAHTTP.set_session(session)
|
74
76
|
|
@@ -111,7 +113,7 @@ class NBANBALeagueModel(LeagueModel):
|
|
111
113
|
to_date = datetime.datetime.today().date()
|
112
114
|
seasons: dict[str, NBANBALeagueModel._SeasonInfo] = {}
|
113
115
|
first_call = False
|
114
|
-
with tqdm.tqdm() as pbar:
|
116
|
+
with tqdm.tqdm(position=self.position) as pbar:
|
115
117
|
while True:
|
116
118
|
next_date = to_date - relativedelta(years=1)
|
117
119
|
if not first_call:
|
@@ -11,5 +11,7 @@ from ...oddsportal.oddsportal_league_model import OddsPortalLeagueModel
|
|
11
11
|
class NBAOddsPortalLeagueModel(OddsPortalLeagueModel):
|
12
12
|
"""NBA OddsPortal implementation of the league model."""
|
13
13
|
|
14
|
-
def __init__(
|
15
|
-
|
14
|
+
def __init__(
|
15
|
+
self, session: requests_cache.CachedSession, position: int | None = None
|
16
|
+
) -> None:
|
17
|
+
super().__init__(League.NBA, session, position=position)
|
{sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py
RENAMED
@@ -9,5 +9,7 @@ from ...sportsdb.sportsdb_league_model import SportsDBLeagueModel
|
|
9
9
|
class NBASportsDBLeagueModel(SportsDBLeagueModel):
|
10
10
|
"""NBA SportsDB implementation of the league model."""
|
11
11
|
|
12
|
-
def __init__(
|
13
|
-
|
12
|
+
def __init__(
|
13
|
+
self, session: requests_cache.CachedSession, position: int | None = None
|
14
|
+
) -> None:
|
15
|
+
super().__init__(session, "4387", League.NBA, position=position)
|
@@ -12,7 +12,12 @@ from ...sportsreference.sportsreference_league_model import \
|
|
12
12
|
class NBASportsReferenceLeagueModel(SportsReferenceLeagueModel):
|
13
13
|
"""NBA Sports Reference implementation of the league model."""
|
14
14
|
|
15
|
-
def __init__(
|
15
|
+
def __init__(
|
16
|
+
self, session: requests_cache.CachedSession, position: int | None = None
|
17
|
+
) -> None:
|
16
18
|
super().__init__(
|
17
|
-
session,
|
19
|
+
session,
|
20
|
+
League.NBA,
|
21
|
+
"https://www.basketball-reference.com/boxscores/",
|
22
|
+
position=position,
|
18
23
|
)
|
@@ -5,6 +5,8 @@ import requests_cache
|
|
5
5
|
from ...combined.combined_league_model import CombinedLeagueModel
|
6
6
|
from ...league import League
|
7
7
|
from ..espn.ncaab_espn_league_model import NCAABESPNLeagueModel
|
8
|
+
from ..oddsportal.ncaab_oddsportal_league_model import \
|
9
|
+
NCAABOddsPortalLeagueModel
|
8
10
|
from ..sportsreference.ncaab_sportsreference_league_model import \
|
9
11
|
NCAABSportsReferenceLeagueModel
|
10
12
|
|
@@ -749,8 +751,9 @@ class NCAABCombinedLeagueModel(CombinedLeagueModel):
|
|
749
751
|
session,
|
750
752
|
League.NCAAB,
|
751
753
|
[
|
752
|
-
NCAABSportsReferenceLeagueModel(session),
|
753
|
-
NCAABESPNLeagueModel(session),
|
754
|
+
NCAABSportsReferenceLeagueModel(session, position=0),
|
755
|
+
NCAABESPNLeagueModel(session, position=1),
|
756
|
+
NCAABOddsPortalLeagueModel(session, position=2),
|
754
757
|
],
|
755
758
|
)
|
756
759
|
|
{sportsball-0.3.26 → sportsball-0.3.28}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py
RENAMED
@@ -12,5 +12,7 @@ _SEASON_URL = "http://sports.core.api.espn.com/v2/sports/basketball/leagues/mens
|
|
12
12
|
class NCAABESPNLeagueModel(ESPNLeagueModel):
|
13
13
|
"""NCAAB ESPN implementation of the league model."""
|
14
14
|
|
15
|
-
def __init__(
|
16
|
-
|
15
|
+
def __init__(
|
16
|
+
self, session: requests_cache.CachedSession, position: int | None = None
|
17
|
+
) -> None:
|
18
|
+
super().__init__(_SEASON_URL, League.NCAAB, session, position=position)
|
@@ -11,5 +11,7 @@ from ...oddsportal.oddsportal_league_model import OddsPortalLeagueModel
|
|
11
11
|
class NCAABOddsPortalLeagueModel(OddsPortalLeagueModel):
|
12
12
|
"""NCAAB OddsPortal implementation of the league model."""
|
13
13
|
|
14
|
-
def __init__(
|
15
|
-
|
14
|
+
def __init__(
|
15
|
+
self, session: requests_cache.CachedSession, position: int | None = None
|
16
|
+
) -> None:
|
17
|
+
super().__init__(League.NCAAB, session, position=position)
|