sportsball 0.3.22__tar.gz → 0.3.24__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 (207) hide show
  1. {sportsball-0.3.22/sportsball.egg-info → sportsball-0.3.24}/PKG-INFO +1 -1
  2. {sportsball-0.3.22 → sportsball-0.3.24}/setup.py +1 -1
  3. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/__init__.py +1 -1
  4. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_league_model.py +25 -11
  5. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +10 -4
  6. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/google/google_address_model.py +63 -0
  7. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_league_model.py +20 -9
  8. {sportsball-0.3.22 → sportsball-0.3.24/sportsball.egg-info}/PKG-INFO +1 -1
  9. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball.egg-info/SOURCES.txt +1 -0
  10. sportsball-0.3.24/tests/data/afl/afltables/afl_afltables_league_model_test.py +16 -0
  11. {sportsball-0.3.22 → sportsball-0.3.24}/LICENSE +0 -0
  12. {sportsball-0.3.22 → sportsball-0.3.24}/MANIFEST.in +0 -0
  13. {sportsball-0.3.22 → sportsball-0.3.24}/README.md +0 -0
  14. {sportsball-0.3.22 → sportsball-0.3.24}/requirements.txt +0 -0
  15. {sportsball-0.3.22 → sportsball-0.3.24}/setup.cfg +0 -0
  16. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/__main__.py +0 -0
  17. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/args.py +0 -0
  18. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/cache.py +0 -0
  19. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/__init__.py +0 -0
  20. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/address_model.py +0 -0
  21. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/__init__.py +0 -0
  22. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/__init__.py +0 -0
  23. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
  24. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
  25. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
  26. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
  27. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
  28. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
  29. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/combined/__init__.py +0 -0
  30. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
  31. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/espn/__init__.py +0 -0
  32. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
  33. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/oddsportal/__init__.py +0 -0
  34. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
  35. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/__init__.py +0 -0
  36. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
  37. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
  38. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
  39. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
  40. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
  41. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/bookie_model.py +0 -0
  42. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/__init__.py +0 -0
  43. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_address_model.py +0 -0
  44. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_game_model.py +0 -0
  45. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_league_model.py +0 -0
  46. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_player_model.py +0 -0
  47. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_team_model.py +0 -0
  48. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_venue_model.py +0 -0
  49. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/combined/combined_weather_model.py +0 -0
  50. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/__init__.py +0 -0
  51. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_bookie_model.py +0 -0
  52. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_game_model.py +0 -0
  53. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_league_model.py +0 -0
  54. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_odds_model.py +0 -0
  55. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_player_model.py +0 -0
  56. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_team_model.py +0 -0
  57. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/espn/espn_venue_model.py +0 -0
  58. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/field_type.py +0 -0
  59. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/game_model.py +0 -0
  60. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/google/__init__.py +0 -0
  61. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/google/google_news_model.py +0 -0
  62. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/league.py +0 -0
  63. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/league_model.py +0 -0
  64. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/model.py +0 -0
  65. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/__init__.py +0 -0
  66. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/combined/__init__.py +0 -0
  67. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
  68. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/espn/__init__.py +0 -0
  69. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
  70. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/nba/__init__.py +0 -0
  71. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
  72. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
  73. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/nba/nba_nba_player_model.py +0 -0
  74. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
  75. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/oddsportal/__init__.py +0 -0
  76. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
  77. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/sportsdb/__init__.py +0 -0
  78. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
  79. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/sportsreference/__init__.py +0 -0
  80. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
  81. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/__init__.py +0 -0
  82. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/combined/__init__.py +0 -0
  83. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
  84. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/espn/__init__.py +0 -0
  85. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
  86. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
  87. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
  88. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
  89. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
  90. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/__init__.py +0 -0
  91. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/combined/__init__.py +0 -0
  92. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
  93. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/espn/__init__.py +0 -0
  94. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
  95. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
  96. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
  97. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/news_model.py +0 -0
  98. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/__init__.py +0 -0
  99. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
  100. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
  101. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/combined/__init__.py +0 -0
  102. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
  103. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/espn/__init__.py +0 -0
  104. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
  105. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
  106. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
  107. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
  108. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
  109. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/odds_model.py +0 -0
  110. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/__init__.py +0 -0
  111. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
  112. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
  113. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
  114. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
  115. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
  116. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/player_model.py +0 -0
  117. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/season_type.py +0 -0
  118. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/social_model.py +0 -0
  119. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsdb/__init__.py +0 -0
  120. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
  121. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
  122. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
  123. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
  124. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsreference/__init__.py +0 -0
  125. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsreference/sportsreference_game_model.py +0 -0
  126. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
  127. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
  128. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsreference/sportsreference_team_model.py +0 -0
  129. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
  130. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/team_model.py +0 -0
  131. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/venue_model.py +0 -0
  132. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather/__init__.py +0 -0
  133. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather/gribstream/__init__.py +0 -0
  134. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
  135. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather/multi_weather_model.py +0 -0
  136. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather/openmeteo/__init__.py +0 -0
  137. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
  138. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/weather_model.py +0 -0
  139. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/wikipedia/__init__.py +0 -0
  140. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
  141. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/x/__init__.py +0 -0
  142. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/data/x/x_social_model.py +0 -0
  143. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/logger.py +0 -0
  144. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/loglevel.py +0 -0
  145. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/proxy_session.py +0 -0
  146. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/session.py +0 -0
  147. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/sportsball.py +0 -0
  148. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/vendor/__init__.py +0 -0
  149. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball/vendor/pygooglenews/__init__.py +0 -0
  150. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball.egg-info/dependency_links.txt +0 -0
  151. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball.egg-info/entry_points.txt +0 -0
  152. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball.egg-info/not-zip-safe +0 -0
  153. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball.egg-info/requires.txt +0 -0
  154. {sportsball-0.3.22 → sportsball-0.3.24}/sportsball.egg-info/top_level.txt +0 -0
  155. {sportsball-0.3.22 → sportsball-0.3.24}/tests/__init__.py +0 -0
  156. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/__init__.py +0 -0
  157. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/afl/__init__.py +0 -0
  158. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/afl/afltables/__init__.py +0 -0
  159. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
  160. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/aussportsbetting/__init__.py +0 -0
  161. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
  162. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/combined/__init__.py +0 -0
  163. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/combined/combined_game_model_test.py +0 -0
  164. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/combined/combined_player_model_test.py +0 -0
  165. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/espn/__init__.py +0 -0
  166. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/espn/espn_game_model_test.py +0 -0
  167. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/espn/espn_player_model_test.py +0 -0
  168. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/game_model_test.py +0 -0
  169. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/google/__init__.py +0 -0
  170. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/google/google_address_model_test.py +0 -0
  171. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/google/google_news_model_test.py +0 -0
  172. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/__init__.py +0 -0
  173. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/nba/__init__.py +0 -0
  174. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
  175. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
  176. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/nba/nba_nba_player_model_test.py +0 -0
  177. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
  178. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/sportsdb/__init__.py +0 -0
  179. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
  180. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/sportsreference/__init__.py +0 -0
  181. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
  182. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/ncaab/__init__.py +0 -0
  183. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/ncaab/sportsreference/__init__.py +0 -0
  184. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
  185. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nfl/__init__.py +0 -0
  186. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nfl/sportsdb/__init__.py +0 -0
  187. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
  188. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/oddsportal/__init__.py +0 -0
  189. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
  190. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/player_model_test.py +0 -0
  191. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/social_model_test.py +0 -0
  192. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsdb/__init__.py +0 -0
  193. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
  194. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
  195. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
  196. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
  197. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsreference/__init__.py +0 -0
  198. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
  199. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
  200. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
  201. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
  202. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
  203. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/team_model_test.py +0 -0
  204. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/x/__init__.py +0 -0
  205. {sportsball-0.3.22 → sportsball-0.3.24}/tests/data/x/x_social_model_test.py +0 -0
  206. {sportsball-0.3.22 → sportsball-0.3.24}/tests/proxy_session_test.py +0 -0
  207. {sportsball-0.3.22 → sportsball-0.3.24}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.22
3
+ Version: 0.3.24
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.22',
29
+ version='0.3.24',
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',
@@ -1,3 +1,3 @@
1
1
  """The main module for sportsball."""
2
2
 
3
- __VERSION__ = "0.3.22"
3
+ __VERSION__ = "0.3.24"
@@ -28,7 +28,7 @@ class AFLAFLTablesLeagueModel(LeagueModel):
28
28
  super().__init__(League.AFL, session)
29
29
 
30
30
  def _produce_games(
31
- self, season_url: str, season_type: SeasonType
31
+ self, season_url: str, season_type: SeasonType, pbar: tqdm.tqdm
32
32
  ) -> Iterator[GameModel]:
33
33
  # pylint: disable=too-many-branches,too-many-locals
34
34
  o = urlparse(season_url)
@@ -56,8 +56,10 @@ class AFLAFLTablesLeagueModel(LeagueModel):
56
56
  current_dt = None
57
57
  for td in table.find_all("td"):
58
58
  td_text = td.get_text().strip()
59
- if "(" in td_text:
60
- current_dt = parser.parse(td_text.split("(")[0].strip())
59
+ if "Venue:" in td_text:
60
+ cleaned_text = td_text.split("Venue:")[0].split("Att:")[0].strip()
61
+ cleaned_text = " ".join(cleaned_text.split()[-3:])
62
+ current_dt = parser.parse(cleaned_text)
61
63
  for a in table.find_all("a", href=True):
62
64
  if a.get_text().strip().lower() == "match stats":
63
65
  url = urllib.parse.urljoin(season_url, a.get("href"))
@@ -66,7 +68,7 @@ class AFLAFLTablesLeagueModel(LeagueModel):
66
68
  if current_dt is None:
67
69
  raise ValueError("current_dt is null.")
68
70
  if not in_finals and season_type == SeasonType.REGULAR:
69
- model = create_afl_afltables_game_model(
71
+ game_model = create_afl_afltables_game_model(
70
72
  game_number,
71
73
  self.session,
72
74
  url,
@@ -77,14 +79,18 @@ class AFLAFLTablesLeagueModel(LeagueModel):
77
79
  season_type,
78
80
  current_dt,
79
81
  )
80
- model_week = model.week
82
+ model_week = game_model.week
81
83
  if model_week is None:
82
84
  raise ValueError("model_week is null")
83
85
  last_round_number = model_week # pyright: ignore
84
86
  if season_type == SeasonType.REGULAR:
85
- yield model # pyright: ignore
87
+ pbar.update(1)
88
+ pbar.set_description(
89
+ f"AFLTables {game_model.year} - {season_type} - {game_model.dt}"
90
+ )
91
+ yield game_model # pyright: ignore
86
92
  elif in_finals and season_type == SeasonType.POSTSEASON:
87
- yield create_afl_afltables_game_model(
93
+ game_model = create_afl_afltables_game_model(
88
94
  game_number,
89
95
  self.session,
90
96
  url,
@@ -95,6 +101,11 @@ class AFLAFLTablesLeagueModel(LeagueModel):
95
101
  season_type,
96
102
  current_dt,
97
103
  )
104
+ pbar.update(1)
105
+ pbar.set_description(
106
+ f"AFLTables {game_model.year} - {season_type} - {game_model.dt}"
107
+ )
108
+ yield game_model
98
109
  game_number += 1
99
110
  urls_duplicates.add(url)
100
111
  ladder_count = None
@@ -121,12 +132,15 @@ class AFLAFLTablesLeagueModel(LeagueModel):
121
132
  def games(self) -> Iterator[GameModel]:
122
133
  response = self.session.get(_SEASON_URL)
123
134
  soup = BeautifulSoup(response.text, "html.parser")
124
- with tqdm.tqdm(desc="AFLTables seasons") as pbar:
135
+ with tqdm.tqdm() as pbar:
125
136
  for table in soup.find_all("table"):
126
137
  for tr in table.find_all("tr"):
127
138
  for td in tr.find_all("td"):
128
139
  for a in td.find_all("a"):
129
140
  url = urllib.parse.urljoin(_SEASON_URL, a.get("href"))
130
- yield from self._produce_games(url, SeasonType.REGULAR)
131
- yield from self._produce_games(url, SeasonType.POSTSEASON)
132
- pbar.update(2)
141
+ yield from self._produce_games(
142
+ url, SeasonType.REGULAR, pbar
143
+ )
144
+ yield from self._produce_games(
145
+ url, SeasonType.POSTSEASON, pbar
146
+ )
@@ -1,5 +1,6 @@
1
1
  """Aussportsbetting league model."""
2
2
 
3
+ # pylint: disable=line-too-long
3
4
  from io import BytesIO
4
5
  from typing import Any, Iterator
5
6
 
@@ -95,7 +96,12 @@ class AusSportsBettingLeagueModel(LeagueModel):
95
96
  ws = workbook.active
96
97
  if ws is None:
97
98
  raise ValueError("ws is null.")
98
- for row in tqdm.tqdm(ws.iter_rows(), desc="AusSportsBetting Games"):
99
- game = self._row_to_game(row)
100
- if game is not None:
101
- yield game
99
+ with tqdm.tqdm() as pbar:
100
+ for row in ws.iter_rows():
101
+ game_model = self._row_to_game(row)
102
+ if game_model is not None:
103
+ pbar.update(1)
104
+ pbar.set_description(
105
+ f"AusSportsBetting {game_model.year} - {game_model.season_type} - {game_model.dt}"
106
+ )
107
+ yield game_model
@@ -7095,6 +7095,69 @@ _CACHED_GEOCODES: dict[str, Any] = {
7095
7095
  housenumber="",
7096
7096
  country="USA",
7097
7097
  ),
7098
+ "Salt Lake City, Utah": SportsballGeocodeTuple(
7099
+ city="Salt Lake City",
7100
+ state="UT",
7101
+ postal="",
7102
+ lat=40.760833,
7103
+ lng=-111.891111,
7104
+ housenumber="",
7105
+ country="USA",
7106
+ ),
7107
+ "Ferrell Center, Waco, Texas": SportsballGeocodeTuple(
7108
+ city="Waco",
7109
+ state="TX",
7110
+ postal="76706",
7111
+ lat=31.547903,
7112
+ lng=-97.105969,
7113
+ housenumber="1900",
7114
+ country="USA",
7115
+ ),
7116
+ "Princeton, New Jersey": SportsballGeocodeTuple(
7117
+ city="Princeton",
7118
+ state="NJ",
7119
+ postal="",
7120
+ lat=40.358244,
7121
+ lng=-74.666728,
7122
+ housenumber="",
7123
+ country="USA",
7124
+ ),
7125
+ "Nashville, Tennessee": SportsballGeocodeTuple(
7126
+ city="Nashville",
7127
+ state="TN",
7128
+ postal="",
7129
+ lat=36.162222,
7130
+ lng=-86.774444,
7131
+ housenumber="",
7132
+ country="USA",
7133
+ ),
7134
+ "Fort Worth, Texas": SportsballGeocodeTuple(
7135
+ city="Fort Worth",
7136
+ state="TX",
7137
+ postal="",
7138
+ lat=32.756389,
7139
+ lng=-97.3325,
7140
+ housenumber="",
7141
+ country="USA",
7142
+ ),
7143
+ "T-Mobile Center, Kansas City, Missouri": SportsballGeocodeTuple(
7144
+ city="Kansas City",
7145
+ state="MS",
7146
+ postal="",
7147
+ lat=39.0975,
7148
+ lng=-94.580278,
7149
+ housenumber="1407",
7150
+ country="USA",
7151
+ ),
7152
+ "Henderson, Nevada": SportsballGeocodeTuple(
7153
+ city="Henderson",
7154
+ state="NV",
7155
+ postal="",
7156
+ lat=36.033333,
7157
+ lng=-114.983333,
7158
+ housenumber="",
7159
+ country="USA",
7160
+ ),
7098
7161
  }
7099
7162
 
7100
7163
 
@@ -1,10 +1,13 @@
1
1
  """Odds Portal league model."""
2
2
 
3
+ import http
3
4
  import json
5
+ import logging
4
6
  import urllib.parse
5
7
  from typing import Iterator
6
8
 
7
9
  import extruct # type: ignore
10
+ import requests
8
11
  import tqdm
9
12
  from bs4 import BeautifulSoup, Tag
10
13
 
@@ -52,15 +55,23 @@ class OddsPortalLeagueModel(LeagueModel):
52
55
  for jsonld in data["json-ld"]:
53
56
  if jsonld["@type"] != "SportsEvent":
54
57
  continue
55
- game_model = create_oddsportal_game_model(
56
- self.session,
57
- urllib.parse.urljoin(base_url, jsonld["url"]),
58
- self.league,
59
- True,
60
- )
61
- pbar.update(1)
62
- pbar.set_description(f"OddsPortal {game_model.dt}")
63
- yield game_model
58
+ try:
59
+ game_model = create_oddsportal_game_model(
60
+ self.session,
61
+ urllib.parse.urljoin(base_url, jsonld["url"]),
62
+ self.league,
63
+ True,
64
+ )
65
+ pbar.update(1)
66
+ pbar.set_description(
67
+ f"OddsPortal {game_model.year} - {game_model.season_type} - {game_model.dt}"
68
+ )
69
+ yield game_model
70
+ except requests.exceptions.HTTPError as exc:
71
+ if exc.response.status_code == http.HTTPStatus.NOT_FOUND:
72
+ logging.warning("Failed to find game at: %s", jsonld["url"])
73
+ continue
74
+ raise exc
64
75
 
65
76
  def _find_previous(self, pbar: tqdm.tqdm) -> Iterator[GameModel]:
66
77
  seen_urls = set()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.22
3
+ Version: 0.3.24
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
@@ -159,6 +159,7 @@ tests/data/social_model_test.py
159
159
  tests/data/team_model_test.py
160
160
  tests/data/afl/__init__.py
161
161
  tests/data/afl/afltables/__init__.py
162
+ tests/data/afl/afltables/afl_afltables_league_model_test.py
162
163
  tests/data/afl/afltables/afl_afltables_player_model_test.py
163
164
  tests/data/aussportsbetting/__init__.py
164
165
  tests/data/aussportsbetting/aussportsbetting_game_model_test.py
@@ -0,0 +1,16 @@
1
+ """Tests for the afltables league model class."""
2
+ import unittest
3
+
4
+ import requests_cache
5
+ from sportsball.data.afl.afltables.afl_afltables_league_model import AFLAFLTablesLeagueModel
6
+ from sportsball.data.league import League
7
+
8
+
9
+ class TestAFLTablesLeagueModel(unittest.TestCase):
10
+
11
+ def setUp(self):
12
+ self._session = requests_cache.CachedSession(backend="memory")
13
+ self._league_model = AFLAFLTablesLeagueModel(self._session)
14
+
15
+ def test_league(self):
16
+ self.assertEqual(self._league_model.league, League.AFL)
File without changes
File without changes
File without changes
File without changes