sportsball 0.3.54__tar.gz → 0.3.56__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.54/sportsball.egg-info → sportsball-0.3.56}/PKG-INFO +2 -2
- {sportsball-0.3.54 → sportsball-0.3.56}/requirements.txt +1 -1
- {sportsball-0.3.54 → sportsball-0.3.56}/setup.py +1 -1
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/__init__.py +1 -1
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afl/afl_afl_player_model.py +1 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afltables/afl_afltables_game_model.py +12 -5
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afltables/afl_afltables_player_model.py +9 -4
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afltables/afl_afltables_team_model.py +12 -6
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/combined/combined_player_model.py +6 -1
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/espn/espn_player_model.py +1 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/google/google_address_model.py +19 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/player_model.py +6 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/sportsreference/sportsreference_game_model.py +16 -4
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/sportsreference/sportsreference_player_model.py +1 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/sportsreference/sportsreference_team_model.py +1 -0
- {sportsball-0.3.54 → sportsball-0.3.56/sportsball.egg-info}/PKG-INFO +2 -2
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball.egg-info/requires.txt +1 -1
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/afl/afltables/afl_afltables_player_model_test.py +1 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/combined/combined_player_model_test.py +1 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/player_model_test.py +1 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/sportsreference/sportsreference_game_model_test.py +74 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/sportsreference/sportsreference_team_model_test.py +20 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/LICENSE +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/MANIFEST.in +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/README.md +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/setup.cfg +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/__main__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/args.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/cache.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/address_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afl/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afl/afl_afl_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/bookie_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/combined/combined_address_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/combined/combined_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/combined/combined_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/combined/combined_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/combined/combined_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/combined/combined_weather_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/espn/espn_bookie_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/espn/espn_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/espn/espn_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/espn/espn_odds_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/espn/espn_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/espn/espn_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/field_type.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/google/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/google/google_news_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/league.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaab/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaab/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaaf/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaaf/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaaf/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/news_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nfl/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nfl/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nfl/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/odds_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/oddsportal/decrypt.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/season_type.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/social_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/weather/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/weather/gribstream/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/weather/multi_weather_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/weather/openmeteo/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/weather_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/wikipedia/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/x/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/x/x_social_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/logger.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/loglevel.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/playwright.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/proxy_session.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/session.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/sportsball.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/vendor/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball/vendor/pygooglenews/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball.egg-info/SOURCES.txt +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball.egg-info/dependency_links.txt +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball.egg-info/entry_points.txt +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball.egg-info/not-zip-safe +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/sportsball.egg-info/top_level.txt +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/afl/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/combined/combined_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/espn/espn_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/espn/espn_player_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/google/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/google/google_address_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/google/google_news_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/nba/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/nfl/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/oddsportal/decrypt_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/social_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/team_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/x/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/data/x/x_social_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/tests/proxy_session_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.56}/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.56
|
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
|
@@ -16,7 +16,7 @@ Requires-Dist: requests>=2.31.0
|
|
16
16
|
Requires-Dist: requests-cache>=1.2.0
|
17
17
|
Requires-Dist: python-dateutil>=1.16.0
|
18
18
|
Requires-Dist: tqdm>=4.66.2
|
19
|
-
Requires-Dist: beautifulsoup4>=4.
|
19
|
+
Requires-Dist: beautifulsoup4>=4.13.3
|
20
20
|
Requires-Dist: openpyxl>=3.1.5
|
21
21
|
Requires-Dist: joblib>=1.4.2
|
22
22
|
Requires-Dist: pyarrow>=18.0.0
|
@@ -26,7 +26,7 @@ def install_requires() -> typing.List[str]:
|
|
26
26
|
|
27
27
|
setup(
|
28
28
|
name='sportsball',
|
29
|
-
version='0.3.
|
29
|
+
version='0.3.56',
|
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.54 → sportsball-0.3.56}/sportsball/data/afl/afltables/afl_afltables_game_model.py
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
"""AFL AFLTables game model."""
|
2
2
|
|
3
|
-
# pylint: disable=too-many-arguments
|
3
|
+
# pylint: disable=too-many-arguments,too-many-branches
|
4
4
|
import datetime
|
5
5
|
import urllib.parse
|
6
6
|
from urllib.parse import urlparse
|
@@ -152,7 +152,7 @@ def _create_afl_afltables_game_model(
|
|
152
152
|
|
153
153
|
def _find_teams_metadata(
|
154
154
|
soup: BeautifulSoup, team_infos: list[tuple[str, str, int]]
|
155
|
-
) -> list[tuple[str, list[tuple[str, str, int | None, str]], int]]:
|
155
|
+
) -> list[tuple[str, list[tuple[str, str, int | None, str, int | None]], int]]:
|
156
156
|
def _is_correct_table(table: Tag, name: str) -> bool:
|
157
157
|
for th in table.find_all("th"):
|
158
158
|
header_text = th.get_text().strip()
|
@@ -160,8 +160,10 @@ def _create_afl_afltables_game_model(
|
|
160
160
|
return True
|
161
161
|
return False
|
162
162
|
|
163
|
-
def _find_players(
|
164
|
-
|
163
|
+
def _find_players(
|
164
|
+
table: Tag,
|
165
|
+
) -> list[tuple[str, str, int | None, str, int | None]]:
|
166
|
+
players: list[tuple[str, str, int | None, str, int | None]] = []
|
165
167
|
for tr in table.find_all("tr"):
|
166
168
|
player_row = False
|
167
169
|
player_url = None
|
@@ -174,6 +176,7 @@ def _create_afl_afltables_game_model(
|
|
174
176
|
jersey = None
|
175
177
|
name = None
|
176
178
|
kicks = None
|
179
|
+
marks = None
|
177
180
|
for count, td in enumerate(tr.find_all("td")):
|
178
181
|
if count == 0:
|
179
182
|
jersey = td.get_text().strip()
|
@@ -188,13 +191,17 @@ def _create_afl_afltables_game_model(
|
|
188
191
|
kicks_text = td.get_text().strip()
|
189
192
|
if kicks_text:
|
190
193
|
kicks = int(kicks_text)
|
194
|
+
elif count == 3:
|
195
|
+
marks_text = td.get_text().strip()
|
196
|
+
if marks_text:
|
197
|
+
marks = int(marks_text)
|
191
198
|
|
192
199
|
if jersey is None:
|
193
200
|
raise ValueError("jersey is null.")
|
194
201
|
if name is None:
|
195
202
|
raise ValueError("name is null")
|
196
203
|
|
197
|
-
players.append((player_url, jersey, kicks, name))
|
204
|
+
players.append((player_url, jersey, kicks, name, marks))
|
198
205
|
return players
|
199
206
|
|
200
207
|
team_metadata = []
|
{sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afltables/afl_afltables_player_model.py
RENAMED
@@ -13,7 +13,7 @@ from ...player_model import PlayerModel
|
|
13
13
|
|
14
14
|
|
15
15
|
def _create_afl_afltables_player_model(
|
16
|
-
player_url: str, jersey: str, kicks: int | None, name: str
|
16
|
+
player_url: str, jersey: str, kicks: int | None, name: str, marks: int | None
|
17
17
|
) -> PlayerModel:
|
18
18
|
o = urlparse(player_url)
|
19
19
|
last_component = o.path.split("/")[-1]
|
@@ -31,14 +31,15 @@ def _create_afl_afltables_player_model(
|
|
31
31
|
assists=None,
|
32
32
|
turnovers=None,
|
33
33
|
name=name,
|
34
|
+
marks=marks,
|
34
35
|
)
|
35
36
|
|
36
37
|
|
37
38
|
@MEMORY.cache
|
38
39
|
def _cached_create_afl_afltables_player_model(
|
39
|
-
player_url: str, jersey: str, kicks: int | None, name: str
|
40
|
+
player_url: str, jersey: str, kicks: int | None, name: str, marks: int | None
|
40
41
|
) -> PlayerModel:
|
41
|
-
return _create_afl_afltables_player_model(player_url, jersey, kicks, name)
|
42
|
+
return _create_afl_afltables_player_model(player_url, jersey, kicks, name, marks)
|
42
43
|
|
43
44
|
|
44
45
|
def create_afl_afltables_player_model(
|
@@ -48,6 +49,7 @@ def create_afl_afltables_player_model(
|
|
48
49
|
dt: datetime.datetime,
|
49
50
|
session: requests_cache.CachedSession,
|
50
51
|
name: str,
|
52
|
+
marks: int | None,
|
51
53
|
) -> PlayerModel:
|
52
54
|
"""Create a player model from AFL Tables."""
|
53
55
|
if (
|
@@ -59,6 +61,9 @@ def create_afl_afltables_player_model(
|
|
59
61
|
jersey,
|
60
62
|
kicks,
|
61
63
|
name, # pyright: ignore
|
64
|
+
marks,
|
62
65
|
)
|
63
66
|
with session.cache_disabled():
|
64
|
-
return _create_afl_afltables_player_model(
|
67
|
+
return _create_afl_afltables_player_model(
|
68
|
+
player_url, jersey, kicks, name, marks
|
69
|
+
)
|
{sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afltables/afl_afltables_team_model.py
RENAMED
@@ -44,7 +44,7 @@ _TEAM_NAME_MAP = {
|
|
44
44
|
|
45
45
|
def _create_afl_afltables_team_model(
|
46
46
|
team_url: str,
|
47
|
-
players: list[tuple[str, str, int | None, str]],
|
47
|
+
players: list[tuple[str, str, int | None, str, int | None]],
|
48
48
|
points: float,
|
49
49
|
session: requests_cache.CachedSession,
|
50
50
|
last_ladder_ranks: dict[str, int] | None,
|
@@ -72,9 +72,9 @@ def _create_afl_afltables_team_model(
|
|
72
72
|
name=name,
|
73
73
|
players=[ # pyright: ignore
|
74
74
|
create_afl_afltables_player_model(
|
75
|
-
player_url, jersey, kicks, dt, session, name
|
75
|
+
player_url, jersey, kicks, dt, session, name, marks
|
76
76
|
)
|
77
|
-
for player_url, jersey, kicks, name in players
|
77
|
+
for player_url, jersey, kicks, name, marks in players
|
78
78
|
],
|
79
79
|
odds=[],
|
80
80
|
points=points,
|
@@ -89,7 +89,7 @@ def _create_afl_afltables_team_model(
|
|
89
89
|
@MEMORY.cache(ignore=["session"])
|
90
90
|
def _cached_create_afl_afltables_team_model(
|
91
91
|
team_url: str,
|
92
|
-
players: list[tuple[str, str, int | None, str]],
|
92
|
+
players: list[tuple[str, str, int | None, str, int | None]],
|
93
93
|
points: float,
|
94
94
|
session: requests_cache.CachedSession,
|
95
95
|
last_ladder_ranks: dict[str, int] | None,
|
@@ -97,13 +97,19 @@ def _cached_create_afl_afltables_team_model(
|
|
97
97
|
league: League,
|
98
98
|
) -> TeamModel:
|
99
99
|
return _create_afl_afltables_team_model(
|
100
|
-
team_url,
|
100
|
+
team_url,
|
101
|
+
players,
|
102
|
+
points,
|
103
|
+
session,
|
104
|
+
last_ladder_ranks,
|
105
|
+
dt,
|
106
|
+
league,
|
101
107
|
)
|
102
108
|
|
103
109
|
|
104
110
|
def create_afl_afltables_team_model(
|
105
111
|
team_url: str,
|
106
|
-
players: list[tuple[str, str, int | None, str]],
|
112
|
+
players: list[tuple[str, str, int | None, str, int | None]],
|
107
113
|
points: float,
|
108
114
|
session: requests_cache.CachedSession,
|
109
115
|
last_ladder_ranks: dict[str, int] | None,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"""Combined player model."""
|
2
2
|
|
3
|
-
# pylint: disable=too-many-locals
|
3
|
+
# pylint: disable=too-many-locals,too-many-branches
|
4
4
|
from ..player_model import PlayerModel
|
5
5
|
|
6
6
|
|
@@ -18,6 +18,7 @@ def create_combined_player_model(
|
|
18
18
|
assists = None
|
19
19
|
turnovers = None
|
20
20
|
name = None
|
21
|
+
marks = None
|
21
22
|
for player_model in player_models:
|
22
23
|
player_model_jersey = player_model.jersey
|
23
24
|
if player_model_jersey is not None:
|
@@ -49,6 +50,9 @@ def create_combined_player_model(
|
|
49
50
|
player_model_name = player_model.name
|
50
51
|
if player_model_name is not None:
|
51
52
|
name = player_model_name
|
53
|
+
player_model_marks = player_model.marks
|
54
|
+
if player_model_marks is not None:
|
55
|
+
marks = player_model_marks
|
52
56
|
if name is None:
|
53
57
|
raise ValueError("name is null.")
|
54
58
|
return PlayerModel(
|
@@ -63,4 +67,5 @@ def create_combined_player_model(
|
|
63
67
|
assists=assists,
|
64
68
|
turnovers=turnovers,
|
65
69
|
name=name,
|
70
|
+
marks=marks,
|
66
71
|
)
|
@@ -12652,6 +12652,25 @@ _CACHED_GEOCODES: dict[str, Any] = {
|
|
12652
12652
|
housenumber="563",
|
12653
12653
|
country="USA",
|
12654
12654
|
),
|
12655
|
+
"Mercyhurst Athletic Center, Erie, Pennsylvania": SportsballGeocodeTuple(
|
12656
|
+
city="Erie",
|
12657
|
+
state="PA",
|
12658
|
+
postal="",
|
12659
|
+
lat=42.1046,
|
12660
|
+
lng=-80.0556,
|
12661
|
+
housenumber="",
|
12662
|
+
country="USA",
|
12663
|
+
),
|
12664
|
+
"Monroe, Louisiana": SportsballGeocodeTuple(
|
12665
|
+
city="Monroe",
|
12666
|
+
state="LA",
|
12667
|
+
postal="",
|
12668
|
+
lat=32.509444,
|
12669
|
+
lng=-92.118333,
|
12670
|
+
housenumber="",
|
12671
|
+
country="USA",
|
12672
|
+
),
|
12673
|
+
"Bison Sports Arena, Fargo, North Dakota": SCHEELS_ARENA,
|
12655
12674
|
}
|
12656
12675
|
|
12657
12676
|
|
@@ -15,6 +15,7 @@ FIELD_GOALS_ATTEMPTED_COLUMN: Literal["field_goals_attempted"] = "field_goals_at
|
|
15
15
|
OFFENSIVE_REBOUNDS_COLUMN: Literal["offensive_rebounds"] = "offensive_rebounds"
|
16
16
|
ASSISTS_COLUMN: Literal["assists"] = "assists"
|
17
17
|
TURNOVERS_COLUMN: Literal["turnovers"] = "turnovers"
|
18
|
+
PLAYER_MARKS_COLUMN: Literal["marks"] = "marks"
|
18
19
|
|
19
20
|
|
20
21
|
class PlayerModel(BaseModel):
|
@@ -67,3 +68,8 @@ class PlayerModel(BaseModel):
|
|
67
68
|
alias=TURNOVERS_COLUMN,
|
68
69
|
)
|
69
70
|
name: str
|
71
|
+
marks: int | None = Field(
|
72
|
+
...,
|
73
|
+
json_schema_extra={TYPE_KEY: FieldType.LOOKAHEAD},
|
74
|
+
alias=PLAYER_MARKS_COLUMN,
|
75
|
+
)
|
@@ -4,6 +4,7 @@
|
|
4
4
|
import datetime
|
5
5
|
import io
|
6
6
|
import logging
|
7
|
+
import re
|
7
8
|
import urllib.parse
|
8
9
|
|
9
10
|
import dateutil
|
@@ -41,6 +42,7 @@ _MONTHS = [
|
|
41
42
|
"November",
|
42
43
|
"December",
|
43
44
|
]
|
45
|
+
_NUMBER_PARENTHESIS_PATTERN = r"\(\d+\)"
|
44
46
|
|
45
47
|
|
46
48
|
def _find_old_dt(
|
@@ -142,7 +144,9 @@ def _find_old_dt(
|
|
142
144
|
points = int(team_name.split()[-1].strip())
|
143
145
|
team_name = " ".join(team_name.split()[:-1]).strip()
|
144
146
|
break
|
145
|
-
team_name =
|
147
|
+
team_name = " ".join(
|
148
|
+
re.sub(_NUMBER_PARENTHESIS_PATTERN, "", team_name).split()
|
149
|
+
).strip()
|
146
150
|
team_a = soup.find("a", text=team_name, href=True)
|
147
151
|
if not isinstance(team_a, Tag):
|
148
152
|
logging.error(team_name)
|
@@ -206,9 +210,17 @@ def _find_old_dt(
|
|
206
210
|
dt = parse(date)
|
207
211
|
for df in dfs:
|
208
212
|
test_row = df.iat[0, 0]
|
209
|
-
if
|
210
|
-
|
211
|
-
|
213
|
+
if isinstance(test_row, float):
|
214
|
+
continue
|
215
|
+
try:
|
216
|
+
if "Prev Game" in test_row:
|
217
|
+
_process_team_row(df)
|
218
|
+
break
|
219
|
+
except TypeError as exc:
|
220
|
+
logging.error(test_row)
|
221
|
+
logging.error(response.url)
|
222
|
+
logging.error(response.text)
|
223
|
+
raise exc
|
212
224
|
|
213
225
|
if venue_name is not None and not venue_name.replace(",", "").strip():
|
214
226
|
venue_name = None
|
@@ -68,6 +68,7 @@ def _find_name(response: requests.Response, soup: BeautifulSoup, url: str) -> st
|
|
68
68
|
if not isinstance(name_tag, Tag):
|
69
69
|
name_tag = soup.find("meta", itemprop="og:title")
|
70
70
|
if not isinstance(name_tag, Tag):
|
71
|
+
logging.error(type(name_tag))
|
71
72
|
logging.error(response.text)
|
72
73
|
raise ValueError("name_tag not a tag.") from exc
|
73
74
|
content = name_tag.get("content")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: sportsball
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.56
|
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
|
@@ -16,7 +16,7 @@ Requires-Dist: requests>=2.31.0
|
|
16
16
|
Requires-Dist: requests-cache>=1.2.0
|
17
17
|
Requires-Dist: python-dateutil>=1.16.0
|
18
18
|
Requires-Dist: tqdm>=4.66.2
|
19
|
-
Requires-Dist: beautifulsoup4>=4.
|
19
|
+
Requires-Dist: beautifulsoup4>=4.13.3
|
20
20
|
Requires-Dist: openpyxl>=3.1.5
|
21
21
|
Requires-Dist: joblib>=1.4.2
|
22
22
|
Requires-Dist: pyarrow>=18.0.0
|
@@ -945,3 +945,77 @@ class TestSportsReferenceGameModel(unittest.TestCase):
|
|
945
945
|
datetime.datetime(2010, 10, 10, 10, 10, 0),
|
946
946
|
)
|
947
947
|
self.assertEqual(game_model.dt, datetime.datetime(2016, 4, 2, 0, 0))
|
948
|
+
|
949
|
+
def test_dt_old_style_19(self):
|
950
|
+
url = "https://www.sports-reference.com/cbb/boxscores/2016-03-24-villanova.html"
|
951
|
+
with requests_mock.Mocker() as m:
|
952
|
+
with open(os.path.join(self.dir, "2016-03-24-villanova.html"), "rb") as f:
|
953
|
+
m.get(url, content=f.read())
|
954
|
+
with open(os.path.join(self.dir, "miami-fl_2016.html"), "rb") as f:
|
955
|
+
m.get("https://www.sports-reference.com/cbb/schools/miami-fl/2016.html", content=f.read())
|
956
|
+
with open(os.path.join(self.dir, "sheldon-mcclellan-1.html"), "rb") as f:
|
957
|
+
m.get("https://www.sports-reference.com/cbb/players/sheldon-mcclellan-1.html", content=f.read())
|
958
|
+
with open(os.path.join(self.dir, "anthony-lawrencejr-1.html"), "rb") as f:
|
959
|
+
m.get("https://www.sports-reference.com/cbb/players/anthony-lawrencejr-1.html", content=f.read())
|
960
|
+
with open(os.path.join(self.dir, "davon-reed-1.html"), "rb") as f:
|
961
|
+
m.get("https://www.sports-reference.com/cbb/players/davon-reed-1.html", content=f.read())
|
962
|
+
with open(os.path.join(self.dir, "kamari-murphy-1.html"), "rb") as f:
|
963
|
+
m.get("https://www.sports-reference.com/cbb/players/kamari-murphy-1.html", content=f.read())
|
964
|
+
with open(os.path.join(self.dir, "angel-rodriguez-1.html"), "rb") as f:
|
965
|
+
m.get("https://www.sports-reference.com/cbb/players/angel-rodriguez-1.html", content=f.read())
|
966
|
+
with open(os.path.join(self.dir, "mike-robinson-4.html"), "rb") as f:
|
967
|
+
m.get("https://www.sports-reference.com/cbb/players/mike-robinson-4.html", content=f.read())
|
968
|
+
with open(os.path.join(self.dir, "ebuka-izundu-1.html"), "rb") as f:
|
969
|
+
m.get("https://www.sports-reference.com/cbb/players/ebuka-izundu-1.html", content=f.read())
|
970
|
+
with open(os.path.join(self.dir, "jaquan-newton-1.html"), "rb") as f:
|
971
|
+
m.get("https://www.sports-reference.com/cbb/players/jaquan-newton-1.html", content=f.read())
|
972
|
+
with open(os.path.join(self.dir, "james-palmer-1.html"), "rb") as f:
|
973
|
+
m.get("https://www.sports-reference.com/cbb/players/james-palmer-1.html", content=f.read())
|
974
|
+
with open(os.path.join(self.dir, "tonye-jekiri-1.html"), "rb") as f:
|
975
|
+
m.get("https://www.sports-reference.com/cbb/players/tonye-jekiri-1.html", content=f.read())
|
976
|
+
with open(os.path.join(self.dir, "villanova_2016.html"), "rb") as f:
|
977
|
+
m.get("https://www.sports-reference.com/cbb/schools/villanova/2016.html", content=f.read())
|
978
|
+
with open(os.path.join(self.dir, "jalen-brunson-1.html"), "rb") as f:
|
979
|
+
m.get("https://www.sports-reference.com/cbb/players/jalen-brunson-1.html", content=f.read())
|
980
|
+
with open(os.path.join(self.dir, "ryan-arcidiacono-1.html"), "rb") as f:
|
981
|
+
m.get("https://www.sports-reference.com/cbb/players/ryan-arcidiacono-1.html", content=f.read())
|
982
|
+
with open(os.path.join(self.dir, "kevin-rafferty-1.html"), "rb") as f:
|
983
|
+
m.get("https://www.sports-reference.com/cbb/players/kevin-rafferty-1.html", content=f.read())
|
984
|
+
with open(os.path.join(self.dir, "mikal-bridges-1.html"), "rb") as f:
|
985
|
+
m.get("https://www.sports-reference.com/cbb/players/mikal-bridges-1.html", content=f.read())
|
986
|
+
with open(os.path.join(self.dir, "daniel-ochefu-1.html"), "rb") as f:
|
987
|
+
m.get("https://www.sports-reference.com/cbb/players/daniel-ochefu-1.html", content=f.read())
|
988
|
+
with open(os.path.join(self.dir, "phil-booth-1.html"), "rb") as f:
|
989
|
+
m.get("https://www.sports-reference.com/cbb/players/phil-booth-1.html", content=f.read())
|
990
|
+
with open(os.path.join(self.dir, "darryl-reynolds-1.html"), "rb") as f:
|
991
|
+
m.get("https://www.sports-reference.com/cbb/players/darryl-reynolds-1.html", content=f.read())
|
992
|
+
with open(os.path.join(self.dir, "kris-jenkins-1.html"), "rb") as f:
|
993
|
+
m.get("https://www.sports-reference.com/cbb/players/kris-jenkins-1.html", content=f.read())
|
994
|
+
with open(os.path.join(self.dir, "patrick-farrell-1.html"), "rb") as f:
|
995
|
+
m.get("https://www.sports-reference.com/cbb/players/patrick-farrell-1.html", content=f.read())
|
996
|
+
with open(os.path.join(self.dir, "josh-hart-1.html"), "rb") as f:
|
997
|
+
m.get("https://www.sports-reference.com/cbb/players/josh-hart-1.html", content=f.read())
|
998
|
+
with open(os.path.join(self.dir, "henry-lowe-1.html"), "rb") as f:
|
999
|
+
m.get("https://www.sports-reference.com/cbb/players/henry-lowe-1.html", content=f.read())
|
1000
|
+
|
1001
|
+
game_model = create_sportsreference_game_model(
|
1002
|
+
self.session,
|
1003
|
+
url,
|
1004
|
+
League.NBA,
|
1005
|
+
datetime.datetime(2010, 10, 10, 10, 10, 0),
|
1006
|
+
)
|
1007
|
+
self.assertEqual(game_model.dt, datetime.datetime(2016, 3, 24, 0, 0))
|
1008
|
+
|
1009
|
+
def test_dt_old_style_20(self):
|
1010
|
+
url = "https://www.sports-reference.com/cbb/boxscores/2016-02-23-savannah-state.html"
|
1011
|
+
with requests_mock.Mocker() as m:
|
1012
|
+
with open(os.path.join(self.dir, "2016-02-23-savannah-state.html"), "rb") as f:
|
1013
|
+
m.get(url, content=f.read())
|
1014
|
+
|
1015
|
+
game_model = create_sportsreference_game_model(
|
1016
|
+
self.session,
|
1017
|
+
url,
|
1018
|
+
League.NBA,
|
1019
|
+
datetime.datetime(2010, 10, 10, 10, 10, 0),
|
1020
|
+
)
|
1021
|
+
self.assertEqual(game_model.dt, datetime.datetime(2016, 2, 23, 0, 0))
|
@@ -166,3 +166,23 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
|
|
166
166
|
{},
|
167
167
|
)
|
168
168
|
self.assertEqual(team_model.name, "Los Angeles Lakers")
|
169
|
+
|
170
|
+
def test_name_3(self):
|
171
|
+
url = "https://www.basketball-reference.com/teams/BOS/2015.html"
|
172
|
+
with requests_mock.Mocker() as m:
|
173
|
+
with open(os.path.join(self.dir, "BOS_2015.html"), "rb") as f:
|
174
|
+
m.get(url, content=f.read())
|
175
|
+
team_model = create_sportsreference_team_model(
|
176
|
+
self.session,
|
177
|
+
url,
|
178
|
+
datetime.datetime(2010, 10, 10, 10, 10, 00),
|
179
|
+
League.NBA,
|
180
|
+
set(),
|
181
|
+
10.0,
|
182
|
+
{},
|
183
|
+
{},
|
184
|
+
{},
|
185
|
+
{},
|
186
|
+
{},
|
187
|
+
)
|
188
|
+
self.assertEqual(team_model.name, "Boston Celtics")
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afltables/afl_afltables_league_model.py
RENAMED
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/afltables/afl_afltables_venue_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.56}/sportsball/data/afl/combined/afl_combined_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|