sportsball 0.4.5__tar.gz → 0.4.7__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.4.5/sportsball.egg-info → sportsball-0.4.7}/PKG-INFO +1 -1
- {sportsball-0.4.5 → sportsball-0.4.7}/setup.py +1 -1
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/__init__.py +1 -1
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afltables/afl_afltables_coach_model.py +12 -3
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/hkjc/hkjc/hkjc_hkjc_game_model.py +9 -5
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/hkjc/hkjc/hkjc_hkjc_team_model.py +22 -16
- {sportsball-0.4.5 → sportsball-0.4.7/sportsball.egg-info}/PKG-INFO +1 -1
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/afl/afltables/afl_afltables_coach_model_test.py +28 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/LICENSE +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/MANIFEST.in +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/README.md +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/requirements.txt +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/setup.cfg +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/__main__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/args.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/cache.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/address_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afl/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afl/afl_afl_bookie_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afl/afl_afl_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afl/afl_afl_odds_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/combined/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/espn/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/oddsportal/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/position.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/bet.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/bookie_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/coach_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/combined/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/combined/combined_address_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/combined/combined_coach_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/combined/combined_game_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/combined/combined_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/combined/combined_player_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/combined/combined_team_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/combined/combined_venue_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/combined/combined_weather_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/combined/null_check.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/dividend_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/espn/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/espn/espn_bookie_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/espn/espn_coach_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/espn/espn_game_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/espn/espn_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/espn/espn_odds_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/espn/espn_player_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/espn/espn_team_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/espn/espn_venue_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/field_type.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/game_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/google/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/google/google_address_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/google/google_news_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/hkjc/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/hkjc/hkjc/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/hkjc/hkjc/hkjc_hkjc_bookie_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/hkjc/hkjc/hkjc_hkjc_coach_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/hkjc/hkjc/hkjc_hkjc_dividend_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/hkjc/hkjc/hkjc_hkjc_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/hkjc/hkjc/hkjc_hkjc_odds_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/hkjc/hkjc/hkjc_hkjc_owner_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/hkjc/hkjc/hkjc_hkjc_player_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/hkjc/hkjc/hkjc_hkjc_venue_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/hkjc/position.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/league.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/combined/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/espn/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/nba/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/nbacom/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/nbacom/nba_nbacom_game_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/nbacom/nba_nbacom_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/nbacom/nba_nbacom_player_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/nbacom/nba_nbacom_team_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/nbacom/nba_nbacom_venue_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/oddsportal/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/position.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaab/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaab/combined/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaab/espn/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaaf/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaaf/combined/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaaf/espn/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/news_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/combined/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/espn/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/position.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/odds_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/oddsportal/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/oddsportal/decrypt.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/owner_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/player_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/season_type.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/sex.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/social_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/species.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/sportsdb/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/sportsreference/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/sportsreference/sportsreference_coach_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/sportsreference/sportsreference_game_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/sportsreference/sportsreference_team_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/team_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/venue_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/weather/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/weather/gribstream/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/weather/multi_weather_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/weather/openmeteo/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/weather_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/wikipedia/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/x/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/x/x_social_model.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/logger.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/loglevel.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/playwright.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/proxy_session.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/session.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/sportsball.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/vendor/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball/vendor/pygooglenews/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball.egg-info/SOURCES.txt +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball.egg-info/dependency_links.txt +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball.egg-info/entry_points.txt +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball.egg-info/not-zip-safe +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball.egg-info/requires.txt +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/sportsball.egg-info/top_level.txt +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/afl/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/afl/afl/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/afl/afl/afl_afl_game_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/afl/afl/afl_afl_league_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/combined/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/combined/combined_game_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/combined/combined_player_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/combined/combined_team_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/espn/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/espn/espn_game_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/espn/espn_player_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/game_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/google/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/google/google_address_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/google/google_news_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/hkjc/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/hkjc/hkjc/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/hkjc/hkjc/hkjc_hkjc_game_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/hkjc/hkjc/hkjc_hkjc_player_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/nba/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/nba/nba/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/ncaab/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/nfl/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/oddsportal/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/oddsportal/decrypt_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/player_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/social_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/sportsdb/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/sportsreference/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/sportsreference/sportsreference_coach_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/team_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/x/__init__.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/data/x/x_social_model_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/tests/proxy_session_test.py +0 -0
- {sportsball-0.4.5 → sportsball-0.4.7}/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.4.
|
29
|
+
version='0.4.7',
|
30
30
|
description='A library for pulling in and normalising sports stats.',
|
31
31
|
long_description=long_description,
|
32
32
|
long_description_content_type='text/markdown',
|
{sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afltables/afl_afltables_coach_model.py
RENAMED
@@ -3,6 +3,7 @@
|
|
3
3
|
# pylint: disable=too-many-locals
|
4
4
|
import datetime
|
5
5
|
import io
|
6
|
+
import logging
|
6
7
|
import os
|
7
8
|
import urllib.parse
|
8
9
|
from urllib.parse import urlparse
|
@@ -45,7 +46,10 @@ def _create_afl_afltables_coach_model(
|
|
45
46
|
if "-" in year_range:
|
46
47
|
start_year, end_year = [int(x) for x in year_range.split("-")]
|
47
48
|
else:
|
48
|
-
|
49
|
+
try:
|
50
|
+
start_year = end_year = int(year_range)
|
51
|
+
except ValueError:
|
52
|
+
continue
|
49
53
|
if start_year <= year <= end_year:
|
50
54
|
name = names[count].strip()
|
51
55
|
break
|
@@ -68,13 +72,18 @@ def _create_afl_afltables_coach_model(
|
|
68
72
|
response = session.get(coach_url)
|
69
73
|
response.raise_for_status()
|
70
74
|
soup = BeautifulSoup(response.text, "lxml")
|
71
|
-
|
75
|
+
|
76
|
+
birth_date = None
|
77
|
+
try:
|
78
|
+
birth_date = parse(soup.get_text().split("Born:")[1].strip().split()[0])
|
79
|
+
except IndexError:
|
80
|
+
logging.warning("Failed to find birth date from %s", response.url)
|
72
81
|
|
73
82
|
return CoachModel(
|
74
83
|
identifier=identifier,
|
75
84
|
name=name,
|
76
85
|
birth_date=birth_date,
|
77
|
-
age=relativedelta(birth_date, dt).years,
|
86
|
+
age=relativedelta(birth_date, dt).years if birth_date is not None else None,
|
78
87
|
)
|
79
88
|
|
80
89
|
|
@@ -41,6 +41,8 @@ def _create_hkjc_hkjc_game_model(
|
|
41
41
|
div_text = div.get_text().strip()
|
42
42
|
if "this race is declared abandoned" in div_text.lower():
|
43
43
|
return None
|
44
|
+
if "this race is declared void" in div_text.lower():
|
45
|
+
return None
|
44
46
|
|
45
47
|
o = urlparse(url)
|
46
48
|
query = urllib.parse.parse_qs(o.query)
|
@@ -149,10 +151,6 @@ def _create_hkjc_hkjc_game_model(
|
|
149
151
|
|
150
152
|
if place is None:
|
151
153
|
continue
|
152
|
-
if trainer_url is None:
|
153
|
-
raise ValueError("trainer_url is null")
|
154
|
-
if jockey_url is None:
|
155
|
-
raise ValueError("jockey_url is null")
|
156
154
|
if horse_url is None:
|
157
155
|
raise ValueError("horse_url is null")
|
158
156
|
|
@@ -179,6 +177,12 @@ def _create_hkjc_hkjc_game_model(
|
|
179
177
|
dividend_str = str(row_df.iat[2, 0]).strip().lower()
|
180
178
|
if dividend_str == "details":
|
181
179
|
continue
|
180
|
+
if dividend_str == "refund":
|
181
|
+
continue
|
182
|
+
if dividend_str == "not win":
|
183
|
+
continue
|
184
|
+
if dividend_str == "detail":
|
185
|
+
continue
|
182
186
|
dividend_str = dividend_str.split("/", maxsplit=1)[0].replace(",", "")
|
183
187
|
dividend = float(dividend_str)
|
184
188
|
|
@@ -198,7 +202,7 @@ def _create_hkjc_hkjc_game_model(
|
|
198
202
|
next_td = False
|
199
203
|
|
200
204
|
if combination is None:
|
201
|
-
|
205
|
+
continue
|
202
206
|
|
203
207
|
dividend_model = create_hkjc_hkjc_dividend_model(
|
204
208
|
pool=pool,
|
@@ -17,8 +17,8 @@ from .hkjc_hkjc_player_model import create_hkjc_hkjc_player_model
|
|
17
17
|
def _create_hkjc_hkjc_team_model(
|
18
18
|
session: requests_cache.CachedSession,
|
19
19
|
horse_url: str,
|
20
|
-
jockey_url: str,
|
21
|
-
trainer_url: str,
|
20
|
+
jockey_url: str | None,
|
21
|
+
trainer_url: str | None,
|
22
22
|
points: float,
|
23
23
|
jersey: str,
|
24
24
|
handicap_weight: float,
|
@@ -36,16 +36,22 @@ def _create_hkjc_hkjc_team_model(
|
|
36
36
|
starting_position=starting_position,
|
37
37
|
weight=horse_weight,
|
38
38
|
)
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
39
|
+
players = [horse_player]
|
40
|
+
if jockey_url is not None:
|
41
|
+
jockey_player = create_hkjc_hkjc_player_model(
|
42
|
+
session=session,
|
43
|
+
url=jockey_url,
|
44
|
+
jersey=jersey,
|
45
|
+
handicap_weight=None,
|
46
|
+
starting_position=starting_position,
|
47
|
+
weight=None,
|
48
|
+
)
|
49
|
+
players.append(jockey_player)
|
50
|
+
coaches = (
|
51
|
+
[create_hkjc_hkjc_coach_model(session=session, url=trainer_url)]
|
52
|
+
if trainer_url is not None
|
53
|
+
else []
|
46
54
|
)
|
47
|
-
players = [horse_player, jockey_player]
|
48
|
-
coach = create_hkjc_hkjc_coach_model(session=session, url=trainer_url)
|
49
55
|
name = " - ".join([x.name for x in players])
|
50
56
|
return TeamModel(
|
51
57
|
identifier=name,
|
@@ -58,7 +64,7 @@ def _create_hkjc_hkjc_team_model(
|
|
58
64
|
news=[],
|
59
65
|
social=[],
|
60
66
|
field_goals=None,
|
61
|
-
coaches=
|
67
|
+
coaches=coaches,
|
62
68
|
lbw=lbw,
|
63
69
|
end_dt=end_dt,
|
64
70
|
)
|
@@ -68,8 +74,8 @@ def _create_hkjc_hkjc_team_model(
|
|
68
74
|
def _cached_create_hkjc_hkjc_team_model(
|
69
75
|
session: requests_cache.CachedSession,
|
70
76
|
horse_url: str,
|
71
|
-
jockey_url: str,
|
72
|
-
trainer_url: str,
|
77
|
+
jockey_url: str | None,
|
78
|
+
trainer_url: str | None,
|
73
79
|
points: float,
|
74
80
|
jersey: str,
|
75
81
|
handicap_weight: float,
|
@@ -98,8 +104,8 @@ def _cached_create_hkjc_hkjc_team_model(
|
|
98
104
|
def create_hkjc_hkjc_team_model(
|
99
105
|
session: requests_cache.CachedSession,
|
100
106
|
horse_url: str,
|
101
|
-
jockey_url: str,
|
102
|
-
trainer_url: str,
|
107
|
+
jockey_url: str | None,
|
108
|
+
trainer_url: str | None,
|
103
109
|
points: float,
|
104
110
|
jersey: str,
|
105
111
|
handicap_weight: float,
|
{sportsball-0.4.5 → sportsball-0.4.7}/tests/data/afl/afltables/afl_afltables_coach_model_test.py
RENAMED
@@ -41,3 +41,31 @@ class TestAFLTablesCoachModel(unittest.TestCase):
|
|
41
41
|
dt=datetime.datetime(2012, 10, 10),
|
42
42
|
)
|
43
43
|
self.assertIsNone(coach_model)
|
44
|
+
|
45
|
+
def test_bad_year_range(self):
|
46
|
+
with requests_mock.Mocker() as m:
|
47
|
+
url = "https://afltables.com/afl/stats/coaches/collingwood.html"
|
48
|
+
with open(os.path.join(self.dir, "coaches_collingwood.html"), "rb") as f:
|
49
|
+
m.get(url, content=f.read())
|
50
|
+
coach_model = create_afl_afltables_coach_model(
|
51
|
+
url=url,
|
52
|
+
session=self._session,
|
53
|
+
year=1897,
|
54
|
+
dt=datetime.datetime(2012, 10, 10),
|
55
|
+
)
|
56
|
+
self.assertIsNone(coach_model)
|
57
|
+
|
58
|
+
def test_no_birth_date(self):
|
59
|
+
with requests_mock.Mocker() as m:
|
60
|
+
url = "https://afltables.com/afl/stats/coaches/geelong.html"
|
61
|
+
with open(os.path.join(self.dir, "coaches_geelong.html"), "rb") as f:
|
62
|
+
m.get(url, content=f.read())
|
63
|
+
with open(os.path.join(self.dir, "Dave_Hickinbotham.html"), "rb") as f:
|
64
|
+
m.get("https://afltables.com/afl/stats/coaches/Dave_Hickinbotham.html", content=f.read())
|
65
|
+
coach_model = create_afl_afltables_coach_model(
|
66
|
+
url=url,
|
67
|
+
session=self._session,
|
68
|
+
year=1910,
|
69
|
+
dt=datetime.datetime(2012, 10, 10),
|
70
|
+
)
|
71
|
+
self.assertIsNone(coach_model.birth_date)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.4.5 → sportsball-0.4.7}/sportsball/data/afl/afltables/afl_afltables_game_model.py
RENAMED
File without changes
|
{sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afltables/afl_afltables_league_model.py
RENAMED
File without changes
|
{sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afltables/afl_afltables_player_model.py
RENAMED
File without changes
|
{sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afltables/afl_afltables_team_model.py
RENAMED
File without changes
|
{sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/afltables/afl_afltables_venue_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/combined/afl_combined_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/afl/oddsportal/afl_oddsportal_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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.4.5 → sportsball-0.4.7}/sportsball/data/nba/combined/nba_combined_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.4.5 → sportsball-0.4.7}/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
|
{sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaab/combined/ncaab_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
|
{sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/ncaaf/combined/ncaaf_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.4.5 → sportsball-0.4.7}/sportsball/data/nfl/combined/nfl_combined_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.4.5 → sportsball-0.4.7}/sportsball/data/nfl/sportsdb/nfl_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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|