sportsball 0.3.54__tar.gz → 0.3.55__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.55}/PKG-INFO +2 -2
- {sportsball-0.3.54 → sportsball-0.3.55}/requirements.txt +1 -1
- {sportsball-0.3.54 → sportsball-0.3.55}/setup.py +1 -1
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/__init__.py +1 -1
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/google/google_address_model.py +9 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsreference/sportsreference_game_model.py +13 -4
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsreference/sportsreference_team_model.py +1 -0
- {sportsball-0.3.54 → sportsball-0.3.55/sportsball.egg-info}/PKG-INFO +2 -2
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball.egg-info/requires.txt +1 -1
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsreference/sportsreference_game_model_test.py +60 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsreference/sportsreference_team_model_test.py +20 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/LICENSE +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/MANIFEST.in +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/README.md +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/setup.cfg +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/__main__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/args.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/cache.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/address_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afl/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afl/afl_afl_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/bookie_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_address_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_player_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_weather_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_bookie_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_odds_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_player_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/field_type.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/google/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/google/google_news_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/league.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/news_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/odds_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/decrypt.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/player_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/season_type.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/social_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/team_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather/gribstream/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather/multi_weather_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather/openmeteo/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/wikipedia/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/x/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/x/x_social_model.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/logger.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/loglevel.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/playwright.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/proxy_session.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/session.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/sportsball.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/vendor/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/vendor/pygooglenews/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball.egg-info/SOURCES.txt +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball.egg-info/dependency_links.txt +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball.egg-info/entry_points.txt +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball.egg-info/not-zip-safe +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/sportsball.egg-info/top_level.txt +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/afl/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/afl/afltables/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/aussportsbetting/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/combined/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/combined/combined_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/combined/combined_player_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/espn/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/espn/espn_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/espn/espn_player_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/google/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/google/google_address_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/google/google_news_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/nba/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/sportsdb/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/sportsreference/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/ncaab/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/ncaab/sportsreference/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nfl/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nfl/sportsdb/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/oddsportal/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/oddsportal/decrypt_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/player_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/social_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsdb/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsreference/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/team_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/x/__init__.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/x/x_social_model_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/tests/proxy_session_test.py +0 -0
- {sportsball-0.3.54 → sportsball-0.3.55}/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.55
|
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.55',
|
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',
|
@@ -12652,6 +12652,15 @@ _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
|
+
),
|
12655
12664
|
}
|
12656
12665
|
|
12657
12666
|
|
@@ -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,14 @@ def _find_old_dt(
|
|
206
210
|
dt = parse(date)
|
207
211
|
for df in dfs:
|
208
212
|
test_row = df.iat[0, 0]
|
209
|
-
|
210
|
-
|
211
|
-
|
213
|
+
try:
|
214
|
+
if "Prev Game" in test_row:
|
215
|
+
_process_team_row(df)
|
216
|
+
break
|
217
|
+
except TypeError as exc:
|
218
|
+
logging.error(test_row)
|
219
|
+
logging.error(response.text)
|
220
|
+
raise exc
|
212
221
|
|
213
222
|
if venue_name is not None and not venue_name.replace(",", "").strip():
|
214
223
|
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.55
|
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,63 @@ 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))
|
@@ -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
|
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_game_model.py
RENAMED
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_league_model.py
RENAMED
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_player_model.py
RENAMED
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_team_model.py
RENAMED
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.55}/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.55}/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
|
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.55}/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
|
{sportsball-0.3.54 → sportsball-0.3.55}/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
|
File without changes
|
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/espn/ncaab_espn_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.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/espn/ncaaf_espn_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
|
{sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/combined/nfl_combined_league_model.py
RENAMED
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.55}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_bookie_model.py
RENAMED
File without changes
|
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_league_model.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_venue_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
|
{sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather/openmeteo/openmeteo_weather_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
|
{sportsball-0.3.54 → sportsball-0.3.55}/tests/data/afl/afltables/afl_afltables_game_model_test.py
RENAMED
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.55}/tests/data/afl/afltables/afl_afltables_league_model_test.py
RENAMED
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.55}/tests/data/afl/afltables/afl_afltables_player_model_test.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
|
{sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.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
|
{sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sportsball-0.3.54 → sportsball-0.3.55}/tests/data/oddsportal/oddsportal_league_model_test.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
|