sportsball 0.3.83__tar.gz → 0.3.85__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. {sportsball-0.3.83/sportsball.egg-info → sportsball-0.3.85}/PKG-INFO +1 -1
  2. {sportsball-0.3.83 → sportsball-0.3.85}/setup.py +1 -1
  3. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/__init__.py +1 -1
  4. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/afl/afl_afl_league_model.py +13 -15
  5. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/combined/combined_team_model.py +8 -3
  6. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/google/google_address_model.py +46 -0
  7. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/player_model.py +2 -1
  8. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/sportsreference/sportsreference_team_model.py +2 -0
  9. {sportsball-0.3.83 → sportsball-0.3.85/sportsball.egg-info}/PKG-INFO +1 -1
  10. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/afl/afl/afl_afl_league_model_test.py +5 -1
  11. {sportsball-0.3.83 → sportsball-0.3.85}/LICENSE +0 -0
  12. {sportsball-0.3.83 → sportsball-0.3.85}/MANIFEST.in +0 -0
  13. {sportsball-0.3.83 → sportsball-0.3.85}/README.md +0 -0
  14. {sportsball-0.3.83 → sportsball-0.3.85}/requirements.txt +0 -0
  15. {sportsball-0.3.83 → sportsball-0.3.85}/setup.cfg +0 -0
  16. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/__main__.py +0 -0
  17. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/args.py +0 -0
  18. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/cache.py +0 -0
  19. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/__init__.py +0 -0
  20. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/address_model.py +0 -0
  21. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/__init__.py +0 -0
  22. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/afl/__init__.py +0 -0
  23. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
  24. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
  25. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
  26. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
  27. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/afltables/__init__.py +0 -0
  28. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
  29. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
  30. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
  31. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
  32. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
  33. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
  34. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
  35. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/combined/__init__.py +0 -0
  36. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
  37. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/espn/__init__.py +0 -0
  38. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
  39. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/oddsportal/__init__.py +0 -0
  40. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
  41. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/aussportsbetting/__init__.py +0 -0
  42. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
  43. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
  44. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
  45. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
  46. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
  47. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
  48. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/bookie_model.py +0 -0
  49. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/combined/__init__.py +0 -0
  50. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/combined/combined_address_model.py +0 -0
  51. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/combined/combined_game_model.py +0 -0
  52. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/combined/combined_league_model.py +0 -0
  53. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/combined/combined_player_model.py +0 -0
  54. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/combined/combined_venue_model.py +0 -0
  55. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/combined/combined_weather_model.py +0 -0
  56. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/espn/__init__.py +0 -0
  57. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/espn/espn_bookie_model.py +0 -0
  58. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/espn/espn_game_model.py +0 -0
  59. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/espn/espn_league_model.py +0 -0
  60. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/espn/espn_odds_model.py +0 -0
  61. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/espn/espn_player_model.py +0 -0
  62. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/espn/espn_team_model.py +0 -0
  63. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/espn/espn_venue_model.py +0 -0
  64. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/field_type.py +0 -0
  65. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/game_model.py +0 -0
  66. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/google/__init__.py +0 -0
  67. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/google/google_news_model.py +0 -0
  68. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/league.py +0 -0
  69. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/league_model.py +0 -0
  70. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/model.py +0 -0
  71. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/__init__.py +0 -0
  72. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/combined/__init__.py +0 -0
  73. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
  74. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/espn/__init__.py +0 -0
  75. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
  76. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/nba/__init__.py +0 -0
  77. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
  78. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
  79. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
  80. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/oddsportal/__init__.py +0 -0
  81. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
  82. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/sportsdb/__init__.py +0 -0
  83. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
  84. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/sportsreference/__init__.py +0 -0
  85. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
  86. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaab/__init__.py +0 -0
  87. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaab/combined/__init__.py +0 -0
  88. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
  89. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaab/espn/__init__.py +0 -0
  90. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
  91. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
  92. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
  93. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
  94. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
  95. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaaf/__init__.py +0 -0
  96. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaaf/combined/__init__.py +0 -0
  97. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
  98. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaaf/espn/__init__.py +0 -0
  99. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
  100. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
  101. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
  102. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/news_model.py +0 -0
  103. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nfl/__init__.py +0 -0
  104. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
  105. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
  106. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nfl/combined/__init__.py +0 -0
  107. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
  108. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nfl/espn/__init__.py +0 -0
  109. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
  110. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
  111. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
  112. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
  113. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
  114. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/odds_model.py +0 -0
  115. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/oddsportal/__init__.py +0 -0
  116. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/oddsportal/decrypt.py +0 -0
  117. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
  118. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
  119. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
  120. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
  121. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
  122. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
  123. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/season_type.py +0 -0
  124. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/social_model.py +0 -0
  125. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/sportsdb/__init__.py +0 -0
  126. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
  127. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
  128. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
  129. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
  130. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/sportsreference/__init__.py +0 -0
  131. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/sportsreference/sportsreference_game_model.py +0 -0
  132. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
  133. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
  134. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
  135. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/team_model.py +0 -0
  136. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/venue_model.py +0 -0
  137. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/weather/__init__.py +0 -0
  138. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/weather/gribstream/__init__.py +0 -0
  139. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
  140. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/weather/multi_weather_model.py +0 -0
  141. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/weather/openmeteo/__init__.py +0 -0
  142. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
  143. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/weather_model.py +0 -0
  144. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/wikipedia/__init__.py +0 -0
  145. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
  146. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/x/__init__.py +0 -0
  147. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/data/x/x_social_model.py +0 -0
  148. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/logger.py +0 -0
  149. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/loglevel.py +0 -0
  150. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/playwright.py +0 -0
  151. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/proxy_session.py +0 -0
  152. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/session.py +0 -0
  153. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/sportsball.py +0 -0
  154. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/vendor/__init__.py +0 -0
  155. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball/vendor/pygooglenews/__init__.py +0 -0
  156. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball.egg-info/SOURCES.txt +0 -0
  157. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball.egg-info/dependency_links.txt +0 -0
  158. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball.egg-info/entry_points.txt +0 -0
  159. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball.egg-info/not-zip-safe +0 -0
  160. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball.egg-info/requires.txt +0 -0
  161. {sportsball-0.3.83 → sportsball-0.3.85}/sportsball.egg-info/top_level.txt +0 -0
  162. {sportsball-0.3.83 → sportsball-0.3.85}/tests/__init__.py +0 -0
  163. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/__init__.py +0 -0
  164. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/afl/__init__.py +0 -0
  165. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/afl/afl/__init__.py +0 -0
  166. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/afl/afltables/__init__.py +0 -0
  167. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
  168. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
  169. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
  170. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/aussportsbetting/__init__.py +0 -0
  171. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
  172. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/combined/__init__.py +0 -0
  173. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/combined/combined_game_model_test.py +0 -0
  174. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/combined/combined_player_model_test.py +0 -0
  175. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/espn/__init__.py +0 -0
  176. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/espn/espn_game_model_test.py +0 -0
  177. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/espn/espn_player_model_test.py +0 -0
  178. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/game_model_test.py +0 -0
  179. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/google/__init__.py +0 -0
  180. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/google/google_address_model_test.py +0 -0
  181. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/google/google_news_model_test.py +0 -0
  182. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/nba/__init__.py +0 -0
  183. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/nba/nba/__init__.py +0 -0
  184. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
  185. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
  186. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
  187. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/nba/sportsdb/__init__.py +0 -0
  188. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
  189. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/nba/sportsreference/__init__.py +0 -0
  190. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
  191. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/ncaab/__init__.py +0 -0
  192. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/ncaab/sportsreference/__init__.py +0 -0
  193. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
  194. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/nfl/__init__.py +0 -0
  195. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/nfl/sportsdb/__init__.py +0 -0
  196. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
  197. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/oddsportal/__init__.py +0 -0
  198. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/oddsportal/decrypt_test.py +0 -0
  199. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
  200. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
  201. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/player_model_test.py +0 -0
  202. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/social_model_test.py +0 -0
  203. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/sportsdb/__init__.py +0 -0
  204. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
  205. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
  206. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
  207. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
  208. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/sportsreference/__init__.py +0 -0
  209. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
  210. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
  211. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
  212. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
  213. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
  214. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/team_model_test.py +0 -0
  215. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/x/__init__.py +0 -0
  216. {sportsball-0.3.83 → sportsball-0.3.85}/tests/data/x/x_social_model_test.py +0 -0
  217. {sportsball-0.3.83 → sportsball-0.3.85}/tests/proxy_session_test.py +0 -0
  218. {sportsball-0.3.83 → sportsball-0.3.85}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.83
3
+ Version: 0.3.85
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.83',
29
+ version='0.3.85',
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.83"
7
+ __VERSION__ = "0.3.85"
@@ -31,10 +31,16 @@ def _parse_game_info(
31
31
  for div_positions_row in div.find_all(
32
32
  "div", {"class": re.compile(".*team-lineups__positions-row.*")}
33
33
  ):
34
- row_players: list[list[tuple[str, str, str, str]]] = []
35
- for div_team_players in div_positions_row.find_all(
36
- "div",
37
- {"class": re.compile(".*team-lineups__positions-players.*")},
34
+ row_players: list[list[tuple[str, str, str, str]]] = [[], []]
35
+ for count, div_team_players in enumerate(
36
+ div_positions_row.find_all(
37
+ "div",
38
+ {
39
+ "class": re.compile(
40
+ ".*team-lineups__positions-players-container.*"
41
+ )
42
+ },
43
+ )
38
44
  ):
39
45
  team_players: list[tuple[str, str, str, str]] = []
40
46
  for a in div_team_players.find_all(
@@ -59,17 +65,9 @@ def _parse_game_info(
59
65
  team_players.append(
60
66
  (player_id, player_number, first_name, second_name)
61
67
  )
62
- row_players.append(team_players)
63
- if len(row_players) >= 2:
64
- break
65
- for count, row_players_list in enumerate(row_players):
66
- try:
67
- teams_players[count].extend(row_players_list)
68
- except IndexError as exc:
69
- # logging.error(html)
70
- logging.error(len(team_players))
71
- logging.error(count)
72
- raise exc
68
+ row_players[count].extend(team_players)
69
+ for count, row_players_list in enumerate(row_players):
70
+ teams_players[count].extend(row_players_list)
73
71
  dt = None
74
72
  for time in div.find_all(
75
73
  "time", {"class": re.compile(".*match-list-alt__header-time.*")}
@@ -14,6 +14,13 @@ from .combined_player_model import create_combined_player_model
14
14
  REGEX = re.compile("[^a-zA-Z]")
15
15
 
16
16
 
17
+ def _normalise_player_name(name: str) -> str:
18
+ # Handle "Surname, Firstname"
19
+ if "," in name:
20
+ name = " ".join(reversed([x.strip() for x in name.split(",")]))
21
+ return REGEX.sub("", unicodedata.normalize("NFC", name).lower())
22
+
23
+
17
24
  def create_combined_team_model(
18
25
  team_models: list[TeamModel],
19
26
  identifier: str,
@@ -35,9 +42,7 @@ def create_combined_team_model(
35
42
  location = team_model_location
36
43
  for player_model in team_model.players:
37
44
  player_id = player_model.identifier
38
- player_name_key = REGEX.sub(
39
- "", unicodedata.normalize("NFC", player_model.name).lower()
40
- )
45
+ player_name_key = _normalise_player_name(player_model.name)
41
46
  if player_model.identifier in player_identity_map:
42
47
  player_id = player_identity_map[player_id]
43
48
  elif player_name_key in names:
@@ -13287,6 +13287,52 @@ _CACHED_GEOCODES: dict[str, Any] = {
13287
13287
  housenumber="",
13288
13288
  country="USA",
13289
13289
  ),
13290
+ "Rebecca D. Lockhart Arena, Orem, Utah": SportsballGeocodeTuple(
13291
+ city="Orem",
13292
+ state="UT",
13293
+ postal="84058",
13294
+ lat=40.2787192,
13295
+ lng=-111.7155783,
13296
+ housenumber="785",
13297
+ country="USA",
13298
+ ),
13299
+ "Reliant Stadium, Houston, Texas": NRG_STADIUM,
13300
+ "South Padre Island Convention Centre, South Padre Island, Texas": SportsballGeocodeTuple(
13301
+ city="South Padre Island",
13302
+ state="TX",
13303
+ postal="78597",
13304
+ lat=26.140556,
13305
+ lng=-97.175,
13306
+ housenumber="7355",
13307
+ country="USA",
13308
+ ),
13309
+ "Moon Palace Resort, Cancun": SportsballGeocodeTuple(
13310
+ city="Cancun",
13311
+ state="QR",
13312
+ postal="77500",
13313
+ lat=20.9886511,
13314
+ lng=-86.826701,
13315
+ housenumber="340",
13316
+ country="Mexico",
13317
+ ),
13318
+ "Meeks Family Fieldhouse at Carson Center, Evansville, Indiana": SportsballGeocodeTuple(
13319
+ city="Evansville",
13320
+ state="IN",
13321
+ postal="",
13322
+ lat=37.9963496,
13323
+ lng=-87.6993641,
13324
+ housenumber="",
13325
+ country="USA",
13326
+ ),
13327
+ "José Miguel Agrelot Coliseum, San Juan": SportsballGeocodeTuple(
13328
+ city="San Juan",
13329
+ state="PR",
13330
+ postal="",
13331
+ lat=18.427717,
13332
+ lng=-66.061392,
13333
+ housenumber="500",
13334
+ country="USA",
13335
+ ),
13290
13336
  }
13291
13337
 
13292
13338
 
@@ -41,6 +41,7 @@ PLAYER_ONE_PERCENTERS_COLUMN: Literal["one_percenters"] = "one_percenters"
41
41
  PLAYER_BOUNCES_COLUMN: Literal["bounces"] = "bounces"
42
42
  PLAYER_GOAL_ASSISTS_COLUMN: Literal["goal_assists"] = "goal_assists"
43
43
  PLAYER_PERCENTAGE_PLAYED_COLUMN: Literal["percentage_played"] = "percentage_played"
44
+ PLAYER_NAME_COLUMN: Literal["name"] = "name"
44
45
 
45
46
 
46
47
  class PlayerModel(BaseModel):
@@ -92,7 +93,7 @@ class PlayerModel(BaseModel):
92
93
  json_schema_extra={TYPE_KEY: FieldType.LOOKAHEAD},
93
94
  alias=TURNOVERS_COLUMN,
94
95
  )
95
- name: str
96
+ name: str = Field(..., alias=PLAYER_NAME_COLUMN)
96
97
  marks: int | None = Field(
97
98
  ...,
98
99
  json_schema_extra={TYPE_KEY: FieldType.LOOKAHEAD},
@@ -30,6 +30,7 @@ _BAD_URLS = {
30
30
  "https://www.sports-reference.com/cbb/players/aj-caldwell-2.html",
31
31
  "https://www.sports-reference.com/cbb/players/akuwovo-ogheneyole-1.html",
32
32
  "https://www.sports-reference.com/cbb/players/jevon-lyle-1.html",
33
+ "https://www.sports-reference.com/cbb/players/mike-aaman-1.html",
33
34
  }
34
35
  _NON_WAYBACK_URLS: set[str] = {
35
36
  "https://www.sports-reference.com/cbb/schools/stony-brook/women/2021.html",
@@ -39,6 +40,7 @@ _NON_WAYBACK_URLS: set[str] = {
39
40
  }
40
41
  _BAD_TEAM_URLS = {
41
42
  "https://www.sports-reference.com/cbb/schools/mid-atlantic-christian/2016.html",
43
+ "https://www.sports-reference.com/cbb/schools/claflin/2013.html",
42
44
  }
43
45
 
44
46
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.83
3
+ Version: 0.3.85
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
@@ -15,7 +15,7 @@ class TestAFLAFLLeagueModel(unittest.TestCase):
15
15
 
16
16
  def test_parse_game_info(self):
17
17
  with open(os.path.join(self.dir, "team-lineups.html")) as handle:
18
- list(_parse_game_info(handle.read(), self._session, [
18
+ game_models = list(_parse_game_info(handle.read(), self._session, [
19
19
  "Melbourne",
20
20
  "Richmond",
21
21
  "Collingwood",
@@ -35,3 +35,7 @@ class TestAFLAFLLeagueModel(unittest.TestCase):
35
35
  "Hawthorn",
36
36
  "West Coast Eagles",
37
37
  ]))
38
+ first_game = game_models[0]
39
+ self.assertEqual(len(first_game.teams), 2)
40
+ for team in first_game.teams:
41
+ self.assertEqual(len(team.players), 22)
File without changes
File without changes
File without changes
File without changes