sportsball 0.3.22__tar.gz → 0.3.24__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.22/sportsball.egg-info → sportsball-0.3.24}/PKG-INFO +1 -1
- {sportsball-0.3.22 → sportsball-0.3.24}/setup.py +1 -1
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/__init__.py +1 -1
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_league_model.py +25 -11
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +10 -4
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/google/google_address_model.py +63 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_league_model.py +20 -9
- {sportsball-0.3.22 → sportsball-0.3.24/sportsball.egg-info}/PKG-INFO +1 -1
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball.egg-info/SOURCES.txt +1 -0
- sportsball-0.3.24/tests/data/afl/afltables/afl_afltables_league_model_test.py +16 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/LICENSE +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/MANIFEST.in +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/README.md +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/requirements.txt +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/setup.cfg +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/__main__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/args.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/cache.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/address_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/combined/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/espn/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/bookie_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_address_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_game_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_player_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_team_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_venue_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_weather_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_bookie_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_game_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_odds_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_player_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_team_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_venue_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/field_type.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/game_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/google/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/google/google_news_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/league.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/combined/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/espn/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/nba/nba_nba_player_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/oddsportal/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/combined/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/espn/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/combined/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/espn/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/news_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/combined/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/espn/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/odds_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/player_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/season_type.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/social_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsreference/sportsreference_game_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsreference/sportsreference_team_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/team_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/venue_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather/gribstream/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather/multi_weather_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather/openmeteo/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/wikipedia/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/x/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/x/x_social_model.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/logger.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/loglevel.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/proxy_session.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/session.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/sportsball.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/vendor/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/vendor/pygooglenews/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball.egg-info/dependency_links.txt +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball.egg-info/entry_points.txt +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball.egg-info/not-zip-safe +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball.egg-info/requires.txt +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/sportsball.egg-info/top_level.txt +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/afl/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/combined/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/combined/combined_game_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/combined/combined_player_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/espn/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/espn/espn_game_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/espn/espn_player_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/game_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/google/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/google/google_address_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/google/google_news_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/nba/nba_nba_player_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nfl/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/player_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/social_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/team_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/x/__init__.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/x/x_social_model_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/tests/proxy_session_test.py +0 -0
- {sportsball-0.3.22 → sportsball-0.3.24}/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.24',
|
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.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_league_model.py
RENAMED
@@ -28,7 +28,7 @@ class AFLAFLTablesLeagueModel(LeagueModel):
|
|
28
28
|
super().__init__(League.AFL, session)
|
29
29
|
|
30
30
|
def _produce_games(
|
31
|
-
self, season_url: str, season_type: SeasonType
|
31
|
+
self, season_url: str, season_type: SeasonType, pbar: tqdm.tqdm
|
32
32
|
) -> Iterator[GameModel]:
|
33
33
|
# pylint: disable=too-many-branches,too-many-locals
|
34
34
|
o = urlparse(season_url)
|
@@ -56,8 +56,10 @@ class AFLAFLTablesLeagueModel(LeagueModel):
|
|
56
56
|
current_dt = None
|
57
57
|
for td in table.find_all("td"):
|
58
58
|
td_text = td.get_text().strip()
|
59
|
-
if "
|
60
|
-
|
59
|
+
if "Venue:" in td_text:
|
60
|
+
cleaned_text = td_text.split("Venue:")[0].split("Att:")[0].strip()
|
61
|
+
cleaned_text = " ".join(cleaned_text.split()[-3:])
|
62
|
+
current_dt = parser.parse(cleaned_text)
|
61
63
|
for a in table.find_all("a", href=True):
|
62
64
|
if a.get_text().strip().lower() == "match stats":
|
63
65
|
url = urllib.parse.urljoin(season_url, a.get("href"))
|
@@ -66,7 +68,7 @@ class AFLAFLTablesLeagueModel(LeagueModel):
|
|
66
68
|
if current_dt is None:
|
67
69
|
raise ValueError("current_dt is null.")
|
68
70
|
if not in_finals and season_type == SeasonType.REGULAR:
|
69
|
-
|
71
|
+
game_model = create_afl_afltables_game_model(
|
70
72
|
game_number,
|
71
73
|
self.session,
|
72
74
|
url,
|
@@ -77,14 +79,18 @@ class AFLAFLTablesLeagueModel(LeagueModel):
|
|
77
79
|
season_type,
|
78
80
|
current_dt,
|
79
81
|
)
|
80
|
-
model_week =
|
82
|
+
model_week = game_model.week
|
81
83
|
if model_week is None:
|
82
84
|
raise ValueError("model_week is null")
|
83
85
|
last_round_number = model_week # pyright: ignore
|
84
86
|
if season_type == SeasonType.REGULAR:
|
85
|
-
|
87
|
+
pbar.update(1)
|
88
|
+
pbar.set_description(
|
89
|
+
f"AFLTables {game_model.year} - {season_type} - {game_model.dt}"
|
90
|
+
)
|
91
|
+
yield game_model # pyright: ignore
|
86
92
|
elif in_finals and season_type == SeasonType.POSTSEASON:
|
87
|
-
|
93
|
+
game_model = create_afl_afltables_game_model(
|
88
94
|
game_number,
|
89
95
|
self.session,
|
90
96
|
url,
|
@@ -95,6 +101,11 @@ class AFLAFLTablesLeagueModel(LeagueModel):
|
|
95
101
|
season_type,
|
96
102
|
current_dt,
|
97
103
|
)
|
104
|
+
pbar.update(1)
|
105
|
+
pbar.set_description(
|
106
|
+
f"AFLTables {game_model.year} - {season_type} - {game_model.dt}"
|
107
|
+
)
|
108
|
+
yield game_model
|
98
109
|
game_number += 1
|
99
110
|
urls_duplicates.add(url)
|
100
111
|
ladder_count = None
|
@@ -121,12 +132,15 @@ class AFLAFLTablesLeagueModel(LeagueModel):
|
|
121
132
|
def games(self) -> Iterator[GameModel]:
|
122
133
|
response = self.session.get(_SEASON_URL)
|
123
134
|
soup = BeautifulSoup(response.text, "html.parser")
|
124
|
-
with tqdm.tqdm(
|
135
|
+
with tqdm.tqdm() as pbar:
|
125
136
|
for table in soup.find_all("table"):
|
126
137
|
for tr in table.find_all("tr"):
|
127
138
|
for td in tr.find_all("td"):
|
128
139
|
for a in td.find_all("a"):
|
129
140
|
url = urllib.parse.urljoin(_SEASON_URL, a.get("href"))
|
130
|
-
yield from self._produce_games(
|
131
|
-
|
132
|
-
|
141
|
+
yield from self._produce_games(
|
142
|
+
url, SeasonType.REGULAR, pbar
|
143
|
+
)
|
144
|
+
yield from self._produce_games(
|
145
|
+
url, SeasonType.POSTSEASON, pbar
|
146
|
+
)
|
@@ -1,5 +1,6 @@
|
|
1
1
|
"""Aussportsbetting league model."""
|
2
2
|
|
3
|
+
# pylint: disable=line-too-long
|
3
4
|
from io import BytesIO
|
4
5
|
from typing import Any, Iterator
|
5
6
|
|
@@ -95,7 +96,12 @@ class AusSportsBettingLeagueModel(LeagueModel):
|
|
95
96
|
ws = workbook.active
|
96
97
|
if ws is None:
|
97
98
|
raise ValueError("ws is null.")
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
99
|
+
with tqdm.tqdm() as pbar:
|
100
|
+
for row in ws.iter_rows():
|
101
|
+
game_model = self._row_to_game(row)
|
102
|
+
if game_model is not None:
|
103
|
+
pbar.update(1)
|
104
|
+
pbar.set_description(
|
105
|
+
f"AusSportsBetting {game_model.year} - {game_model.season_type} - {game_model.dt}"
|
106
|
+
)
|
107
|
+
yield game_model
|
@@ -7095,6 +7095,69 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
7095
7095
|
housenumber="",
|
7096
7096
|
country="USA",
|
7097
7097
|
),
|
7098
|
+
"Salt Lake City, Utah": SportsballGeocodeTuple(
|
7099
|
+
city="Salt Lake City",
|
7100
|
+
state="UT",
|
7101
|
+
postal="",
|
7102
|
+
lat=40.760833,
|
7103
|
+
lng=-111.891111,
|
7104
|
+
housenumber="",
|
7105
|
+
country="USA",
|
7106
|
+
),
|
7107
|
+
"Ferrell Center, Waco, Texas": SportsballGeocodeTuple(
|
7108
|
+
city="Waco",
|
7109
|
+
state="TX",
|
7110
|
+
postal="76706",
|
7111
|
+
lat=31.547903,
|
7112
|
+
lng=-97.105969,
|
7113
|
+
housenumber="1900",
|
7114
|
+
country="USA",
|
7115
|
+
),
|
7116
|
+
"Princeton, New Jersey": SportsballGeocodeTuple(
|
7117
|
+
city="Princeton",
|
7118
|
+
state="NJ",
|
7119
|
+
postal="",
|
7120
|
+
lat=40.358244,
|
7121
|
+
lng=-74.666728,
|
7122
|
+
housenumber="",
|
7123
|
+
country="USA",
|
7124
|
+
),
|
7125
|
+
"Nashville, Tennessee": SportsballGeocodeTuple(
|
7126
|
+
city="Nashville",
|
7127
|
+
state="TN",
|
7128
|
+
postal="",
|
7129
|
+
lat=36.162222,
|
7130
|
+
lng=-86.774444,
|
7131
|
+
housenumber="",
|
7132
|
+
country="USA",
|
7133
|
+
),
|
7134
|
+
"Fort Worth, Texas": SportsballGeocodeTuple(
|
7135
|
+
city="Fort Worth",
|
7136
|
+
state="TX",
|
7137
|
+
postal="",
|
7138
|
+
lat=32.756389,
|
7139
|
+
lng=-97.3325,
|
7140
|
+
housenumber="",
|
7141
|
+
country="USA",
|
7142
|
+
),
|
7143
|
+
"T-Mobile Center, Kansas City, Missouri": SportsballGeocodeTuple(
|
7144
|
+
city="Kansas City",
|
7145
|
+
state="MS",
|
7146
|
+
postal="",
|
7147
|
+
lat=39.0975,
|
7148
|
+
lng=-94.580278,
|
7149
|
+
housenumber="1407",
|
7150
|
+
country="USA",
|
7151
|
+
),
|
7152
|
+
"Henderson, Nevada": SportsballGeocodeTuple(
|
7153
|
+
city="Henderson",
|
7154
|
+
state="NV",
|
7155
|
+
postal="",
|
7156
|
+
lat=36.033333,
|
7157
|
+
lng=-114.983333,
|
7158
|
+
housenumber="",
|
7159
|
+
country="USA",
|
7160
|
+
),
|
7098
7161
|
}
|
7099
7162
|
|
7100
7163
|
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_league_model.py
RENAMED
@@ -1,10 +1,13 @@
|
|
1
1
|
"""Odds Portal league model."""
|
2
2
|
|
3
|
+
import http
|
3
4
|
import json
|
5
|
+
import logging
|
4
6
|
import urllib.parse
|
5
7
|
from typing import Iterator
|
6
8
|
|
7
9
|
import extruct # type: ignore
|
10
|
+
import requests
|
8
11
|
import tqdm
|
9
12
|
from bs4 import BeautifulSoup, Tag
|
10
13
|
|
@@ -52,15 +55,23 @@ class OddsPortalLeagueModel(LeagueModel):
|
|
52
55
|
for jsonld in data["json-ld"]:
|
53
56
|
if jsonld["@type"] != "SportsEvent":
|
54
57
|
continue
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
58
|
+
try:
|
59
|
+
game_model = create_oddsportal_game_model(
|
60
|
+
self.session,
|
61
|
+
urllib.parse.urljoin(base_url, jsonld["url"]),
|
62
|
+
self.league,
|
63
|
+
True,
|
64
|
+
)
|
65
|
+
pbar.update(1)
|
66
|
+
pbar.set_description(
|
67
|
+
f"OddsPortal {game_model.year} - {game_model.season_type} - {game_model.dt}"
|
68
|
+
)
|
69
|
+
yield game_model
|
70
|
+
except requests.exceptions.HTTPError as exc:
|
71
|
+
if exc.response.status_code == http.HTTPStatus.NOT_FOUND:
|
72
|
+
logging.warning("Failed to find game at: %s", jsonld["url"])
|
73
|
+
continue
|
74
|
+
raise exc
|
64
75
|
|
65
76
|
def _find_previous(self, pbar: tqdm.tqdm) -> Iterator[GameModel]:
|
66
77
|
seen_urls = set()
|
@@ -159,6 +159,7 @@ tests/data/social_model_test.py
|
|
159
159
|
tests/data/team_model_test.py
|
160
160
|
tests/data/afl/__init__.py
|
161
161
|
tests/data/afl/afltables/__init__.py
|
162
|
+
tests/data/afl/afltables/afl_afltables_league_model_test.py
|
162
163
|
tests/data/afl/afltables/afl_afltables_player_model_test.py
|
163
164
|
tests/data/aussportsbetting/__init__.py
|
164
165
|
tests/data/aussportsbetting/aussportsbetting_game_model_test.py
|
@@ -0,0 +1,16 @@
|
|
1
|
+
"""Tests for the afltables league model class."""
|
2
|
+
import unittest
|
3
|
+
|
4
|
+
import requests_cache
|
5
|
+
from sportsball.data.afl.afltables.afl_afltables_league_model import AFLAFLTablesLeagueModel
|
6
|
+
from sportsball.data.league import League
|
7
|
+
|
8
|
+
|
9
|
+
class TestAFLTablesLeagueModel(unittest.TestCase):
|
10
|
+
|
11
|
+
def setUp(self):
|
12
|
+
self._session = requests_cache.CachedSession(backend="memory")
|
13
|
+
self._league_model = AFLAFLTablesLeagueModel(self._session)
|
14
|
+
|
15
|
+
def test_league(self):
|
16
|
+
self.assertEqual(self._league_model.league, League.AFL)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_game_model.py
RENAMED
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_player_model.py
RENAMED
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_team_model.py
RENAMED
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_venue_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/combined/afl_combined_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/combined/nba_combined_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/combined/nfl_combined_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_bookie_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_venue_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/tests/data/afl/afltables/afl_afltables_player_model_test.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|