sportsball 0.3.58__tar.gz → 0.3.60__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.
Files changed (216) hide show
  1. {sportsball-0.3.58/sportsball.egg-info → sportsball-0.3.60}/PKG-INFO +1 -1
  2. {sportsball-0.3.58 → sportsball-0.3.60}/setup.py +1 -1
  3. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/__init__.py +1 -1
  4. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/afl/afl_afl_league_model.py +10 -2
  5. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/google/google_address_model.py +49 -18
  6. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/sportsreference/sportsreference_game_model.py +31 -27
  7. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/sportsreference/sportsreference_team_model.py +14 -0
  8. {sportsball-0.3.58 → sportsball-0.3.60/sportsball.egg-info}/PKG-INFO +1 -1
  9. {sportsball-0.3.58 → sportsball-0.3.60}/LICENSE +0 -0
  10. {sportsball-0.3.58 → sportsball-0.3.60}/MANIFEST.in +0 -0
  11. {sportsball-0.3.58 → sportsball-0.3.60}/README.md +0 -0
  12. {sportsball-0.3.58 → sportsball-0.3.60}/requirements.txt +0 -0
  13. {sportsball-0.3.58 → sportsball-0.3.60}/setup.cfg +0 -0
  14. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/__main__.py +0 -0
  15. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/args.py +0 -0
  16. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/cache.py +0 -0
  17. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/__init__.py +0 -0
  18. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/address_model.py +0 -0
  19. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/__init__.py +0 -0
  20. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/afl/__init__.py +0 -0
  21. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
  22. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
  23. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
  24. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
  25. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/afltables/__init__.py +0 -0
  26. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
  27. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
  28. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
  29. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
  30. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
  31. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
  32. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
  33. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/combined/__init__.py +0 -0
  34. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
  35. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/espn/__init__.py +0 -0
  36. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
  37. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/oddsportal/__init__.py +0 -0
  38. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
  39. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/aussportsbetting/__init__.py +0 -0
  40. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
  41. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
  42. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
  43. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
  44. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
  45. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
  46. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/bookie_model.py +0 -0
  47. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/combined/__init__.py +0 -0
  48. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/combined/combined_address_model.py +0 -0
  49. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/combined/combined_game_model.py +0 -0
  50. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/combined/combined_league_model.py +0 -0
  51. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/combined/combined_player_model.py +0 -0
  52. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/combined/combined_team_model.py +0 -0
  53. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/combined/combined_venue_model.py +0 -0
  54. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/combined/combined_weather_model.py +0 -0
  55. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/espn/__init__.py +0 -0
  56. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/espn/espn_bookie_model.py +0 -0
  57. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/espn/espn_game_model.py +0 -0
  58. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/espn/espn_league_model.py +0 -0
  59. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/espn/espn_odds_model.py +0 -0
  60. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/espn/espn_player_model.py +0 -0
  61. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/espn/espn_team_model.py +0 -0
  62. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/espn/espn_venue_model.py +0 -0
  63. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/field_type.py +0 -0
  64. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/game_model.py +0 -0
  65. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/google/__init__.py +0 -0
  66. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/google/google_news_model.py +0 -0
  67. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/league.py +0 -0
  68. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/league_model.py +0 -0
  69. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/model.py +0 -0
  70. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/__init__.py +0 -0
  71. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/combined/__init__.py +0 -0
  72. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
  73. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/espn/__init__.py +0 -0
  74. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
  75. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/nba/__init__.py +0 -0
  76. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
  77. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
  78. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
  79. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/oddsportal/__init__.py +0 -0
  80. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
  81. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/sportsdb/__init__.py +0 -0
  82. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
  83. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/sportsreference/__init__.py +0 -0
  84. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
  85. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaab/__init__.py +0 -0
  86. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaab/combined/__init__.py +0 -0
  87. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
  88. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaab/espn/__init__.py +0 -0
  89. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
  90. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
  91. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
  92. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
  93. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
  94. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaaf/__init__.py +0 -0
  95. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaaf/combined/__init__.py +0 -0
  96. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
  97. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaaf/espn/__init__.py +0 -0
  98. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
  99. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
  100. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
  101. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/news_model.py +0 -0
  102. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nfl/__init__.py +0 -0
  103. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
  104. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
  105. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nfl/combined/__init__.py +0 -0
  106. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
  107. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nfl/espn/__init__.py +0 -0
  108. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
  109. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
  110. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
  111. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
  112. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
  113. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/odds_model.py +0 -0
  114. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/oddsportal/__init__.py +0 -0
  115. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/oddsportal/decrypt.py +0 -0
  116. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
  117. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
  118. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
  119. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
  120. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
  121. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
  122. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/player_model.py +0 -0
  123. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/season_type.py +0 -0
  124. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/social_model.py +0 -0
  125. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/sportsdb/__init__.py +0 -0
  126. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
  127. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
  128. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
  129. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
  130. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/sportsreference/__init__.py +0 -0
  131. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
  132. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
  133. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
  134. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/team_model.py +0 -0
  135. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/venue_model.py +0 -0
  136. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/weather/__init__.py +0 -0
  137. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/weather/gribstream/__init__.py +0 -0
  138. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
  139. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/weather/multi_weather_model.py +0 -0
  140. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/weather/openmeteo/__init__.py +0 -0
  141. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
  142. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/weather_model.py +0 -0
  143. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/wikipedia/__init__.py +0 -0
  144. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
  145. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/x/__init__.py +0 -0
  146. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/data/x/x_social_model.py +0 -0
  147. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/logger.py +0 -0
  148. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/loglevel.py +0 -0
  149. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/playwright.py +0 -0
  150. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/proxy_session.py +0 -0
  151. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/session.py +0 -0
  152. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/sportsball.py +0 -0
  153. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/vendor/__init__.py +0 -0
  154. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball/vendor/pygooglenews/__init__.py +0 -0
  155. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball.egg-info/SOURCES.txt +0 -0
  156. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball.egg-info/dependency_links.txt +0 -0
  157. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball.egg-info/entry_points.txt +0 -0
  158. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball.egg-info/not-zip-safe +0 -0
  159. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball.egg-info/requires.txt +0 -0
  160. {sportsball-0.3.58 → sportsball-0.3.60}/sportsball.egg-info/top_level.txt +0 -0
  161. {sportsball-0.3.58 → sportsball-0.3.60}/tests/__init__.py +0 -0
  162. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/__init__.py +0 -0
  163. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/afl/__init__.py +0 -0
  164. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/afl/afltables/__init__.py +0 -0
  165. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
  166. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
  167. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
  168. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/aussportsbetting/__init__.py +0 -0
  169. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
  170. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/combined/__init__.py +0 -0
  171. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/combined/combined_game_model_test.py +0 -0
  172. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/combined/combined_player_model_test.py +0 -0
  173. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/espn/__init__.py +0 -0
  174. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/espn/espn_game_model_test.py +0 -0
  175. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/espn/espn_player_model_test.py +0 -0
  176. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/game_model_test.py +0 -0
  177. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/google/__init__.py +0 -0
  178. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/google/google_address_model_test.py +0 -0
  179. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/google/google_news_model_test.py +0 -0
  180. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/nba/__init__.py +0 -0
  181. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/nba/nba/__init__.py +0 -0
  182. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
  183. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
  184. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
  185. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/nba/sportsdb/__init__.py +0 -0
  186. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
  187. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/nba/sportsreference/__init__.py +0 -0
  188. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
  189. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/ncaab/__init__.py +0 -0
  190. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/ncaab/sportsreference/__init__.py +0 -0
  191. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
  192. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/nfl/__init__.py +0 -0
  193. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/nfl/sportsdb/__init__.py +0 -0
  194. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
  195. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/oddsportal/__init__.py +0 -0
  196. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/oddsportal/decrypt_test.py +0 -0
  197. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
  198. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
  199. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/player_model_test.py +0 -0
  200. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/social_model_test.py +0 -0
  201. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/sportsdb/__init__.py +0 -0
  202. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
  203. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
  204. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
  205. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
  206. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/sportsreference/__init__.py +0 -0
  207. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
  208. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
  209. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
  210. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
  211. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
  212. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/team_model_test.py +0 -0
  213. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/x/__init__.py +0 -0
  214. {sportsball-0.3.58 → sportsball-0.3.60}/tests/data/x/x_social_model_test.py +0 -0
  215. {sportsball-0.3.58 → sportsball-0.3.60}/tests/proxy_session_test.py +0 -0
  216. {sportsball-0.3.58 → sportsball-0.3.60}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.58
3
+ Version: 0.3.60
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
@@ -26,7 +26,7 @@ def install_requires() -> typing.List[str]:
26
26
 
27
27
  setup(
28
28
  name='sportsball',
29
- version='0.3.58',
29
+ version='0.3.60',
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',
@@ -4,4 +4,4 @@
4
4
  import cchardet # type: ignore
5
5
  import lxml # noqa: ignore
6
6
 
7
- __VERSION__ = "0.3.58"
7
+ __VERSION__ = "0.3.60"
@@ -1,7 +1,8 @@
1
1
  """AFL AFL league model."""
2
2
 
3
- # pylint: disable=too-many-statements,protected-access,too-many-locals
3
+ # pylint: disable=too-many-statements,protected-access,too-many-locals,bare-except
4
4
  import datetime
5
+ import logging
5
6
  import re
6
7
  from typing import Iterator
7
8
 
@@ -32,7 +33,14 @@ class AFLAFLLeagueModel(LeagueModel):
32
33
  browser = p.chromium.launch()
33
34
  context = browser.new_context()
34
35
  page = context.new_page()
35
- page.goto("https://www.afl.com.au/ladder", wait_until="networkidle")
36
+ try:
37
+ page.goto(
38
+ "https://www.afl.com.au/ladder",
39
+ wait_until="networkidle",
40
+ timeout=60000.0,
41
+ )
42
+ except: # noqa: E722
43
+ logging.warning("Ladder URL timed out.")
36
44
  soup = BeautifulSoup(page.content(), "lxml")
37
45
  for span in soup.find_all(
38
46
  "span", {"class": re.compile(".*stats-table__club-name.*")}
@@ -2278,6 +2278,24 @@ BROOKSHIRE_GROCERY_ARENA = SportsballGeocodeTuple(
2278
2278
  housenumber="2000",
2279
2279
  country="USA",
2280
2280
  )
2281
+ NEW_ORLEANS_CITY = SportsballGeocodeTuple(
2282
+ city="New Orleans",
2283
+ state="LA",
2284
+ postal="",
2285
+ lat=29.976111,
2286
+ lng=-90.078333,
2287
+ housenumber="",
2288
+ country="USA",
2289
+ )
2290
+ PETCO_PARK = SportsballGeocodeTuple(
2291
+ city="San Diego",
2292
+ state="CA",
2293
+ postal="92101",
2294
+ lat=32.7073,
2295
+ lng=-117.1566,
2296
+ housenumber="100",
2297
+ country="USA",
2298
+ )
2281
2299
  _CACHED_GEOCODES: dict[str, Any] = {
2282
2300
  "S.C.G. - Australia": SCG,
2283
2301
  "Victoria Park - Australia": SportsballGeocodeTuple(
@@ -4026,15 +4044,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
4026
4044
  ),
4027
4045
  "Riccardo Silva Stadium - Miami - FL - 33199": PITBULL_STADIUM,
4028
4046
  "Ryan Field - Evanston - IL - 60208": LANNY_AND_SHARON_MARTIN_STADIUM,
4029
- "Petco Park - San Diego - CA - 92101": SportsballGeocodeTuple(
4030
- city="San Diego",
4031
- state="CA",
4032
- postal="92101",
4033
- lat=32.7073,
4034
- lng=-117.1566,
4035
- housenumber="100",
4036
- country="USA",
4037
- ),
4047
+ "Petco Park - San Diego - CA - 92101": PETCO_PARK,
4038
4048
  "Providence Park - Portland - OR - 97205": SportsballGeocodeTuple(
4039
4049
  city="Portland",
4040
4050
  state="OR",
@@ -11298,15 +11308,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
11298
11308
  housenumber="",
11299
11309
  country="USA",
11300
11310
  ),
11301
- "New Orleans, Louisiana": SportsballGeocodeTuple(
11302
- city="New Orleans",
11303
- state="LA",
11304
- postal="",
11305
- lat=29.976111,
11306
- lng=-90.078333,
11307
- housenumber="",
11308
- country="USA",
11309
- ),
11311
+ "New Orleans, Louisiana": NEW_ORLEANS_CITY,
11310
11312
  "San Jose Civic Auditorium, San Jose, California": SAN_JOSE_CIVIC_AUDITORIUM,
11311
11313
  "Blackham Coliseum, Lafeyette, Louisiana": SportsballGeocodeTuple(
11312
11314
  city="Lafeyette",
@@ -12707,6 +12709,35 @@ _CACHED_GEOCODES: dict[str, Any] = {
12707
12709
  housenumber="",
12708
12710
  country="USA",
12709
12711
  ),
12712
+ "New Orleans , Louisiana": NEW_ORLEANS_CITY,
12713
+ "First Bank & Trust Arena, Brookings, South Dakota": SportsballGeocodeTuple(
12714
+ city="Brookings",
12715
+ state="SD",
12716
+ postal="57007",
12717
+ lat=44.317984,
12718
+ lng=-96.779058,
12719
+ housenumber="1165",
12720
+ country="USA",
12721
+ ),
12722
+ "Cambria County War Memorial Arena, Johnstown, Pennsylvania": SportsballGeocodeTuple(
12723
+ city="Johnstown",
12724
+ state="PA",
12725
+ postal="15901",
12726
+ lat=40.32296,
12727
+ lng=-78.922654,
12728
+ housenumber="326",
12729
+ country="USA",
12730
+ ),
12731
+ "Petco Park, San Diego, California": PETCO_PARK,
12732
+ "Esby Gym, Glassboro, New Jersey": SportsballGeocodeTuple(
12733
+ city="Glassboro",
12734
+ state="NJ",
12735
+ postal="08028",
12736
+ lat=39.7106001,
12737
+ lng=-75.1186627,
12738
+ housenumber="300",
12739
+ country="USA",
12740
+ ),
12710
12741
  }
12711
12742
 
12712
12743
 
@@ -305,7 +305,7 @@ def _create_sportsreference_game_model(
305
305
 
306
306
  # If the page_title is bad, try fetching from a non wayback source
307
307
  if page_title is not None:
308
- if page_title.get_text().strip() == "File Not Found":
308
+ if "File Not Found" in page_title.get_text().strip():
309
309
  session.cache.delete(urls=[url])
310
310
  response = session.get(url, headers={X_NO_WAYBACK: "1"})
311
311
  response.raise_for_status()
@@ -328,37 +328,41 @@ def _create_sportsreference_game_model(
328
328
  handle = io.StringIO()
329
329
  handle.write(response.text)
330
330
  handle.seek(0)
331
- dfs = pd.read_html(handle)
332
331
  fg = {}
333
332
  fga = {}
334
333
  offensive_rebounds = {}
335
334
  assists = {}
336
335
  turnovers = {}
337
- for df in dfs:
338
- if df.index.nlevels > 1:
339
- df.columns = df.columns.get_level_values(1)
340
- if "Starters" in df.columns.values:
341
- players = df["Starters"].tolist()
342
- if "FG" in df.columns.values:
343
- fgs = df["FG"].tolist()
344
- for idx, player in enumerate(players):
345
- fg[player] = fgs[idx]
346
- if "FGA" in df.columns.values:
347
- fgas = df["FGA"].tolist()
348
- for idx, player in enumerate(players):
349
- fga[player] = fgas[idx]
350
- if "OREB" in df.columns.values:
351
- orebs = df["OREB"].tolist()
352
- for idx, player in enumerate(players):
353
- offensive_rebounds[player] = orebs[idx]
354
- if "AST" in df.columns.values:
355
- asts = df["AST"].tolist()
356
- for idx, player in enumerate(players):
357
- assists[player] = asts[idx]
358
- if "TOV" in df.columns.values:
359
- tovs = df["TOV"].tolist()
360
- for idx, player in enumerate(players):
361
- turnovers[player] = tovs[idx]
336
+ try:
337
+ dfs = pd.read_html(handle)
338
+ for df in dfs:
339
+ if df.index.nlevels > 1:
340
+ df.columns = df.columns.get_level_values(1)
341
+ if "Starters" in df.columns.values:
342
+ players = df["Starters"].tolist()
343
+ if "FG" in df.columns.values:
344
+ fgs = df["FG"].tolist()
345
+ for idx, player in enumerate(players):
346
+ fg[player] = fgs[idx]
347
+ if "FGA" in df.columns.values:
348
+ fgas = df["FGA"].tolist()
349
+ for idx, player in enumerate(players):
350
+ fga[player] = fgas[idx]
351
+ if "OREB" in df.columns.values:
352
+ orebs = df["OREB"].tolist()
353
+ for idx, player in enumerate(players):
354
+ offensive_rebounds[player] = orebs[idx]
355
+ if "AST" in df.columns.values:
356
+ asts = df["AST"].tolist()
357
+ for idx, player in enumerate(players):
358
+ assists[player] = asts[idx]
359
+ if "TOV" in df.columns.values:
360
+ tovs = df["TOV"].tolist()
361
+ for idx, player in enumerate(players):
362
+ turnovers[player] = tovs[idx]
363
+ except ValueError as exc:
364
+ logging.error(response.text)
365
+ raise exc
362
366
 
363
367
  scorebox_meta_div = soup.find("div", class_="scorebox_meta")
364
368
  if not isinstance(scorebox_meta_div, Tag):
@@ -90,6 +90,20 @@ def _create_sportsreference_team_model(
90
90
  assists: dict[str, int],
91
91
  turnovers: dict[str, int],
92
92
  ) -> TeamModel:
93
+ if url == "https://www.sports-reference.com/cbb/schools/alaska-anchorage/2016.html":
94
+ name = "Alaska-Anchorage"
95
+ return TeamModel(
96
+ identifier=name,
97
+ name=name,
98
+ location="Alaska",
99
+ players=[],
100
+ odds=[],
101
+ points=points,
102
+ ladder_rank=None,
103
+ news=create_google_news_models(name, session, dt, league),
104
+ social=create_x_social_model(name, session, dt),
105
+ )
106
+
93
107
  headers = {}
94
108
  if url in _NON_WAYBACK_URLS:
95
109
  headers = {X_NO_WAYBACK: "1"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.58
3
+ Version: 0.3.60
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
File without changes
File without changes
File without changes
File without changes