sportsball 0.3.119__tar.gz → 0.3.120__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 (228) hide show
  1. {sportsball-0.3.119/sportsball.egg-info → sportsball-0.3.120}/PKG-INFO +1 -1
  2. {sportsball-0.3.119 → sportsball-0.3.120}/setup.py +1 -1
  3. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/__init__.py +1 -1
  4. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/afl/afl_afl_game_model.py +1 -1
  5. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/afl/afl_afl_league_model.py +1 -1
  6. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/afl/afl_afl_player_model.py +1 -0
  7. sportsball-0.3.120/sportsball/data/afl/afl/afl_afl_venue_model.py +25 -0
  8. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/google/google_address_model.py +31 -9
  9. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nba/combined/nba_combined_league_model.py +2 -0
  10. sportsball-0.3.120/sportsball/data/nba/nbacom/nba_nbacom_game_model.py +56 -0
  11. sportsball-0.3.120/sportsball/data/nba/nbacom/nba_nbacom_league_model.py +40 -0
  12. sportsball-0.3.120/sportsball/data/nba/nbacom/nba_nbacom_player_model.py +44 -0
  13. sportsball-0.3.120/sportsball/data/nba/nbacom/nba_nbacom_team_model.py +38 -0
  14. sportsball-0.3.119/sportsball/data/afl/afl/afl_afl_venue_model.py → sportsball-0.3.120/sportsball/data/nba/nbacom/nba_nbacom_venue_model.py +2 -2
  15. {sportsball-0.3.119 → sportsball-0.3.120/sportsball.egg-info}/PKG-INFO +1 -1
  16. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball.egg-info/SOURCES.txt +6 -0
  17. sportsball-0.3.120/tests/data/x/__init__.py +0 -0
  18. {sportsball-0.3.119 → sportsball-0.3.120}/LICENSE +0 -0
  19. {sportsball-0.3.119 → sportsball-0.3.120}/MANIFEST.in +0 -0
  20. {sportsball-0.3.119 → sportsball-0.3.120}/README.md +0 -0
  21. {sportsball-0.3.119 → sportsball-0.3.120}/requirements.txt +0 -0
  22. {sportsball-0.3.119 → sportsball-0.3.120}/setup.cfg +0 -0
  23. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/__main__.py +0 -0
  24. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/args.py +0 -0
  25. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/cache.py +0 -0
  26. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/__init__.py +0 -0
  27. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/address_model.py +0 -0
  28. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/__init__.py +0 -0
  29. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/afl/__init__.py +0 -0
  30. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/afl/afl_afl_bookie_model.py +0 -0
  31. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/afl/afl_afl_odds_model.py +0 -0
  32. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
  33. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/afltables/__init__.py +0 -0
  34. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
  35. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
  36. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
  37. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
  38. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
  39. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
  40. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
  41. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/combined/__init__.py +0 -0
  42. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
  43. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/espn/__init__.py +0 -0
  44. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
  45. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/oddsportal/__init__.py +0 -0
  46. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
  47. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/aussportsbetting/__init__.py +0 -0
  48. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
  49. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
  50. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
  51. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
  52. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
  53. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
  54. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/bookie_model.py +0 -0
  55. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/combined/__init__.py +0 -0
  56. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/combined/combined_address_model.py +0 -0
  57. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/combined/combined_game_model.py +0 -0
  58. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/combined/combined_league_model.py +0 -0
  59. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/combined/combined_player_model.py +0 -0
  60. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/combined/combined_team_model.py +0 -0
  61. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/combined/combined_venue_model.py +0 -0
  62. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/combined/combined_weather_model.py +0 -0
  63. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/combined/null_check.py +0 -0
  64. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/espn/__init__.py +0 -0
  65. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/espn/espn_bookie_model.py +0 -0
  66. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/espn/espn_game_model.py +0 -0
  67. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/espn/espn_league_model.py +0 -0
  68. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/espn/espn_odds_model.py +0 -0
  69. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/espn/espn_player_model.py +0 -0
  70. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/espn/espn_team_model.py +0 -0
  71. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/espn/espn_venue_model.py +0 -0
  72. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/field_type.py +0 -0
  73. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/game_model.py +0 -0
  74. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/google/__init__.py +0 -0
  75. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/google/google_news_model.py +0 -0
  76. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/league.py +0 -0
  77. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/league_model.py +0 -0
  78. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/model.py +0 -0
  79. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nba/__init__.py +0 -0
  80. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nba/combined/__init__.py +0 -0
  81. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nba/espn/__init__.py +0 -0
  82. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
  83. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nba/nba/__init__.py +0 -0
  84. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
  85. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
  86. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
  87. {sportsball-0.3.119/sportsball/data/nba/oddsportal → sportsball-0.3.120/sportsball/data/nba/nbacom}/__init__.py +0 -0
  88. {sportsball-0.3.119/sportsball/data/nba/sportsdb → sportsball-0.3.120/sportsball/data/nba/oddsportal}/__init__.py +0 -0
  89. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
  90. {sportsball-0.3.119/sportsball/data/nba/sportsreference → sportsball-0.3.120/sportsball/data/nba/sportsdb}/__init__.py +0 -0
  91. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
  92. {sportsball-0.3.119/sportsball/data/ncaab/combined → sportsball-0.3.120/sportsball/data/nba/sportsreference}/__init__.py +0 -0
  93. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
  94. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/ncaab/__init__.py +0 -0
  95. {sportsball-0.3.119/sportsball/data/ncaab/espn → sportsball-0.3.120/sportsball/data/ncaab/combined}/__init__.py +0 -0
  96. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
  97. {sportsball-0.3.119/sportsball/data/ncaab/oddsportal → sportsball-0.3.120/sportsball/data/ncaab/espn}/__init__.py +0 -0
  98. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
  99. {sportsball-0.3.119/sportsball/data/ncaab/sportsreference → sportsball-0.3.120/sportsball/data/ncaab/oddsportal}/__init__.py +0 -0
  100. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
  101. {sportsball-0.3.119/sportsball/data/ncaaf/combined → sportsball-0.3.120/sportsball/data/ncaab/sportsreference}/__init__.py +0 -0
  102. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
  103. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/ncaaf/__init__.py +0 -0
  104. {sportsball-0.3.119/sportsball/data/ncaaf/espn → sportsball-0.3.120/sportsball/data/ncaaf/combined}/__init__.py +0 -0
  105. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
  106. {sportsball-0.3.119/sportsball/data/ncaaf/oddsportal → sportsball-0.3.120/sportsball/data/ncaaf/espn}/__init__.py +0 -0
  107. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
  108. {sportsball-0.3.119/sportsball/data/nfl/aussportsbetting → sportsball-0.3.120/sportsball/data/ncaaf/oddsportal}/__init__.py +0 -0
  109. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
  110. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/news_model.py +0 -0
  111. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nfl/__init__.py +0 -0
  112. {sportsball-0.3.119/sportsball/data/nfl/combined → sportsball-0.3.120/sportsball/data/nfl/aussportsbetting}/__init__.py +0 -0
  113. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
  114. {sportsball-0.3.119/sportsball/data/nfl/oddsportal → sportsball-0.3.120/sportsball/data/nfl/combined}/__init__.py +0 -0
  115. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
  116. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nfl/espn/__init__.py +0 -0
  117. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
  118. {sportsball-0.3.119/sportsball/data/nfl/sportsdb → sportsball-0.3.120/sportsball/data/nfl/oddsportal}/__init__.py +0 -0
  119. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
  120. {sportsball-0.3.119/sportsball/data/oddsportal → sportsball-0.3.120/sportsball/data/nfl/sportsdb}/__init__.py +0 -0
  121. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
  122. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/odds_model.py +0 -0
  123. {sportsball-0.3.119/sportsball/data/sportsdb → sportsball-0.3.120/sportsball/data/oddsportal}/__init__.py +0 -0
  124. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/oddsportal/decrypt.py +0 -0
  125. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
  126. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
  127. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
  128. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
  129. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
  130. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
  131. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/player_model.py +0 -0
  132. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/season_type.py +0 -0
  133. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/social_model.py +0 -0
  134. {sportsball-0.3.119/sportsball/data/sportsreference → sportsball-0.3.120/sportsball/data/sportsdb}/__init__.py +0 -0
  135. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
  136. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
  137. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
  138. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
  139. {sportsball-0.3.119/sportsball/data/weather → sportsball-0.3.120/sportsball/data/sportsreference}/__init__.py +0 -0
  140. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/sportsreference/sportsreference_game_model.py +0 -0
  141. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
  142. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
  143. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/sportsreference/sportsreference_team_model.py +0 -0
  144. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
  145. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/team_model.py +0 -0
  146. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/venue_model.py +0 -0
  147. {sportsball-0.3.119/sportsball/data/weather/gribstream → sportsball-0.3.120/sportsball/data/weather}/__init__.py +0 -0
  148. {sportsball-0.3.119/sportsball/data/weather/openmeteo → sportsball-0.3.120/sportsball/data/weather/gribstream}/__init__.py +0 -0
  149. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
  150. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/weather/multi_weather_model.py +0 -0
  151. {sportsball-0.3.119/sportsball/data/wikipedia → sportsball-0.3.120/sportsball/data/weather/openmeteo}/__init__.py +0 -0
  152. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
  153. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/weather_model.py +0 -0
  154. {sportsball-0.3.119/sportsball/data/x → sportsball-0.3.120/sportsball/data/wikipedia}/__init__.py +0 -0
  155. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
  156. {sportsball-0.3.119/sportsball/vendor → sportsball-0.3.120/sportsball/data/x}/__init__.py +0 -0
  157. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/data/x/x_social_model.py +0 -0
  158. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/logger.py +0 -0
  159. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/loglevel.py +0 -0
  160. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/playwright.py +0 -0
  161. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/proxy_session.py +0 -0
  162. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/session.py +0 -0
  163. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/sportsball.py +0 -0
  164. {sportsball-0.3.119/tests → sportsball-0.3.120/sportsball/vendor}/__init__.py +0 -0
  165. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball/vendor/pygooglenews/__init__.py +0 -0
  166. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball.egg-info/dependency_links.txt +0 -0
  167. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball.egg-info/entry_points.txt +0 -0
  168. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball.egg-info/not-zip-safe +0 -0
  169. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball.egg-info/requires.txt +0 -0
  170. {sportsball-0.3.119 → sportsball-0.3.120}/sportsball.egg-info/top_level.txt +0 -0
  171. {sportsball-0.3.119/tests/data → sportsball-0.3.120/tests}/__init__.py +0 -0
  172. {sportsball-0.3.119/tests/data/afl → sportsball-0.3.120/tests/data}/__init__.py +0 -0
  173. {sportsball-0.3.119/tests/data/afl → sportsball-0.3.120/tests/data}/afl/__init__.py +0 -0
  174. {sportsball-0.3.119/tests/data/afl/afltables → sportsball-0.3.120/tests/data/afl/afl}/__init__.py +0 -0
  175. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/afl/afl/afl_afl_league_model_test.py +0 -0
  176. {sportsball-0.3.119/tests/data/aussportsbetting → sportsball-0.3.120/tests/data/afl/afltables}/__init__.py +0 -0
  177. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
  178. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
  179. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
  180. {sportsball-0.3.119/tests/data/combined → sportsball-0.3.120/tests/data/aussportsbetting}/__init__.py +0 -0
  181. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
  182. {sportsball-0.3.119/tests/data/espn → sportsball-0.3.120/tests/data/combined}/__init__.py +0 -0
  183. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/combined/combined_game_model_test.py +0 -0
  184. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/combined/combined_player_model_test.py +0 -0
  185. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/combined/combined_team_model_test.py +0 -0
  186. {sportsball-0.3.119/tests/data/google → sportsball-0.3.120/tests/data/espn}/__init__.py +0 -0
  187. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/espn/espn_game_model_test.py +0 -0
  188. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/espn/espn_player_model_test.py +0 -0
  189. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/game_model_test.py +0 -0
  190. {sportsball-0.3.119/tests/data/nba → sportsball-0.3.120/tests/data/google}/__init__.py +0 -0
  191. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/google/google_address_model_test.py +0 -0
  192. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/google/google_news_model_test.py +0 -0
  193. {sportsball-0.3.119/tests/data/nba → sportsball-0.3.120/tests/data}/nba/__init__.py +0 -0
  194. {sportsball-0.3.119/tests/data/nba/sportsdb → sportsball-0.3.120/tests/data/nba/nba}/__init__.py +0 -0
  195. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
  196. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
  197. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
  198. {sportsball-0.3.119/tests/data/nba/sportsreference → sportsball-0.3.120/tests/data/nba/sportsdb}/__init__.py +0 -0
  199. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
  200. {sportsball-0.3.119/tests/data/ncaab → sportsball-0.3.120/tests/data/nba/sportsreference}/__init__.py +0 -0
  201. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
  202. {sportsball-0.3.119/tests/data/ncaab/sportsreference → sportsball-0.3.120/tests/data/ncaab}/__init__.py +0 -0
  203. {sportsball-0.3.119/tests/data/nfl → sportsball-0.3.120/tests/data/ncaab/sportsreference}/__init__.py +0 -0
  204. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
  205. {sportsball-0.3.119/tests/data/nfl/sportsdb → sportsball-0.3.120/tests/data/nfl}/__init__.py +0 -0
  206. {sportsball-0.3.119/tests/data/oddsportal → sportsball-0.3.120/tests/data/nfl/sportsdb}/__init__.py +0 -0
  207. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
  208. {sportsball-0.3.119/tests/data/sportsdb → sportsball-0.3.120/tests/data/oddsportal}/__init__.py +0 -0
  209. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/oddsportal/decrypt_test.py +0 -0
  210. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
  211. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
  212. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/player_model_test.py +0 -0
  213. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/social_model_test.py +0 -0
  214. {sportsball-0.3.119/tests/data/sportsreference → sportsball-0.3.120/tests/data/sportsdb}/__init__.py +0 -0
  215. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
  216. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
  217. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
  218. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
  219. {sportsball-0.3.119/tests/data/x → sportsball-0.3.120/tests/data/sportsreference}/__init__.py +0 -0
  220. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
  221. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
  222. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
  223. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
  224. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
  225. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/team_model_test.py +0 -0
  226. {sportsball-0.3.119 → sportsball-0.3.120}/tests/data/x/x_social_model_test.py +0 -0
  227. {sportsball-0.3.119 → sportsball-0.3.120}/tests/proxy_session_test.py +0 -0
  228. {sportsball-0.3.119 → sportsball-0.3.120}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.119
3
+ Version: 0.3.120
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.119',
29
+ version='0.3.120',
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.119"
7
+ __VERSION__ = "0.3.120"
@@ -1,6 +1,6 @@
1
1
  """AFL AFL game model."""
2
2
 
3
- # pylint: disable=too-many-statements,protected-access,too-many-arguments,bare-except
3
+ # pylint: disable=too-many-statements,protected-access,too-many-arguments,bare-except,duplicate-code
4
4
  import datetime
5
5
  import re
6
6
 
@@ -199,7 +199,7 @@ class AFLAFLLeagueModel(LeagueModel):
199
199
  def __init__(
200
200
  self, session: requests_cache.CachedSession, position: int | None = None
201
201
  ) -> None:
202
- super().__init__(League.AFL, session)
202
+ super().__init__(League.AFL, session, position=position)
203
203
 
204
204
  @classmethod
205
205
  def name(cls) -> str:
@@ -1,5 +1,6 @@
1
1
  """AFL AFL player model."""
2
2
 
3
+ # pylint: disable=duplicate-code
3
4
  from ...player_model import PlayerModel
4
5
 
5
6
 
@@ -0,0 +1,25 @@
1
+ """AFL AFL venue model."""
2
+
3
+ # pylint: disable=too-many-statements,protected-access,duplicate-code
4
+ import datetime
5
+
6
+ import requests_cache
7
+
8
+ from ...google.google_address_model import create_google_address_model
9
+ from ...venue_model import VenueModel
10
+
11
+
12
+ def create_afl_afl_venue_model(
13
+ venue_name: str,
14
+ session: requests_cache.CachedSession,
15
+ dt: datetime.datetime,
16
+ ) -> VenueModel:
17
+ """Create a game model from AFL Tables."""
18
+ address_model = create_google_address_model(venue_name, session, dt)
19
+ return VenueModel(
20
+ identifier=venue_name,
21
+ name=venue_name,
22
+ address=address_model,
23
+ is_grass=None,
24
+ is_indoor=None,
25
+ )
@@ -2611,6 +2611,15 @@ OMNI_COLISEUM = SportsballGeocodeTuple(
2611
2611
  housenumber="100",
2612
2612
  country="USA",
2613
2613
  )
2614
+ MCCAMISH_PAVILION = SportsballGeocodeTuple(
2615
+ city="Atlanta",
2616
+ state="GA",
2617
+ postal="",
2618
+ lat=33.780833,
2619
+ lng=-84.392778,
2620
+ housenumber="965",
2621
+ country="USA",
2622
+ )
2614
2623
  _CACHED_GEOCODES: dict[str, Any] = {
2615
2624
  "S.C.G. - Australia": SCG,
2616
2625
  "Victoria Park - Australia": SportsballGeocodeTuple(
@@ -5558,15 +5567,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
5558
5567
  housenumber="701",
5559
5568
  country="USA",
5560
5569
  ),
5561
- "McCamish Pavilion, Atlanta, Georgia": SportsballGeocodeTuple(
5562
- city="Atlanta",
5563
- state="GA",
5564
- postal="",
5565
- lat=33.780833,
5566
- lng=-84.392778,
5567
- housenumber="965",
5568
- country="USA",
5569
- ),
5570
+ "McCamish Pavilion, Atlanta, Georgia": MCCAMISH_PAVILION,
5570
5571
  "Maravich Assembly Center, Baton Rouge, Louisiana": PETE_MARAVICH_ASSEMBLY_CENTER,
5571
5572
  "Viejas Arena, San Diego, California": VIEJAS_ARENA,
5572
5573
  "Reitz Arena, Baltimore, Maryland": SportsballGeocodeTuple(
@@ -13882,6 +13883,27 @@ _CACHED_GEOCODES: dict[str, Any] = {
13882
13883
  "Marvel Stadium, Melbourne": MARVEL_STADIUM,
13883
13884
  "Gabba, Brisbane": GABBA,
13884
13885
  "Optus Stadium, Perth": OPTUS_STADIUM,
13886
+ "Ball Arena - Denver, Colorado, USA - United States": PEPSI_CENTRE,
13887
+ "Alexander Memorial Coliseum, Atlanta, Georgia": MCCAMISH_PAVILION,
13888
+ "Alltell Arena, North Little Rock, Arkansas": SIMMONS_BANK_ARENA,
13889
+ "Auburn Hills, Michigan": SportsballGeocodeTuple(
13890
+ city="Auburn Hills",
13891
+ state="MI",
13892
+ postal="",
13893
+ lat=42.6875,
13894
+ lng=-83.234167,
13895
+ housenumber="",
13896
+ country="USA",
13897
+ ),
13898
+ "Guaynabo": SportsballGeocodeTuple(
13899
+ city="Guaynabo",
13900
+ state="PR",
13901
+ postal="",
13902
+ lat=18.366667,
13903
+ lng=-66.1,
13904
+ housenumber="",
13905
+ country="USA",
13906
+ ),
13885
13907
  }
13886
13908
 
13887
13909
 
@@ -8,6 +8,7 @@ from ...combined.combined_league_model import CombinedLeagueModel
8
8
  from ...league import League
9
9
  from ..espn.nba_espn_league_model import NBAESPNLeagueModel
10
10
  from ..nba.nba_nba_league_model import NBANBALeagueModel
11
+ from ..nbacom.nba_nbacom_league_model import NBANBAComLeagueModel
11
12
  from ..oddsportal.nba_oddsportal_league_model import NBAOddsPortalLeagueModel
12
13
  from ..sportsdb.nba_sportsdb_league_model import NBASportsDBLeagueModel
13
14
  from ..sportsreference.nba_sportsreference_league_model import \
@@ -903,6 +904,7 @@ class NBACombinedLeagueModel(CombinedLeagueModel):
903
904
  NBASportsDBLeagueModel(session, position=2),
904
905
  NBASportsReferenceLeagueModel(session, position=3),
905
906
  NBAOddsPortalLeagueModel(session, position=4),
907
+ NBANBAComLeagueModel(session, position=5),
906
908
  ],
907
909
  league_filter,
908
910
  )
@@ -0,0 +1,56 @@
1
+ """NBA NBA.com game model."""
2
+
3
+ # pylint: disable=too-many-statements,protected-access,too-many-arguments,bare-except
4
+ import datetime
5
+ from typing import Any
6
+
7
+ import extruct # type: ignore
8
+ import requests_cache
9
+
10
+ from ...game_model import GameModel
11
+ from ...league import League
12
+ from .nba_nbacom_team_model import create_nba_nbacom_team_model
13
+ from .nba_nbacom_venue_model import create_nba_nbacom_venue_model
14
+
15
+
16
+ def create_nba_nbacom_game_model(
17
+ game: dict[str, Any], session: requests_cache.CachedSession
18
+ ) -> GameModel:
19
+ """Create a game model from AFL Tables."""
20
+ game_id = game["gameId"]
21
+ venue_name: str | None = None
22
+ dt = None
23
+ with session.cache_disabled():
24
+ response = session.get(f"https://www.nba.com/game/{game_id}")
25
+ response.raise_for_status()
26
+ data = extruct.extract(response.text, base_url=response.url)
27
+ for jsonld in data["json-ld"]:
28
+ location = jsonld.get("location")
29
+ if location is not None:
30
+ venue_name = location["name"]
31
+ start_date = jsonld.get("startDate")
32
+ if start_date is not None:
33
+ dt = datetime.datetime.fromisoformat(start_date)
34
+
35
+ if venue_name is None:
36
+ raise ValueError("venue_name is null")
37
+ if dt is None:
38
+ raise ValueError("dt is null")
39
+ venue_model = create_nba_nbacom_venue_model(venue_name, session, dt)
40
+ return GameModel(
41
+ dt=dt,
42
+ week=None,
43
+ game_number=None,
44
+ venue=venue_model,
45
+ teams=[
46
+ create_nba_nbacom_team_model(game["homeTeam"], session, dt),
47
+ create_nba_nbacom_team_model(game["awayTeam"], session, dt),
48
+ ],
49
+ end_dt=None,
50
+ attendance=None,
51
+ league=League.NBA,
52
+ year=datetime.datetime.today().year,
53
+ season_type=None,
54
+ postponed=None,
55
+ play_off=None,
56
+ )
@@ -0,0 +1,40 @@
1
+ """NBA NBA.com league model."""
2
+
3
+ # pylint: disable=too-many-statements,protected-access,too-many-locals,bare-except,too-many-branches,duplicate-code
4
+ import datetime
5
+ import logging
6
+ from typing import Iterator
7
+
8
+ import requests_cache
9
+
10
+ from ...game_model import GameModel
11
+ from ...league import League
12
+ from ...league_model import LeagueModel
13
+ from .nba_nbacom_game_model import create_nba_nbacom_game_model
14
+
15
+
16
+ class NBANBAComLeagueModel(LeagueModel):
17
+ """NBA NBA.com implementation of the league model."""
18
+
19
+ def __init__(
20
+ self, session: requests_cache.CachedSession, position: int | None = None
21
+ ) -> None:
22
+ super().__init__(League.AFL, session, position=position)
23
+
24
+ @classmethod
25
+ def name(cls) -> str:
26
+ return "nba-nbacom-league-model"
27
+
28
+ @property
29
+ def games(self) -> Iterator[GameModel]:
30
+ with self.session.cache_disabled():
31
+ date_slug = datetime.datetime.today().date().strftime("%Y%m%d")
32
+ response = self.session.get(
33
+ f"https://stats.nba.com/js/data/leaders/00_daily_lineups_{date_slug}.json"
34
+ )
35
+ if response.ok:
36
+ lineup = response.json()
37
+ for game in lineup["games"]:
38
+ yield create_nba_nbacom_game_model(game, self.session)
39
+ else:
40
+ logging.warning("Failed to fetch NBA daily lineups.")
@@ -0,0 +1,44 @@
1
+ """NBA NBA.com player model."""
2
+
3
+ from typing import Any
4
+
5
+ from ...player_model import PlayerModel
6
+
7
+
8
+ def create_nba_nbacom_player_model(player_dict: dict[str, Any]) -> PlayerModel:
9
+ """Create a player model from AFL AFL."""
10
+ return PlayerModel(
11
+ identifier=str(player_dict["personId"]),
12
+ jersey=None,
13
+ kicks=None,
14
+ fumbles=None,
15
+ fumbles_lost=None,
16
+ field_goals=None,
17
+ field_goals_attempted=None,
18
+ offensive_rebounds=None,
19
+ assists=None,
20
+ turnovers=None,
21
+ name=player_dict["playerName"],
22
+ marks=None,
23
+ handballs=None,
24
+ disposals=None,
25
+ goals=None,
26
+ behinds=None,
27
+ hit_outs=None,
28
+ tackles=None,
29
+ rebounds=None,
30
+ insides=None,
31
+ clearances=None,
32
+ clangers=None,
33
+ free_kicks_for=None,
34
+ free_kicks_against=None,
35
+ brownlow_votes=None,
36
+ contested_possessions=None,
37
+ uncontested_possessions=None,
38
+ contested_marks=None,
39
+ marks_inside=None,
40
+ one_percenters=None,
41
+ bounces=None,
42
+ goal_assists=None,
43
+ percentage_played=None,
44
+ )
@@ -0,0 +1,38 @@
1
+ """NBA NBA.com team model."""
2
+
3
+ # pylint: disable=duplicate-code,too-many-arguments
4
+ import datetime
5
+ from typing import Any
6
+
7
+ import requests_cache
8
+
9
+ from ...google.google_news_model import create_google_news_models
10
+ from ...league import League
11
+ from ...team_model import TeamModel
12
+ from .nba_nbacom_player_model import create_nba_nbacom_player_model
13
+
14
+
15
+ def create_nba_nbacom_team_model(
16
+ team: dict[str, Any],
17
+ session: requests_cache.CachedSession,
18
+ dt: datetime.datetime,
19
+ ) -> TeamModel:
20
+ """Create a team model from AFL AFL."""
21
+ team_name = team["teamAbbreviation"]
22
+ return TeamModel(
23
+ identifier=str(team["teamId"]),
24
+ name=team_name,
25
+ location=None,
26
+ players=[create_nba_nbacom_player_model(x) for x in team["players"]],
27
+ odds=[],
28
+ points=None,
29
+ ladder_rank=None,
30
+ kicks=None,
31
+ news=create_google_news_models(team_name, session, dt, League.NBA),
32
+ social=[],
33
+ field_goals=None,
34
+ field_goals_attempted=None,
35
+ offensive_rebounds=None,
36
+ assists=None,
37
+ turnovers=None,
38
+ )
@@ -1,4 +1,4 @@
1
- """AFL AFL venue model."""
1
+ """NBA NBA.com venue model."""
2
2
 
3
3
  # pylint: disable=too-many-statements,protected-access
4
4
  import datetime
@@ -9,7 +9,7 @@ from ...google.google_address_model import create_google_address_model
9
9
  from ...venue_model import VenueModel
10
10
 
11
11
 
12
- def create_afl_afl_venue_model(
12
+ def create_nba_nbacom_venue_model(
13
13
  venue_name: str,
14
14
  session: requests_cache.CachedSession,
15
15
  dt: datetime.datetime,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.119
3
+ Version: 0.3.120
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
@@ -95,6 +95,12 @@ sportsball/data/nba/nba/__init__.py
95
95
  sportsball/data/nba/nba/nba_nba_game_model.py
96
96
  sportsball/data/nba/nba/nba_nba_league_model.py
97
97
  sportsball/data/nba/nba/nba_nba_team_model.py
98
+ sportsball/data/nba/nbacom/__init__.py
99
+ sportsball/data/nba/nbacom/nba_nbacom_game_model.py
100
+ sportsball/data/nba/nbacom/nba_nbacom_league_model.py
101
+ sportsball/data/nba/nbacom/nba_nbacom_player_model.py
102
+ sportsball/data/nba/nbacom/nba_nbacom_team_model.py
103
+ sportsball/data/nba/nbacom/nba_nbacom_venue_model.py
98
104
  sportsball/data/nba/oddsportal/__init__.py
99
105
  sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py
100
106
  sportsball/data/nba/sportsdb/__init__.py
File without changes
File without changes
File without changes
File without changes
File without changes