sportsball 0.3.33__tar.gz → 0.3.34__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 (214) hide show
  1. {sportsball-0.3.33/sportsball.egg-info → sportsball-0.3.34}/PKG-INFO +1 -1
  2. {sportsball-0.3.33 → sportsball-0.3.34}/setup.py +1 -1
  3. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/__init__.py +1 -1
  4. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/afltables/afl_afltables_game_model.py +1 -1
  5. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/afltables/afl_afltables_league_model.py +18 -15
  6. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/combined/afl_combined_league_model.py +20 -0
  7. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +1 -1
  8. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/combined/combined_game_model.py +1 -1
  9. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/combined/combined_league_model.py +3 -2
  10. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/espn/espn_game_model.py +1 -1
  11. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/game_model.py +1 -2
  12. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/google/google_address_model.py +8194 -4812
  13. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/combined/nba_combined_league_model.py +129 -1
  14. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/nba/nba_nba_game_model.py +1 -1
  15. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/nba/nba_nba_team_model.py +6 -1
  16. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/oddsportal/decrypt.py +8 -1
  17. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/oddsportal/oddsportal_game_model.py +1 -1
  18. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/oddsportal/oddsportal_team_model.py +2 -0
  19. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/sportsdb/sportsdb_game_model.py +1 -1
  20. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/sportsreference/sportsreference_game_model.py +154 -35
  21. sportsball-0.3.34/sportsball/data/sportsreference/sportsreference_league_model.py +121 -0
  22. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/sportsreference/sportsreference_player_model.py +24 -2
  23. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/sportsreference/sportsreference_team_model.py +56 -11
  24. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/sportsreference/sportsreference_venue_model.py +3 -3
  25. sportsball-0.3.34/sportsball/data/wikipedia/wikipedia_venue_model.py +107 -0
  26. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/proxy_session.py +11 -6
  27. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/session.py +1 -1
  28. {sportsball-0.3.33 → sportsball-0.3.34/sportsball.egg-info}/PKG-INFO +1 -1
  29. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball.egg-info/SOURCES.txt +1 -0
  30. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/afl/afltables/afl_afltables_league_model_test.py +9 -1
  31. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/combined/combined_game_model_test.py +1 -1
  32. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/game_model_test.py +1 -1
  33. sportsball-0.3.34/tests/data/oddsportal/decrypt_test.py +28 -0
  34. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/oddsportal/oddsportal_game_model_test.py +2 -2
  35. sportsball-0.3.34/tests/data/sportsreference/sportsreference_game_model_test.py +748 -0
  36. sportsball-0.3.34/tests/data/sportsreference/sportsreference_league_model_test.py +151 -0
  37. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/sportsreference/sportsreference_team_model_test.py +60 -0
  38. sportsball-0.3.33/sportsball/data/sportsreference/sportsreference_league_model.py +0 -84
  39. sportsball-0.3.33/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -39
  40. sportsball-0.3.33/tests/data/sportsreference/sportsreference_game_model_test.py +0 -97
  41. sportsball-0.3.33/tests/data/sportsreference/sportsreference_league_model_test.py +0 -16
  42. {sportsball-0.3.33 → sportsball-0.3.34}/LICENSE +0 -0
  43. {sportsball-0.3.33 → sportsball-0.3.34}/MANIFEST.in +0 -0
  44. {sportsball-0.3.33 → sportsball-0.3.34}/README.md +0 -0
  45. {sportsball-0.3.33 → sportsball-0.3.34}/requirements.txt +0 -0
  46. {sportsball-0.3.33 → sportsball-0.3.34}/setup.cfg +0 -0
  47. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/__main__.py +0 -0
  48. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/args.py +0 -0
  49. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/cache.py +0 -0
  50. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/__init__.py +0 -0
  51. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/address_model.py +0 -0
  52. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/__init__.py +0 -0
  53. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/afltables/__init__.py +0 -0
  54. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
  55. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
  56. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
  57. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
  58. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
  59. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/combined/__init__.py +0 -0
  60. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/espn/__init__.py +0 -0
  61. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
  62. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/oddsportal/__init__.py +0 -0
  63. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
  64. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/aussportsbetting/__init__.py +0 -0
  65. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
  66. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
  67. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
  68. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
  69. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
  70. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/bookie_model.py +0 -0
  71. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/combined/__init__.py +0 -0
  72. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/combined/combined_address_model.py +0 -0
  73. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/combined/combined_player_model.py +0 -0
  74. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/combined/combined_team_model.py +0 -0
  75. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/combined/combined_venue_model.py +0 -0
  76. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/combined/combined_weather_model.py +0 -0
  77. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/espn/__init__.py +0 -0
  78. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/espn/espn_bookie_model.py +0 -0
  79. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/espn/espn_league_model.py +0 -0
  80. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/espn/espn_odds_model.py +0 -0
  81. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/espn/espn_player_model.py +0 -0
  82. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/espn/espn_team_model.py +0 -0
  83. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/espn/espn_venue_model.py +0 -0
  84. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/field_type.py +0 -0
  85. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/google/__init__.py +0 -0
  86. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/google/google_news_model.py +0 -0
  87. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/league.py +0 -0
  88. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/league_model.py +0 -0
  89. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/model.py +0 -0
  90. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/__init__.py +0 -0
  91. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/combined/__init__.py +0 -0
  92. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/espn/__init__.py +0 -0
  93. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
  94. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/nba/__init__.py +0 -0
  95. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
  96. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/nba/nba_nba_player_model.py +0 -0
  97. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/oddsportal/__init__.py +0 -0
  98. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
  99. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/sportsdb/__init__.py +0 -0
  100. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
  101. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/sportsreference/__init__.py +0 -0
  102. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
  103. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaab/__init__.py +0 -0
  104. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaab/combined/__init__.py +0 -0
  105. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
  106. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaab/espn/__init__.py +0 -0
  107. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
  108. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
  109. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
  110. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
  111. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
  112. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaaf/__init__.py +0 -0
  113. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaaf/combined/__init__.py +0 -0
  114. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
  115. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaaf/espn/__init__.py +0 -0
  116. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
  117. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
  118. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
  119. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/news_model.py +0 -0
  120. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nfl/__init__.py +0 -0
  121. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
  122. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
  123. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nfl/combined/__init__.py +0 -0
  124. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
  125. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nfl/espn/__init__.py +0 -0
  126. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
  127. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
  128. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
  129. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
  130. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
  131. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/odds_model.py +0 -0
  132. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/oddsportal/__init__.py +0 -0
  133. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
  134. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
  135. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
  136. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
  137. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/player_model.py +0 -0
  138. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/season_type.py +0 -0
  139. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/social_model.py +0 -0
  140. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/sportsdb/__init__.py +0 -0
  141. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
  142. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
  143. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
  144. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/sportsreference/__init__.py +0 -0
  145. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/team_model.py +0 -0
  146. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/venue_model.py +0 -0
  147. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/weather/__init__.py +0 -0
  148. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/weather/gribstream/__init__.py +0 -0
  149. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
  150. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/weather/multi_weather_model.py +0 -0
  151. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/weather/openmeteo/__init__.py +0 -0
  152. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
  153. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/weather_model.py +0 -0
  154. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/wikipedia/__init__.py +0 -0
  155. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/x/__init__.py +0 -0
  156. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/data/x/x_social_model.py +0 -0
  157. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/logger.py +0 -0
  158. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/loglevel.py +0 -0
  159. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/sportsball.py +0 -0
  160. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/vendor/__init__.py +0 -0
  161. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball/vendor/pygooglenews/__init__.py +0 -0
  162. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball.egg-info/dependency_links.txt +0 -0
  163. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball.egg-info/entry_points.txt +0 -0
  164. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball.egg-info/not-zip-safe +0 -0
  165. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball.egg-info/requires.txt +0 -0
  166. {sportsball-0.3.33 → sportsball-0.3.34}/sportsball.egg-info/top_level.txt +0 -0
  167. {sportsball-0.3.33 → sportsball-0.3.34}/tests/__init__.py +0 -0
  168. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/__init__.py +0 -0
  169. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/afl/__init__.py +0 -0
  170. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/afl/afltables/__init__.py +0 -0
  171. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
  172. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/aussportsbetting/__init__.py +0 -0
  173. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
  174. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/combined/__init__.py +0 -0
  175. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/combined/combined_player_model_test.py +0 -0
  176. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/espn/__init__.py +0 -0
  177. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/espn/espn_game_model_test.py +0 -0
  178. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/espn/espn_player_model_test.py +0 -0
  179. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/google/__init__.py +0 -0
  180. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/google/google_address_model_test.py +0 -0
  181. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/google/google_news_model_test.py +0 -0
  182. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/nba/__init__.py +0 -0
  183. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/nba/nba/__init__.py +0 -0
  184. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
  185. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
  186. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/nba/nba/nba_nba_player_model_test.py +0 -0
  187. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
  188. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/nba/sportsdb/__init__.py +0 -0
  189. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
  190. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/nba/sportsreference/__init__.py +0 -0
  191. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
  192. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/ncaab/__init__.py +0 -0
  193. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/ncaab/sportsreference/__init__.py +0 -0
  194. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
  195. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/nfl/__init__.py +0 -0
  196. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/nfl/sportsdb/__init__.py +0 -0
  197. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
  198. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/oddsportal/__init__.py +0 -0
  199. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
  200. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/player_model_test.py +0 -0
  201. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/social_model_test.py +0 -0
  202. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/sportsdb/__init__.py +0 -0
  203. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
  204. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
  205. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
  206. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
  207. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/sportsreference/__init__.py +0 -0
  208. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
  209. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
  210. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/team_model_test.py +0 -0
  211. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/x/__init__.py +0 -0
  212. {sportsball-0.3.33 → sportsball-0.3.34}/tests/data/x/x_social_model_test.py +0 -0
  213. {sportsball-0.3.33 → sportsball-0.3.34}/tests/proxy_session_test.py +0 -0
  214. {sportsball-0.3.33 → sportsball-0.3.34}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.33
3
+ Version: 0.3.34
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.33',
29
+ version='0.3.34',
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.33"
3
+ __VERSION__ = "0.3.34"
@@ -218,7 +218,7 @@ def _create_afl_afltables_game_model(
218
218
  ],
219
219
  end_dt=end_dt,
220
220
  attendance=attendance,
221
- league=league,
221
+ league=str(league),
222
222
  year=season_year,
223
223
  season_type=season_type,
224
224
  postponed=None,
@@ -22,6 +22,23 @@ from .afl_afltables_game_model import create_afl_afltables_game_model
22
22
  _SEASON_URL = "https://afltables.com/afl/seas/season_idx.html"
23
23
 
24
24
 
25
+ def _find_dt(td_text: str, season_url: str) -> datetime.datetime:
26
+ cleaned_text = (
27
+ td_text.split("Venue:")[0].split("Att:")[0].strip().split("(")[0].strip()
28
+ )
29
+ cleaned_text = " ".join(cleaned_text.split()[-3:])
30
+ try:
31
+ return parser.parse(cleaned_text)
32
+ except parser._parser.ParserError: # type: ignore
33
+ # Handle text like "Richmond  Thu 13-Mar-2025 Venue: M.C.G."
34
+ cleaned_text = cleaned_text.split()[-1]
35
+ try:
36
+ return parser.parse(cleaned_text)
37
+ except parser._parser.ParserError as exc: # type: ignore
38
+ logging.error("Failed to parse date in season URL: %s", season_url)
39
+ raise exc
40
+
41
+
25
42
  class AFLAFLTablesLeagueModel(LeagueModel):
26
43
  """AFL AFLTables implementation of the league model."""
27
44
 
@@ -60,21 +77,7 @@ class AFLAFLTablesLeagueModel(LeagueModel):
60
77
  for td in table.find_all("td"):
61
78
  td_text = td.get_text().strip()
62
79
  if "Venue:" in td_text:
63
- cleaned_text = (
64
- td_text.split("Venue:")[0]
65
- .split("Att:")[0]
66
- .strip()
67
- .split("(")[0]
68
- .strip()
69
- )
70
- cleaned_text = " ".join(cleaned_text.split()[-3:])
71
- try:
72
- current_dt = parser.parse(cleaned_text)
73
- except parser._parser.ParserError as exc: # type: ignore
74
- logging.error(
75
- "Failed to parse date in season URL: %s", season_url
76
- )
77
- raise exc
80
+ current_dt = _find_dt(td_text, season_url)
78
81
  for a in table.find_all("a", href=True):
79
82
  if a.get_text().strip().lower() == "match stats":
80
83
  url = urllib.parse.urljoin(season_url, a.get("href"))
@@ -138,6 +138,11 @@ BLACKTOWN = "blacktown"
138
138
  RIVERWAY = "riverway"
139
139
  NORWOOD = "norwood"
140
140
  SUMMIT = "summit"
141
+ ANGEL_STADIUM = "Angel Stadium of Anaheim"
142
+ THUNDERDOME_STADIUM = "Thunderdome Stadium"
143
+ SPOTLAND_STADIUM = "Spotland Stadium"
144
+ GIANTS_STADIUM = "Giants Stadium"
145
+ TIPOS_ARENA = "Ondrej Nepela Arena"
141
146
  AFL_VENUE_IDENTITY_MAP = {
142
147
  "brunswick_st": BRUNSWICK_ST,
143
148
  "victoria_park": VICTORIA_PARK,
@@ -189,6 +194,7 @@ AFL_VENUE_IDENTITY_MAP = {
189
194
  "riverway": RIVERWAY,
190
195
  "norwood": NORWOOD,
191
196
  "summit": SUMMIT,
197
+ # Aus Sports Betting
192
198
  "MCG": MCG,
193
199
  "SCG": SCG,
194
200
  "ENGIE Stadium": STADIUM_AUSTRALIA,
@@ -217,6 +223,20 @@ AFL_VENUE_IDENTITY_MAP = {
217
223
  "Blacktown Park": BLACKTOWN,
218
224
  # OddsPortal
219
225
  "Melbourne Cricket Ground": MCG,
226
+ "Angel Stadium of Anaheim": ANGEL_STADIUM,
227
+ "The Gabba": GABBA,
228
+ "Sydney Cricket Ground": SCG,
229
+ "Subiaco Oval": SUBIACO,
230
+ "Thunderdome Stadium": THUNDERDOME_STADIUM,
231
+ "University of Tasmania Stadium": YORK_PARK,
232
+ "Spotland Stadium": SPOTLAND_STADIUM,
233
+ "Engie Stadium": STADIUM_AUSTRALIA,
234
+ "Cazaly's Stadium": CAZALYS_STADIUM,
235
+ "Jiangwan Stadium": JIANGWAN,
236
+ "TIO Traeger Park": TRAEGER,
237
+ "Marrara Oval": MARRARA_OVAL,
238
+ "Giants Stadium": GIANTS_STADIUM,
239
+ "Ondrej Nepela Arena": TIPOS_ARENA,
220
240
  }
221
241
 
222
242
 
@@ -43,7 +43,7 @@ def _create_aussportsbetting_game_model(
43
43
  teams=[home_team_model, away_team_model], # pyright: ignore
44
44
  end_dt=None,
45
45
  attendance=None,
46
- league=league,
46
+ league=str(league),
47
47
  year=None,
48
48
  season_type=None,
49
49
  postponed=None,
@@ -112,7 +112,7 @@ def create_combined_game_model(
112
112
  teams=full_team_models,
113
113
  end_dt=end_dt,
114
114
  attendance=attendance,
115
- league=game_models[0].league,
115
+ league=str(game_models[0].league),
116
116
  year=year,
117
117
  season_type=season_type,
118
118
  postponed=postponed,
@@ -3,6 +3,7 @@
3
3
  # pylint: disable=raise-missing-from
4
4
  import logging
5
5
  import multiprocessing
6
+ import sys
6
7
  import traceback
7
8
  from multiprocessing import Pool
8
9
  from typing import Any, Iterator
@@ -61,8 +62,8 @@ class CombinedLeagueModel(LeagueModel):
61
62
  with Pool(min(multiprocessing.cpu_count(), len(self._league_models))) as p:
62
63
  # We want to terminate immediately if any of our runners runs into trouble.
63
64
  def _error_callback(exc: BaseException) -> None:
64
- p.terminate()
65
- raise ValueError(str(exc))
65
+ logging.error(str(exc))
66
+ sys.exit(1)
66
67
 
67
68
  results = [
68
69
  p.apply_async(
@@ -140,7 +140,7 @@ def _create_espn_game_model(
140
140
  teams=teams,
141
141
  end_dt=end_dt,
142
142
  attendance=attendance,
143
- league=league,
143
+ league=str(league),
144
144
  year=year,
145
145
  season_type=season_type,
146
146
  postponed=None,
@@ -7,7 +7,6 @@ import pytz
7
7
  from pydantic import BaseModel, Field
8
8
 
9
9
  from .field_type import TYPE_KEY, FieldType
10
- from .league import League
11
10
  from .season_type import SeasonType
12
11
  from .team_model import TeamModel
13
12
  from .venue_model import VenueModel
@@ -54,7 +53,7 @@ class GameModel(BaseModel):
54
53
  ..., json_schema_extra={TYPE_KEY: FieldType.LOOKAHEAD}, alias=END_DT_COLUMN
55
54
  )
56
55
  attendance: int | None = Field(..., alias=GAME_ATTENDANCE_COLUMN)
57
- league: League = Field(..., alias=LEAGUE_COLUMN)
56
+ league: str = Field(..., alias=LEAGUE_COLUMN)
58
57
  year: int | None
59
58
  season_type: SeasonType | None
60
59
  postponed: bool | None = Field(