sportsball 0.3.85__tar.gz → 0.3.87__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 (219) hide show
  1. {sportsball-0.3.85/sportsball.egg-info → sportsball-0.3.87}/PKG-INFO +24 -1
  2. {sportsball-0.3.85 → sportsball-0.3.87}/README.md +23 -0
  3. {sportsball-0.3.85 → sportsball-0.3.87}/setup.py +1 -1
  4. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/__init__.py +1 -1
  5. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -16
  6. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_league_model.py +1 -3
  7. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_team_model.py +2 -2
  8. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/game_model.py +5 -1
  9. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/google/google_address_model.py +94 -18
  10. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/combined/nba_combined_league_model.py +1 -0
  11. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsreference/sportsreference_game_model.py +3 -0
  12. {sportsball-0.3.85 → sportsball-0.3.87/sportsball.egg-info}/PKG-INFO +24 -1
  13. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball.egg-info/SOURCES.txt +1 -0
  14. sportsball-0.3.87/tests/data/combined/combined_team_model_test.py +215 -0
  15. {sportsball-0.3.85 → sportsball-0.3.87}/LICENSE +0 -0
  16. {sportsball-0.3.85 → sportsball-0.3.87}/MANIFEST.in +0 -0
  17. {sportsball-0.3.85 → sportsball-0.3.87}/requirements.txt +0 -0
  18. {sportsball-0.3.85 → sportsball-0.3.87}/setup.cfg +0 -0
  19. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/__main__.py +0 -0
  20. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/args.py +0 -0
  21. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/cache.py +0 -0
  22. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/__init__.py +0 -0
  23. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/address_model.py +0 -0
  24. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/__init__.py +0 -0
  25. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afl/__init__.py +0 -0
  26. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
  27. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afl/afl_afl_league_model.py +0 -0
  28. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
  29. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
  30. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
  31. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afltables/__init__.py +0 -0
  32. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
  33. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
  34. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
  35. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
  36. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
  37. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
  38. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
  39. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/combined/__init__.py +0 -0
  40. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/espn/__init__.py +0 -0
  41. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
  42. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/oddsportal/__init__.py +0 -0
  43. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
  44. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/__init__.py +0 -0
  45. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
  46. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
  47. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
  48. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
  49. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
  50. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
  51. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/bookie_model.py +0 -0
  52. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/__init__.py +0 -0
  53. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_address_model.py +0 -0
  54. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_game_model.py +0 -0
  55. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_player_model.py +0 -0
  56. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_venue_model.py +0 -0
  57. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/combined/combined_weather_model.py +0 -0
  58. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/__init__.py +0 -0
  59. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_bookie_model.py +0 -0
  60. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_game_model.py +0 -0
  61. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_league_model.py +0 -0
  62. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_odds_model.py +0 -0
  63. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_player_model.py +0 -0
  64. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_team_model.py +0 -0
  65. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/espn/espn_venue_model.py +0 -0
  66. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/field_type.py +0 -0
  67. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/google/__init__.py +0 -0
  68. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/google/google_news_model.py +0 -0
  69. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/league.py +0 -0
  70. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/league_model.py +0 -0
  71. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/model.py +0 -0
  72. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/__init__.py +0 -0
  73. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/combined/__init__.py +0 -0
  74. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/espn/__init__.py +0 -0
  75. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
  76. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/nba/__init__.py +0 -0
  77. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
  78. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
  79. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
  80. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/oddsportal/__init__.py +0 -0
  81. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
  82. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/sportsdb/__init__.py +0 -0
  83. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
  84. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/sportsreference/__init__.py +0 -0
  85. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
  86. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/__init__.py +0 -0
  87. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/combined/__init__.py +0 -0
  88. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
  89. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/espn/__init__.py +0 -0
  90. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
  91. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
  92. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
  93. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
  94. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
  95. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/__init__.py +0 -0
  96. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/combined/__init__.py +0 -0
  97. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
  98. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/espn/__init__.py +0 -0
  99. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
  100. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
  101. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
  102. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/news_model.py +0 -0
  103. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/__init__.py +0 -0
  104. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
  105. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
  106. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/combined/__init__.py +0 -0
  107. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
  108. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/espn/__init__.py +0 -0
  109. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
  110. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
  111. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
  112. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
  113. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
  114. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/odds_model.py +0 -0
  115. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/__init__.py +0 -0
  116. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/decrypt.py +0 -0
  117. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
  118. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
  119. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
  120. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
  121. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
  122. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
  123. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/player_model.py +0 -0
  124. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/season_type.py +0 -0
  125. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/social_model.py +0 -0
  126. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsdb/__init__.py +0 -0
  127. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
  128. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
  129. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
  130. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
  131. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsreference/__init__.py +0 -0
  132. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
  133. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
  134. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsreference/sportsreference_team_model.py +0 -0
  135. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
  136. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/team_model.py +0 -0
  137. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/venue_model.py +0 -0
  138. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather/__init__.py +0 -0
  139. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather/gribstream/__init__.py +0 -0
  140. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
  141. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather/multi_weather_model.py +0 -0
  142. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather/openmeteo/__init__.py +0 -0
  143. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
  144. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/weather_model.py +0 -0
  145. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/wikipedia/__init__.py +0 -0
  146. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
  147. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/x/__init__.py +0 -0
  148. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/data/x/x_social_model.py +0 -0
  149. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/logger.py +0 -0
  150. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/loglevel.py +0 -0
  151. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/playwright.py +0 -0
  152. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/proxy_session.py +0 -0
  153. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/session.py +0 -0
  154. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/sportsball.py +0 -0
  155. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/vendor/__init__.py +0 -0
  156. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball/vendor/pygooglenews/__init__.py +0 -0
  157. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball.egg-info/dependency_links.txt +0 -0
  158. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball.egg-info/entry_points.txt +0 -0
  159. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball.egg-info/not-zip-safe +0 -0
  160. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball.egg-info/requires.txt +0 -0
  161. {sportsball-0.3.85 → sportsball-0.3.87}/sportsball.egg-info/top_level.txt +0 -0
  162. {sportsball-0.3.85 → sportsball-0.3.87}/tests/__init__.py +0 -0
  163. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/__init__.py +0 -0
  164. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/__init__.py +0 -0
  165. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/afl/__init__.py +0 -0
  166. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/afl/afl_afl_league_model_test.py +0 -0
  167. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/afltables/__init__.py +0 -0
  168. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
  169. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
  170. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
  171. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/aussportsbetting/__init__.py +0 -0
  172. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
  173. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/combined/__init__.py +0 -0
  174. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/combined/combined_game_model_test.py +0 -0
  175. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/combined/combined_player_model_test.py +0 -0
  176. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/espn/__init__.py +0 -0
  177. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/espn/espn_game_model_test.py +0 -0
  178. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/espn/espn_player_model_test.py +0 -0
  179. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/game_model_test.py +0 -0
  180. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/google/__init__.py +0 -0
  181. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/google/google_address_model_test.py +0 -0
  182. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/google/google_news_model_test.py +0 -0
  183. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/__init__.py +0 -0
  184. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/nba/__init__.py +0 -0
  185. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
  186. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
  187. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
  188. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/sportsdb/__init__.py +0 -0
  189. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
  190. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/sportsreference/__init__.py +0 -0
  191. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
  192. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/ncaab/__init__.py +0 -0
  193. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/ncaab/sportsreference/__init__.py +0 -0
  194. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
  195. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nfl/__init__.py +0 -0
  196. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nfl/sportsdb/__init__.py +0 -0
  197. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
  198. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/oddsportal/__init__.py +0 -0
  199. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/oddsportal/decrypt_test.py +0 -0
  200. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
  201. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
  202. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/player_model_test.py +0 -0
  203. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/social_model_test.py +0 -0
  204. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsdb/__init__.py +0 -0
  205. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
  206. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
  207. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
  208. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
  209. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsreference/__init__.py +0 -0
  210. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
  211. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
  212. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
  213. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
  214. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
  215. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/team_model_test.py +0 -0
  216. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/x/__init__.py +0 -0
  217. {sportsball-0.3.85 → sportsball-0.3.87}/tests/data/x/x_social_model_test.py +0 -0
  218. {sportsball-0.3.85 → sportsball-0.3.87}/tests/proxy_session_test.py +0 -0
  219. {sportsball-0.3.85 → sportsball-0.3.87}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.85
3
+ Version: 0.3.87
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
@@ -193,6 +193,29 @@ A representation of a player within a team within a game.
193
193
  * **offensive_rebounds**: The number of rebounds during offense by the player made in the game.
194
194
  * **assists**: The number of times the player made a pass that resulted in a field goal in the game.
195
195
  * **turnovers**: The number of times a player loses possession of the ball in the game.
196
+ * **name**: The name of the player.
197
+ * **marks**: The number of marks the player performed in the game.
198
+ * **handballs**: The number of handballs the player performed in the game.
199
+ * **disposals**: The number of disposals the player performed in the game.
200
+ * **goals**: The number of goals scored by the player in the game.
201
+ * **behinds**: The number of behinds scored by the player in the game.
202
+ * **hit_outs**: The number of hit outs scored by the player in the game.
203
+ * **tackles**: The number of tackles performed by the player in the game.
204
+ * **rebounds**: The number of rebounds performed by the player in the game.
205
+ * **insides**: The number of insides performed by the player in the game.
206
+ * **clearances**: The number of clearances performed by the player in the game.
207
+ * **clangers**: The number of clangers performed by the player in the game.
208
+ * **free_kicks_for**: The number of free kicks given to the player in the game.
209
+ * **free_kicks_against**: The number of free kicks given against an action taken by the player in the game.
210
+ * **brownlow_votes**: The number of votes for the brownlow medal the player has in the current season.
211
+ * **contested_possessions**: The number of possessions the player had in the game that were contested.
212
+ * **uncontested_possessions**: The number of posessions the player had in the game that were uncontested.
213
+ * **contested_marks**: The number of marks the player had in the game that were contested.
214
+ * **marks_inside**: The number of marks the player had in the game inside the 50.
215
+ * **one_percenters:** The number of times the player spoils, knock-ons, smothers or shepherds the ball during the game.
216
+ * **bounces**: The number of bounces the player makes in the game.
217
+ * **goal_assists**: The number of assists on goal the player had in the game.
218
+ * **percentage_played**: The percentage of the game the player was on the field.
196
219
 
197
220
  #### Odds
198
221
 
@@ -134,6 +134,29 @@ A representation of a player within a team within a game.
134
134
  * **offensive_rebounds**: The number of rebounds during offense by the player made in the game.
135
135
  * **assists**: The number of times the player made a pass that resulted in a field goal in the game.
136
136
  * **turnovers**: The number of times a player loses possession of the ball in the game.
137
+ * **name**: The name of the player.
138
+ * **marks**: The number of marks the player performed in the game.
139
+ * **handballs**: The number of handballs the player performed in the game.
140
+ * **disposals**: The number of disposals the player performed in the game.
141
+ * **goals**: The number of goals scored by the player in the game.
142
+ * **behinds**: The number of behinds scored by the player in the game.
143
+ * **hit_outs**: The number of hit outs scored by the player in the game.
144
+ * **tackles**: The number of tackles performed by the player in the game.
145
+ * **rebounds**: The number of rebounds performed by the player in the game.
146
+ * **insides**: The number of insides performed by the player in the game.
147
+ * **clearances**: The number of clearances performed by the player in the game.
148
+ * **clangers**: The number of clangers performed by the player in the game.
149
+ * **free_kicks_for**: The number of free kicks given to the player in the game.
150
+ * **free_kicks_against**: The number of free kicks given against an action taken by the player in the game.
151
+ * **brownlow_votes**: The number of votes for the brownlow medal the player has in the current season.
152
+ * **contested_possessions**: The number of possessions the player had in the game that were contested.
153
+ * **uncontested_possessions**: The number of posessions the player had in the game that were uncontested.
154
+ * **contested_marks**: The number of marks the player had in the game that were contested.
155
+ * **marks_inside**: The number of marks the player had in the game inside the 50.
156
+ * **one_percenters:** The number of times the player spoils, knock-ons, smothers or shepherds the ball during the game.
157
+ * **bounces**: The number of bounces the player makes in the game.
158
+ * **goal_assists**: The number of assists on goal the player had in the game.
159
+ * **percentage_played**: The percentage of the game the player was on the field.
137
160
 
138
161
  #### Odds
139
162
 
@@ -26,7 +26,7 @@ def install_requires() -> typing.List[str]:
26
26
 
27
27
  setup(
28
28
  name='sportsball',
29
- version='0.3.85',
29
+ version='0.3.87',
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.85"
7
+ __VERSION__ = "0.3.87"
@@ -246,18 +246,6 @@ AFL_VENUE_IDENTITY_MAP = {
246
246
  "Barossa Park": BAROSSA_PARK,
247
247
  "Ninja Stadium": BELLERIVE_OVAL,
248
248
  }
249
- RYAN_LESTER = "afl:CD_I291548"
250
- JACK_PAYNE = "afl:CD_I1002347"
251
- DAYNE_ZORKO = "afl:CD_I261224"
252
- JAMES_WORPEL = "James_Worpel"
253
- JOSH_WEDDLE = "Josh_Weddle"
254
- AFL_PLAYER_IDENTITY_MAP = {
255
- "afl:CD_I291548": RYAN_LESTER,
256
- "afl:CD_I1002347": JACK_PAYNE,
257
- "afl:CD_I261224": DAYNE_ZORKO,
258
- "James_Worpel": JAMES_WORPEL,
259
- "Josh_Weddle": JOSH_WEDDLE,
260
- }
261
249
 
262
250
 
263
251
  class AFLCombinedLeagueModel(CombinedLeagueModel):
@@ -283,7 +271,3 @@ class AFLCombinedLeagueModel(CombinedLeagueModel):
283
271
  @classmethod
284
272
  def venue_identity_map(cls) -> dict[str, str]:
285
273
  return AFL_VENUE_IDENTITY_MAP
286
-
287
- @classmethod
288
- def player_identity_map(cls) -> dict[str, str]:
289
- return AFL_PLAYER_IDENTITY_MAP
@@ -47,9 +47,7 @@ class CombinedLeagueModel(LeagueModel):
47
47
  @classmethod
48
48
  def player_identity_map(cls) -> dict[str, str]:
49
49
  """A map to resolve the different player identities to a consistent identity."""
50
- raise NotImplementedError(
51
- "player_identity_map not implemented on CombinedLeagueModel parent class."
52
- )
50
+ return {}
53
51
 
54
52
  @property
55
53
  def games(self) -> Iterator[GameModel]:
@@ -18,7 +18,7 @@ def _normalise_player_name(name: str) -> str:
18
18
  # Handle "Surname, Firstname"
19
19
  if "," in name:
20
20
  name = " ".join(reversed([x.strip() for x in name.split(",")]))
21
- return REGEX.sub("", unicodedata.normalize("NFC", name).lower())
21
+ return REGEX.sub("", unicodedata.normalize("NFC", name).lower().strip())
22
22
 
23
23
 
24
24
  def create_combined_team_model(
@@ -83,7 +83,7 @@ def create_combined_team_model(
83
83
  name=team_models[0].name,
84
84
  location=location,
85
85
  players=[ # pyright: ignore
86
- create_combined_player_model(x, x[0].identifier) for x in players.values()
86
+ create_combined_player_model(v, k) for k, v in players.items()
87
87
  ],
88
88
  odds=[x[0] for x in odds.values()],
89
89
  points=points,
@@ -52,7 +52,11 @@ class GameModel(BaseModel):
52
52
  end_dt: datetime.datetime | None = Field(
53
53
  ..., json_schema_extra={TYPE_KEY: FieldType.LOOKAHEAD}, alias=END_DT_COLUMN
54
54
  )
55
- attendance: int | None = Field(..., alias=GAME_ATTENDANCE_COLUMN)
55
+ attendance: int | None = Field(
56
+ ...,
57
+ json_schema_extra={TYPE_KEY: FieldType.LOOKAHEAD},
58
+ alias=GAME_ATTENDANCE_COLUMN,
59
+ )
56
60
  league: str = Field(..., alias=LEAGUE_COLUMN)
57
61
  year: int | None
58
62
  season_type: SeasonType | None
@@ -1740,7 +1740,7 @@ DUNKIN_DONUTS_CENTER = SportsballGeocodeTuple(
1740
1740
  )
1741
1741
  CHI_HEALTH_CENTER = SportsballGeocodeTuple(
1742
1742
  city="Omaha",
1743
- state="NB",
1743
+ state="NE",
1744
1744
  postal="",
1745
1745
  lat=41.263,
1746
1746
  lng=-95.928,
@@ -2539,6 +2539,15 @@ FREDRICK_C_HOBDY_ASSEMBLY_CENTER = SportsballGeocodeTuple(
2539
2539
  housenumber="1234",
2540
2540
  country="USA",
2541
2541
  )
2542
+ AMERANT_BANK_ARENA = SportsballGeocodeTuple(
2543
+ city="Sunrise",
2544
+ state="FL",
2545
+ postal="",
2546
+ lat=26.158333,
2547
+ lng=-80.325556,
2548
+ housenumber="1",
2549
+ country="USA",
2550
+ )
2542
2551
  _CACHED_GEOCODES: dict[str, Any] = {
2543
2552
  "S.C.G. - Australia": SCG,
2544
2553
  "Victoria Park - Australia": SportsballGeocodeTuple(
@@ -4599,7 +4608,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
4599
4608
  ),
4600
4609
  "Pinnacle Bank Arena, Lincoln, Nebraska": SportsballGeocodeTuple(
4601
4610
  city="Lincoln",
4602
- state="NB",
4611
+ state="NE",
4603
4612
  postal="",
4604
4613
  lat=40.817778,
4605
4614
  lng=-96.713333,
@@ -5947,7 +5956,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
5947
5956
  ),
5948
5957
  "Baxter Arena, Omaha, Nebraska": SportsballGeocodeTuple(
5949
5958
  city="Omaha",
5950
- state="NB",
5959
+ state="NE",
5951
5960
  postal="",
5952
5961
  lat=41.236,
5953
5962
  lng=-96.013,
@@ -11062,7 +11071,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
11062
11071
  ),
11063
11072
  "Omaha, Nebraska": SportsballGeocodeTuple(
11064
11073
  city="Omaha",
11065
- state="NB",
11074
+ state="NE",
11066
11075
  postal="",
11067
11076
  lat=41.258611,
11068
11077
  lng=-95.9375,
@@ -11352,7 +11361,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
11352
11361
  ),
11353
11362
  "Lincoln, Nebraska": SportsballGeocodeTuple(
11354
11363
  city="Lincoln",
11355
- state="NB",
11364
+ state="NE",
11356
11365
  postal="",
11357
11366
  lat=40.809167,
11358
11367
  lng=-96.678056,
@@ -12149,15 +12158,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
12149
12158
  "Barossa Oval - Australia": BAROSSA_PARK,
12150
12159
  "Civic Arena, Pittsburgh, Pennsylvania": CIVIC_ARENA,
12151
12160
  "Verizon Arena, North Little Rock, Arkansas": SIMMONS_BANK_ARENA,
12152
- "BB&T Center, Sunrise, Florida": SportsballGeocodeTuple(
12153
- city="Sunrise",
12154
- state="FL",
12155
- postal="",
12156
- lat=26.158333,
12157
- lng=-80.325556,
12158
- housenumber="1",
12159
- country="USA",
12160
- ),
12161
+ "BB&T Center, Sunrise, Florida": AMERANT_BANK_ARENA,
12161
12162
  "BOK Center, Tulsa, Oklahoma": BOK_CENTER,
12162
12163
  "Alamodome, San Antonio, TX, USA": ALAMODOME,
12163
12164
  "KeyArena, Seattle, Washington": CLIMATE_PLEDGE_ARENA,
@@ -12190,7 +12191,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
12190
12191
  ),
12191
12192
  "Ralston, Nebraska": SportsballGeocodeTuple(
12192
12193
  city="Ralston",
12193
- state="NB",
12194
+ state="NE",
12194
12195
  postal="",
12195
12196
  lat=41.200556,
12196
12197
  lng=-96.035556,
@@ -12862,7 +12863,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
12862
12863
  ),
12863
12864
  "Ralston Arena, Ralston, Nebraska": SportsballGeocodeTuple(
12864
12865
  city="Ralston",
12865
- state="NB",
12866
+ state="NE",
12866
12867
  postal="",
12867
12868
  lat=41.206944,
12868
12869
  lng=-96.026944,
@@ -13028,7 +13029,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
13028
13029
  ),
13029
13030
  "D.J. Sokol Arena, Omaha, Nebraska": SportsballGeocodeTuple(
13030
13031
  city="Omaha",
13031
- state="NB",
13032
+ state="NE",
13032
13033
  postal="",
13033
13034
  lat=41.266146,
13034
13035
  lng=-95.940471,
@@ -13261,7 +13262,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
13261
13262
  ),
13262
13263
  "Bob Devaney Sports Center, Lincoln, Nebraska": SportsballGeocodeTuple(
13263
13264
  city="Lincoln",
13264
- state="NB",
13265
+ state="NE",
13265
13266
  postal="",
13266
13267
  lat=40.830207,
13267
13268
  lng=-96.697644,
@@ -13333,6 +13334,81 @@ _CACHED_GEOCODES: dict[str, Any] = {
13333
13334
  housenumber="500",
13334
13335
  country="USA",
13335
13336
  ),
13337
+ "USB Sports Complex, Stony Brook, New York": SportsballGeocodeTuple(
13338
+ city="Stony Brook",
13339
+ state="NY",
13340
+ postal="11790",
13341
+ lat=40.917417,
13342
+ lng=-73.124722,
13343
+ housenumber="100",
13344
+ country="USA",
13345
+ ),
13346
+ "L. A. Sports Arena, Los Angeles, California": LOS_ANGELES_MEMORIAL_COLESIUM,
13347
+ "Kimbel Arena, Conway, South Carolina": SportsballGeocodeTuple(
13348
+ city="Conway",
13349
+ state="SC",
13350
+ postal="",
13351
+ lat=33.79382,
13352
+ lng=-79.013243,
13353
+ housenumber="",
13354
+ country="USA",
13355
+ ),
13356
+ "Sapp Fieldhouse, Ralston, Nebraska": SportsballGeocodeTuple(
13357
+ city="Ralston",
13358
+ state="NE",
13359
+ postal="68132",
13360
+ lat=41.2574,
13361
+ lng=-96.00922,
13362
+ housenumber="6311",
13363
+ country="USA",
13364
+ ),
13365
+ "Texas Hall, Arlington, Texas": SportsballGeocodeTuple(
13366
+ city="Arlington",
13367
+ state="TX",
13368
+ postal="76010",
13369
+ lat=32.7297,
13370
+ lng=-97.1154,
13371
+ housenumber="701",
13372
+ country="USA",
13373
+ ),
13374
+ "Grand Exhibition Hall at Harrah's Cherokee Casino, Cherokee, North Carolina": HARRAHS_CHEROKEE_CENTER,
13375
+ "The Arena at Gwinnett Center, Duluth, Georgia": SportsballGeocodeTuple(
13376
+ city="Duluth",
13377
+ state="GA",
13378
+ postal="",
13379
+ lat=33.991389,
13380
+ lng=-84.094167,
13381
+ housenumber="6400",
13382
+ country="USA",
13383
+ ),
13384
+ "Birmingham-Jefferson Civic Center, Birmingham, Alabama": SportsballGeocodeTuple(
13385
+ city="Birmingham",
13386
+ state="AL",
13387
+ postal="35203",
13388
+ lat=33.524,
13389
+ lng=-86.812,
13390
+ housenumber="2100",
13391
+ country="USA",
13392
+ ),
13393
+ "War Memorial Gymnasium, Maui, Hawaii": SportsballGeocodeTuple(
13394
+ city="Maui",
13395
+ state="HI",
13396
+ postal="96793",
13397
+ lat=20.8919129,
13398
+ lng=-156.4902234,
13399
+ housenumber="700",
13400
+ country="USA",
13401
+ ),
13402
+ "BankAtlantic Center, Sunrise, Florida": AMERANT_BANK_ARENA,
13403
+ "University of Tampa Sports Arena, Tampa, Florida": SportsballGeocodeTuple(
13404
+ city="Tampa",
13405
+ state="FL",
13406
+ postal="",
13407
+ lat=27.946944,
13408
+ lng=-82.468889,
13409
+ housenumber="",
13410
+ country="USA",
13411
+ ),
13336
13412
  }
13337
13413
 
13338
13414
 
@@ -883,6 +883,7 @@ NBA_VENUE_IDENTITY_MAP: dict[str, str] = {
883
883
  "19331": CAPITAL_ONE_ARENA,
884
884
  "24838": SPECTRUM_CENTER,
885
885
  "28619": KASEYA_CENTER,
886
+ "24727": FEDEX_FORUM,
886
887
  }
887
888
  NBA_PLAYER_IDENTITY_MAP: dict[str, str] = {}
888
889
 
@@ -399,6 +399,9 @@ def _create_sportsreference_game_model(
399
399
  assists,
400
400
  turnovers,
401
401
  )
402
+ for team in teams:
403
+ if team.name == "File Not Found":
404
+ raise ValueError("team name is File Not Found (invalid)")
402
405
 
403
406
  season_type = SeasonType.REGULAR
404
407
  for h2 in soup.find_all("h2"):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.3.85
3
+ Version: 0.3.87
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
@@ -193,6 +193,29 @@ A representation of a player within a team within a game.
193
193
  * **offensive_rebounds**: The number of rebounds during offense by the player made in the game.
194
194
  * **assists**: The number of times the player made a pass that resulted in a field goal in the game.
195
195
  * **turnovers**: The number of times a player loses possession of the ball in the game.
196
+ * **name**: The name of the player.
197
+ * **marks**: The number of marks the player performed in the game.
198
+ * **handballs**: The number of handballs the player performed in the game.
199
+ * **disposals**: The number of disposals the player performed in the game.
200
+ * **goals**: The number of goals scored by the player in the game.
201
+ * **behinds**: The number of behinds scored by the player in the game.
202
+ * **hit_outs**: The number of hit outs scored by the player in the game.
203
+ * **tackles**: The number of tackles performed by the player in the game.
204
+ * **rebounds**: The number of rebounds performed by the player in the game.
205
+ * **insides**: The number of insides performed by the player in the game.
206
+ * **clearances**: The number of clearances performed by the player in the game.
207
+ * **clangers**: The number of clangers performed by the player in the game.
208
+ * **free_kicks_for**: The number of free kicks given to the player in the game.
209
+ * **free_kicks_against**: The number of free kicks given against an action taken by the player in the game.
210
+ * **brownlow_votes**: The number of votes for the brownlow medal the player has in the current season.
211
+ * **contested_possessions**: The number of possessions the player had in the game that were contested.
212
+ * **uncontested_possessions**: The number of posessions the player had in the game that were uncontested.
213
+ * **contested_marks**: The number of marks the player had in the game that were contested.
214
+ * **marks_inside**: The number of marks the player had in the game inside the 50.
215
+ * **one_percenters:** The number of times the player spoils, knock-ons, smothers or shepherds the ball during the game.
216
+ * **bounces**: The number of bounces the player makes in the game.
217
+ * **goal_assists**: The number of assists on goal the player had in the game.
218
+ * **percentage_played**: The percentage of the game the player was on the field.
196
219
 
197
220
  #### Odds
198
221
 
@@ -176,6 +176,7 @@ tests/data/aussportsbetting/aussportsbetting_game_model_test.py
176
176
  tests/data/combined/__init__.py
177
177
  tests/data/combined/combined_game_model_test.py
178
178
  tests/data/combined/combined_player_model_test.py
179
+ tests/data/combined/combined_team_model_test.py
179
180
  tests/data/espn/__init__.py
180
181
  tests/data/espn/espn_game_model_test.py
181
182
  tests/data/espn/espn_player_model_test.py
@@ -0,0 +1,215 @@
1
+ """Tests for the combined team model class."""
2
+ import datetime
3
+ import os
4
+ import unittest
5
+
6
+ import requests_mock
7
+ import requests_cache
8
+ from sportsball.data.combined.combined_team_model import create_combined_team_model
9
+ from sportsball.data.team_model import TeamModel
10
+ from sportsball.data.player_model import PlayerModel
11
+
12
+
13
+ class TestCombinedTeamModel(unittest.TestCase):
14
+
15
+ def setUp(self):
16
+ self._session = requests_cache.CachedSession(backend="memory")
17
+ self.dir = os.path.dirname(__file__)
18
+
19
+ def test_names_resolve(self):
20
+ with requests_mock.Mocker() as m:
21
+ names = {}
22
+ player_models = [PlayerModel(
23
+ identifier="1",
24
+ jersey=None,
25
+ kicks=None,
26
+ fumbles=None,
27
+ fumbles_lost=None,
28
+ field_goals=None,
29
+ field_goals_attempted=None,
30
+ offensive_rebounds=None,
31
+ assists=None,
32
+ turnovers=None,
33
+ name="Johnny Johnson",
34
+ marks=None,
35
+ handballs=None,
36
+ disposals=None,
37
+ goals=None,
38
+ behinds=None,
39
+ hit_outs=None,
40
+ tackles=None,
41
+ rebounds=None,
42
+ insides=None,
43
+ clearances=None,
44
+ clangers=None,
45
+ free_kicks_for=None,
46
+ free_kicks_against=None,
47
+ brownlow_votes=None,
48
+ contested_possessions=None,
49
+ uncontested_possessions=None,
50
+ contested_marks=None,
51
+ marks_inside=None,
52
+ one_percenters=None,
53
+ bounces=None,
54
+ goal_assists=None,
55
+ percentage_played=None,
56
+ )]
57
+ team_models = [TeamModel(
58
+ identifier="a",
59
+ name="Team A",
60
+ location=None,
61
+ players=player_models,
62
+ odds=[],
63
+ points=None,
64
+ ladder_rank=None,
65
+ news=[],
66
+ social=[],
67
+ )]
68
+ team_model = create_combined_team_model(team_models=team_models, identifier="a", player_identity_map={}, names=names)
69
+ player_models_2 = [PlayerModel(
70
+ identifier="1a",
71
+ jersey=None,
72
+ kicks=None,
73
+ fumbles=None,
74
+ fumbles_lost=None,
75
+ field_goals=None,
76
+ field_goals_attempted=None,
77
+ offensive_rebounds=None,
78
+ assists=None,
79
+ turnovers=None,
80
+ name="Johnny Johnson",
81
+ marks=None,
82
+ handballs=None,
83
+ disposals=None,
84
+ goals=None,
85
+ behinds=None,
86
+ hit_outs=None,
87
+ tackles=None,
88
+ rebounds=None,
89
+ insides=None,
90
+ clearances=None,
91
+ clangers=None,
92
+ free_kicks_for=None,
93
+ free_kicks_against=None,
94
+ brownlow_votes=None,
95
+ contested_possessions=None,
96
+ uncontested_possessions=None,
97
+ contested_marks=None,
98
+ marks_inside=None,
99
+ one_percenters=None,
100
+ bounces=None,
101
+ goal_assists=None,
102
+ percentage_played=None,
103
+ )]
104
+ team_models_2 = [TeamModel(
105
+ identifier="a",
106
+ name="Team A",
107
+ location=None,
108
+ players=player_models_2,
109
+ odds=[],
110
+ points=None,
111
+ ladder_rank=None,
112
+ news=[],
113
+ social=[],
114
+ )]
115
+ team_model_2 = create_combined_team_model(team_models=team_models_2, identifier="a", player_identity_map={}, names=names)
116
+ self.assertEqual(team_model.players[0].identifier, team_model_2.players[0].identifier)
117
+
118
+ def test_names_resolve_with_surname_firstname(self):
119
+ with requests_mock.Mocker() as m:
120
+ names = {}
121
+ player_models = [PlayerModel(
122
+ identifier="1",
123
+ jersey=None,
124
+ kicks=None,
125
+ fumbles=None,
126
+ fumbles_lost=None,
127
+ field_goals=None,
128
+ field_goals_attempted=None,
129
+ offensive_rebounds=None,
130
+ assists=None,
131
+ turnovers=None,
132
+ name="Johnny Johnson",
133
+ marks=None,
134
+ handballs=None,
135
+ disposals=None,
136
+ goals=None,
137
+ behinds=None,
138
+ hit_outs=None,
139
+ tackles=None,
140
+ rebounds=None,
141
+ insides=None,
142
+ clearances=None,
143
+ clangers=None,
144
+ free_kicks_for=None,
145
+ free_kicks_against=None,
146
+ brownlow_votes=None,
147
+ contested_possessions=None,
148
+ uncontested_possessions=None,
149
+ contested_marks=None,
150
+ marks_inside=None,
151
+ one_percenters=None,
152
+ bounces=None,
153
+ goal_assists=None,
154
+ percentage_played=None,
155
+ )]
156
+ team_models = [TeamModel(
157
+ identifier="a",
158
+ name="Team A",
159
+ location=None,
160
+ players=player_models,
161
+ odds=[],
162
+ points=None,
163
+ ladder_rank=None,
164
+ news=[],
165
+ social=[],
166
+ )]
167
+ team_model = create_combined_team_model(team_models=team_models, identifier="a", player_identity_map={}, names=names)
168
+ player_models_2 = [PlayerModel(
169
+ identifier="1a",
170
+ jersey=None,
171
+ kicks=None,
172
+ fumbles=None,
173
+ fumbles_lost=None,
174
+ field_goals=None,
175
+ field_goals_attempted=None,
176
+ offensive_rebounds=None,
177
+ assists=None,
178
+ turnovers=None,
179
+ name="Johnson, Johnny",
180
+ marks=None,
181
+ handballs=None,
182
+ disposals=None,
183
+ goals=None,
184
+ behinds=None,
185
+ hit_outs=None,
186
+ tackles=None,
187
+ rebounds=None,
188
+ insides=None,
189
+ clearances=None,
190
+ clangers=None,
191
+ free_kicks_for=None,
192
+ free_kicks_against=None,
193
+ brownlow_votes=None,
194
+ contested_possessions=None,
195
+ uncontested_possessions=None,
196
+ contested_marks=None,
197
+ marks_inside=None,
198
+ one_percenters=None,
199
+ bounces=None,
200
+ goal_assists=None,
201
+ percentage_played=None,
202
+ )]
203
+ team_models_2 = [TeamModel(
204
+ identifier="a",
205
+ name="Team A",
206
+ location=None,
207
+ players=player_models_2,
208
+ odds=[],
209
+ points=None,
210
+ ladder_rank=None,
211
+ news=[],
212
+ social=[],
213
+ )]
214
+ team_model_2 = create_combined_team_model(team_models=team_models_2, identifier="a", player_identity_map={}, names=names)
215
+ self.assertEqual(team_model.players[0].identifier, team_model_2.players[0].identifier)
File without changes
File without changes
File without changes