sportsball 0.3.62__tar.gz → 0.3.64__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.62/sportsball.egg-info → sportsball-0.3.64}/PKG-INFO +1 -1
- {sportsball-0.3.62 → sportsball-0.3.64}/setup.py +1 -1
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/__init__.py +1 -1
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/google/google_address_model.py +36 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/sportsreference/sportsreference_game_model.py +3 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/sportsreference/sportsreference_team_model.py +33 -11
- {sportsball-0.3.62 → sportsball-0.3.64/sportsball.egg-info}/PKG-INFO +1 -1
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/sportsreference/sportsreference_team_model_test.py +8 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/LICENSE +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/MANIFEST.in +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/README.md +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/requirements.txt +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/setup.cfg +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/__main__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/args.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/cache.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/address_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afl/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afl/afl_afl_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/combined/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/espn/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/bookie_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/combined/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/combined/combined_address_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/combined/combined_game_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/combined/combined_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/combined/combined_player_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/combined/combined_team_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/combined/combined_venue_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/combined/combined_weather_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/espn/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/espn/espn_bookie_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/espn/espn_game_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/espn/espn_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/espn/espn_odds_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/espn/espn_player_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/espn/espn_team_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/espn/espn_venue_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/field_type.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/game_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/google/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/google/google_news_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/league.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/combined/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/espn/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/oddsportal/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaab/combined/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaab/espn/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaaf/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaaf/combined/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaaf/espn/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/news_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nfl/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nfl/combined/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nfl/espn/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/odds_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/oddsportal/decrypt.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/player_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/season_type.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/social_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/team_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/venue_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/weather/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/weather/gribstream/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/weather/multi_weather_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/weather/openmeteo/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/weather_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/wikipedia/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/x/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/x/x_social_model.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/logger.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/loglevel.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/playwright.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/proxy_session.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/session.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/sportsball.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/vendor/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball/vendor/pygooglenews/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball.egg-info/SOURCES.txt +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball.egg-info/dependency_links.txt +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball.egg-info/entry_points.txt +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball.egg-info/not-zip-safe +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball.egg-info/requires.txt +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/sportsball.egg-info/top_level.txt +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/afl/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/afl/afl/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/afl/afl/afl_afl_league_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/combined/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/combined/combined_game_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/combined/combined_player_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/espn/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/espn/espn_game_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/espn/espn_player_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/game_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/google/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/google/google_address_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/google/google_news_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/nba/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/nfl/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/oddsportal/decrypt_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/player_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/social_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/team_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/x/__init__.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/data/x/x_social_model_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/tests/proxy_session_test.py +0 -0
- {sportsball-0.3.62 → sportsball-0.3.64}/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.64',
|
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',
|
@@ -12758,6 +12758,42 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
12758
12758
|
housenumber="",
|
12759
12759
|
country="USA",
|
12760
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
|
+
),
|
12788
|
+
"Durham, New Hampshire": SportsballGeocodeTuple(
|
12789
|
+
city="Durham",
|
12790
|
+
state="NH",
|
12791
|
+
postal="",
|
12792
|
+
lat=43.133889,
|
12793
|
+
lng=-70.926389,
|
12794
|
+
housenumber="",
|
12795
|
+
country="USA",
|
12796
|
+
),
|
12761
12797
|
}
|
12762
12798
|
|
12763
12799
|
|
@@ -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
|
|
@@ -291,6 +292,7 @@ def _find_new_dt(
|
|
291
292
|
offensive_rebounds,
|
292
293
|
assists,
|
293
294
|
turnovers,
|
295
|
+
a.get_text().strip(),
|
294
296
|
)
|
295
297
|
)
|
296
298
|
|
@@ -369,6 +371,7 @@ def _create_sportsreference_game_model(
|
|
369
371
|
for idx, player in enumerate(players):
|
370
372
|
turnovers[player] = tovs[idx]
|
371
373
|
except ValueError as exc:
|
374
|
+
logging.error(url)
|
372
375
|
logging.error(response.text)
|
373
376
|
raise exc
|
374
377
|
|
@@ -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
|
@@ -28,6 +29,7 @@ _BAD_URLS = {
|
|
28
29
|
"https://www.sports-reference.com/cbb/players/cia-eklof-1.html",
|
29
30
|
"https://www.sports-reference.com/cbb/players/aj-caldwell-2.html",
|
30
31
|
"https://www.sports-reference.com/cbb/players/akuwovo-ogheneyole-1.html",
|
32
|
+
"https://www.sports-reference.com/cbb/players/jevon-lyle-1.html",
|
31
33
|
}
|
32
34
|
_NON_WAYBACK_URLS: set[str] = {
|
33
35
|
"https://www.sports-reference.com/cbb/schools/stony-brook/women/2021.html",
|
@@ -35,6 +37,9 @@ _NON_WAYBACK_URLS: set[str] = {
|
|
35
37
|
"https://www.sports-reference.com/cbb/schools/rice/women/2019.html",
|
36
38
|
"https://www.sports-reference.com/cbb/schools/north-carolina/women/2018.html",
|
37
39
|
}
|
40
|
+
_BAD_TEAM_URLS = {
|
41
|
+
"https://www.sports-reference.com/cbb/schools/mid-atlantic-christian/2016.html",
|
42
|
+
}
|
38
43
|
|
39
44
|
|
40
45
|
def _find_name(response: requests.Response, soup: BeautifulSoup, url: str) -> str:
|
@@ -89,25 +94,37 @@ def _create_sportsreference_team_model(
|
|
89
94
|
offensive_rebounds: dict[str, int],
|
90
95
|
assists: dict[str, int],
|
91
96
|
turnovers: dict[str, int],
|
97
|
+
team_name: str,
|
92
98
|
) -> TeamModel:
|
93
|
-
|
94
|
-
|
99
|
+
headers = {}
|
100
|
+
if url in _NON_WAYBACK_URLS:
|
101
|
+
headers = {X_NO_WAYBACK: "1"}
|
102
|
+
if url in _BAD_TEAM_URLS:
|
95
103
|
return TeamModel(
|
96
|
-
identifier=
|
97
|
-
name=
|
98
|
-
location=
|
104
|
+
identifier=team_name,
|
105
|
+
name=team_name,
|
106
|
+
location=None,
|
99
107
|
players=[],
|
100
108
|
odds=[],
|
101
109
|
points=points,
|
102
110
|
ladder_rank=None,
|
103
|
-
news=create_google_news_models(
|
104
|
-
social=create_x_social_model(
|
111
|
+
news=create_google_news_models(team_name, session, dt, league),
|
112
|
+
social=create_x_social_model(team_name, session, dt),
|
105
113
|
)
|
106
|
-
|
107
|
-
headers = {}
|
108
|
-
if url in _NON_WAYBACK_URLS:
|
109
|
-
headers = {X_NO_WAYBACK: "1"}
|
110
114
|
response = session.get(url, headers=headers)
|
115
|
+
if response.status_code == http.HTTPStatus.NOT_FOUND:
|
116
|
+
logging.warning("Could not find team %s at url %s", team_name, url)
|
117
|
+
return TeamModel(
|
118
|
+
identifier=team_name,
|
119
|
+
name=team_name,
|
120
|
+
location=None,
|
121
|
+
players=[],
|
122
|
+
odds=[],
|
123
|
+
points=points,
|
124
|
+
ladder_rank=None,
|
125
|
+
news=create_google_news_models(team_name, session, dt, league),
|
126
|
+
social=create_x_social_model(team_name, session, dt),
|
127
|
+
)
|
111
128
|
response.raise_for_status()
|
112
129
|
|
113
130
|
soup = BeautifulSoup(response.text, "lxml")
|
@@ -163,6 +180,7 @@ def _cached_create_sportsreference_team_model(
|
|
163
180
|
offensive_rebounds: dict[str, int],
|
164
181
|
assists: dict[str, int],
|
165
182
|
turnovers: dict[str, int],
|
183
|
+
team_name: str,
|
166
184
|
) -> TeamModel:
|
167
185
|
return _create_sportsreference_team_model(
|
168
186
|
session,
|
@@ -176,6 +194,7 @@ def _cached_create_sportsreference_team_model(
|
|
176
194
|
offensive_rebounds,
|
177
195
|
assists,
|
178
196
|
turnovers,
|
197
|
+
team_name,
|
179
198
|
)
|
180
199
|
|
181
200
|
|
@@ -191,6 +210,7 @@ def create_sportsreference_team_model(
|
|
191
210
|
offensive_rebounds: dict[str, int],
|
192
211
|
assists: dict[str, int],
|
193
212
|
turnovers: dict[str, int],
|
213
|
+
team_name: str,
|
194
214
|
) -> TeamModel:
|
195
215
|
"""Create a team model from Sports Reference."""
|
196
216
|
if not pytest_is_running.is_running():
|
@@ -206,6 +226,7 @@ def create_sportsreference_team_model(
|
|
206
226
|
offensive_rebounds,
|
207
227
|
assists,
|
208
228
|
turnovers,
|
229
|
+
team_name,
|
209
230
|
)
|
210
231
|
with session.cache_disabled():
|
211
232
|
return _create_sportsreference_team_model(
|
@@ -220,4 +241,5 @@ def create_sportsreference_team_model(
|
|
220
241
|
offensive_rebounds,
|
221
242
|
assists,
|
222
243
|
turnovers,
|
244
|
+
team_name,
|
223
245
|
)
|
@@ -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
|
File without changes
|
{sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afltables/afl_afltables_game_model.py
RENAMED
File without changes
|
{sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afltables/afl_afltables_league_model.py
RENAMED
File without changes
|
{sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afltables/afl_afltables_player_model.py
RENAMED
File without changes
|
{sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/afl/afltables/afl_afltables_team_model.py
RENAMED
File without changes
|
{sportsball-0.3.62 → sportsball-0.3.64}/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.62 → sportsball-0.3.64}/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
|
File without changes
|
{sportsball-0.3.62 → sportsball-0.3.64}/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.62 → sportsball-0.3.64}/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.62 → sportsball-0.3.64}/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.62 → sportsball-0.3.64}/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.62 → sportsball-0.3.64}/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.62 → sportsball-0.3.64}/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.62 → sportsball-0.3.64}/sportsball/data/oddsportal/oddsportal_bookie_model.py
RENAMED
File without changes
|
File without changes
|
{sportsball-0.3.62 → sportsball-0.3.64}/sportsball/data/oddsportal/oddsportal_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.62 → sportsball-0.3.64}/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.62 → sportsball-0.3.64}/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.62 → sportsball-0.3.64}/tests/data/afl/afltables/afl_afltables_game_model_test.py
RENAMED
File without changes
|
{sportsball-0.3.62 → sportsball-0.3.64}/tests/data/afl/afltables/afl_afltables_league_model_test.py
RENAMED
File without changes
|
{sportsball-0.3.62 → sportsball-0.3.64}/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.62 → sportsball-0.3.64}/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.62 → sportsball-0.3.64}/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.62 → sportsball-0.3.64}/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
|
File without changes
|