sportsball 0.3.25__tar.gz → 0.3.26__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.25/sportsball.egg-info → sportsball-0.3.26}/PKG-INFO +1 -1
- {sportsball-0.3.25 → sportsball-0.3.26}/setup.py +1 -1
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/__init__.py +1 -1
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/google/google_address_model.py +270 -81
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/oddsportal/oddsportal_game_model.py +12 -8
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/oddsportal/oddsportal_league_model.py +46 -13
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/proxy_session.py +11 -2
- {sportsball-0.3.25 → sportsball-0.3.26/sportsball.egg-info}/PKG-INFO +1 -1
- {sportsball-0.3.25 → sportsball-0.3.26}/LICENSE +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/MANIFEST.in +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/README.md +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/requirements.txt +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/setup.cfg +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/__main__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/args.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/cache.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/address_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/combined/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/espn/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/bookie_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/combined/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/combined/combined_address_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/combined/combined_game_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/combined/combined_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/combined/combined_player_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/combined/combined_team_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/combined/combined_venue_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/combined/combined_weather_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/espn/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/espn/espn_bookie_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/espn/espn_game_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/espn/espn_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/espn/espn_odds_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/espn/espn_player_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/espn/espn_team_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/espn/espn_venue_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/field_type.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/game_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/google/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/google/google_news_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/league.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/combined/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/espn/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/nba/nba_nba_player_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/oddsportal/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaab/combined/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaab/espn/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaaf/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaaf/combined/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaaf/espn/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/news_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nfl/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nfl/combined/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nfl/espn/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/odds_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/player_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/season_type.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/social_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/sportsreference/sportsreference_game_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/sportsreference/sportsreference_team_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/team_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/venue_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/weather/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/weather/gribstream/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/weather/multi_weather_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/weather/openmeteo/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/weather_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/wikipedia/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/x/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/x/x_social_model.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/logger.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/loglevel.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/session.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/sportsball.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/vendor/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball/vendor/pygooglenews/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball.egg-info/SOURCES.txt +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball.egg-info/dependency_links.txt +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball.egg-info/entry_points.txt +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball.egg-info/not-zip-safe +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball.egg-info/requires.txt +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/sportsball.egg-info/top_level.txt +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/afl/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/combined/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/combined/combined_game_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/combined/combined_player_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/espn/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/espn/espn_game_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/espn/espn_player_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/game_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/google/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/google/google_address_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/google/google_news_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/nba/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/nba/nba/nba_nba_player_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/nfl/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/player_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/social_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/team_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/x/__init__.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/data/x/x_social_model_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/tests/proxy_session_test.py +0 -0
- {sportsball-0.3.25 → sportsball-0.3.26}/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.26',
|
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',
|
@@ -1297,6 +1297,87 @@ ROSS_E_TEMPLETON_CENTER = SportsballGeocodeTuple(
|
|
1297
1297
|
housenumber="503",
|
1298
1298
|
country="USA",
|
1299
1299
|
)
|
1300
|
+
LEVIEN_GYM = SportsballGeocodeTuple(
|
1301
|
+
city="New York",
|
1302
|
+
state="NY",
|
1303
|
+
postal="",
|
1304
|
+
lat=40.80979,
|
1305
|
+
lng=-73.961715,
|
1306
|
+
housenumber="3030",
|
1307
|
+
country="USA",
|
1308
|
+
)
|
1309
|
+
CRISLER_CENTER = SportsballGeocodeTuple(
|
1310
|
+
city="Ann Arbor",
|
1311
|
+
state="MI",
|
1312
|
+
postal="48104",
|
1313
|
+
lat=42.265037,
|
1314
|
+
lng=-83.746768,
|
1315
|
+
housenumber="333",
|
1316
|
+
country="USA",
|
1317
|
+
)
|
1318
|
+
HYNES_ATHELTIC_CENTER = SportsballGeocodeTuple(
|
1319
|
+
city="New Rochelle",
|
1320
|
+
state="NY",
|
1321
|
+
postal="",
|
1322
|
+
lat=40.92664,
|
1323
|
+
lng=-73.784325,
|
1324
|
+
housenumber="",
|
1325
|
+
country="USA",
|
1326
|
+
)
|
1327
|
+
OLE_MISS = SportsballGeocodeTuple(
|
1328
|
+
city="Oxford",
|
1329
|
+
state="MS",
|
1330
|
+
postal="38677",
|
1331
|
+
lat=34.363164,
|
1332
|
+
lng=-89.535453,
|
1333
|
+
housenumber="",
|
1334
|
+
country="USA",
|
1335
|
+
)
|
1336
|
+
HOLMES_CENTER = SportsballGeocodeTuple(
|
1337
|
+
city="Boone",
|
1338
|
+
state="NC",
|
1339
|
+
postal="28608",
|
1340
|
+
lat=36.210624,
|
1341
|
+
lng=-81.675952,
|
1342
|
+
housenumber="111",
|
1343
|
+
country="USA",
|
1344
|
+
)
|
1345
|
+
FARRIS_CENTER = SportsballGeocodeTuple(
|
1346
|
+
city="Conway",
|
1347
|
+
state="AR",
|
1348
|
+
postal="",
|
1349
|
+
lat=35.081667,
|
1350
|
+
lng=-92.459444,
|
1351
|
+
housenumber="",
|
1352
|
+
country="USA",
|
1353
|
+
)
|
1354
|
+
HTC_CENTER = SportsballGeocodeTuple(
|
1355
|
+
city="Conway",
|
1356
|
+
state="SC",
|
1357
|
+
postal="29579",
|
1358
|
+
lat=33.799167,
|
1359
|
+
lng=-79.015556,
|
1360
|
+
housenumber="104",
|
1361
|
+
country="USA",
|
1362
|
+
)
|
1363
|
+
GERSTEN_PAVILION = SportsballGeocodeTuple(
|
1364
|
+
city="Los Angeles",
|
1365
|
+
state="CA",
|
1366
|
+
postal="90045",
|
1367
|
+
lat=33.9675,
|
1368
|
+
lng=-118.415556,
|
1369
|
+
housenumber="1",
|
1370
|
+
country="USA",
|
1371
|
+
)
|
1372
|
+
BOGOTA_SAVINGS_BANK_CENTER = SportsballGeocodeTuple(
|
1373
|
+
city="Teaneck",
|
1374
|
+
state="NJ",
|
1375
|
+
postal="07601",
|
1376
|
+
lat=40.8967,
|
1377
|
+
lng=-74.0324,
|
1378
|
+
housenumber="",
|
1379
|
+
country="USA",
|
1380
|
+
)
|
1300
1381
|
_CACHED_GEOCODES: dict[str, Any] = {
|
1301
1382
|
"S.C.G. - Australia": SCG,
|
1302
1383
|
"Victoria Park - Australia": SportsballGeocodeTuple(
|
@@ -3510,15 +3591,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
3510
3591
|
housenumber="",
|
3511
3592
|
country="USA",
|
3512
3593
|
),
|
3513
|
-
"The HTC Center, Conway, South Carolina":
|
3514
|
-
city="Conway",
|
3515
|
-
state="SC",
|
3516
|
-
postal="29579",
|
3517
|
-
lat=33.799167,
|
3518
|
-
lng=-79.015556,
|
3519
|
-
housenumber="104",
|
3520
|
-
country="USA",
|
3521
|
-
),
|
3594
|
+
"The HTC Center, Conway, South Carolina": HTC_CENTER,
|
3522
3595
|
"Daskalakis Athletic Center, Philadelphia, Pennsylvania": SportsballGeocodeTuple(
|
3523
3596
|
city="Philadelphia",
|
3524
3597
|
state="PA",
|
@@ -3546,15 +3619,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
3546
3619
|
housenumber="100",
|
3547
3620
|
country="USA",
|
3548
3621
|
),
|
3549
|
-
"Hynes Athletics Center, New Rochelle, New York":
|
3550
|
-
city="New Rochelle",
|
3551
|
-
state="NY",
|
3552
|
-
postal="",
|
3553
|
-
lat=40.92664,
|
3554
|
-
lng=-73.784325,
|
3555
|
-
housenumber="",
|
3556
|
-
country="USA",
|
3557
|
-
),
|
3622
|
+
"Hynes Athletics Center, New Rochelle, New York": HYNES_ATHELTIC_CENTER,
|
3558
3623
|
"Swisher Gymnasium, Jacksonville, Florida": SportsballGeocodeTuple(
|
3559
3624
|
city="Jacksonville",
|
3560
3625
|
state="FL",
|
@@ -3783,15 +3848,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
3783
3848
|
housenumber="1250",
|
3784
3849
|
country="USA",
|
3785
3850
|
),
|
3786
|
-
"Albert Gersten Pavilion, Los Angeles, California":
|
3787
|
-
city="Los Angeles",
|
3788
|
-
state="CA",
|
3789
|
-
postal="90045",
|
3790
|
-
lat=33.9675,
|
3791
|
-
lng=-118.415556,
|
3792
|
-
housenumber="1",
|
3793
|
-
country="USA",
|
3794
|
-
),
|
3851
|
+
"Albert Gersten Pavilion, Los Angeles, California": GERSTEN_PAVILION,
|
3795
3852
|
"Firestone Fieldhouse, Malibu, California": SportsballGeocodeTuple(
|
3796
3853
|
city="Malibu",
|
3797
3854
|
state="CA",
|
@@ -4661,15 +4718,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
4661
4718
|
housenumber="900",
|
4662
4719
|
country="USA",
|
4663
4720
|
),
|
4664
|
-
"Crisler Arena, Ann Arbor, Michigan":
|
4665
|
-
city="Ann Arbor",
|
4666
|
-
state="MI",
|
4667
|
-
postal="48104",
|
4668
|
-
lat=42.265037,
|
4669
|
-
lng=-83.746768,
|
4670
|
-
housenumber="333",
|
4671
|
-
country="USA",
|
4672
|
-
),
|
4721
|
+
"Crisler Arena, Ann Arbor, Michigan": CRISLER_CENTER,
|
4673
4722
|
"FAU Arena, Boca Raton, Florida": SportsballGeocodeTuple(
|
4674
4723
|
city="Boca Raton",
|
4675
4724
|
state="FL",
|
@@ -4706,15 +4755,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
4706
4755
|
housenumber="1615",
|
4707
4756
|
country="USA",
|
4708
4757
|
),
|
4709
|
-
"Bogota Savings Bank Center, Teaneck, New Jersey":
|
4710
|
-
city="Teaneck",
|
4711
|
-
state="NJ",
|
4712
|
-
postal="07601",
|
4713
|
-
lat=40.8967,
|
4714
|
-
lng=-74.0324,
|
4715
|
-
housenumber="",
|
4716
|
-
country="USA",
|
4717
|
-
),
|
4758
|
+
"Bogota Savings Bank Center, Teaneck, New Jersey": BOGOTA_SAVINGS_BANK_CENTER,
|
4718
4759
|
"Emil and Patricia Jones Convocation Center, Chicago, Illinois": SportsballGeocodeTuple(
|
4719
4760
|
city="Chicago",
|
4720
4761
|
state="IL",
|
@@ -4862,15 +4903,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
4862
4903
|
country="USA",
|
4863
4904
|
),
|
4864
4905
|
"FedExForum, Memphis, Tennessee": FEDEX_FORUM,
|
4865
|
-
"The Pavilion at Ole Miss, Oxford, Mississippi":
|
4866
|
-
city="Oxford",
|
4867
|
-
state="MS",
|
4868
|
-
postal="38677",
|
4869
|
-
lat=34.363164,
|
4870
|
-
lng=-89.535453,
|
4871
|
-
housenumber="",
|
4872
|
-
country="USA",
|
4873
|
-
),
|
4906
|
+
"The Pavilion at Ole Miss, Oxford, Mississippi": OLE_MISS,
|
4874
4907
|
"Dee Glen Smith Spectrum, Logan, Utah": SportsballGeocodeTuple(
|
4875
4908
|
city="Logan",
|
4876
4909
|
state="UT",
|
@@ -4880,15 +4913,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
4880
4913
|
housenumber="900",
|
4881
4914
|
country="USA",
|
4882
4915
|
),
|
4883
|
-
"Holmes Convocation Center, Boone, North Carolina":
|
4884
|
-
city="Boone",
|
4885
|
-
state="NC",
|
4886
|
-
postal="28608",
|
4887
|
-
lat=36.210624,
|
4888
|
-
lng=-81.675952,
|
4889
|
-
housenumber="111",
|
4890
|
-
country="USA",
|
4891
|
-
),
|
4916
|
+
"Holmes Convocation Center, Boone, North Carolina": HOLMES_CENTER,
|
4892
4917
|
"Leede Arena, Hanover, New Hampshire": SportsballGeocodeTuple(
|
4893
4918
|
city="Hanover",
|
4894
4919
|
state="NH",
|
@@ -5177,15 +5202,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
5177
5202
|
housenumber="13",
|
5178
5203
|
country="USA",
|
5179
5204
|
),
|
5180
|
-
"Levien Gym, New York, New York":
|
5181
|
-
city="New York",
|
5182
|
-
state="NY",
|
5183
|
-
postal="",
|
5184
|
-
lat=40.80979,
|
5185
|
-
lng=-73.961715,
|
5186
|
-
housenumber="3030",
|
5187
|
-
country="USA",
|
5188
|
-
),
|
5205
|
+
"Levien Gym, New York, New York": LEVIEN_GYM,
|
5189
5206
|
"Belk Arena, Davidson, North Carolina": SportsballGeocodeTuple(
|
5190
5207
|
city="Davidson",
|
5191
5208
|
state="NC",
|
@@ -6129,15 +6146,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
6129
6146
|
housenumber="4400",
|
6130
6147
|
country="USA",
|
6131
6148
|
),
|
6132
|
-
"Jeff Farris Center, Conway, Arkansas":
|
6133
|
-
city="Conway",
|
6134
|
-
state="AR",
|
6135
|
-
postal="",
|
6136
|
-
lat=35.081667,
|
6137
|
-
lng=-92.459444,
|
6138
|
-
housenumber="",
|
6139
|
-
country="USA",
|
6140
|
-
),
|
6149
|
+
"Jeff Farris Center, Conway, Arkansas": FARRIS_CENTER,
|
6141
6150
|
"TD Arena, Charleston, South Carolina": SportsballGeocodeTuple(
|
6142
6151
|
city="Charleston",
|
6143
6152
|
state="SC",
|
@@ -7487,6 +7496,186 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
7487
7496
|
country="USA",
|
7488
7497
|
),
|
7489
7498
|
"Ross E. Templeton Center, Clinton, South Carolina": ROSS_E_TEMPLETON_CENTER,
|
7499
|
+
"PPG Paints Arena, Pittsburgh, Pennsylvania": SportsballGeocodeTuple(
|
7500
|
+
city="Pittsburgh",
|
7501
|
+
state="PA",
|
7502
|
+
postal="",
|
7503
|
+
lat=40.439444,
|
7504
|
+
lng=-79.989167,
|
7505
|
+
housenumber="1001",
|
7506
|
+
country="USA",
|
7507
|
+
),
|
7508
|
+
"Levien Gymnasium, New York, New York": LEVIEN_GYM,
|
7509
|
+
"Simon Skjodt Assembly Hall, Bloomington, Indiana": SportsballGeocodeTuple(
|
7510
|
+
city="Bloomington",
|
7511
|
+
state="IN",
|
7512
|
+
postal="47408",
|
7513
|
+
lat=39.1808334,
|
7514
|
+
lng=-86.522222,
|
7515
|
+
housenumber="1001",
|
7516
|
+
country="USA",
|
7517
|
+
),
|
7518
|
+
"Crisler Center, Ann Arbor, Michigan": CRISLER_CENTER,
|
7519
|
+
"Jersey Mike's Arena, New Brunswick, New Jersey": SportsballGeocodeTuple(
|
7520
|
+
city="New Brunswick",
|
7521
|
+
state="NJ",
|
7522
|
+
postal="08854",
|
7523
|
+
lat=40.525278,
|
7524
|
+
lng=-74.441111,
|
7525
|
+
housenumber="83",
|
7526
|
+
country="USA",
|
7527
|
+
),
|
7528
|
+
"Fertitta Center, Houston, Texas": SportsballGeocodeTuple(
|
7529
|
+
city="Houston",
|
7530
|
+
state="TX",
|
7531
|
+
postal="77004",
|
7532
|
+
lat=29.724722,
|
7533
|
+
lng=-95.346944,
|
7534
|
+
housenumber="3875",
|
7535
|
+
country="USA",
|
7536
|
+
),
|
7537
|
+
"UMPC Cooper Fieldhouse, Pittsburgh, Pennsylvania": SportsballGeocodeTuple(
|
7538
|
+
city="Pittsburgh",
|
7539
|
+
state="PA",
|
7540
|
+
postal="15282",
|
7541
|
+
lat=40.4374,
|
7542
|
+
lng=-79.9879,
|
7543
|
+
housenumber="600",
|
7544
|
+
country="USA",
|
7545
|
+
),
|
7546
|
+
"Davey Whitney Complex, Alcorn State, Mississippi": SportsballGeocodeTuple(
|
7547
|
+
city="Alcorn State",
|
7548
|
+
state="MS",
|
7549
|
+
postal="",
|
7550
|
+
lat=31.873225,
|
7551
|
+
lng=-91.13318,
|
7552
|
+
housenumber="",
|
7553
|
+
country="USA",
|
7554
|
+
),
|
7555
|
+
"John J. Lee Amphitheater, New Haven, Connecticut": SportsballGeocodeTuple(
|
7556
|
+
city="New Haven",
|
7557
|
+
state="CT",
|
7558
|
+
postal="06511",
|
7559
|
+
lat=41.313611,
|
7560
|
+
lng=-72.930556,
|
7561
|
+
housenumber="70",
|
7562
|
+
country="USA",
|
7563
|
+
),
|
7564
|
+
"Hynes Athletic Center, New Rochelle, New York": HYNES_ATHELTIC_CENTER,
|
7565
|
+
"The Sandy and John Black Pavilion at Ole Miss, Oxford, Mississippi": OLE_MISS,
|
7566
|
+
"Moscow, Idaho": SportsballGeocodeTuple(
|
7567
|
+
city="Moscow",
|
7568
|
+
state="ID",
|
7569
|
+
postal="",
|
7570
|
+
lat=46.741667,
|
7571
|
+
lng=-117.0,
|
7572
|
+
housenumber="",
|
7573
|
+
country="USA",
|
7574
|
+
),
|
7575
|
+
"Ocean Bank Convocation Center, Miami, Florida": SportsballGeocodeTuple(
|
7576
|
+
city="Miami",
|
7577
|
+
state="FL",
|
7578
|
+
postal="33199",
|
7579
|
+
lat=25.756667,
|
7580
|
+
lng=-80.379444,
|
7581
|
+
housenumber="11200",
|
7582
|
+
country="USA",
|
7583
|
+
),
|
7584
|
+
"Island Federal Credit Union Arena, Stony Brook, New York": SportsballGeocodeTuple(
|
7585
|
+
city="Stony Brook",
|
7586
|
+
state="NY",
|
7587
|
+
postal="11790",
|
7588
|
+
lat=40.91741,
|
7589
|
+
lng=-73.125955,
|
7590
|
+
housenumber="100",
|
7591
|
+
country="USA",
|
7592
|
+
),
|
7593
|
+
"Phoenix, Arizona": SportsballGeocodeTuple(
|
7594
|
+
city="Phoenix",
|
7595
|
+
state="AZ",
|
7596
|
+
postal="",
|
7597
|
+
lat=33.448333,
|
7598
|
+
lng=-112.073889,
|
7599
|
+
housenumber="",
|
7600
|
+
country="USA",
|
7601
|
+
),
|
7602
|
+
"Evansville, Indiana": SportsballGeocodeTuple(
|
7603
|
+
city="Evansville",
|
7604
|
+
state="IN",
|
7605
|
+
postal="",
|
7606
|
+
lat=37.977222,
|
7607
|
+
lng=-87.550556,
|
7608
|
+
housenumber="",
|
7609
|
+
country="USA",
|
7610
|
+
),
|
7611
|
+
"America First Event Center, Cedar City, Utah": SportsballGeocodeTuple(
|
7612
|
+
city="Cedar City",
|
7613
|
+
state="UT",
|
7614
|
+
postal="84720",
|
7615
|
+
lat=37.675556,
|
7616
|
+
lng=-113.073056,
|
7617
|
+
housenumber="351",
|
7618
|
+
country="USA",
|
7619
|
+
),
|
7620
|
+
"St. Paul, Minnesota": SportsballGeocodeTuple(
|
7621
|
+
city="St. Paul",
|
7622
|
+
state="MN",
|
7623
|
+
postal="",
|
7624
|
+
lat=44.947778,
|
7625
|
+
lng=-93.103889,
|
7626
|
+
housenumber="",
|
7627
|
+
country="USA",
|
7628
|
+
),
|
7629
|
+
"Jenny Craig Pavilion, San Diego, California": SportsballGeocodeTuple(
|
7630
|
+
city="San Diego",
|
7631
|
+
state="CA",
|
7632
|
+
postal="",
|
7633
|
+
lat=32.7745,
|
7634
|
+
lng=-117.1837,
|
7635
|
+
housenumber="5998",
|
7636
|
+
country="USA",
|
7637
|
+
),
|
7638
|
+
"George M. Holmes Convocation Center, Boone, North Carolina": HOLMES_CENTER,
|
7639
|
+
"Farris Center, Conway, Arkansas": FARRIS_CENTER,
|
7640
|
+
"HTC Center, Conway, South Carolina": HTC_CENTER,
|
7641
|
+
"Atlanta, Georgia": SportsballGeocodeTuple(
|
7642
|
+
city="Atlanta",
|
7643
|
+
state="GA",
|
7644
|
+
postal="",
|
7645
|
+
lat=33.748889,
|
7646
|
+
lng=-84.39,
|
7647
|
+
housenumber="",
|
7648
|
+
country="USA",
|
7649
|
+
),
|
7650
|
+
"UNF Arena, Jacksonville, Florida": SportsballGeocodeTuple(
|
7651
|
+
city="Jacksonville",
|
7652
|
+
state="FL",
|
7653
|
+
postal="32224",
|
7654
|
+
lat=30.2734,
|
7655
|
+
lng=-81.5079,
|
7656
|
+
housenumber="11852",
|
7657
|
+
country="USA",
|
7658
|
+
),
|
7659
|
+
"Strahan Arena, San Marcos, Texas": SportsballGeocodeTuple(
|
7660
|
+
city="San Marcos",
|
7661
|
+
state="TX",
|
7662
|
+
postal="78666",
|
7663
|
+
lat=29.888611,
|
7664
|
+
lng=-97.932778,
|
7665
|
+
housenumber="601",
|
7666
|
+
country="USA",
|
7667
|
+
),
|
7668
|
+
"Wellness and Events Center, Newark, New Jersey": SportsballGeocodeTuple(
|
7669
|
+
city="Newark",
|
7670
|
+
state="NJ",
|
7671
|
+
postal="07102",
|
7672
|
+
lat=40.7453,
|
7673
|
+
lng=-74.183,
|
7674
|
+
housenumber="100",
|
7675
|
+
country="USA",
|
7676
|
+
),
|
7677
|
+
"Gersten Pavilion, Los Angeles, California": GERSTEN_PAVILION,
|
7678
|
+
"Rothman Center, Teaneck, New Jersey": BOGOTA_SAVINGS_BANK_CENTER,
|
7490
7679
|
}
|
7491
7680
|
|
7492
7681
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"""OddsPortal game model."""
|
2
2
|
|
3
|
-
# pylint: disable=too-many-locals
|
3
|
+
# pylint: disable=too-many-locals,too-many-statements
|
4
4
|
import datetime
|
5
5
|
import json
|
6
6
|
import urllib.parse
|
@@ -21,7 +21,7 @@ def _create_oddsportal_game_model(
|
|
21
21
|
url: str,
|
22
22
|
league: League,
|
23
23
|
) -> GameModel:
|
24
|
-
response = session.get(url)
|
24
|
+
response = session.get(url, headers={"X-No-Wayback": "1"})
|
25
25
|
response.raise_for_status()
|
26
26
|
|
27
27
|
soup = BeautifulSoup(response.text, "html.parser")
|
@@ -76,17 +76,21 @@ def _create_oddsportal_game_model(
|
|
76
76
|
if event_body["awayResult"] != "":
|
77
77
|
away_points = float(event_body["awayResult"])
|
78
78
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
game_number=None,
|
83
|
-
venue=create_oddsportal_venue_model(
|
79
|
+
venue = None
|
80
|
+
if event_body["venue"] and event_body["venueTown"] and event_body["venueCountry"]:
|
81
|
+
venue = create_oddsportal_venue_model(
|
84
82
|
session,
|
85
83
|
dt,
|
86
84
|
event_body["venue"],
|
87
85
|
event_body["venueTown"],
|
88
86
|
event_body["venueCountry"],
|
89
|
-
)
|
87
|
+
)
|
88
|
+
|
89
|
+
return GameModel(
|
90
|
+
dt=dt,
|
91
|
+
week=None,
|
92
|
+
game_number=None,
|
93
|
+
venue=venue,
|
90
94
|
teams=[
|
91
95
|
create_oddsportal_team_model(
|
92
96
|
session,
|
{sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/oddsportal/oddsportal_league_model.py
RENAMED
@@ -1,5 +1,6 @@
|
|
1
1
|
"""Odds Portal league model."""
|
2
2
|
|
3
|
+
# pylint: disable=too-many-locals,too-many-branches,too-many-statements
|
3
4
|
import http
|
4
5
|
import json
|
5
6
|
import logging
|
@@ -74,15 +75,16 @@ class OddsPortalLeagueModel(LeagueModel):
|
|
74
75
|
raise exc
|
75
76
|
|
76
77
|
def _find_previous(self, pbar: tqdm.tqdm) -> Iterator[GameModel]:
|
78
|
+
standard_suffix = self._path + "results/"
|
77
79
|
seen_urls = set()
|
78
|
-
queued_urls = {"https://www.oddsportal.com/" +
|
80
|
+
queued_urls = {"https://www.oddsportal.com/" + standard_suffix}
|
79
81
|
while queued_urls:
|
80
82
|
url = queued_urls.pop()
|
81
83
|
if url in seen_urls:
|
82
84
|
continue
|
83
85
|
seen_urls.add(url)
|
84
86
|
|
85
|
-
if url.endswith(
|
87
|
+
if url.endswith(standard_suffix):
|
86
88
|
with self.session.cache_disabled():
|
87
89
|
response = self.session.get(url)
|
88
90
|
else:
|
@@ -92,24 +94,55 @@ class OddsPortalLeagueModel(LeagueModel):
|
|
92
94
|
soup = BeautifulSoup(response.text, "html.parser")
|
93
95
|
|
94
96
|
# Find next URLs
|
95
|
-
for
|
96
|
-
next_url = urllib.parse.urljoin(url,
|
97
|
-
if next_url.endswith("/results/"):
|
97
|
+
for option in soup.find_all("option"):
|
98
|
+
next_url = urllib.parse.urljoin(url, option.get("value"))
|
99
|
+
if next_url.endswith("/results/") and self._path[:-1] in next_url:
|
98
100
|
queued_urls.add(next_url)
|
99
101
|
|
100
102
|
# Paginate through results
|
101
103
|
while True:
|
104
|
+
game_urls = set()
|
105
|
+
|
106
|
+
# Check the react tags
|
102
107
|
tournament_component = soup.find("tournament-component")
|
103
|
-
if
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
108
|
+
if isinstance(tournament_component, Tag):
|
109
|
+
matches = json.loads(str(tournament_component[":sport-data"]))
|
110
|
+
component = matches.get(
|
111
|
+
"tournamentGamesComponent", matches.get("d")
|
112
|
+
)
|
113
|
+
if component.get("total") != 0:
|
114
|
+
game_urls = {
|
115
|
+
urllib.parse.urljoin(url, x["url"])
|
116
|
+
for x in component.get("rows", [])
|
117
|
+
}
|
118
|
+
if not game_urls:
|
119
|
+
for a in soup.find_all("a", href=True):
|
120
|
+
game_url = urllib.parse.urljoin(url, a.get("href"))
|
121
|
+
if (
|
122
|
+
game_url.endswith("results/")
|
123
|
+
or game_url.endswith("standings/")
|
124
|
+
or game_url.endswith(self._path)
|
125
|
+
or game_url.endswith("outrights/")
|
126
|
+
):
|
127
|
+
continue
|
128
|
+
if self._path[:-1] in game_url:
|
129
|
+
game_urls.add(game_url)
|
130
|
+
|
131
|
+
for game_url in game_urls:
|
132
|
+
if "#" in game_url:
|
133
|
+
continue
|
134
|
+
if (
|
135
|
+
game_url.replace("results/", "") == url
|
136
|
+
or game_url.replace("results/", "") in queued_urls
|
137
|
+
):
|
138
|
+
continue
|
139
|
+
if game_url.endswith("/archive/"):
|
140
|
+
continue
|
141
|
+
if len(game_url.split("/")) != 8:
|
142
|
+
continue
|
110
143
|
game_model = create_oddsportal_game_model(
|
111
144
|
self.session,
|
112
|
-
|
145
|
+
game_url,
|
113
146
|
self.league,
|
114
147
|
False,
|
115
148
|
)
|
@@ -31,6 +31,7 @@ FAST_FAIL_DOMAINS = [
|
|
31
31
|
"https://news.google.com/",
|
32
32
|
"https://historical-forecast-api.open-meteo.com/",
|
33
33
|
]
|
34
|
+
X_NO_WAYBACK = "x-no-wayback"
|
34
35
|
|
35
36
|
|
36
37
|
def _is_fast_fail_url(url: str | None) -> bool:
|
@@ -119,7 +120,10 @@ class ProxySession(requests_cache.CachedSession):
|
|
119
120
|
response.request = prepared_request
|
120
121
|
|
121
122
|
return response
|
122
|
-
except
|
123
|
+
except (
|
124
|
+
wayback.exceptions.MementoPlaybackError, # pyright: ignore
|
125
|
+
requests.exceptions.ChunkedEncodingError,
|
126
|
+
): # pyright: ignore
|
123
127
|
pass
|
124
128
|
return None
|
125
129
|
|
@@ -127,6 +131,11 @@ class ProxySession(requests_cache.CachedSession):
|
|
127
131
|
def _perform_timeout_send(self, request: requests.PreparedRequest, **kwargs) -> Any:
|
128
132
|
key = self.cache.create_key(request)
|
129
133
|
|
134
|
+
no_wayback = False
|
135
|
+
if X_NO_WAYBACK in request.headers:
|
136
|
+
no_wayback = request.headers.get(X_NO_WAYBACK) == "1"
|
137
|
+
del request.headers[X_NO_WAYBACK]
|
138
|
+
|
130
139
|
if not self.settings.disabled:
|
131
140
|
# Check the cache
|
132
141
|
cached_response = self.cache.get_response(key)
|
@@ -136,7 +145,7 @@ class ProxySession(requests_cache.CachedSession):
|
|
136
145
|
logging.info("Request for %s not cached.", request.url)
|
137
146
|
|
138
147
|
# Otherwise check the wayback machine
|
139
|
-
if not _is_fast_fail_url(request.url):
|
148
|
+
if not _is_fast_fail_url(request.url) and no_wayback:
|
140
149
|
response = self._wayback_machine_request(
|
141
150
|
request.method, request.url, headers=request.headers
|
142
151
|
)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.25 → sportsball-0.3.26}/sportsball/data/afl/afltables/afl_afltables_game_model.py
RENAMED
File without changes
|
{sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/afltables/afl_afltables_league_model.py
RENAMED
File without changes
|
{sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/afltables/afl_afltables_player_model.py
RENAMED
File without changes
|
{sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/afltables/afl_afltables_team_model.py
RENAMED
File without changes
|
{sportsball-0.3.25 → sportsball-0.3.26}/sportsball/data/afl/afltables/afl_afltables_venue_model.py
RENAMED
File without changes
|
File without changes
|