sportsball 0.5.22__tar.gz → 0.5.23__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.5.22/sportsball.egg-info → sportsball-0.5.23}/PKG-INFO +3 -1
- {sportsball-0.5.22 → sportsball-0.5.23}/README.md +1 -0
- sportsball-0.5.22/sportsball.egg-info/requires.txt → sportsball-0.5.23/requirements.txt +1 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/setup.py +1 -1
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/__init__.py +1 -1
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afl/afl_afl_league_model.py +5 -5
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afltables/afl_afltables_league_model.py +3 -3
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/combined/afl_combined_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/espn/afl_espn_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +2 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/combined/combined_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/espn/espn_league_model.py +2 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/hkjc/hkjc/hkjc_hkjc_coach_model.py +4 -4
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/hkjc/hkjc/hkjc_hkjc_game_model.py +4 -4
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/hkjc/hkjc/hkjc_hkjc_league_model.py +2 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/hkjc/hkjc/hkjc_hkjc_player_model.py +4 -4
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/hkjc/hkjc/hkjc_hkjc_team_model.py +4 -4
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/league_model.py +2 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/model.py +13 -6
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/combined/nba_combined_league_model.py +2 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/espn/nba_espn_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/nba/nba_nba_league_model.py +2 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/nbacom/nba_nbacom_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nfl/combined/nfl_combined_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nfl/espn/nfl_espn_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +3 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/oddsportal/decrypt.py +3 -4
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/oddsportal/oddsportal_game_model.py +4 -4
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/oddsportal/oddsportal_league_model.py +2 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/sportsdb/sportsdb_league_model.py +2 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/sportsreference/sportsreference_coach_model.py +4 -4
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/sportsreference/sportsreference_game_model.py +6 -6
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/sportsreference/sportsreference_league_model.py +2 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/sportsreference/sportsreference_player_model.py +1 -1
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/sportsreference/sportsreference_team_model.py +4 -4
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/sportsball.py +11 -3
- {sportsball-0.5.22 → sportsball-0.5.23/sportsball.egg-info}/PKG-INFO +3 -1
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball.egg-info/SOURCES.txt +0 -3
- sportsball-0.5.22/requirements.txt → sportsball-0.5.23/sportsball.egg-info/requires.txt +2 -1
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/hkjc/hkjc/hkjc_hkjc_game_model_test.py +2 -3
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/hkjc/hkjc/hkjc_hkjc_player_model_test.py +2 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/oddsportal/decrypt_test.py +2 -2
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/oddsportal/oddsportal_game_model_test.py +2 -3
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/sportsreference/sportsreference_team_model_test.py +2 -2
- sportsball-0.5.22/sportsball/proxy_session.py +0 -326
- sportsball-0.5.22/sportsball/session.py +0 -3
- sportsball-0.5.22/tests/proxy_session_test.py +0 -63
- {sportsball-0.5.22 → sportsball-0.5.23}/LICENSE +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/MANIFEST.in +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/setup.cfg +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/__main__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/args.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/cache.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/address_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afl/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afl/afl_afl_bookie_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afl/afl_afl_odds_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afltables/afl_afltables_coach_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/combined/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/espn/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/oddsportal/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/position.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/bet.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/bookie_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/coach_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/combined/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/combined/combined_address_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/combined/combined_coach_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/combined/combined_game_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/combined/combined_player_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/combined/combined_team_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/combined/combined_venue_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/combined/combined_weather_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/combined/null_check.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/dividend_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/espn/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/espn/espn_bookie_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/espn/espn_coach_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/espn/espn_game_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/espn/espn_odds_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/espn/espn_player_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/espn/espn_team_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/espn/espn_venue_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/field_type.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/game_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/google/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/google/google_address_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/google/google_news_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/hkjc/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/hkjc/hkjc/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/hkjc/hkjc/hkjc_hkjc_bookie_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/hkjc/hkjc/hkjc_hkjc_dividend_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/hkjc/hkjc/hkjc_hkjc_odds_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/hkjc/hkjc/hkjc_hkjc_owner_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/hkjc/hkjc/hkjc_hkjc_venue_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/hkjc/position.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/league.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/combined/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/espn/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/nba/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/nbacom/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/nbacom/nba_nbacom_game_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/nbacom/nba_nbacom_player_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/nbacom/nba_nbacom_team_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/nbacom/nba_nbacom_venue_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/oddsportal/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/position.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaab/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaab/combined/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaab/espn/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaaf/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaaf/combined/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaaf/espn/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/news_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nfl/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nfl/combined/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nfl/espn/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nfl/position.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/odds_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/oddsportal/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/owner_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/player_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/season_type.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/sex.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/social_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/species.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/sportsdb/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/sportsreference/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/team_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/venue_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/weather/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/weather/gribstream/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/weather/multi_weather_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/weather/openmeteo/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/weather_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/wikipedia/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/x/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/x/x_social_model.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/logger.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/loglevel.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/playwright.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/vendor/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball/vendor/pygooglenews/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball.egg-info/dependency_links.txt +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball.egg-info/entry_points.txt +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball.egg-info/not-zip-safe +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/sportsball.egg-info/top_level.txt +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/afl/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/afl/afl/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/afl/afl/afl_afl_game_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/afl/afl/afl_afl_league_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/afl/afltables/afl_afltables_coach_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/combined/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/combined/combined_game_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/combined/combined_player_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/combined/combined_team_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/combined/combined_venue_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/espn/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/espn/espn_game_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/espn/espn_player_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/game_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/google/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/google/google_address_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/google/google_news_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/hkjc/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/hkjc/hkjc/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/nba/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/nba/nba/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/ncaab/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/nfl/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/oddsportal/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/player_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/social_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/sportsdb/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/sportsreference/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/sportsreference/sportsreference_coach_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/team_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/x/__init__.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/data/x/x_social_model_test.py +0 -0
- {sportsball-0.5.22 → sportsball-0.5.23}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: sportsball
|
3
|
-
Version: 0.5.
|
3
|
+
Version: 0.5.23
|
4
4
|
Summary: A library for pulling in and normalising sports stats.
|
5
5
|
Home-page: https://github.com/8W9aG/sportsball
|
6
6
|
Author: Will Sackfield
|
@@ -47,6 +47,7 @@ Requires-Dist: playwright>=1.51.0
|
|
47
47
|
Requires-Dist: cchardet>=2.2.0a2
|
48
48
|
Requires-Dist: lxml>=5.3.0
|
49
49
|
Requires-Dist: gender-guesser>=0.4.0
|
50
|
+
Requires-Dist: scrapesession>=0.0.1
|
50
51
|
Dynamic: author
|
51
52
|
Dynamic: author-email
|
52
53
|
Dynamic: classifier
|
@@ -109,6 +110,7 @@ Python 3.11.6:
|
|
109
110
|
- [cchardet](https://github.com/PyYoshi/cChardet)
|
110
111
|
- [lxml](https://lxml.de/)
|
111
112
|
- [gender-guesser](https://github.com/lead-ratings/gender-guesser)
|
113
|
+
- [scrapesession](https://github.com/8W9aG/scrapesession)
|
112
114
|
|
113
115
|
## Raison D'être :thought_balloon:
|
114
116
|
|
@@ -49,6 +49,7 @@ Python 3.11.6:
|
|
49
49
|
- [cchardet](https://github.com/PyYoshi/cChardet)
|
50
50
|
- [lxml](https://lxml.de/)
|
51
51
|
- [gender-guesser](https://github.com/lead-ratings/gender-guesser)
|
52
|
+
- [scrapesession](https://github.com/8W9aG/scrapesession)
|
52
53
|
|
53
54
|
## Raison D'être :thought_balloon:
|
54
55
|
|
@@ -26,7 +26,7 @@ def install_requires() -> typing.List[str]:
|
|
26
26
|
|
27
27
|
setup(
|
28
28
|
name='sportsball',
|
29
|
-
version='0.5.
|
29
|
+
version='0.5.23',
|
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',
|
@@ -10,9 +10,9 @@ from typing import Iterator
|
|
10
10
|
from bs4 import BeautifulSoup, Tag
|
11
11
|
from dateutil.parser import parse
|
12
12
|
from playwright.sync_api import Playwright, sync_playwright
|
13
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
13
14
|
|
14
15
|
from ....playwright import ensure_install
|
15
|
-
from ....proxy_session import ProxySession
|
16
16
|
from ...game_model import GameModel
|
17
17
|
from ...league import League
|
18
18
|
from ...league_model import LeagueModel
|
@@ -22,7 +22,7 @@ from .afl_afl_game_model import create_afl_afl_game_model, parse_players_v1
|
|
22
22
|
|
23
23
|
def _parse_v1(
|
24
24
|
soup: BeautifulSoup,
|
25
|
-
session:
|
25
|
+
session: ScrapeSession,
|
26
26
|
ladder: list[str],
|
27
27
|
html_url: str,
|
28
28
|
playwright: Playwright,
|
@@ -143,7 +143,7 @@ def _parse_v2_soup(
|
|
143
143
|
|
144
144
|
def _parse_v2(
|
145
145
|
soup: BeautifulSoup,
|
146
|
-
session:
|
146
|
+
session: ScrapeSession,
|
147
147
|
ladder: list[str],
|
148
148
|
html_url: str,
|
149
149
|
playwright: Playwright,
|
@@ -163,7 +163,7 @@ def _parse_v2(
|
|
163
163
|
|
164
164
|
def _parse_game_info(
|
165
165
|
html: str,
|
166
|
-
session:
|
166
|
+
session: ScrapeSession,
|
167
167
|
ladder: list[str],
|
168
168
|
html_url: str,
|
169
169
|
playwright: Playwright,
|
@@ -180,7 +180,7 @@ def _parse_game_info(
|
|
180
180
|
class AFLAFLLeagueModel(LeagueModel):
|
181
181
|
"""AFL AFL implementation of the league model."""
|
182
182
|
|
183
|
-
def __init__(self, session:
|
183
|
+
def __init__(self, session: ScrapeSession, position: int | None = None) -> None:
|
184
184
|
super().__init__(League.AFL, session, position=position)
|
185
185
|
|
186
186
|
@classmethod
|
{sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/afltables/afl_afltables_league_model.py
RENAMED
@@ -11,8 +11,8 @@ from urllib.parse import urlparse
|
|
11
11
|
import tqdm
|
12
12
|
from bs4 import BeautifulSoup
|
13
13
|
from dateutil import parser
|
14
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
14
15
|
|
15
|
-
from ....proxy_session import ProxySession
|
16
16
|
from ...game_model import GameModel
|
17
17
|
from ...league import League
|
18
18
|
from ...league_model import LeagueModel
|
@@ -42,8 +42,8 @@ def _find_dt(td_text: str, season_url: str) -> datetime.datetime:
|
|
42
42
|
class AFLAFLTablesLeagueModel(LeagueModel):
|
43
43
|
"""AFL AFLTables implementation of the league model."""
|
44
44
|
|
45
|
-
def __init__(self, session:
|
46
|
-
super().__init__(League.AFL, session)
|
45
|
+
def __init__(self, session: ScrapeSession, position: int | None = None) -> None:
|
46
|
+
super().__init__(League.AFL, session, position=position)
|
47
47
|
|
48
48
|
@classmethod
|
49
49
|
def name(cls) -> str:
|
@@ -1,6 +1,7 @@
|
|
1
1
|
"""AFL aussportsbetting league model."""
|
2
2
|
|
3
|
-
from
|
3
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
4
|
+
|
4
5
|
from ...aussportsbetting.aussportsbetting_league_model import \
|
5
6
|
AusSportsBettingLeagueModel
|
6
7
|
from ...league import League
|
@@ -9,7 +10,7 @@ from ...league import League
|
|
9
10
|
class AFLAusSportsBettingLeagueModel(AusSportsBettingLeagueModel):
|
10
11
|
"""AFL AusSportsBetting implementation of the league model."""
|
11
12
|
|
12
|
-
def __init__(self, session:
|
13
|
+
def __init__(self, session: ScrapeSession, position: int | None = None) -> None:
|
13
14
|
super().__init__(League.AFL, session, position=position)
|
14
15
|
|
15
16
|
@classmethod
|
{sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/afl/combined/afl_combined_league_model.py
RENAMED
@@ -1,6 +1,7 @@
|
|
1
1
|
"""AFL combined league model."""
|
2
2
|
|
3
|
-
from
|
3
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
4
|
+
|
4
5
|
from ...combined.combined_league_model import CombinedLeagueModel
|
5
6
|
from ...league import League
|
6
7
|
from ..afl.afl_afl_league_model import AFLAFLLeagueModel
|
@@ -275,7 +276,7 @@ AFL_VENUE_IDENTITY_MAP = {
|
|
275
276
|
class AFLCombinedLeagueModel(CombinedLeagueModel):
|
276
277
|
"""AFL combined implementation of the league model."""
|
277
278
|
|
278
|
-
def __init__(self, session:
|
279
|
+
def __init__(self, session: ScrapeSession, league_filter: str | None) -> None:
|
279
280
|
super().__init__(
|
280
281
|
session,
|
281
282
|
League.AFL,
|
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
# pylint: disable=line-too-long
|
4
4
|
|
5
|
-
from
|
5
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
6
|
+
|
6
7
|
from ...espn.espn_league_model import ESPNLeagueModel
|
7
8
|
from ...league import League
|
8
9
|
|
@@ -12,7 +13,7 @@ _SEASON_URL = "https://sports.core.api.espn.com/v2/sports/australian-football/le
|
|
12
13
|
class AFLESPNLeagueModel(ESPNLeagueModel):
|
13
14
|
"""AFL ESPN implementation of the league model."""
|
14
15
|
|
15
|
-
def __init__(self, session:
|
16
|
+
def __init__(self, session: ScrapeSession, position: int | None = None) -> None:
|
16
17
|
super().__init__(_SEASON_URL, League.AFL, session, position=position)
|
17
18
|
|
18
19
|
@classmethod
|
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
# pylint: disable=line-too-long
|
4
4
|
|
5
|
-
from
|
5
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
6
|
+
|
6
7
|
from ...league import League
|
7
8
|
from ...oddsportal.oddsportal_league_model import OddsPortalLeagueModel
|
8
9
|
|
@@ -10,7 +11,7 @@ from ...oddsportal.oddsportal_league_model import OddsPortalLeagueModel
|
|
10
11
|
class AFLOddsPortalLeagueModel(OddsPortalLeagueModel):
|
11
12
|
"""AFL OddsPortal implementation of the league model."""
|
12
13
|
|
13
|
-
def __init__(self, session:
|
14
|
+
def __init__(self, session: ScrapeSession, position: int | None = None) -> None:
|
14
15
|
super().__init__(League.AFL, session, position=position)
|
15
16
|
|
16
17
|
@classmethod
|
@@ -7,8 +7,8 @@ from typing import Any, Iterator
|
|
7
7
|
import tqdm
|
8
8
|
from dateutil.parser import parse
|
9
9
|
from openpyxl import load_workbook
|
10
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
10
11
|
|
11
|
-
from ...proxy_session import ProxySession
|
12
12
|
from ..game_model import GameModel
|
13
13
|
from ..league import League
|
14
14
|
from ..league_model import LeagueModel
|
@@ -21,7 +21,7 @@ class AusSportsBettingLeagueModel(LeagueModel):
|
|
21
21
|
def __init__(
|
22
22
|
self,
|
23
23
|
league: League,
|
24
|
-
session:
|
24
|
+
session: ScrapeSession,
|
25
25
|
position: int | None = None,
|
26
26
|
) -> None:
|
27
27
|
super().__init__(league, session, position=position)
|
@@ -6,7 +6,8 @@ import multiprocessing
|
|
6
6
|
from concurrent.futures import ThreadPoolExecutor
|
7
7
|
from typing import Any, Iterator
|
8
8
|
|
9
|
-
from
|
9
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
10
|
+
|
10
11
|
from ..game_model import GameModel
|
11
12
|
from ..league import League
|
12
13
|
from ..league_model import LeagueModel
|
@@ -22,7 +23,7 @@ class CombinedLeagueModel(LeagueModel):
|
|
22
23
|
|
23
24
|
def __init__(
|
24
25
|
self,
|
25
|
-
session:
|
26
|
+
session: ScrapeSession,
|
26
27
|
league: League,
|
27
28
|
league_models: list[LeagueModel],
|
28
29
|
league_filter: str | None,
|
@@ -4,8 +4,8 @@
|
|
4
4
|
from typing import Any, Iterator
|
5
5
|
|
6
6
|
import tqdm
|
7
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
7
8
|
|
8
|
-
from ...proxy_session import ProxySession
|
9
9
|
from ..game_model import GameModel
|
10
10
|
from ..league import League
|
11
11
|
from ..league_model import LeagueModel
|
@@ -32,7 +32,7 @@ class ESPNLeagueModel(LeagueModel):
|
|
32
32
|
self,
|
33
33
|
start_url: str,
|
34
34
|
league: League,
|
35
|
-
session:
|
35
|
+
session: ScrapeSession,
|
36
36
|
position: int | None = None,
|
37
37
|
) -> None:
|
38
38
|
super().__init__(league, session, position=position)
|
@@ -4,14 +4,14 @@ import io
|
|
4
4
|
|
5
5
|
import pandas as pd
|
6
6
|
import pytest_is_running
|
7
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
7
8
|
|
8
9
|
from ....cache import MEMORY
|
9
|
-
from ....proxy_session import ProxySession
|
10
10
|
from ...coach_model import CoachModel
|
11
11
|
|
12
12
|
|
13
13
|
def _create_hkjc_hkjc_coach_model(
|
14
|
-
session:
|
14
|
+
session: ScrapeSession,
|
15
15
|
url: str,
|
16
16
|
) -> CoachModel:
|
17
17
|
with session.wayback_disabled():
|
@@ -48,14 +48,14 @@ def _create_hkjc_hkjc_coach_model(
|
|
48
48
|
|
49
49
|
@MEMORY.cache(ignore=["session"])
|
50
50
|
def _cached_create_hkjc_hkjc_coach_model(
|
51
|
-
session:
|
51
|
+
session: ScrapeSession,
|
52
52
|
url: str,
|
53
53
|
) -> CoachModel:
|
54
54
|
return _create_hkjc_hkjc_coach_model(session=session, url=url)
|
55
55
|
|
56
56
|
|
57
57
|
def create_hkjc_hkjc_coach_model(
|
58
|
-
session:
|
58
|
+
session: ScrapeSession,
|
59
59
|
url: str,
|
60
60
|
) -> CoachModel:
|
61
61
|
"""Create a coach model based off HKJC."""
|
@@ -11,9 +11,9 @@ import pandas as pd
|
|
11
11
|
import pytest_is_running
|
12
12
|
from bs4 import BeautifulSoup
|
13
13
|
from dateutil.parser import parse
|
14
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
14
15
|
|
15
16
|
from ....cache import MEMORY
|
16
|
-
from ....proxy_session import ProxySession
|
17
17
|
from ...game_model import GameModel
|
18
18
|
from ...league import League
|
19
19
|
from ..position import position_from_str
|
@@ -28,7 +28,7 @@ RACE_COURSE_QUERY_KEY = "Racecourse"
|
|
28
28
|
|
29
29
|
|
30
30
|
def _create_hkjc_hkjc_game_model(
|
31
|
-
session:
|
31
|
+
session: ScrapeSession,
|
32
32
|
html: str,
|
33
33
|
url: str,
|
34
34
|
) -> GameModel | None:
|
@@ -344,7 +344,7 @@ def _create_hkjc_hkjc_game_model(
|
|
344
344
|
|
345
345
|
@MEMORY.cache(ignore=["session"])
|
346
346
|
def _cached_create_hkjc_hkjc_game_model(
|
347
|
-
session:
|
347
|
+
session: ScrapeSession,
|
348
348
|
html: str,
|
349
349
|
url: str,
|
350
350
|
) -> GameModel | None:
|
@@ -353,7 +353,7 @@ def _cached_create_hkjc_hkjc_game_model(
|
|
353
353
|
|
354
354
|
|
355
355
|
def create_hkjc_hkjc_game_model(
|
356
|
-
session:
|
356
|
+
session: ScrapeSession,
|
357
357
|
html: str,
|
358
358
|
url: str,
|
359
359
|
) -> GameModel | None:
|
@@ -8,8 +8,8 @@ from urllib.parse import urlparse
|
|
8
8
|
|
9
9
|
import tqdm
|
10
10
|
from bs4 import BeautifulSoup
|
11
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
11
12
|
|
12
|
-
from ....proxy_session import ProxySession
|
13
13
|
from ...game_model import GameModel
|
14
14
|
from ...league import League
|
15
15
|
from ...league_model import LeagueModel
|
@@ -22,7 +22,7 @@ from .hkjc_hkjc_venue_model import HAPPY_VALLEY_VENUE_CODE, SHA_TIN_VENUE_CODE
|
|
22
22
|
class HKJCHKJCLeagueModel(LeagueModel):
|
23
23
|
"""HKJC HKJC implementation of the league model."""
|
24
24
|
|
25
|
-
def __init__(self, session:
|
25
|
+
def __init__(self, session: ScrapeSession, position: int | None = None) -> None:
|
26
26
|
super().__init__(League.HKJC, session, position=position)
|
27
27
|
|
28
28
|
@classmethod
|
@@ -9,9 +9,9 @@ from urllib.parse import urlparse
|
|
9
9
|
import pandas as pd
|
10
10
|
import pytest_is_running
|
11
11
|
from bs4 import BeautifulSoup
|
12
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
12
13
|
|
13
14
|
from ....cache import MEMORY
|
14
|
-
from ....proxy_session import ProxySession
|
15
15
|
from ...google.google_address_model import create_google_address_model
|
16
16
|
from ...player_model import PlayerModel
|
17
17
|
from ...sex import sex_from_str
|
@@ -21,7 +21,7 @@ from .hkjc_hkjc_owner_model import create_hkjc_hkjc_owner_model
|
|
21
21
|
|
22
22
|
|
23
23
|
def _create_hkjc_hkjc_player_model(
|
24
|
-
session:
|
24
|
+
session: ScrapeSession,
|
25
25
|
url: str,
|
26
26
|
jersey: str | None,
|
27
27
|
handicap_weight: float | None,
|
@@ -193,7 +193,7 @@ def _create_hkjc_hkjc_player_model(
|
|
193
193
|
|
194
194
|
@MEMORY.cache(ignore=["session"])
|
195
195
|
def _cached_create_hkjc_hkjc_player_model(
|
196
|
-
session:
|
196
|
+
session: ScrapeSession,
|
197
197
|
url: str,
|
198
198
|
jersey: str | None,
|
199
199
|
handicap_weight: float | None,
|
@@ -211,7 +211,7 @@ def _cached_create_hkjc_hkjc_player_model(
|
|
211
211
|
|
212
212
|
|
213
213
|
def create_hkjc_hkjc_player_model(
|
214
|
-
session:
|
214
|
+
session: ScrapeSession,
|
215
215
|
url: str,
|
216
216
|
jersey: str | None,
|
217
217
|
handicap_weight: float | None,
|
@@ -4,9 +4,9 @@
|
|
4
4
|
import datetime
|
5
5
|
|
6
6
|
import pytest_is_running
|
7
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
7
8
|
|
8
9
|
from ....cache import MEMORY
|
9
|
-
from ....proxy_session import ProxySession
|
10
10
|
from ...odds_model import OddsModel
|
11
11
|
from ...team_model import TeamModel
|
12
12
|
from ..position import Position
|
@@ -15,7 +15,7 @@ from .hkjc_hkjc_player_model import create_hkjc_hkjc_player_model
|
|
15
15
|
|
16
16
|
|
17
17
|
def _create_hkjc_hkjc_team_model(
|
18
|
-
session:
|
18
|
+
session: ScrapeSession,
|
19
19
|
horse_url: str,
|
20
20
|
jockey_url: str | None,
|
21
21
|
trainer_url: str | None,
|
@@ -75,7 +75,7 @@ def _create_hkjc_hkjc_team_model(
|
|
75
75
|
|
76
76
|
@MEMORY.cache(ignore=["session"])
|
77
77
|
def _cached_create_hkjc_hkjc_team_model(
|
78
|
-
session:
|
78
|
+
session: ScrapeSession,
|
79
79
|
horse_url: str,
|
80
80
|
jockey_url: str | None,
|
81
81
|
trainer_url: str | None,
|
@@ -105,7 +105,7 @@ def _cached_create_hkjc_hkjc_team_model(
|
|
105
105
|
|
106
106
|
|
107
107
|
def create_hkjc_hkjc_team_model(
|
108
|
-
session:
|
108
|
+
session: ScrapeSession,
|
109
109
|
horse_url: str,
|
110
110
|
jockey_url: str | None,
|
111
111
|
trainer_url: str | None,
|
@@ -8,8 +8,8 @@ import pandas as pd
|
|
8
8
|
import tqdm
|
9
9
|
from flatten_json import flatten # type: ignore
|
10
10
|
from pydantic import BaseModel
|
11
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
11
12
|
|
12
|
-
from ..proxy_session import ProxySession
|
13
13
|
from .address_model import ADDRESS_TIMEZONE_COLUMN
|
14
14
|
from .field_type import FieldType
|
15
15
|
from .game_model import GAME_DT_COLUMN, VENUE_COLUMN_PREFIX, GameModel
|
@@ -82,7 +82,7 @@ class LeagueModel(Model):
|
|
82
82
|
def __init__(
|
83
83
|
self,
|
84
84
|
league: League,
|
85
|
-
session:
|
85
|
+
session: ScrapeSession,
|
86
86
|
position: int | None = None,
|
87
87
|
) -> None:
|
88
88
|
super().__init__(session)
|
@@ -2,24 +2,31 @@
|
|
2
2
|
|
3
3
|
# pylint: disable=too-few-public-methods
|
4
4
|
import pandas as pd
|
5
|
-
|
6
|
-
from
|
5
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
6
|
+
from scrapesession.scrapesession import create_scrape_session
|
7
7
|
|
8
8
|
|
9
9
|
class Model:
|
10
10
|
"""The base model class."""
|
11
11
|
|
12
|
-
_session:
|
12
|
+
_session: ScrapeSession | None
|
13
13
|
|
14
|
-
def __init__(self, session:
|
14
|
+
def __init__(self, session: ScrapeSession) -> None:
|
15
15
|
self._session = session
|
16
16
|
|
17
17
|
@property
|
18
|
-
def session(self) ->
|
18
|
+
def session(self) -> ScrapeSession:
|
19
19
|
"""Fetch a session that can never be null."""
|
20
20
|
session = self._session
|
21
21
|
if session is None:
|
22
|
-
session =
|
22
|
+
session = create_scrape_session(
|
23
|
+
"sportsball",
|
24
|
+
fast_fail_urls={
|
25
|
+
"https://news.google.com/",
|
26
|
+
"https://historical-forecast-api.open-meteo.com/",
|
27
|
+
"https://api.open-meteo.com/",
|
28
|
+
},
|
29
|
+
)
|
23
30
|
self._session = session
|
24
31
|
return session
|
25
32
|
|
{sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/combined/nba_combined_league_model.py
RENAMED
@@ -1,8 +1,8 @@
|
|
1
1
|
"""NBA combined league model."""
|
2
2
|
|
3
3
|
# pylint: disable=line-too-long
|
4
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
4
5
|
|
5
|
-
from ....proxy_session import ProxySession
|
6
6
|
from ...combined.combined_league_model import CombinedLeagueModel
|
7
7
|
from ...league import League
|
8
8
|
from ..espn.nba_espn_league_model import NBAESPNLeagueModel
|
@@ -896,7 +896,7 @@ NBA_PLAYER_IDENTITY_MAP: dict[str, str] = {}
|
|
896
896
|
class NBACombinedLeagueModel(CombinedLeagueModel):
|
897
897
|
"""NBA combined implementation of the league model."""
|
898
898
|
|
899
|
-
def __init__(self, session:
|
899
|
+
def __init__(self, session: ScrapeSession, league_filter: str | None) -> None:
|
900
900
|
super().__init__(
|
901
901
|
session,
|
902
902
|
League.NBA,
|
@@ -1,6 +1,7 @@
|
|
1
1
|
"""NBA ESPN league model."""
|
2
2
|
|
3
|
-
from
|
3
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
4
|
+
|
4
5
|
from ...espn.espn_league_model import ESPNLeagueModel
|
5
6
|
from ...league import League
|
6
7
|
from ..position import Position
|
@@ -13,7 +14,7 @@ _SEASON_URL = (
|
|
13
14
|
class NBAESPNLeagueModel(ESPNLeagueModel):
|
14
15
|
"""NBA ESPN implementation of the league model."""
|
15
16
|
|
16
|
-
def __init__(self, session:
|
17
|
+
def __init__(self, session: ScrapeSession, position: int | None = None) -> None:
|
17
18
|
super().__init__(_SEASON_URL, League.NBA, session, position=position)
|
18
19
|
|
19
20
|
@classmethod
|
@@ -9,8 +9,8 @@ from dateutil.parser import parse
|
|
9
9
|
from dateutil.relativedelta import relativedelta
|
10
10
|
from nba_api.library.http import NBAHTTP # type: ignore
|
11
11
|
from nba_api.stats.endpoints import leaguegamefinder # type: ignore
|
12
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
12
13
|
|
13
|
-
from ....proxy_session import ProxySession
|
14
14
|
from ...game_model import GameModel
|
15
15
|
from ...league import League
|
16
16
|
from ...league_model import LeagueModel
|
@@ -67,7 +67,7 @@ class NBANBALeagueModel(LeagueModel):
|
|
67
67
|
start: datetime.datetime
|
68
68
|
games: int
|
69
69
|
|
70
|
-
def __init__(self, session:
|
70
|
+
def __init__(self, session: ScrapeSession, position: int | None = None) -> None:
|
71
71
|
super().__init__(League.NBA, session, position=position)
|
72
72
|
self._league_id = "00"
|
73
73
|
NBAHTTP.set_session(session)
|
{sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/nbacom/nba_nbacom_league_model.py
RENAMED
@@ -5,7 +5,8 @@ import datetime
|
|
5
5
|
import logging
|
6
6
|
from typing import Iterator
|
7
7
|
|
8
|
-
from
|
8
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
9
|
+
|
9
10
|
from ...game_model import GameModel
|
10
11
|
from ...league import League
|
11
12
|
from ...league_model import LeagueModel
|
@@ -15,7 +16,7 @@ from .nba_nbacom_game_model import create_nba_nbacom_game_model
|
|
15
16
|
class NBANBAComLeagueModel(LeagueModel):
|
16
17
|
"""NBA NBA.com implementation of the league model."""
|
17
18
|
|
18
|
-
def __init__(self, session:
|
19
|
+
def __init__(self, session: ScrapeSession, position: int | None = None) -> None:
|
19
20
|
super().__init__(League.AFL, session, position=position)
|
20
21
|
|
21
22
|
@classmethod
|
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
# pylint: disable=line-too-long
|
4
4
|
|
5
|
-
from
|
5
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
6
|
+
|
6
7
|
from ...league import League
|
7
8
|
from ...oddsportal.oddsportal_league_model import OddsPortalLeagueModel
|
8
9
|
|
@@ -10,5 +11,5 @@ from ...oddsportal.oddsportal_league_model import OddsPortalLeagueModel
|
|
10
11
|
class NBAOddsPortalLeagueModel(OddsPortalLeagueModel):
|
11
12
|
"""NBA OddsPortal implementation of the league model."""
|
12
13
|
|
13
|
-
def __init__(self, session:
|
14
|
+
def __init__(self, session: ScrapeSession, position: int | None = None) -> None:
|
14
15
|
super().__init__(League.NBA, session, position=position)
|
{sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py
RENAMED
@@ -1,6 +1,7 @@
|
|
1
1
|
"""NBA Sports DB league model."""
|
2
2
|
|
3
|
-
from
|
3
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
4
|
+
|
4
5
|
from ...league import League
|
5
6
|
from ...sportsdb.sportsdb_league_model import SportsDBLeagueModel
|
6
7
|
|
@@ -8,5 +9,5 @@ from ...sportsdb.sportsdb_league_model import SportsDBLeagueModel
|
|
8
9
|
class NBASportsDBLeagueModel(SportsDBLeagueModel):
|
9
10
|
"""NBA SportsDB implementation of the league model."""
|
10
11
|
|
11
|
-
def __init__(self, session:
|
12
|
+
def __init__(self, session: ScrapeSession, position: int | None = None) -> None:
|
12
13
|
super().__init__(session, "4387", League.NBA, position=position)
|
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
# pylint: disable=line-too-long
|
4
4
|
|
5
|
-
from
|
5
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
6
|
+
|
6
7
|
from ...league import League
|
7
8
|
from ...sportsreference.sportsreference_league_model import \
|
8
9
|
SportsReferenceLeagueModel
|
@@ -12,7 +13,7 @@ from ..position import Position
|
|
12
13
|
class NBASportsReferenceLeagueModel(SportsReferenceLeagueModel):
|
13
14
|
"""NBA Sports Reference implementation of the league model."""
|
14
15
|
|
15
|
-
def __init__(self, session:
|
16
|
+
def __init__(self, session: ScrapeSession, position: int | None = None) -> None:
|
16
17
|
super().__init__(
|
17
18
|
session,
|
18
19
|
League.NBA,
|
@@ -1,6 +1,7 @@
|
|
1
1
|
"""NCAAB combined league model."""
|
2
2
|
|
3
|
-
from
|
3
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
4
|
+
|
4
5
|
from ...combined.combined_league_model import CombinedLeagueModel
|
5
6
|
from ...league import League
|
6
7
|
from ..espn.ncaab_espn_league_model import NCAABESPNLeagueModel
|
@@ -746,7 +747,7 @@ NCAAB_PLAYER_IDENTITY_MAP: dict[str, str] = {}
|
|
746
747
|
class NCAABCombinedLeagueModel(CombinedLeagueModel):
|
747
748
|
"""NCAAB combined implementation of the league model."""
|
748
749
|
|
749
|
-
def __init__(self, session:
|
750
|
+
def __init__(self, session: ScrapeSession, league_filter: str | None) -> None:
|
750
751
|
super().__init__(
|
751
752
|
session,
|
752
753
|
League.NCAAB,
|
{sportsball-0.5.22 → sportsball-0.5.23}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py
RENAMED
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
# pylint: disable=line-too-long
|
4
4
|
|
5
|
-
from
|
5
|
+
from scrapesession.scrapesession import ScrapeSession # type: ignore
|
6
|
+
|
6
7
|
from ...espn.espn_league_model import ESPNLeagueModel
|
7
8
|
from ...league import League
|
8
9
|
from ...nba.position import Position
|
@@ -13,7 +14,7 @@ _SEASON_URL = "http://sports.core.api.espn.com/v2/sports/basketball/leagues/mens
|
|
13
14
|
class NCAABESPNLeagueModel(ESPNLeagueModel):
|
14
15
|
"""NCAAB ESPN implementation of the league model."""
|
15
16
|
|
16
|
-
def __init__(self, session:
|
17
|
+
def __init__(self, session: ScrapeSession, position: int | None = None) -> None:
|
17
18
|
super().__init__(_SEASON_URL, League.NCAAB, session, position=position)
|
18
19
|
|
19
20
|
@classmethod
|