sportsball 0.3.61__tar.gz → 0.3.63__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.61/sportsball.egg-info → sportsball-0.3.63}/PKG-INFO +1 -1
- {sportsball-0.3.61 → sportsball-0.3.63}/setup.py +1 -1
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/__init__.py +1 -1
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afl/afl_afl_league_model.py +8 -8
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/combined/afl_combined_league_model.py +3 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/google/google_address_model.py +36 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsreference/sportsreference_game_model.py +4 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsreference/sportsreference_team_model.py +18 -12
- {sportsball-0.3.61 → sportsball-0.3.63/sportsball.egg-info}/PKG-INFO +1 -1
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsreference/sportsreference_game_model_test.py +14 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsreference/sportsreference_team_model_test.py +8 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/LICENSE +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/MANIFEST.in +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/README.md +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/requirements.txt +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/setup.cfg +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/__main__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/args.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/cache.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/address_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afl/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/combined/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/espn/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/bookie_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_address_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_game_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_player_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_team_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_venue_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_weather_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_bookie_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_game_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_odds_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_player_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_team_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_venue_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/field_type.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/game_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/google/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/google/google_news_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/league.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/combined/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/espn/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/oddsportal/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/combined/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/espn/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/combined/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/espn/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/news_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/combined/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/espn/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/odds_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/decrypt.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/player_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/season_type.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/social_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/team_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/venue_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather/gribstream/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather/multi_weather_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather/openmeteo/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/wikipedia/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/x/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/x/x_social_model.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/logger.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/loglevel.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/playwright.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/proxy_session.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/session.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/sportsball.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/vendor/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/vendor/pygooglenews/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball.egg-info/SOURCES.txt +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball.egg-info/dependency_links.txt +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball.egg-info/entry_points.txt +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball.egg-info/not-zip-safe +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball.egg-info/requires.txt +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/sportsball.egg-info/top_level.txt +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afl/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afl/afl_afl_league_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/combined/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/combined/combined_game_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/combined/combined_player_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/espn/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/espn/espn_game_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/espn/espn_player_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/game_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/google/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/google/google_address_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/google/google_news_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nfl/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/oddsportal/decrypt_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/player_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/social_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/team_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/x/__init__.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/x/x_social_model_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/tests/proxy_session_test.py +0 -0
- {sportsball-0.3.61 → sportsball-0.3.63}/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.63',
|
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',
|
@@ -62,14 +62,14 @@ def _parse_game_info(
|
|
62
62
|
row_players.append(team_players)
|
63
63
|
if len(row_players) >= 2:
|
64
64
|
break
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
65
|
+
for count, row_players_list in enumerate(row_players):
|
66
|
+
try:
|
67
|
+
teams_players[count].extend(row_players_list)
|
68
|
+
except IndexError as exc:
|
69
|
+
# logging.error(html)
|
70
|
+
logging.error(len(team_players))
|
71
|
+
logging.error(count)
|
72
|
+
raise exc
|
73
73
|
dt = None
|
74
74
|
for time in div.find_all(
|
75
75
|
"time", {"class": re.compile(".*match-list-alt__header-time.*")}
|
{sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/combined/afl_combined_league_model.py
RENAMED
@@ -88,6 +88,9 @@ AFL_TEAM_IDENTITY_MAP = {
|
|
88
88
|
"Fremantle Dockers": FREMANTLE,
|
89
89
|
"West Coast Eagles": WESTCOAST,
|
90
90
|
"Gold Coast Suns": GOLDCOAST,
|
91
|
+
# AFL
|
92
|
+
"GWS GIANTS": GWS,
|
93
|
+
"Gold Coast SUNS": GOLDCOAST,
|
91
94
|
}
|
92
95
|
BRUNSWICK_ST = "brunswick_st"
|
93
96
|
VICTORIA_PARK = "victoria_park"
|
@@ -12749,6 +12749,42 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
12749
12749
|
),
|
12750
12750
|
"FedExForum - Memphis, Tennessee - United States": FEDEX_FORUM,
|
12751
12751
|
"Kia Center, Orlando, FL, EUA": KIA_CENTER,
|
12752
|
+
"Davis Field House, Greenville, South Carolina": SportsballGeocodeTuple(
|
12753
|
+
city="Greenville",
|
12754
|
+
state="SC",
|
12755
|
+
postal="",
|
12756
|
+
lat=34.8725,
|
12757
|
+
lng=-82.361944,
|
12758
|
+
housenumber="",
|
12759
|
+
country="USA",
|
12760
|
+
),
|
12761
|
+
"Rimrock Auto Arena at MetraPark, Billings, Montana": SportsballGeocodeTuple(
|
12762
|
+
city="Billings",
|
12763
|
+
state="MT",
|
12764
|
+
postal="59101",
|
12765
|
+
lat=45.800103,
|
12766
|
+
lng=-108.477201,
|
12767
|
+
housenumber="308",
|
12768
|
+
country="USA",
|
12769
|
+
),
|
12770
|
+
"Corvallis, Oregon": SportsballGeocodeTuple(
|
12771
|
+
city="Corvallis",
|
12772
|
+
state="OR",
|
12773
|
+
postal="",
|
12774
|
+
lat=44.569722,
|
12775
|
+
lng=-123.278333,
|
12776
|
+
housenumber="",
|
12777
|
+
country="USA",
|
12778
|
+
),
|
12779
|
+
"Mabee Center, Liberty, Missouri": SportsballGeocodeTuple(
|
12780
|
+
city="Liberty",
|
12781
|
+
state="MO",
|
12782
|
+
postal="64068",
|
12783
|
+
lat=39.24962892,
|
12784
|
+
lng=-94.4087267,
|
12785
|
+
housenumber="924",
|
12786
|
+
country="USA",
|
12787
|
+
),
|
12752
12788
|
}
|
12753
12789
|
|
12754
12790
|
|
@@ -169,6 +169,7 @@ def _find_old_dt(
|
|
169
169
|
offensive_rebounds,
|
170
170
|
assists,
|
171
171
|
turnovers,
|
172
|
+
team_name,
|
172
173
|
)
|
173
174
|
)
|
174
175
|
|
@@ -178,6 +179,8 @@ def _find_old_dt(
|
|
178
179
|
if len(df) == 2:
|
179
180
|
test_row = df.iat[0, 0]
|
180
181
|
test_row_2 = df.iat[1, 0]
|
182
|
+
if isinstance(test_row, float):
|
183
|
+
continue
|
181
184
|
|
182
185
|
try:
|
183
186
|
if (
|
@@ -289,6 +292,7 @@ def _find_new_dt(
|
|
289
292
|
offensive_rebounds,
|
290
293
|
assists,
|
291
294
|
turnovers,
|
295
|
+
a.get_text().strip(),
|
292
296
|
)
|
293
297
|
)
|
294
298
|
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
# pylint: disable=too-many-arguments,too-many-locals,duplicate-code
|
4
4
|
import datetime
|
5
|
+
import http
|
5
6
|
import json
|
6
7
|
import logging
|
7
8
|
import urllib.parse
|
@@ -89,25 +90,25 @@ def _create_sportsreference_team_model(
|
|
89
90
|
offensive_rebounds: dict[str, int],
|
90
91
|
assists: dict[str, int],
|
91
92
|
turnovers: dict[str, int],
|
93
|
+
team_name: str,
|
92
94
|
) -> TeamModel:
|
93
|
-
|
94
|
-
|
95
|
+
headers = {}
|
96
|
+
if url in _NON_WAYBACK_URLS:
|
97
|
+
headers = {X_NO_WAYBACK: "1"}
|
98
|
+
response = session.get(url, headers=headers)
|
99
|
+
if response.status_code == http.HTTPStatus.NOT_FOUND:
|
100
|
+
logging.warning("Could not find team %s at url %s", team_name, url)
|
95
101
|
return TeamModel(
|
96
|
-
identifier=
|
97
|
-
name=
|
98
|
-
location=
|
102
|
+
identifier=team_name,
|
103
|
+
name=team_name,
|
104
|
+
location=None,
|
99
105
|
players=[],
|
100
106
|
odds=[],
|
101
107
|
points=points,
|
102
108
|
ladder_rank=None,
|
103
|
-
news=create_google_news_models(
|
104
|
-
social=create_x_social_model(
|
109
|
+
news=create_google_news_models(team_name, session, dt, league),
|
110
|
+
social=create_x_social_model(team_name, session, dt),
|
105
111
|
)
|
106
|
-
|
107
|
-
headers = {}
|
108
|
-
if url in _NON_WAYBACK_URLS:
|
109
|
-
headers = {X_NO_WAYBACK: "1"}
|
110
|
-
response = session.get(url, headers=headers)
|
111
112
|
response.raise_for_status()
|
112
113
|
|
113
114
|
soup = BeautifulSoup(response.text, "lxml")
|
@@ -163,6 +164,7 @@ def _cached_create_sportsreference_team_model(
|
|
163
164
|
offensive_rebounds: dict[str, int],
|
164
165
|
assists: dict[str, int],
|
165
166
|
turnovers: dict[str, int],
|
167
|
+
team_name: str,
|
166
168
|
) -> TeamModel:
|
167
169
|
return _create_sportsreference_team_model(
|
168
170
|
session,
|
@@ -176,6 +178,7 @@ def _cached_create_sportsreference_team_model(
|
|
176
178
|
offensive_rebounds,
|
177
179
|
assists,
|
178
180
|
turnovers,
|
181
|
+
team_name,
|
179
182
|
)
|
180
183
|
|
181
184
|
|
@@ -191,6 +194,7 @@ def create_sportsreference_team_model(
|
|
191
194
|
offensive_rebounds: dict[str, int],
|
192
195
|
assists: dict[str, int],
|
193
196
|
turnovers: dict[str, int],
|
197
|
+
team_name: str,
|
194
198
|
) -> TeamModel:
|
195
199
|
"""Create a team model from Sports Reference."""
|
196
200
|
if not pytest_is_running.is_running():
|
@@ -206,6 +210,7 @@ def create_sportsreference_team_model(
|
|
206
210
|
offensive_rebounds,
|
207
211
|
assists,
|
208
212
|
turnovers,
|
213
|
+
team_name,
|
209
214
|
)
|
210
215
|
with session.cache_disabled():
|
211
216
|
return _create_sportsreference_team_model(
|
@@ -220,4 +225,5 @@ def create_sportsreference_team_model(
|
|
220
225
|
offensive_rebounds,
|
221
226
|
assists,
|
222
227
|
turnovers,
|
228
|
+
team_name,
|
223
229
|
)
|
@@ -1019,3 +1019,17 @@ class TestSportsReferenceGameModel(unittest.TestCase):
|
|
1019
1019
|
datetime.datetime(2010, 10, 10, 10, 10, 0),
|
1020
1020
|
)
|
1021
1021
|
self.assertEqual(game_model.dt, datetime.datetime(2016, 2, 23, 0, 0))
|
1022
|
+
|
1023
|
+
def test_dt_old_style_21(self):
|
1024
|
+
url = "https://www.sports-reference.com/cbb/boxscores/2015-11-23-detroit-mercy.html"
|
1025
|
+
with requests_mock.Mocker() as m:
|
1026
|
+
with open(os.path.join(self.dir, "2015-11-23-detroit-mercy.html"), "rb") as f:
|
1027
|
+
m.get(url, content=f.read())
|
1028
|
+
|
1029
|
+
game_model = create_sportsreference_game_model(
|
1030
|
+
self.session,
|
1031
|
+
url,
|
1032
|
+
League.NBA,
|
1033
|
+
datetime.datetime(2010, 10, 10, 10, 10, 0),
|
1034
|
+
)
|
1035
|
+
self.assertEqual(game_model.dt, datetime.datetime(2015, 11, 23, 0, 0))
|
@@ -32,6 +32,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
|
|
32
32
|
{},
|
33
33
|
{},
|
34
34
|
{},
|
35
|
+
"",
|
35
36
|
)
|
36
37
|
self.assertEqual(team_model.identifier, "Villanova Wildcats Men's")
|
37
38
|
|
@@ -57,6 +58,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
|
|
57
58
|
{},
|
58
59
|
{},
|
59
60
|
{},
|
61
|
+
"",
|
60
62
|
)
|
61
63
|
self.assertEqual(team_model.field_goals, 8)
|
62
64
|
|
@@ -84,6 +86,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
|
|
84
86
|
{},
|
85
87
|
{},
|
86
88
|
{},
|
89
|
+
"",
|
87
90
|
)
|
88
91
|
self.assertEqual(team_model.field_goals_attempted, 10)
|
89
92
|
|
@@ -104,6 +107,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
|
|
104
107
|
{},
|
105
108
|
{},
|
106
109
|
{},
|
110
|
+
"",
|
107
111
|
)
|
108
112
|
self.assertEqual(team_model.identifier, "Los Angeles Clippers")
|
109
113
|
|
@@ -124,6 +128,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
|
|
124
128
|
{},
|
125
129
|
{},
|
126
130
|
{},
|
131
|
+
"",
|
127
132
|
)
|
128
133
|
self.assertEqual(team_model.identifier, "Brooklyn Nets")
|
129
134
|
|
@@ -144,6 +149,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
|
|
144
149
|
{},
|
145
150
|
{},
|
146
151
|
{},
|
152
|
+
"",
|
147
153
|
)
|
148
154
|
self.assertEqual(team_model.name, "Cleveland Cavaliers")
|
149
155
|
|
@@ -164,6 +170,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
|
|
164
170
|
{},
|
165
171
|
{},
|
166
172
|
{},
|
173
|
+
"",
|
167
174
|
)
|
168
175
|
self.assertEqual(team_model.name, "Los Angeles Lakers")
|
169
176
|
|
@@ -184,5 +191,6 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
|
|
184
191
|
{},
|
185
192
|
{},
|
186
193
|
{},
|
194
|
+
"",
|
187
195
|
)
|
188
196
|
self.assertEqual(team_model.name, "Boston Celtics")
|
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.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_game_model.py
RENAMED
File without changes
|
{sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_league_model.py
RENAMED
File without changes
|
{sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_player_model.py
RENAMED
File without changes
|
{sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_team_model.py
RENAMED
File without changes
|
{sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_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
|
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.61 → sportsball-0.3.63}/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
|
{sportsball-0.3.61 → sportsball-0.3.63}/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.61 → sportsball-0.3.63}/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.61 → sportsball-0.3.63}/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.61 → sportsball-0.3.63}/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.61 → sportsball-0.3.63}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_bookie_model.py
RENAMED
File without changes
|
File without changes
|
{sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.61 → sportsball-0.3.63}/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
|
{sportsball-0.3.61 → sportsball-0.3.63}/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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afltables/afl_afltables_game_model_test.py
RENAMED
File without changes
|
{sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afltables/afl_afltables_league_model_test.py
RENAMED
File without changes
|
{sportsball-0.3.61 → sportsball-0.3.63}/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
|
{sportsball-0.3.61 → sportsball-0.3.63}/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.61 → sportsball-0.3.63}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.61 → sportsball-0.3.63}/tests/data/oddsportal/oddsportal_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
|