sportsball 0.3.61__tar.gz → 0.3.63__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 (218) hide show
  1. {sportsball-0.3.61/sportsball.egg-info → sportsball-0.3.63}/PKG-INFO +1 -1
  2. {sportsball-0.3.61 → sportsball-0.3.63}/setup.py +1 -1
  3. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/__init__.py +1 -1
  4. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afl/afl_afl_league_model.py +8 -8
  5. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/combined/afl_combined_league_model.py +3 -0
  6. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/google/google_address_model.py +36 -0
  7. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsreference/sportsreference_game_model.py +4 -0
  8. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsreference/sportsreference_team_model.py +18 -12
  9. {sportsball-0.3.61 → sportsball-0.3.63/sportsball.egg-info}/PKG-INFO +1 -1
  10. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsreference/sportsreference_game_model_test.py +14 -0
  11. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsreference/sportsreference_team_model_test.py +8 -0
  12. {sportsball-0.3.61 → sportsball-0.3.63}/LICENSE +0 -0
  13. {sportsball-0.3.61 → sportsball-0.3.63}/MANIFEST.in +0 -0
  14. {sportsball-0.3.61 → sportsball-0.3.63}/README.md +0 -0
  15. {sportsball-0.3.61 → sportsball-0.3.63}/requirements.txt +0 -0
  16. {sportsball-0.3.61 → sportsball-0.3.63}/setup.cfg +0 -0
  17. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/__main__.py +0 -0
  18. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/args.py +0 -0
  19. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/cache.py +0 -0
  20. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/__init__.py +0 -0
  21. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/address_model.py +0 -0
  22. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/__init__.py +0 -0
  23. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afl/__init__.py +0 -0
  24. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
  25. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
  26. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
  27. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
  28. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/__init__.py +0 -0
  29. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
  30. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
  31. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
  32. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
  33. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
  34. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
  35. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
  36. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/combined/__init__.py +0 -0
  37. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/espn/__init__.py +0 -0
  38. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
  39. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/oddsportal/__init__.py +0 -0
  40. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
  41. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/__init__.py +0 -0
  42. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
  43. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
  44. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
  45. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
  46. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
  47. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
  48. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/bookie_model.py +0 -0
  49. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/__init__.py +0 -0
  50. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_address_model.py +0 -0
  51. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_game_model.py +0 -0
  52. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_league_model.py +0 -0
  53. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_player_model.py +0 -0
  54. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_team_model.py +0 -0
  55. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_venue_model.py +0 -0
  56. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/combined/combined_weather_model.py +0 -0
  57. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/__init__.py +0 -0
  58. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_bookie_model.py +0 -0
  59. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_game_model.py +0 -0
  60. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_league_model.py +0 -0
  61. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_odds_model.py +0 -0
  62. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_player_model.py +0 -0
  63. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_team_model.py +0 -0
  64. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/espn/espn_venue_model.py +0 -0
  65. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/field_type.py +0 -0
  66. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/game_model.py +0 -0
  67. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/google/__init__.py +0 -0
  68. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/google/google_news_model.py +0 -0
  69. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/league.py +0 -0
  70. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/league_model.py +0 -0
  71. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/model.py +0 -0
  72. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/__init__.py +0 -0
  73. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/combined/__init__.py +0 -0
  74. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
  75. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/espn/__init__.py +0 -0
  76. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
  77. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/nba/__init__.py +0 -0
  78. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
  79. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
  80. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
  81. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/oddsportal/__init__.py +0 -0
  82. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
  83. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/sportsdb/__init__.py +0 -0
  84. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
  85. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/sportsreference/__init__.py +0 -0
  86. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
  87. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/__init__.py +0 -0
  88. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/combined/__init__.py +0 -0
  89. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
  90. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/espn/__init__.py +0 -0
  91. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
  92. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
  93. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
  94. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
  95. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
  96. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/__init__.py +0 -0
  97. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/combined/__init__.py +0 -0
  98. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
  99. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/espn/__init__.py +0 -0
  100. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
  101. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
  102. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
  103. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/news_model.py +0 -0
  104. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/__init__.py +0 -0
  105. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
  106. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
  107. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/combined/__init__.py +0 -0
  108. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
  109. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/espn/__init__.py +0 -0
  110. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
  111. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
  112. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
  113. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
  114. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
  115. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/odds_model.py +0 -0
  116. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/__init__.py +0 -0
  117. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/decrypt.py +0 -0
  118. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
  119. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
  120. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
  121. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
  122. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
  123. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
  124. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/player_model.py +0 -0
  125. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/season_type.py +0 -0
  126. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/social_model.py +0 -0
  127. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsdb/__init__.py +0 -0
  128. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
  129. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
  130. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
  131. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
  132. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsreference/__init__.py +0 -0
  133. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
  134. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
  135. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
  136. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/team_model.py +0 -0
  137. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/venue_model.py +0 -0
  138. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather/__init__.py +0 -0
  139. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather/gribstream/__init__.py +0 -0
  140. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
  141. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather/multi_weather_model.py +0 -0
  142. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather/openmeteo/__init__.py +0 -0
  143. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
  144. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/weather_model.py +0 -0
  145. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/wikipedia/__init__.py +0 -0
  146. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
  147. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/x/__init__.py +0 -0
  148. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/data/x/x_social_model.py +0 -0
  149. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/logger.py +0 -0
  150. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/loglevel.py +0 -0
  151. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/playwright.py +0 -0
  152. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/proxy_session.py +0 -0
  153. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/session.py +0 -0
  154. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/sportsball.py +0 -0
  155. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/vendor/__init__.py +0 -0
  156. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball/vendor/pygooglenews/__init__.py +0 -0
  157. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball.egg-info/SOURCES.txt +0 -0
  158. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball.egg-info/dependency_links.txt +0 -0
  159. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball.egg-info/entry_points.txt +0 -0
  160. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball.egg-info/not-zip-safe +0 -0
  161. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball.egg-info/requires.txt +0 -0
  162. {sportsball-0.3.61 → sportsball-0.3.63}/sportsball.egg-info/top_level.txt +0 -0
  163. {sportsball-0.3.61 → sportsball-0.3.63}/tests/__init__.py +0 -0
  164. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/__init__.py +0 -0
  165. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/__init__.py +0 -0
  166. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afl/__init__.py +0 -0
  167. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afl/afl_afl_league_model_test.py +0 -0
  168. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afltables/__init__.py +0 -0
  169. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
  170. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
  171. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
  172. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/aussportsbetting/__init__.py +0 -0
  173. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
  174. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/combined/__init__.py +0 -0
  175. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/combined/combined_game_model_test.py +0 -0
  176. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/combined/combined_player_model_test.py +0 -0
  177. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/espn/__init__.py +0 -0
  178. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/espn/espn_game_model_test.py +0 -0
  179. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/espn/espn_player_model_test.py +0 -0
  180. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/game_model_test.py +0 -0
  181. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/google/__init__.py +0 -0
  182. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/google/google_address_model_test.py +0 -0
  183. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/google/google_news_model_test.py +0 -0
  184. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/__init__.py +0 -0
  185. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/nba/__init__.py +0 -0
  186. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
  187. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
  188. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
  189. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/sportsdb/__init__.py +0 -0
  190. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
  191. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/sportsreference/__init__.py +0 -0
  192. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
  193. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/ncaab/__init__.py +0 -0
  194. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/ncaab/sportsreference/__init__.py +0 -0
  195. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
  196. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nfl/__init__.py +0 -0
  197. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nfl/sportsdb/__init__.py +0 -0
  198. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
  199. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/oddsportal/__init__.py +0 -0
  200. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/oddsportal/decrypt_test.py +0 -0
  201. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
  202. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
  203. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/player_model_test.py +0 -0
  204. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/social_model_test.py +0 -0
  205. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsdb/__init__.py +0 -0
  206. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
  207. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
  208. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
  209. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
  210. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsreference/__init__.py +0 -0
  211. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
  212. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
  213. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
  214. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/team_model_test.py +0 -0
  215. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/x/__init__.py +0 -0
  216. {sportsball-0.3.61 → sportsball-0.3.63}/tests/data/x/x_social_model_test.py +0 -0
  217. {sportsball-0.3.61 → sportsball-0.3.63}/tests/proxy_session_test.py +0 -0
  218. {sportsball-0.3.61 → sportsball-0.3.63}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.61
3
+ Version: 0.3.63
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.61',
29
+ version='0.3.63',
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.61"
7
+ __VERSION__ = "0.3.63"
@@ -62,14 +62,14 @@ def _parse_game_info(
62
62
  row_players.append(team_players)
63
63
  if len(row_players) >= 2:
64
64
  break
65
- for count, row_players_list in enumerate(row_players):
66
- try:
67
- teams_players[count].extend(row_players_list)
68
- except IndexError as exc:
69
- # logging.error(html)
70
- logging.error(len(team_players))
71
- logging.error(count)
72
- raise exc
65
+ for count, row_players_list in enumerate(row_players):
66
+ try:
67
+ teams_players[count].extend(row_players_list)
68
+ except IndexError as exc:
69
+ # logging.error(html)
70
+ logging.error(len(team_players))
71
+ logging.error(count)
72
+ raise exc
73
73
  dt = None
74
74
  for time in div.find_all(
75
75
  "time", {"class": re.compile(".*match-list-alt__header-time.*")}
@@ -88,6 +88,9 @@ AFL_TEAM_IDENTITY_MAP = {
88
88
  "Fremantle Dockers": FREMANTLE,
89
89
  "West Coast Eagles": WESTCOAST,
90
90
  "Gold Coast Suns": GOLDCOAST,
91
+ # AFL
92
+ "GWS GIANTS": GWS,
93
+ "Gold Coast SUNS": GOLDCOAST,
91
94
  }
92
95
  BRUNSWICK_ST = "brunswick_st"
93
96
  VICTORIA_PARK = "victoria_park"
@@ -12749,6 +12749,42 @@ _CACHED_GEOCODES: dict[str, Any] = {
12749
12749
  ),
12750
12750
  "FedExForum - Memphis, Tennessee - United States": FEDEX_FORUM,
12751
12751
  "Kia Center, Orlando, FL, EUA": KIA_CENTER,
12752
+ "Davis Field House, Greenville, South Carolina": SportsballGeocodeTuple(
12753
+ city="Greenville",
12754
+ state="SC",
12755
+ postal="",
12756
+ lat=34.8725,
12757
+ lng=-82.361944,
12758
+ housenumber="",
12759
+ country="USA",
12760
+ ),
12761
+ "Rimrock Auto Arena at MetraPark, Billings, Montana": SportsballGeocodeTuple(
12762
+ city="Billings",
12763
+ state="MT",
12764
+ postal="59101",
12765
+ lat=45.800103,
12766
+ lng=-108.477201,
12767
+ housenumber="308",
12768
+ country="USA",
12769
+ ),
12770
+ "Corvallis, Oregon": SportsballGeocodeTuple(
12771
+ city="Corvallis",
12772
+ state="OR",
12773
+ postal="",
12774
+ lat=44.569722,
12775
+ lng=-123.278333,
12776
+ housenumber="",
12777
+ country="USA",
12778
+ ),
12779
+ "Mabee Center, Liberty, Missouri": SportsballGeocodeTuple(
12780
+ city="Liberty",
12781
+ state="MO",
12782
+ postal="64068",
12783
+ lat=39.24962892,
12784
+ lng=-94.4087267,
12785
+ housenumber="924",
12786
+ country="USA",
12787
+ ),
12752
12788
  }
12753
12789
 
12754
12790
 
@@ -169,6 +169,7 @@ def _find_old_dt(
169
169
  offensive_rebounds,
170
170
  assists,
171
171
  turnovers,
172
+ team_name,
172
173
  )
173
174
  )
174
175
 
@@ -178,6 +179,8 @@ def _find_old_dt(
178
179
  if len(df) == 2:
179
180
  test_row = df.iat[0, 0]
180
181
  test_row_2 = df.iat[1, 0]
182
+ if isinstance(test_row, float):
183
+ continue
181
184
 
182
185
  try:
183
186
  if (
@@ -289,6 +292,7 @@ def _find_new_dt(
289
292
  offensive_rebounds,
290
293
  assists,
291
294
  turnovers,
295
+ a.get_text().strip(),
292
296
  )
293
297
  )
294
298
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  # pylint: disable=too-many-arguments,too-many-locals,duplicate-code
4
4
  import datetime
5
+ import http
5
6
  import json
6
7
  import logging
7
8
  import urllib.parse
@@ -89,25 +90,25 @@ def _create_sportsreference_team_model(
89
90
  offensive_rebounds: dict[str, int],
90
91
  assists: dict[str, int],
91
92
  turnovers: dict[str, int],
93
+ team_name: str,
92
94
  ) -> TeamModel:
93
- if url == "https://www.sports-reference.com/cbb/schools/alaska-anchorage/2016.html":
94
- name = "Alaska-Anchorage"
95
+ headers = {}
96
+ if url in _NON_WAYBACK_URLS:
97
+ headers = {X_NO_WAYBACK: "1"}
98
+ response = session.get(url, headers=headers)
99
+ if response.status_code == http.HTTPStatus.NOT_FOUND:
100
+ logging.warning("Could not find team %s at url %s", team_name, url)
95
101
  return TeamModel(
96
- identifier=name,
97
- name=name,
98
- location="Alaska",
102
+ identifier=team_name,
103
+ name=team_name,
104
+ location=None,
99
105
  players=[],
100
106
  odds=[],
101
107
  points=points,
102
108
  ladder_rank=None,
103
- news=create_google_news_models(name, session, dt, league),
104
- social=create_x_social_model(name, session, dt),
109
+ news=create_google_news_models(team_name, session, dt, league),
110
+ social=create_x_social_model(team_name, session, dt),
105
111
  )
106
-
107
- headers = {}
108
- if url in _NON_WAYBACK_URLS:
109
- headers = {X_NO_WAYBACK: "1"}
110
- response = session.get(url, headers=headers)
111
112
  response.raise_for_status()
112
113
 
113
114
  soup = BeautifulSoup(response.text, "lxml")
@@ -163,6 +164,7 @@ def _cached_create_sportsreference_team_model(
163
164
  offensive_rebounds: dict[str, int],
164
165
  assists: dict[str, int],
165
166
  turnovers: dict[str, int],
167
+ team_name: str,
166
168
  ) -> TeamModel:
167
169
  return _create_sportsreference_team_model(
168
170
  session,
@@ -176,6 +178,7 @@ def _cached_create_sportsreference_team_model(
176
178
  offensive_rebounds,
177
179
  assists,
178
180
  turnovers,
181
+ team_name,
179
182
  )
180
183
 
181
184
 
@@ -191,6 +194,7 @@ def create_sportsreference_team_model(
191
194
  offensive_rebounds: dict[str, int],
192
195
  assists: dict[str, int],
193
196
  turnovers: dict[str, int],
197
+ team_name: str,
194
198
  ) -> TeamModel:
195
199
  """Create a team model from Sports Reference."""
196
200
  if not pytest_is_running.is_running():
@@ -206,6 +210,7 @@ def create_sportsreference_team_model(
206
210
  offensive_rebounds,
207
211
  assists,
208
212
  turnovers,
213
+ team_name,
209
214
  )
210
215
  with session.cache_disabled():
211
216
  return _create_sportsreference_team_model(
@@ -220,4 +225,5 @@ def create_sportsreference_team_model(
220
225
  offensive_rebounds,
221
226
  assists,
222
227
  turnovers,
228
+ team_name,
223
229
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.61
3
+ Version: 0.3.63
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
@@ -1019,3 +1019,17 @@ class TestSportsReferenceGameModel(unittest.TestCase):
1019
1019
  datetime.datetime(2010, 10, 10, 10, 10, 0),
1020
1020
  )
1021
1021
  self.assertEqual(game_model.dt, datetime.datetime(2016, 2, 23, 0, 0))
1022
+
1023
+ def test_dt_old_style_21(self):
1024
+ url = "https://www.sports-reference.com/cbb/boxscores/2015-11-23-detroit-mercy.html"
1025
+ with requests_mock.Mocker() as m:
1026
+ with open(os.path.join(self.dir, "2015-11-23-detroit-mercy.html"), "rb") as f:
1027
+ m.get(url, content=f.read())
1028
+
1029
+ game_model = create_sportsreference_game_model(
1030
+ self.session,
1031
+ url,
1032
+ League.NBA,
1033
+ datetime.datetime(2010, 10, 10, 10, 10, 0),
1034
+ )
1035
+ self.assertEqual(game_model.dt, datetime.datetime(2015, 11, 23, 0, 0))
@@ -32,6 +32,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
32
32
  {},
33
33
  {},
34
34
  {},
35
+ "",
35
36
  )
36
37
  self.assertEqual(team_model.identifier, "Villanova Wildcats Men's")
37
38
 
@@ -57,6 +58,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
57
58
  {},
58
59
  {},
59
60
  {},
61
+ "",
60
62
  )
61
63
  self.assertEqual(team_model.field_goals, 8)
62
64
 
@@ -84,6 +86,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
84
86
  {},
85
87
  {},
86
88
  {},
89
+ "",
87
90
  )
88
91
  self.assertEqual(team_model.field_goals_attempted, 10)
89
92
 
@@ -104,6 +107,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
104
107
  {},
105
108
  {},
106
109
  {},
110
+ "",
107
111
  )
108
112
  self.assertEqual(team_model.identifier, "Los Angeles Clippers")
109
113
 
@@ -124,6 +128,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
124
128
  {},
125
129
  {},
126
130
  {},
131
+ "",
127
132
  )
128
133
  self.assertEqual(team_model.identifier, "Brooklyn Nets")
129
134
 
@@ -144,6 +149,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
144
149
  {},
145
150
  {},
146
151
  {},
152
+ "",
147
153
  )
148
154
  self.assertEqual(team_model.name, "Cleveland Cavaliers")
149
155
 
@@ -164,6 +170,7 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
164
170
  {},
165
171
  {},
166
172
  {},
173
+ "",
167
174
  )
168
175
  self.assertEqual(team_model.name, "Los Angeles Lakers")
169
176
 
@@ -184,5 +191,6 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
184
191
  {},
185
192
  {},
186
193
  {},
194
+ "",
187
195
  )
188
196
  self.assertEqual(team_model.name, "Boston Celtics")
File without changes
File without changes
File without changes
File without changes