sportsball 0.3.54__tar.gz → 0.3.55__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 (216) hide show
  1. {sportsball-0.3.54/sportsball.egg-info → sportsball-0.3.55}/PKG-INFO +2 -2
  2. {sportsball-0.3.54 → sportsball-0.3.55}/requirements.txt +1 -1
  3. {sportsball-0.3.54 → sportsball-0.3.55}/setup.py +1 -1
  4. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/__init__.py +1 -1
  5. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/google/google_address_model.py +9 -0
  6. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsreference/sportsreference_game_model.py +13 -4
  7. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsreference/sportsreference_team_model.py +1 -0
  8. {sportsball-0.3.54 → sportsball-0.3.55/sportsball.egg-info}/PKG-INFO +2 -2
  9. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball.egg-info/requires.txt +1 -1
  10. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsreference/sportsreference_game_model_test.py +60 -0
  11. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsreference/sportsreference_team_model_test.py +20 -0
  12. {sportsball-0.3.54 → sportsball-0.3.55}/LICENSE +0 -0
  13. {sportsball-0.3.54 → sportsball-0.3.55}/MANIFEST.in +0 -0
  14. {sportsball-0.3.54 → sportsball-0.3.55}/README.md +0 -0
  15. {sportsball-0.3.54 → sportsball-0.3.55}/setup.cfg +0 -0
  16. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/__main__.py +0 -0
  17. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/args.py +0 -0
  18. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/cache.py +0 -0
  19. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/__init__.py +0 -0
  20. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/address_model.py +0 -0
  21. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/__init__.py +0 -0
  22. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afl/__init__.py +0 -0
  23. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
  24. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afl/afl_afl_league_model.py +0 -0
  25. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
  26. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
  27. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
  28. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/__init__.py +0 -0
  29. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
  30. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
  31. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
  32. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
  33. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
  34. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
  35. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
  36. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/combined/__init__.py +0 -0
  37. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
  38. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/espn/__init__.py +0 -0
  39. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
  40. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/oddsportal/__init__.py +0 -0
  41. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
  42. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/__init__.py +0 -0
  43. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
  44. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
  45. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
  46. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
  47. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
  48. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
  49. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/bookie_model.py +0 -0
  50. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/__init__.py +0 -0
  51. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_address_model.py +0 -0
  52. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_game_model.py +0 -0
  53. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_league_model.py +0 -0
  54. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_player_model.py +0 -0
  55. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_team_model.py +0 -0
  56. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_venue_model.py +0 -0
  57. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/combined/combined_weather_model.py +0 -0
  58. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/__init__.py +0 -0
  59. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_bookie_model.py +0 -0
  60. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_game_model.py +0 -0
  61. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_league_model.py +0 -0
  62. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_odds_model.py +0 -0
  63. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_player_model.py +0 -0
  64. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_team_model.py +0 -0
  65. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/espn/espn_venue_model.py +0 -0
  66. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/field_type.py +0 -0
  67. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/game_model.py +0 -0
  68. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/google/__init__.py +0 -0
  69. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/google/google_news_model.py +0 -0
  70. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/league.py +0 -0
  71. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/league_model.py +0 -0
  72. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/model.py +0 -0
  73. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/__init__.py +0 -0
  74. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/combined/__init__.py +0 -0
  75. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
  76. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/espn/__init__.py +0 -0
  77. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
  78. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/nba/__init__.py +0 -0
  79. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
  80. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
  81. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
  82. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/oddsportal/__init__.py +0 -0
  83. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
  84. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/sportsdb/__init__.py +0 -0
  85. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
  86. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/sportsreference/__init__.py +0 -0
  87. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
  88. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/__init__.py +0 -0
  89. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/combined/__init__.py +0 -0
  90. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
  91. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/espn/__init__.py +0 -0
  92. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
  93. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
  94. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
  95. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
  96. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
  97. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/__init__.py +0 -0
  98. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/combined/__init__.py +0 -0
  99. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
  100. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/espn/__init__.py +0 -0
  101. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
  102. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
  103. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
  104. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/news_model.py +0 -0
  105. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/__init__.py +0 -0
  106. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
  107. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
  108. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/combined/__init__.py +0 -0
  109. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
  110. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/espn/__init__.py +0 -0
  111. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
  112. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
  113. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
  114. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
  115. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
  116. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/odds_model.py +0 -0
  117. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/__init__.py +0 -0
  118. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/decrypt.py +0 -0
  119. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
  120. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
  121. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
  122. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
  123. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
  124. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
  125. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/player_model.py +0 -0
  126. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/season_type.py +0 -0
  127. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/social_model.py +0 -0
  128. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsdb/__init__.py +0 -0
  129. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
  130. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
  131. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
  132. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
  133. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsreference/__init__.py +0 -0
  134. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
  135. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
  136. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
  137. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/team_model.py +0 -0
  138. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/venue_model.py +0 -0
  139. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather/__init__.py +0 -0
  140. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather/gribstream/__init__.py +0 -0
  141. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
  142. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather/multi_weather_model.py +0 -0
  143. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather/openmeteo/__init__.py +0 -0
  144. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
  145. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/weather_model.py +0 -0
  146. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/wikipedia/__init__.py +0 -0
  147. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
  148. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/x/__init__.py +0 -0
  149. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/data/x/x_social_model.py +0 -0
  150. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/logger.py +0 -0
  151. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/loglevel.py +0 -0
  152. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/playwright.py +0 -0
  153. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/proxy_session.py +0 -0
  154. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/session.py +0 -0
  155. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/sportsball.py +0 -0
  156. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/vendor/__init__.py +0 -0
  157. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball/vendor/pygooglenews/__init__.py +0 -0
  158. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball.egg-info/SOURCES.txt +0 -0
  159. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball.egg-info/dependency_links.txt +0 -0
  160. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball.egg-info/entry_points.txt +0 -0
  161. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball.egg-info/not-zip-safe +0 -0
  162. {sportsball-0.3.54 → sportsball-0.3.55}/sportsball.egg-info/top_level.txt +0 -0
  163. {sportsball-0.3.54 → sportsball-0.3.55}/tests/__init__.py +0 -0
  164. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/__init__.py +0 -0
  165. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/afl/__init__.py +0 -0
  166. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/afl/afltables/__init__.py +0 -0
  167. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
  168. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
  169. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
  170. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/aussportsbetting/__init__.py +0 -0
  171. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
  172. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/combined/__init__.py +0 -0
  173. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/combined/combined_game_model_test.py +0 -0
  174. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/combined/combined_player_model_test.py +0 -0
  175. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/espn/__init__.py +0 -0
  176. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/espn/espn_game_model_test.py +0 -0
  177. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/espn/espn_player_model_test.py +0 -0
  178. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/game_model_test.py +0 -0
  179. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/google/__init__.py +0 -0
  180. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/google/google_address_model_test.py +0 -0
  181. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/google/google_news_model_test.py +0 -0
  182. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/__init__.py +0 -0
  183. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/nba/__init__.py +0 -0
  184. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
  185. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
  186. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
  187. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/sportsdb/__init__.py +0 -0
  188. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
  189. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/sportsreference/__init__.py +0 -0
  190. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
  191. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/ncaab/__init__.py +0 -0
  192. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/ncaab/sportsreference/__init__.py +0 -0
  193. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
  194. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nfl/__init__.py +0 -0
  195. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nfl/sportsdb/__init__.py +0 -0
  196. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
  197. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/oddsportal/__init__.py +0 -0
  198. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/oddsportal/decrypt_test.py +0 -0
  199. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
  200. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
  201. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/player_model_test.py +0 -0
  202. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/social_model_test.py +0 -0
  203. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsdb/__init__.py +0 -0
  204. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
  205. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
  206. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
  207. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
  208. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsreference/__init__.py +0 -0
  209. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
  210. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
  211. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
  212. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/team_model_test.py +0 -0
  213. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/x/__init__.py +0 -0
  214. {sportsball-0.3.54 → sportsball-0.3.55}/tests/data/x/x_social_model_test.py +0 -0
  215. {sportsball-0.3.54 → sportsball-0.3.55}/tests/proxy_session_test.py +0 -0
  216. {sportsball-0.3.54 → sportsball-0.3.55}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.54
3
+ Version: 0.3.55
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
@@ -16,7 +16,7 @@ Requires-Dist: requests>=2.31.0
16
16
  Requires-Dist: requests-cache>=1.2.0
17
17
  Requires-Dist: python-dateutil>=1.16.0
18
18
  Requires-Dist: tqdm>=4.66.2
19
- Requires-Dist: beautifulsoup4>=4.12.3
19
+ Requires-Dist: beautifulsoup4>=4.13.3
20
20
  Requires-Dist: openpyxl>=3.1.5
21
21
  Requires-Dist: joblib>=1.4.2
22
22
  Requires-Dist: pyarrow>=18.0.0
@@ -3,7 +3,7 @@ requests>=2.31.0
3
3
  requests-cache>=1.2.0
4
4
  python-dateutil>=1.16.0
5
5
  tqdm>=4.66.2
6
- beautifulsoup4>=4.12.3
6
+ beautifulsoup4>=4.13.3
7
7
  openpyxl>=3.1.5
8
8
  joblib>=1.4.2
9
9
  pyarrow>=18.0.0
@@ -26,7 +26,7 @@ def install_requires() -> typing.List[str]:
26
26
 
27
27
  setup(
28
28
  name='sportsball',
29
- version='0.3.54',
29
+ version='0.3.55',
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.54"
3
+ __VERSION__ = "0.3.55"
@@ -12652,6 +12652,15 @@ _CACHED_GEOCODES: dict[str, Any] = {
12652
12652
  housenumber="563",
12653
12653
  country="USA",
12654
12654
  ),
12655
+ "Mercyhurst Athletic Center, Erie, Pennsylvania": SportsballGeocodeTuple(
12656
+ city="Erie",
12657
+ state="PA",
12658
+ postal="",
12659
+ lat=42.1046,
12660
+ lng=-80.0556,
12661
+ housenumber="",
12662
+ country="USA",
12663
+ ),
12655
12664
  }
12656
12665
 
12657
12666
 
@@ -4,6 +4,7 @@
4
4
  import datetime
5
5
  import io
6
6
  import logging
7
+ import re
7
8
  import urllib.parse
8
9
 
9
10
  import dateutil
@@ -41,6 +42,7 @@ _MONTHS = [
41
42
  "November",
42
43
  "December",
43
44
  ]
45
+ _NUMBER_PARENTHESIS_PATTERN = r"\(\d+\)"
44
46
 
45
47
 
46
48
  def _find_old_dt(
@@ -142,7 +144,9 @@ def _find_old_dt(
142
144
  points = int(team_name.split()[-1].strip())
143
145
  team_name = " ".join(team_name.split()[:-1]).strip()
144
146
  break
145
- team_name = team_name.split("(")[0].strip()
147
+ team_name = " ".join(
148
+ re.sub(_NUMBER_PARENTHESIS_PATTERN, "", team_name).split()
149
+ ).strip()
146
150
  team_a = soup.find("a", text=team_name, href=True)
147
151
  if not isinstance(team_a, Tag):
148
152
  logging.error(team_name)
@@ -206,9 +210,14 @@ def _find_old_dt(
206
210
  dt = parse(date)
207
211
  for df in dfs:
208
212
  test_row = df.iat[0, 0]
209
- if "Prev Game" in test_row:
210
- _process_team_row(df)
211
- break
213
+ try:
214
+ if "Prev Game" in test_row:
215
+ _process_team_row(df)
216
+ break
217
+ except TypeError as exc:
218
+ logging.error(test_row)
219
+ logging.error(response.text)
220
+ raise exc
212
221
 
213
222
  if venue_name is not None and not venue_name.replace(",", "").strip():
214
223
  venue_name = None
@@ -68,6 +68,7 @@ def _find_name(response: requests.Response, soup: BeautifulSoup, url: str) -> st
68
68
  if not isinstance(name_tag, Tag):
69
69
  name_tag = soup.find("meta", itemprop="og:title")
70
70
  if not isinstance(name_tag, Tag):
71
+ logging.error(type(name_tag))
71
72
  logging.error(response.text)
72
73
  raise ValueError("name_tag not a tag.") from exc
73
74
  content = name_tag.get("content")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.54
3
+ Version: 0.3.55
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
@@ -16,7 +16,7 @@ Requires-Dist: requests>=2.31.0
16
16
  Requires-Dist: requests-cache>=1.2.0
17
17
  Requires-Dist: python-dateutil>=1.16.0
18
18
  Requires-Dist: tqdm>=4.66.2
19
- Requires-Dist: beautifulsoup4>=4.12.3
19
+ Requires-Dist: beautifulsoup4>=4.13.3
20
20
  Requires-Dist: openpyxl>=3.1.5
21
21
  Requires-Dist: joblib>=1.4.2
22
22
  Requires-Dist: pyarrow>=18.0.0
@@ -3,7 +3,7 @@ requests>=2.31.0
3
3
  requests-cache>=1.2.0
4
4
  python-dateutil>=1.16.0
5
5
  tqdm>=4.66.2
6
- beautifulsoup4>=4.12.3
6
+ beautifulsoup4>=4.13.3
7
7
  openpyxl>=3.1.5
8
8
  joblib>=1.4.2
9
9
  pyarrow>=18.0.0
@@ -945,3 +945,63 @@ class TestSportsReferenceGameModel(unittest.TestCase):
945
945
  datetime.datetime(2010, 10, 10, 10, 10, 0),
946
946
  )
947
947
  self.assertEqual(game_model.dt, datetime.datetime(2016, 4, 2, 0, 0))
948
+
949
+ def test_dt_old_style_19(self):
950
+ url = "https://www.sports-reference.com/cbb/boxscores/2016-03-24-villanova.html"
951
+ with requests_mock.Mocker() as m:
952
+ with open(os.path.join(self.dir, "2016-03-24-villanova.html"), "rb") as f:
953
+ m.get(url, content=f.read())
954
+ with open(os.path.join(self.dir, "miami-fl_2016.html"), "rb") as f:
955
+ m.get("https://www.sports-reference.com/cbb/schools/miami-fl/2016.html", content=f.read())
956
+ with open(os.path.join(self.dir, "sheldon-mcclellan-1.html"), "rb") as f:
957
+ m.get("https://www.sports-reference.com/cbb/players/sheldon-mcclellan-1.html", content=f.read())
958
+ with open(os.path.join(self.dir, "anthony-lawrencejr-1.html"), "rb") as f:
959
+ m.get("https://www.sports-reference.com/cbb/players/anthony-lawrencejr-1.html", content=f.read())
960
+ with open(os.path.join(self.dir, "davon-reed-1.html"), "rb") as f:
961
+ m.get("https://www.sports-reference.com/cbb/players/davon-reed-1.html", content=f.read())
962
+ with open(os.path.join(self.dir, "kamari-murphy-1.html"), "rb") as f:
963
+ m.get("https://www.sports-reference.com/cbb/players/kamari-murphy-1.html", content=f.read())
964
+ with open(os.path.join(self.dir, "angel-rodriguez-1.html"), "rb") as f:
965
+ m.get("https://www.sports-reference.com/cbb/players/angel-rodriguez-1.html", content=f.read())
966
+ with open(os.path.join(self.dir, "mike-robinson-4.html"), "rb") as f:
967
+ m.get("https://www.sports-reference.com/cbb/players/mike-robinson-4.html", content=f.read())
968
+ with open(os.path.join(self.dir, "ebuka-izundu-1.html"), "rb") as f:
969
+ m.get("https://www.sports-reference.com/cbb/players/ebuka-izundu-1.html", content=f.read())
970
+ with open(os.path.join(self.dir, "jaquan-newton-1.html"), "rb") as f:
971
+ m.get("https://www.sports-reference.com/cbb/players/jaquan-newton-1.html", content=f.read())
972
+ with open(os.path.join(self.dir, "james-palmer-1.html"), "rb") as f:
973
+ m.get("https://www.sports-reference.com/cbb/players/james-palmer-1.html", content=f.read())
974
+ with open(os.path.join(self.dir, "tonye-jekiri-1.html"), "rb") as f:
975
+ m.get("https://www.sports-reference.com/cbb/players/tonye-jekiri-1.html", content=f.read())
976
+ with open(os.path.join(self.dir, "villanova_2016.html"), "rb") as f:
977
+ m.get("https://www.sports-reference.com/cbb/schools/villanova/2016.html", content=f.read())
978
+ with open(os.path.join(self.dir, "jalen-brunson-1.html"), "rb") as f:
979
+ m.get("https://www.sports-reference.com/cbb/players/jalen-brunson-1.html", content=f.read())
980
+ with open(os.path.join(self.dir, "ryan-arcidiacono-1.html"), "rb") as f:
981
+ m.get("https://www.sports-reference.com/cbb/players/ryan-arcidiacono-1.html", content=f.read())
982
+ with open(os.path.join(self.dir, "kevin-rafferty-1.html"), "rb") as f:
983
+ m.get("https://www.sports-reference.com/cbb/players/kevin-rafferty-1.html", content=f.read())
984
+ with open(os.path.join(self.dir, "mikal-bridges-1.html"), "rb") as f:
985
+ m.get("https://www.sports-reference.com/cbb/players/mikal-bridges-1.html", content=f.read())
986
+ with open(os.path.join(self.dir, "daniel-ochefu-1.html"), "rb") as f:
987
+ m.get("https://www.sports-reference.com/cbb/players/daniel-ochefu-1.html", content=f.read())
988
+ with open(os.path.join(self.dir, "phil-booth-1.html"), "rb") as f:
989
+ m.get("https://www.sports-reference.com/cbb/players/phil-booth-1.html", content=f.read())
990
+ with open(os.path.join(self.dir, "darryl-reynolds-1.html"), "rb") as f:
991
+ m.get("https://www.sports-reference.com/cbb/players/darryl-reynolds-1.html", content=f.read())
992
+ with open(os.path.join(self.dir, "kris-jenkins-1.html"), "rb") as f:
993
+ m.get("https://www.sports-reference.com/cbb/players/kris-jenkins-1.html", content=f.read())
994
+ with open(os.path.join(self.dir, "patrick-farrell-1.html"), "rb") as f:
995
+ m.get("https://www.sports-reference.com/cbb/players/patrick-farrell-1.html", content=f.read())
996
+ with open(os.path.join(self.dir, "josh-hart-1.html"), "rb") as f:
997
+ m.get("https://www.sports-reference.com/cbb/players/josh-hart-1.html", content=f.read())
998
+ with open(os.path.join(self.dir, "henry-lowe-1.html"), "rb") as f:
999
+ m.get("https://www.sports-reference.com/cbb/players/henry-lowe-1.html", content=f.read())
1000
+
1001
+ game_model = create_sportsreference_game_model(
1002
+ self.session,
1003
+ url,
1004
+ League.NBA,
1005
+ datetime.datetime(2010, 10, 10, 10, 10, 0),
1006
+ )
1007
+ self.assertEqual(game_model.dt, datetime.datetime(2016, 3, 24, 0, 0))
@@ -166,3 +166,23 @@ class TestSportsReferenceTeamModel(unittest.TestCase):
166
166
  {},
167
167
  )
168
168
  self.assertEqual(team_model.name, "Los Angeles Lakers")
169
+
170
+ def test_name_3(self):
171
+ url = "https://www.basketball-reference.com/teams/BOS/2015.html"
172
+ with requests_mock.Mocker() as m:
173
+ with open(os.path.join(self.dir, "BOS_2015.html"), "rb") as f:
174
+ m.get(url, content=f.read())
175
+ team_model = create_sportsreference_team_model(
176
+ self.session,
177
+ url,
178
+ datetime.datetime(2010, 10, 10, 10, 10, 00),
179
+ League.NBA,
180
+ set(),
181
+ 10.0,
182
+ {},
183
+ {},
184
+ {},
185
+ {},
186
+ {},
187
+ )
188
+ self.assertEqual(team_model.name, "Boston Celtics")
File without changes
File without changes
File without changes
File without changes