sportsball 0.3.85__tar.gz → 0.3.86__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.86}/PKG-INFO +24 -1
  2. {sportsball-0.3.85 → sportsball-0.3.86}/README.md +23 -0
  3. {sportsball-0.3.85 → sportsball-0.3.86}/setup.py +1 -1
  4. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/__init__.py +1 -1
  5. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -16
  6. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/combined/combined_league_model.py +1 -3
  7. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/combined/combined_team_model.py +3 -2
  8. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/game_model.py +5 -1
  9. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/google/google_address_model.py +37 -9
  10. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/combined/nba_combined_league_model.py +1 -0
  11. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/sportsreference/sportsreference_game_model.py +3 -0
  12. {sportsball-0.3.85 → sportsball-0.3.86/sportsball.egg-info}/PKG-INFO +24 -1
  13. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball.egg-info/SOURCES.txt +1 -0
  14. sportsball-0.3.86/tests/data/combined/combined_team_model_test.py +215 -0
  15. {sportsball-0.3.85 → sportsball-0.3.86}/LICENSE +0 -0
  16. {sportsball-0.3.85 → sportsball-0.3.86}/MANIFEST.in +0 -0
  17. {sportsball-0.3.85 → sportsball-0.3.86}/requirements.txt +0 -0
  18. {sportsball-0.3.85 → sportsball-0.3.86}/setup.cfg +0 -0
  19. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/__main__.py +0 -0
  20. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/args.py +0 -0
  21. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/cache.py +0 -0
  22. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/__init__.py +0 -0
  23. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/address_model.py +0 -0
  24. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/__init__.py +0 -0
  25. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/afl/__init__.py +0 -0
  26. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
  27. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/afl/afl_afl_league_model.py +0 -0
  28. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
  29. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
  30. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
  31. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/afltables/__init__.py +0 -0
  32. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
  33. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
  34. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
  35. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
  36. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
  37. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
  38. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
  39. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/combined/__init__.py +0 -0
  40. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/espn/__init__.py +0 -0
  41. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
  42. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/oddsportal/__init__.py +0 -0
  43. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
  44. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/aussportsbetting/__init__.py +0 -0
  45. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
  46. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
  47. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
  48. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
  49. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
  50. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
  51. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/bookie_model.py +0 -0
  52. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/combined/__init__.py +0 -0
  53. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/combined/combined_address_model.py +0 -0
  54. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/combined/combined_game_model.py +0 -0
  55. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/combined/combined_player_model.py +0 -0
  56. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/combined/combined_venue_model.py +0 -0
  57. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/combined/combined_weather_model.py +0 -0
  58. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/espn/__init__.py +0 -0
  59. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/espn/espn_bookie_model.py +0 -0
  60. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/espn/espn_game_model.py +0 -0
  61. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/espn/espn_league_model.py +0 -0
  62. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/espn/espn_odds_model.py +0 -0
  63. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/espn/espn_player_model.py +0 -0
  64. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/espn/espn_team_model.py +0 -0
  65. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/espn/espn_venue_model.py +0 -0
  66. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/field_type.py +0 -0
  67. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/google/__init__.py +0 -0
  68. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/google/google_news_model.py +0 -0
  69. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/league.py +0 -0
  70. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/league_model.py +0 -0
  71. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/model.py +0 -0
  72. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/__init__.py +0 -0
  73. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/combined/__init__.py +0 -0
  74. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/espn/__init__.py +0 -0
  75. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
  76. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/nba/__init__.py +0 -0
  77. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
  78. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
  79. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
  80. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/oddsportal/__init__.py +0 -0
  81. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
  82. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/sportsdb/__init__.py +0 -0
  83. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
  84. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/sportsreference/__init__.py +0 -0
  85. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
  86. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaab/__init__.py +0 -0
  87. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaab/combined/__init__.py +0 -0
  88. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
  89. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaab/espn/__init__.py +0 -0
  90. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
  91. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
  92. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
  93. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
  94. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
  95. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaaf/__init__.py +0 -0
  96. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaaf/combined/__init__.py +0 -0
  97. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
  98. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaaf/espn/__init__.py +0 -0
  99. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
  100. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
  101. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
  102. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/news_model.py +0 -0
  103. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nfl/__init__.py +0 -0
  104. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
  105. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
  106. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nfl/combined/__init__.py +0 -0
  107. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
  108. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nfl/espn/__init__.py +0 -0
  109. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
  110. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
  111. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
  112. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
  113. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
  114. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/odds_model.py +0 -0
  115. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/oddsportal/__init__.py +0 -0
  116. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/oddsportal/decrypt.py +0 -0
  117. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
  118. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
  119. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
  120. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
  121. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
  122. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
  123. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/player_model.py +0 -0
  124. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/season_type.py +0 -0
  125. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/social_model.py +0 -0
  126. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/sportsdb/__init__.py +0 -0
  127. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
  128. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
  129. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
  130. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
  131. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/sportsreference/__init__.py +0 -0
  132. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
  133. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
  134. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/sportsreference/sportsreference_team_model.py +0 -0
  135. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
  136. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/team_model.py +0 -0
  137. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/venue_model.py +0 -0
  138. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/weather/__init__.py +0 -0
  139. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/weather/gribstream/__init__.py +0 -0
  140. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
  141. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/weather/multi_weather_model.py +0 -0
  142. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/weather/openmeteo/__init__.py +0 -0
  143. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
  144. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/weather_model.py +0 -0
  145. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/wikipedia/__init__.py +0 -0
  146. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
  147. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/x/__init__.py +0 -0
  148. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/data/x/x_social_model.py +0 -0
  149. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/logger.py +0 -0
  150. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/loglevel.py +0 -0
  151. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/playwright.py +0 -0
  152. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/proxy_session.py +0 -0
  153. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/session.py +0 -0
  154. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/sportsball.py +0 -0
  155. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/vendor/__init__.py +0 -0
  156. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball/vendor/pygooglenews/__init__.py +0 -0
  157. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball.egg-info/dependency_links.txt +0 -0
  158. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball.egg-info/entry_points.txt +0 -0
  159. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball.egg-info/not-zip-safe +0 -0
  160. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball.egg-info/requires.txt +0 -0
  161. {sportsball-0.3.85 → sportsball-0.3.86}/sportsball.egg-info/top_level.txt +0 -0
  162. {sportsball-0.3.85 → sportsball-0.3.86}/tests/__init__.py +0 -0
  163. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/__init__.py +0 -0
  164. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/afl/__init__.py +0 -0
  165. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/afl/afl/__init__.py +0 -0
  166. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/afl/afl/afl_afl_league_model_test.py +0 -0
  167. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/afl/afltables/__init__.py +0 -0
  168. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
  169. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
  170. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
  171. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/aussportsbetting/__init__.py +0 -0
  172. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
  173. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/combined/__init__.py +0 -0
  174. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/combined/combined_game_model_test.py +0 -0
  175. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/combined/combined_player_model_test.py +0 -0
  176. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/espn/__init__.py +0 -0
  177. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/espn/espn_game_model_test.py +0 -0
  178. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/espn/espn_player_model_test.py +0 -0
  179. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/game_model_test.py +0 -0
  180. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/google/__init__.py +0 -0
  181. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/google/google_address_model_test.py +0 -0
  182. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/google/google_news_model_test.py +0 -0
  183. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/nba/__init__.py +0 -0
  184. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/nba/nba/__init__.py +0 -0
  185. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
  186. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
  187. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
  188. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/nba/sportsdb/__init__.py +0 -0
  189. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
  190. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/nba/sportsreference/__init__.py +0 -0
  191. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
  192. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/ncaab/__init__.py +0 -0
  193. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/ncaab/sportsreference/__init__.py +0 -0
  194. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
  195. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/nfl/__init__.py +0 -0
  196. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/nfl/sportsdb/__init__.py +0 -0
  197. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
  198. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/oddsportal/__init__.py +0 -0
  199. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/oddsportal/decrypt_test.py +0 -0
  200. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
  201. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
  202. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/player_model_test.py +0 -0
  203. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/social_model_test.py +0 -0
  204. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/sportsdb/__init__.py +0 -0
  205. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
  206. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
  207. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
  208. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
  209. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/sportsreference/__init__.py +0 -0
  210. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
  211. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
  212. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
  213. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
  214. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
  215. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/team_model_test.py +0 -0
  216. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/x/__init__.py +0 -0
  217. {sportsball-0.3.85 → sportsball-0.3.86}/tests/data/x/x_social_model_test.py +0 -0
  218. {sportsball-0.3.85 → sportsball-0.3.86}/tests/proxy_session_test.py +0 -0
  219. {sportsball-0.3.85 → sportsball-0.3.86}/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.86
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.86',
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.86"
@@ -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]:
@@ -1,6 +1,7 @@
1
1
  """Combined team model."""
2
2
 
3
3
  # pylint: disable=too-many-locals
4
+ import logging
4
5
  import re
5
6
  import unicodedata
6
7
 
@@ -18,7 +19,7 @@ def _normalise_player_name(name: str) -> str:
18
19
  # Handle "Surname, Firstname"
19
20
  if "," in name:
20
21
  name = " ".join(reversed([x.strip() for x in name.split(",")]))
21
- return REGEX.sub("", unicodedata.normalize("NFC", name).lower())
22
+ return REGEX.sub("", unicodedata.normalize("NFC", name).lower().strip())
22
23
 
23
24
 
24
25
  def create_combined_team_model(
@@ -83,7 +84,7 @@ def create_combined_team_model(
83
84
  name=team_models[0].name,
84
85
  location=location,
85
86
  players=[ # pyright: ignore
86
- create_combined_player_model(x, x[0].identifier) for x in players.values()
87
+ create_combined_player_model(v, k) for k, v in players.items()
87
88
  ],
88
89
  odds=[x[0] for x in odds.values()],
89
90
  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,
@@ -4599,7 +4599,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
4599
4599
  ),
4600
4600
  "Pinnacle Bank Arena, Lincoln, Nebraska": SportsballGeocodeTuple(
4601
4601
  city="Lincoln",
4602
- state="NB",
4602
+ state="NE",
4603
4603
  postal="",
4604
4604
  lat=40.817778,
4605
4605
  lng=-96.713333,
@@ -5947,7 +5947,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
5947
5947
  ),
5948
5948
  "Baxter Arena, Omaha, Nebraska": SportsballGeocodeTuple(
5949
5949
  city="Omaha",
5950
- state="NB",
5950
+ state="NE",
5951
5951
  postal="",
5952
5952
  lat=41.236,
5953
5953
  lng=-96.013,
@@ -11062,7 +11062,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
11062
11062
  ),
11063
11063
  "Omaha, Nebraska": SportsballGeocodeTuple(
11064
11064
  city="Omaha",
11065
- state="NB",
11065
+ state="NE",
11066
11066
  postal="",
11067
11067
  lat=41.258611,
11068
11068
  lng=-95.9375,
@@ -11352,7 +11352,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
11352
11352
  ),
11353
11353
  "Lincoln, Nebraska": SportsballGeocodeTuple(
11354
11354
  city="Lincoln",
11355
- state="NB",
11355
+ state="NE",
11356
11356
  postal="",
11357
11357
  lat=40.809167,
11358
11358
  lng=-96.678056,
@@ -12190,7 +12190,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
12190
12190
  ),
12191
12191
  "Ralston, Nebraska": SportsballGeocodeTuple(
12192
12192
  city="Ralston",
12193
- state="NB",
12193
+ state="NE",
12194
12194
  postal="",
12195
12195
  lat=41.200556,
12196
12196
  lng=-96.035556,
@@ -12862,7 +12862,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
12862
12862
  ),
12863
12863
  "Ralston Arena, Ralston, Nebraska": SportsballGeocodeTuple(
12864
12864
  city="Ralston",
12865
- state="NB",
12865
+ state="NE",
12866
12866
  postal="",
12867
12867
  lat=41.206944,
12868
12868
  lng=-96.026944,
@@ -13028,7 +13028,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
13028
13028
  ),
13029
13029
  "D.J. Sokol Arena, Omaha, Nebraska": SportsballGeocodeTuple(
13030
13030
  city="Omaha",
13031
- state="NB",
13031
+ state="NE",
13032
13032
  postal="",
13033
13033
  lat=41.266146,
13034
13034
  lng=-95.940471,
@@ -13261,7 +13261,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
13261
13261
  ),
13262
13262
  "Bob Devaney Sports Center, Lincoln, Nebraska": SportsballGeocodeTuple(
13263
13263
  city="Lincoln",
13264
- state="NB",
13264
+ state="NE",
13265
13265
  postal="",
13266
13266
  lat=40.830207,
13267
13267
  lng=-96.697644,
@@ -13333,6 +13333,34 @@ _CACHED_GEOCODES: dict[str, Any] = {
13333
13333
  housenumber="500",
13334
13334
  country="USA",
13335
13335
  ),
13336
+ "USB Sports Complex, Stony Brook, New York": SportsballGeocodeTuple(
13337
+ city="Stony Brook",
13338
+ state="NY",
13339
+ postal="11790",
13340
+ lat=40.917417,
13341
+ lng=-73.124722,
13342
+ housenumber="100",
13343
+ country="USA",
13344
+ ),
13345
+ "L. A. Sports Arena, Los Angeles, California": LOS_ANGELES_MEMORIAL_COLESIUM,
13346
+ "Kimbel Arena, Conway, South Carolina": SportsballGeocodeTuple(
13347
+ city="Conway",
13348
+ state="SC",
13349
+ postal="",
13350
+ lat=33.79382,
13351
+ lng=-79.013243,
13352
+ housenumber="",
13353
+ country="USA",
13354
+ ),
13355
+ "Sapp Fieldhouse, Ralston, Nebraska": SportsballGeocodeTuple(
13356
+ city="Ralston",
13357
+ state="NE",
13358
+ postal="68132",
13359
+ lat=41.2574,
13360
+ lng=-96.00922,
13361
+ housenumber="6311",
13362
+ country="USA",
13363
+ ),
13336
13364
  }
13337
13365
 
13338
13366
 
@@ -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.86
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