sportsball 0.3.85__tar.gz → 0.3.87__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.85/sportsball.egg-info → sportsball-0.3.87}/PKG-INFO +24 -1
- {sportsball-0.3.85 → sportsball-0.3.87}/README.md +23 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/setup.py +1 -1
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/__init__.py +1 -1
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -16
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_league_model.py +1 -3
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_team_model.py +2 -2
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/game_model.py +5 -1
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/google/google_address_model.py +94 -18
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/combined/nba_combined_league_model.py +1 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsreference/sportsreference_game_model.py +3 -0
- {sportsball-0.3.85 → sportsball-0.3.87/sportsball.egg-info}/PKG-INFO +24 -1
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball.egg-info/SOURCES.txt +1 -0
- sportsball-0.3.87/tests/data/combined/combined_team_model_test.py +215 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/LICENSE +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/MANIFEST.in +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/requirements.txt +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/setup.cfg +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/__main__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/args.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/cache.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/address_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afl/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afl/afl_afl_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/combined/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/espn/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/bookie_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_address_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_game_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_player_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_venue_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_weather_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_bookie_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_game_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_odds_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_player_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_team_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_venue_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/field_type.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/google/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/google/google_news_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/league.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/combined/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/espn/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/oddsportal/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/combined/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/espn/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/combined/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/espn/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/news_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/combined/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/espn/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/odds_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/decrypt.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/player_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/season_type.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/social_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsreference/sportsreference_team_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/team_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/venue_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather/gribstream/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather/multi_weather_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather/openmeteo/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/wikipedia/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/x/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/x/x_social_model.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/logger.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/loglevel.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/playwright.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/proxy_session.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/session.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/sportsball.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/vendor/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/vendor/pygooglenews/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball.egg-info/dependency_links.txt +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball.egg-info/entry_points.txt +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball.egg-info/not-zip-safe +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball.egg-info/requires.txt +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/sportsball.egg-info/top_level.txt +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/afl/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/afl/afl_afl_league_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/combined/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/combined/combined_game_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/combined/combined_player_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/espn/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/espn/espn_game_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/espn/espn_player_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/game_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/google/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/google/google_address_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/google/google_news_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nfl/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/oddsportal/decrypt_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/player_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/social_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/team_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/x/__init__.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/x/x_social_model_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/proxy_session_test.py +0 -0
- {sportsball-0.3.85 → sportsball-0.3.87}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: sportsball
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.87
|
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
|
@@ -193,6 +193,29 @@ A representation of a player within a team within a game.
|
|
193
193
|
* **offensive_rebounds**: The number of rebounds during offense by the player made in the game.
|
194
194
|
* **assists**: The number of times the player made a pass that resulted in a field goal in the game.
|
195
195
|
* **turnovers**: The number of times a player loses possession of the ball in the game.
|
196
|
+
* **name**: The name of the player.
|
197
|
+
* **marks**: The number of marks the player performed in the game.
|
198
|
+
* **handballs**: The number of handballs the player performed in the game.
|
199
|
+
* **disposals**: The number of disposals the player performed in the game.
|
200
|
+
* **goals**: The number of goals scored by the player in the game.
|
201
|
+
* **behinds**: The number of behinds scored by the player in the game.
|
202
|
+
* **hit_outs**: The number of hit outs scored by the player in the game.
|
203
|
+
* **tackles**: The number of tackles performed by the player in the game.
|
204
|
+
* **rebounds**: The number of rebounds performed by the player in the game.
|
205
|
+
* **insides**: The number of insides performed by the player in the game.
|
206
|
+
* **clearances**: The number of clearances performed by the player in the game.
|
207
|
+
* **clangers**: The number of clangers performed by the player in the game.
|
208
|
+
* **free_kicks_for**: The number of free kicks given to the player in the game.
|
209
|
+
* **free_kicks_against**: The number of free kicks given against an action taken by the player in the game.
|
210
|
+
* **brownlow_votes**: The number of votes for the brownlow medal the player has in the current season.
|
211
|
+
* **contested_possessions**: The number of possessions the player had in the game that were contested.
|
212
|
+
* **uncontested_possessions**: The number of posessions the player had in the game that were uncontested.
|
213
|
+
* **contested_marks**: The number of marks the player had in the game that were contested.
|
214
|
+
* **marks_inside**: The number of marks the player had in the game inside the 50.
|
215
|
+
* **one_percenters:** The number of times the player spoils, knock-ons, smothers or shepherds the ball during the game.
|
216
|
+
* **bounces**: The number of bounces the player makes in the game.
|
217
|
+
* **goal_assists**: The number of assists on goal the player had in the game.
|
218
|
+
* **percentage_played**: The percentage of the game the player was on the field.
|
196
219
|
|
197
220
|
#### Odds
|
198
221
|
|
@@ -134,6 +134,29 @@ A representation of a player within a team within a game.
|
|
134
134
|
* **offensive_rebounds**: The number of rebounds during offense by the player made in the game.
|
135
135
|
* **assists**: The number of times the player made a pass that resulted in a field goal in the game.
|
136
136
|
* **turnovers**: The number of times a player loses possession of the ball in the game.
|
137
|
+
* **name**: The name of the player.
|
138
|
+
* **marks**: The number of marks the player performed in the game.
|
139
|
+
* **handballs**: The number of handballs the player performed in the game.
|
140
|
+
* **disposals**: The number of disposals the player performed in the game.
|
141
|
+
* **goals**: The number of goals scored by the player in the game.
|
142
|
+
* **behinds**: The number of behinds scored by the player in the game.
|
143
|
+
* **hit_outs**: The number of hit outs scored by the player in the game.
|
144
|
+
* **tackles**: The number of tackles performed by the player in the game.
|
145
|
+
* **rebounds**: The number of rebounds performed by the player in the game.
|
146
|
+
* **insides**: The number of insides performed by the player in the game.
|
147
|
+
* **clearances**: The number of clearances performed by the player in the game.
|
148
|
+
* **clangers**: The number of clangers performed by the player in the game.
|
149
|
+
* **free_kicks_for**: The number of free kicks given to the player in the game.
|
150
|
+
* **free_kicks_against**: The number of free kicks given against an action taken by the player in the game.
|
151
|
+
* **brownlow_votes**: The number of votes for the brownlow medal the player has in the current season.
|
152
|
+
* **contested_possessions**: The number of possessions the player had in the game that were contested.
|
153
|
+
* **uncontested_possessions**: The number of posessions the player had in the game that were uncontested.
|
154
|
+
* **contested_marks**: The number of marks the player had in the game that were contested.
|
155
|
+
* **marks_inside**: The number of marks the player had in the game inside the 50.
|
156
|
+
* **one_percenters:** The number of times the player spoils, knock-ons, smothers or shepherds the ball during the game.
|
157
|
+
* **bounces**: The number of bounces the player makes in the game.
|
158
|
+
* **goal_assists**: The number of assists on goal the player had in the game.
|
159
|
+
* **percentage_played**: The percentage of the game the player was on the field.
|
137
160
|
|
138
161
|
#### Odds
|
139
162
|
|
@@ -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.87',
|
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.3.85 → sportsball-0.3.87}/sportsball/data/afl/combined/afl_combined_league_model.py
RENAMED
@@ -246,18 +246,6 @@ AFL_VENUE_IDENTITY_MAP = {
|
|
246
246
|
"Barossa Park": BAROSSA_PARK,
|
247
247
|
"Ninja Stadium": BELLERIVE_OVAL,
|
248
248
|
}
|
249
|
-
RYAN_LESTER = "afl:CD_I291548"
|
250
|
-
JACK_PAYNE = "afl:CD_I1002347"
|
251
|
-
DAYNE_ZORKO = "afl:CD_I261224"
|
252
|
-
JAMES_WORPEL = "James_Worpel"
|
253
|
-
JOSH_WEDDLE = "Josh_Weddle"
|
254
|
-
AFL_PLAYER_IDENTITY_MAP = {
|
255
|
-
"afl:CD_I291548": RYAN_LESTER,
|
256
|
-
"afl:CD_I1002347": JACK_PAYNE,
|
257
|
-
"afl:CD_I261224": DAYNE_ZORKO,
|
258
|
-
"James_Worpel": JAMES_WORPEL,
|
259
|
-
"Josh_Weddle": JOSH_WEDDLE,
|
260
|
-
}
|
261
249
|
|
262
250
|
|
263
251
|
class AFLCombinedLeagueModel(CombinedLeagueModel):
|
@@ -283,7 +271,3 @@ class AFLCombinedLeagueModel(CombinedLeagueModel):
|
|
283
271
|
@classmethod
|
284
272
|
def venue_identity_map(cls) -> dict[str, str]:
|
285
273
|
return AFL_VENUE_IDENTITY_MAP
|
286
|
-
|
287
|
-
@classmethod
|
288
|
-
def player_identity_map(cls) -> dict[str, str]:
|
289
|
-
return AFL_PLAYER_IDENTITY_MAP
|
@@ -47,9 +47,7 @@ class CombinedLeagueModel(LeagueModel):
|
|
47
47
|
@classmethod
|
48
48
|
def player_identity_map(cls) -> dict[str, str]:
|
49
49
|
"""A map to resolve the different player identities to a consistent identity."""
|
50
|
-
|
51
|
-
"player_identity_map not implemented on CombinedLeagueModel parent class."
|
52
|
-
)
|
50
|
+
return {}
|
53
51
|
|
54
52
|
@property
|
55
53
|
def games(self) -> Iterator[GameModel]:
|
@@ -18,7 +18,7 @@ def _normalise_player_name(name: str) -> str:
|
|
18
18
|
# Handle "Surname, Firstname"
|
19
19
|
if "," in name:
|
20
20
|
name = " ".join(reversed([x.strip() for x in name.split(",")]))
|
21
|
-
return REGEX.sub("", unicodedata.normalize("NFC", name).lower())
|
21
|
+
return REGEX.sub("", unicodedata.normalize("NFC", name).lower().strip())
|
22
22
|
|
23
23
|
|
24
24
|
def create_combined_team_model(
|
@@ -83,7 +83,7 @@ def create_combined_team_model(
|
|
83
83
|
name=team_models[0].name,
|
84
84
|
location=location,
|
85
85
|
players=[ # pyright: ignore
|
86
|
-
create_combined_player_model(
|
86
|
+
create_combined_player_model(v, k) for k, v in players.items()
|
87
87
|
],
|
88
88
|
odds=[x[0] for x in odds.values()],
|
89
89
|
points=points,
|
@@ -52,7 +52,11 @@ class GameModel(BaseModel):
|
|
52
52
|
end_dt: datetime.datetime | None = Field(
|
53
53
|
..., json_schema_extra={TYPE_KEY: FieldType.LOOKAHEAD}, alias=END_DT_COLUMN
|
54
54
|
)
|
55
|
-
attendance: int | None = Field(
|
55
|
+
attendance: int | None = Field(
|
56
|
+
...,
|
57
|
+
json_schema_extra={TYPE_KEY: FieldType.LOOKAHEAD},
|
58
|
+
alias=GAME_ATTENDANCE_COLUMN,
|
59
|
+
)
|
56
60
|
league: str = Field(..., alias=LEAGUE_COLUMN)
|
57
61
|
year: int | None
|
58
62
|
season_type: SeasonType | None
|
@@ -1740,7 +1740,7 @@ DUNKIN_DONUTS_CENTER = SportsballGeocodeTuple(
|
|
1740
1740
|
)
|
1741
1741
|
CHI_HEALTH_CENTER = SportsballGeocodeTuple(
|
1742
1742
|
city="Omaha",
|
1743
|
-
state="
|
1743
|
+
state="NE",
|
1744
1744
|
postal="",
|
1745
1745
|
lat=41.263,
|
1746
1746
|
lng=-95.928,
|
@@ -2539,6 +2539,15 @@ FREDRICK_C_HOBDY_ASSEMBLY_CENTER = SportsballGeocodeTuple(
|
|
2539
2539
|
housenumber="1234",
|
2540
2540
|
country="USA",
|
2541
2541
|
)
|
2542
|
+
AMERANT_BANK_ARENA = SportsballGeocodeTuple(
|
2543
|
+
city="Sunrise",
|
2544
|
+
state="FL",
|
2545
|
+
postal="",
|
2546
|
+
lat=26.158333,
|
2547
|
+
lng=-80.325556,
|
2548
|
+
housenumber="1",
|
2549
|
+
country="USA",
|
2550
|
+
)
|
2542
2551
|
_CACHED_GEOCODES: dict[str, Any] = {
|
2543
2552
|
"S.C.G. - Australia": SCG,
|
2544
2553
|
"Victoria Park - Australia": SportsballGeocodeTuple(
|
@@ -4599,7 +4608,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
4599
4608
|
),
|
4600
4609
|
"Pinnacle Bank Arena, Lincoln, Nebraska": SportsballGeocodeTuple(
|
4601
4610
|
city="Lincoln",
|
4602
|
-
state="
|
4611
|
+
state="NE",
|
4603
4612
|
postal="",
|
4604
4613
|
lat=40.817778,
|
4605
4614
|
lng=-96.713333,
|
@@ -5947,7 +5956,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
5947
5956
|
),
|
5948
5957
|
"Baxter Arena, Omaha, Nebraska": SportsballGeocodeTuple(
|
5949
5958
|
city="Omaha",
|
5950
|
-
state="
|
5959
|
+
state="NE",
|
5951
5960
|
postal="",
|
5952
5961
|
lat=41.236,
|
5953
5962
|
lng=-96.013,
|
@@ -11062,7 +11071,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
11062
11071
|
),
|
11063
11072
|
"Omaha, Nebraska": SportsballGeocodeTuple(
|
11064
11073
|
city="Omaha",
|
11065
|
-
state="
|
11074
|
+
state="NE",
|
11066
11075
|
postal="",
|
11067
11076
|
lat=41.258611,
|
11068
11077
|
lng=-95.9375,
|
@@ -11352,7 +11361,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
11352
11361
|
),
|
11353
11362
|
"Lincoln, Nebraska": SportsballGeocodeTuple(
|
11354
11363
|
city="Lincoln",
|
11355
|
-
state="
|
11364
|
+
state="NE",
|
11356
11365
|
postal="",
|
11357
11366
|
lat=40.809167,
|
11358
11367
|
lng=-96.678056,
|
@@ -12149,15 +12158,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
12149
12158
|
"Barossa Oval - Australia": BAROSSA_PARK,
|
12150
12159
|
"Civic Arena, Pittsburgh, Pennsylvania": CIVIC_ARENA,
|
12151
12160
|
"Verizon Arena, North Little Rock, Arkansas": SIMMONS_BANK_ARENA,
|
12152
|
-
"BB&T Center, Sunrise, Florida":
|
12153
|
-
city="Sunrise",
|
12154
|
-
state="FL",
|
12155
|
-
postal="",
|
12156
|
-
lat=26.158333,
|
12157
|
-
lng=-80.325556,
|
12158
|
-
housenumber="1",
|
12159
|
-
country="USA",
|
12160
|
-
),
|
12161
|
+
"BB&T Center, Sunrise, Florida": AMERANT_BANK_ARENA,
|
12161
12162
|
"BOK Center, Tulsa, Oklahoma": BOK_CENTER,
|
12162
12163
|
"Alamodome, San Antonio, TX, USA": ALAMODOME,
|
12163
12164
|
"KeyArena, Seattle, Washington": CLIMATE_PLEDGE_ARENA,
|
@@ -12190,7 +12191,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
12190
12191
|
),
|
12191
12192
|
"Ralston, Nebraska": SportsballGeocodeTuple(
|
12192
12193
|
city="Ralston",
|
12193
|
-
state="
|
12194
|
+
state="NE",
|
12194
12195
|
postal="",
|
12195
12196
|
lat=41.200556,
|
12196
12197
|
lng=-96.035556,
|
@@ -12862,7 +12863,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
12862
12863
|
),
|
12863
12864
|
"Ralston Arena, Ralston, Nebraska": SportsballGeocodeTuple(
|
12864
12865
|
city="Ralston",
|
12865
|
-
state="
|
12866
|
+
state="NE",
|
12866
12867
|
postal="",
|
12867
12868
|
lat=41.206944,
|
12868
12869
|
lng=-96.026944,
|
@@ -13028,7 +13029,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
13028
13029
|
),
|
13029
13030
|
"D.J. Sokol Arena, Omaha, Nebraska": SportsballGeocodeTuple(
|
13030
13031
|
city="Omaha",
|
13031
|
-
state="
|
13032
|
+
state="NE",
|
13032
13033
|
postal="",
|
13033
13034
|
lat=41.266146,
|
13034
13035
|
lng=-95.940471,
|
@@ -13261,7 +13262,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
13261
13262
|
),
|
13262
13263
|
"Bob Devaney Sports Center, Lincoln, Nebraska": SportsballGeocodeTuple(
|
13263
13264
|
city="Lincoln",
|
13264
|
-
state="
|
13265
|
+
state="NE",
|
13265
13266
|
postal="",
|
13266
13267
|
lat=40.830207,
|
13267
13268
|
lng=-96.697644,
|
@@ -13333,6 +13334,81 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
13333
13334
|
housenumber="500",
|
13334
13335
|
country="USA",
|
13335
13336
|
),
|
13337
|
+
"USB Sports Complex, Stony Brook, New York": SportsballGeocodeTuple(
|
13338
|
+
city="Stony Brook",
|
13339
|
+
state="NY",
|
13340
|
+
postal="11790",
|
13341
|
+
lat=40.917417,
|
13342
|
+
lng=-73.124722,
|
13343
|
+
housenumber="100",
|
13344
|
+
country="USA",
|
13345
|
+
),
|
13346
|
+
"L. A. Sports Arena, Los Angeles, California": LOS_ANGELES_MEMORIAL_COLESIUM,
|
13347
|
+
"Kimbel Arena, Conway, South Carolina": SportsballGeocodeTuple(
|
13348
|
+
city="Conway",
|
13349
|
+
state="SC",
|
13350
|
+
postal="",
|
13351
|
+
lat=33.79382,
|
13352
|
+
lng=-79.013243,
|
13353
|
+
housenumber="",
|
13354
|
+
country="USA",
|
13355
|
+
),
|
13356
|
+
"Sapp Fieldhouse, Ralston, Nebraska": SportsballGeocodeTuple(
|
13357
|
+
city="Ralston",
|
13358
|
+
state="NE",
|
13359
|
+
postal="68132",
|
13360
|
+
lat=41.2574,
|
13361
|
+
lng=-96.00922,
|
13362
|
+
housenumber="6311",
|
13363
|
+
country="USA",
|
13364
|
+
),
|
13365
|
+
"Texas Hall, Arlington, Texas": SportsballGeocodeTuple(
|
13366
|
+
city="Arlington",
|
13367
|
+
state="TX",
|
13368
|
+
postal="76010",
|
13369
|
+
lat=32.7297,
|
13370
|
+
lng=-97.1154,
|
13371
|
+
housenumber="701",
|
13372
|
+
country="USA",
|
13373
|
+
),
|
13374
|
+
"Grand Exhibition Hall at Harrah's Cherokee Casino, Cherokee, North Carolina": HARRAHS_CHEROKEE_CENTER,
|
13375
|
+
"The Arena at Gwinnett Center, Duluth, Georgia": SportsballGeocodeTuple(
|
13376
|
+
city="Duluth",
|
13377
|
+
state="GA",
|
13378
|
+
postal="",
|
13379
|
+
lat=33.991389,
|
13380
|
+
lng=-84.094167,
|
13381
|
+
housenumber="6400",
|
13382
|
+
country="USA",
|
13383
|
+
),
|
13384
|
+
"Birmingham-Jefferson Civic Center, Birmingham, Alabama": SportsballGeocodeTuple(
|
13385
|
+
city="Birmingham",
|
13386
|
+
state="AL",
|
13387
|
+
postal="35203",
|
13388
|
+
lat=33.524,
|
13389
|
+
lng=-86.812,
|
13390
|
+
housenumber="2100",
|
13391
|
+
country="USA",
|
13392
|
+
),
|
13393
|
+
"War Memorial Gymnasium, Maui, Hawaii": SportsballGeocodeTuple(
|
13394
|
+
city="Maui",
|
13395
|
+
state="HI",
|
13396
|
+
postal="96793",
|
13397
|
+
lat=20.8919129,
|
13398
|
+
lng=-156.4902234,
|
13399
|
+
housenumber="700",
|
13400
|
+
country="USA",
|
13401
|
+
),
|
13402
|
+
"BankAtlantic Center, Sunrise, Florida": AMERANT_BANK_ARENA,
|
13403
|
+
"University of Tampa Sports Arena, Tampa, Florida": SportsballGeocodeTuple(
|
13404
|
+
city="Tampa",
|
13405
|
+
state="FL",
|
13406
|
+
postal="",
|
13407
|
+
lat=27.946944,
|
13408
|
+
lng=-82.468889,
|
13409
|
+
housenumber="",
|
13410
|
+
country="USA",
|
13411
|
+
),
|
13336
13412
|
}
|
13337
13413
|
|
13338
13414
|
|
@@ -399,6 +399,9 @@ def _create_sportsreference_game_model(
|
|
399
399
|
assists,
|
400
400
|
turnovers,
|
401
401
|
)
|
402
|
+
for team in teams:
|
403
|
+
if team.name == "File Not Found":
|
404
|
+
raise ValueError("team name is File Not Found (invalid)")
|
402
405
|
|
403
406
|
season_type = SeasonType.REGULAR
|
404
407
|
for h2 in soup.find_all("h2"):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: sportsball
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.87
|
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
|
@@ -193,6 +193,29 @@ A representation of a player within a team within a game.
|
|
193
193
|
* **offensive_rebounds**: The number of rebounds during offense by the player made in the game.
|
194
194
|
* **assists**: The number of times the player made a pass that resulted in a field goal in the game.
|
195
195
|
* **turnovers**: The number of times a player loses possession of the ball in the game.
|
196
|
+
* **name**: The name of the player.
|
197
|
+
* **marks**: The number of marks the player performed in the game.
|
198
|
+
* **handballs**: The number of handballs the player performed in the game.
|
199
|
+
* **disposals**: The number of disposals the player performed in the game.
|
200
|
+
* **goals**: The number of goals scored by the player in the game.
|
201
|
+
* **behinds**: The number of behinds scored by the player in the game.
|
202
|
+
* **hit_outs**: The number of hit outs scored by the player in the game.
|
203
|
+
* **tackles**: The number of tackles performed by the player in the game.
|
204
|
+
* **rebounds**: The number of rebounds performed by the player in the game.
|
205
|
+
* **insides**: The number of insides performed by the player in the game.
|
206
|
+
* **clearances**: The number of clearances performed by the player in the game.
|
207
|
+
* **clangers**: The number of clangers performed by the player in the game.
|
208
|
+
* **free_kicks_for**: The number of free kicks given to the player in the game.
|
209
|
+
* **free_kicks_against**: The number of free kicks given against an action taken by the player in the game.
|
210
|
+
* **brownlow_votes**: The number of votes for the brownlow medal the player has in the current season.
|
211
|
+
* **contested_possessions**: The number of possessions the player had in the game that were contested.
|
212
|
+
* **uncontested_possessions**: The number of posessions the player had in the game that were uncontested.
|
213
|
+
* **contested_marks**: The number of marks the player had in the game that were contested.
|
214
|
+
* **marks_inside**: The number of marks the player had in the game inside the 50.
|
215
|
+
* **one_percenters:** The number of times the player spoils, knock-ons, smothers or shepherds the ball during the game.
|
216
|
+
* **bounces**: The number of bounces the player makes in the game.
|
217
|
+
* **goal_assists**: The number of assists on goal the player had in the game.
|
218
|
+
* **percentage_played**: The percentage of the game the player was on the field.
|
196
219
|
|
197
220
|
#### Odds
|
198
221
|
|
@@ -176,6 +176,7 @@ tests/data/aussportsbetting/aussportsbetting_game_model_test.py
|
|
176
176
|
tests/data/combined/__init__.py
|
177
177
|
tests/data/combined/combined_game_model_test.py
|
178
178
|
tests/data/combined/combined_player_model_test.py
|
179
|
+
tests/data/combined/combined_team_model_test.py
|
179
180
|
tests/data/espn/__init__.py
|
180
181
|
tests/data/espn/espn_game_model_test.py
|
181
182
|
tests/data/espn/espn_player_model_test.py
|
@@ -0,0 +1,215 @@
|
|
1
|
+
"""Tests for the combined team model class."""
|
2
|
+
import datetime
|
3
|
+
import os
|
4
|
+
import unittest
|
5
|
+
|
6
|
+
import requests_mock
|
7
|
+
import requests_cache
|
8
|
+
from sportsball.data.combined.combined_team_model import create_combined_team_model
|
9
|
+
from sportsball.data.team_model import TeamModel
|
10
|
+
from sportsball.data.player_model import PlayerModel
|
11
|
+
|
12
|
+
|
13
|
+
class TestCombinedTeamModel(unittest.TestCase):
|
14
|
+
|
15
|
+
def setUp(self):
|
16
|
+
self._session = requests_cache.CachedSession(backend="memory")
|
17
|
+
self.dir = os.path.dirname(__file__)
|
18
|
+
|
19
|
+
def test_names_resolve(self):
|
20
|
+
with requests_mock.Mocker() as m:
|
21
|
+
names = {}
|
22
|
+
player_models = [PlayerModel(
|
23
|
+
identifier="1",
|
24
|
+
jersey=None,
|
25
|
+
kicks=None,
|
26
|
+
fumbles=None,
|
27
|
+
fumbles_lost=None,
|
28
|
+
field_goals=None,
|
29
|
+
field_goals_attempted=None,
|
30
|
+
offensive_rebounds=None,
|
31
|
+
assists=None,
|
32
|
+
turnovers=None,
|
33
|
+
name="Johnny Johnson",
|
34
|
+
marks=None,
|
35
|
+
handballs=None,
|
36
|
+
disposals=None,
|
37
|
+
goals=None,
|
38
|
+
behinds=None,
|
39
|
+
hit_outs=None,
|
40
|
+
tackles=None,
|
41
|
+
rebounds=None,
|
42
|
+
insides=None,
|
43
|
+
clearances=None,
|
44
|
+
clangers=None,
|
45
|
+
free_kicks_for=None,
|
46
|
+
free_kicks_against=None,
|
47
|
+
brownlow_votes=None,
|
48
|
+
contested_possessions=None,
|
49
|
+
uncontested_possessions=None,
|
50
|
+
contested_marks=None,
|
51
|
+
marks_inside=None,
|
52
|
+
one_percenters=None,
|
53
|
+
bounces=None,
|
54
|
+
goal_assists=None,
|
55
|
+
percentage_played=None,
|
56
|
+
)]
|
57
|
+
team_models = [TeamModel(
|
58
|
+
identifier="a",
|
59
|
+
name="Team A",
|
60
|
+
location=None,
|
61
|
+
players=player_models,
|
62
|
+
odds=[],
|
63
|
+
points=None,
|
64
|
+
ladder_rank=None,
|
65
|
+
news=[],
|
66
|
+
social=[],
|
67
|
+
)]
|
68
|
+
team_model = create_combined_team_model(team_models=team_models, identifier="a", player_identity_map={}, names=names)
|
69
|
+
player_models_2 = [PlayerModel(
|
70
|
+
identifier="1a",
|
71
|
+
jersey=None,
|
72
|
+
kicks=None,
|
73
|
+
fumbles=None,
|
74
|
+
fumbles_lost=None,
|
75
|
+
field_goals=None,
|
76
|
+
field_goals_attempted=None,
|
77
|
+
offensive_rebounds=None,
|
78
|
+
assists=None,
|
79
|
+
turnovers=None,
|
80
|
+
name="Johnny Johnson",
|
81
|
+
marks=None,
|
82
|
+
handballs=None,
|
83
|
+
disposals=None,
|
84
|
+
goals=None,
|
85
|
+
behinds=None,
|
86
|
+
hit_outs=None,
|
87
|
+
tackles=None,
|
88
|
+
rebounds=None,
|
89
|
+
insides=None,
|
90
|
+
clearances=None,
|
91
|
+
clangers=None,
|
92
|
+
free_kicks_for=None,
|
93
|
+
free_kicks_against=None,
|
94
|
+
brownlow_votes=None,
|
95
|
+
contested_possessions=None,
|
96
|
+
uncontested_possessions=None,
|
97
|
+
contested_marks=None,
|
98
|
+
marks_inside=None,
|
99
|
+
one_percenters=None,
|
100
|
+
bounces=None,
|
101
|
+
goal_assists=None,
|
102
|
+
percentage_played=None,
|
103
|
+
)]
|
104
|
+
team_models_2 = [TeamModel(
|
105
|
+
identifier="a",
|
106
|
+
name="Team A",
|
107
|
+
location=None,
|
108
|
+
players=player_models_2,
|
109
|
+
odds=[],
|
110
|
+
points=None,
|
111
|
+
ladder_rank=None,
|
112
|
+
news=[],
|
113
|
+
social=[],
|
114
|
+
)]
|
115
|
+
team_model_2 = create_combined_team_model(team_models=team_models_2, identifier="a", player_identity_map={}, names=names)
|
116
|
+
self.assertEqual(team_model.players[0].identifier, team_model_2.players[0].identifier)
|
117
|
+
|
118
|
+
def test_names_resolve_with_surname_firstname(self):
|
119
|
+
with requests_mock.Mocker() as m:
|
120
|
+
names = {}
|
121
|
+
player_models = [PlayerModel(
|
122
|
+
identifier="1",
|
123
|
+
jersey=None,
|
124
|
+
kicks=None,
|
125
|
+
fumbles=None,
|
126
|
+
fumbles_lost=None,
|
127
|
+
field_goals=None,
|
128
|
+
field_goals_attempted=None,
|
129
|
+
offensive_rebounds=None,
|
130
|
+
assists=None,
|
131
|
+
turnovers=None,
|
132
|
+
name="Johnny Johnson",
|
133
|
+
marks=None,
|
134
|
+
handballs=None,
|
135
|
+
disposals=None,
|
136
|
+
goals=None,
|
137
|
+
behinds=None,
|
138
|
+
hit_outs=None,
|
139
|
+
tackles=None,
|
140
|
+
rebounds=None,
|
141
|
+
insides=None,
|
142
|
+
clearances=None,
|
143
|
+
clangers=None,
|
144
|
+
free_kicks_for=None,
|
145
|
+
free_kicks_against=None,
|
146
|
+
brownlow_votes=None,
|
147
|
+
contested_possessions=None,
|
148
|
+
uncontested_possessions=None,
|
149
|
+
contested_marks=None,
|
150
|
+
marks_inside=None,
|
151
|
+
one_percenters=None,
|
152
|
+
bounces=None,
|
153
|
+
goal_assists=None,
|
154
|
+
percentage_played=None,
|
155
|
+
)]
|
156
|
+
team_models = [TeamModel(
|
157
|
+
identifier="a",
|
158
|
+
name="Team A",
|
159
|
+
location=None,
|
160
|
+
players=player_models,
|
161
|
+
odds=[],
|
162
|
+
points=None,
|
163
|
+
ladder_rank=None,
|
164
|
+
news=[],
|
165
|
+
social=[],
|
166
|
+
)]
|
167
|
+
team_model = create_combined_team_model(team_models=team_models, identifier="a", player_identity_map={}, names=names)
|
168
|
+
player_models_2 = [PlayerModel(
|
169
|
+
identifier="1a",
|
170
|
+
jersey=None,
|
171
|
+
kicks=None,
|
172
|
+
fumbles=None,
|
173
|
+
fumbles_lost=None,
|
174
|
+
field_goals=None,
|
175
|
+
field_goals_attempted=None,
|
176
|
+
offensive_rebounds=None,
|
177
|
+
assists=None,
|
178
|
+
turnovers=None,
|
179
|
+
name="Johnson, Johnny",
|
180
|
+
marks=None,
|
181
|
+
handballs=None,
|
182
|
+
disposals=None,
|
183
|
+
goals=None,
|
184
|
+
behinds=None,
|
185
|
+
hit_outs=None,
|
186
|
+
tackles=None,
|
187
|
+
rebounds=None,
|
188
|
+
insides=None,
|
189
|
+
clearances=None,
|
190
|
+
clangers=None,
|
191
|
+
free_kicks_for=None,
|
192
|
+
free_kicks_against=None,
|
193
|
+
brownlow_votes=None,
|
194
|
+
contested_possessions=None,
|
195
|
+
uncontested_possessions=None,
|
196
|
+
contested_marks=None,
|
197
|
+
marks_inside=None,
|
198
|
+
one_percenters=None,
|
199
|
+
bounces=None,
|
200
|
+
goal_assists=None,
|
201
|
+
percentage_played=None,
|
202
|
+
)]
|
203
|
+
team_models_2 = [TeamModel(
|
204
|
+
identifier="a",
|
205
|
+
name="Team A",
|
206
|
+
location=None,
|
207
|
+
players=player_models_2,
|
208
|
+
odds=[],
|
209
|
+
points=None,
|
210
|
+
ladder_rank=None,
|
211
|
+
news=[],
|
212
|
+
social=[],
|
213
|
+
)]
|
214
|
+
team_model_2 = create_combined_team_model(team_models=team_models_2, identifier="a", player_identity_map={}, names=names)
|
215
|
+
self.assertEqual(team_model.players[0].identifier, team_model_2.players[0].identifier)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|