sportsball 0.9.8__tar.gz → 0.10.0__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 (285) hide show
  1. {sportsball-0.9.8/sportsball.egg-info → sportsball-0.10.0}/PKG-INFO +30 -1
  2. {sportsball-0.9.8 → sportsball-0.10.0}/README.md +29 -0
  3. {sportsball-0.9.8 → sportsball-0.10.0}/setup.py +1 -1
  4. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/__init__.py +1 -1
  5. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afl/afl_afl_player_model.py +28 -0
  6. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afltables/afl_afltables_player_model.py +28 -0
  7. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/combined/combined_address_model.py +5 -12
  8. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/combined/combined_coach_model.py +5 -13
  9. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/combined/combined_game_model.py +12 -34
  10. sportsball-0.10.0/sportsball/data/combined/combined_player_model.py +1322 -0
  11. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/combined/combined_team_model.py +7 -19
  12. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/combined/combined_venue_model.py +5 -12
  13. sportsball-0.10.0/sportsball/data/combined/combined_weather_model.py +304 -0
  14. sportsball-0.10.0/sportsball/data/combined/most_interesting.py +30 -0
  15. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/espn/espn_player_model.py +28 -0
  16. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/google/google_address_model.py +27 -0
  17. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_player_model.py +28 -0
  18. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/league.py +6 -0
  19. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/nbacom/nba_nbacom_player_model.py +28 -0
  20. sportsball-0.10.0/sportsball/data/nhl/__init__.py +5 -0
  21. sportsball-0.10.0/sportsball/data/nhl/combined/nhl_combined_league_model.py +48 -0
  22. sportsball-0.10.0/sportsball/data/nhl/espn/nhl_espn_league_model.py +26 -0
  23. sportsball-0.10.0/sportsball/data/nhl/oddsportal/nhl_oddsportal_league_model.py +19 -0
  24. sportsball-0.10.0/sportsball/data/nhl/position.py +7 -0
  25. sportsball-0.10.0/sportsball/data/nhl/sportsdb/nhl_sportsdb_league_model.py +17 -0
  26. sportsball-0.10.0/sportsball/data/nhl/sportsreference/nhl_sportsreference_league_model.py +30 -0
  27. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/oddsportal/oddsportal_league_model.py +2 -0
  28. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/player_model.py +194 -0
  29. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/sportsreference/sportsreference_game_model.py +334 -2
  30. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/sportsreference/sportsreference_league_model.py +2 -1
  31. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/sportsreference/sportsreference_player_model.py +210 -2
  32. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/sportsreference/sportsreference_team_model.py +203 -0
  33. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/sportsball.py +3 -0
  34. {sportsball-0.9.8 → sportsball-0.10.0/sportsball.egg-info}/PKG-INFO +30 -1
  35. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball.egg-info/SOURCES.txt +13 -0
  36. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/combined/combined_player_model_test.py +28 -0
  37. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/combined/combined_team_model_test.py +112 -0
  38. sportsball-0.10.0/tests/data/nfl/sportsdb/__init__.py +0 -0
  39. sportsball-0.10.0/tests/data/oddsportal/__init__.py +0 -0
  40. sportsball-0.10.0/tests/data/player_model_test.py +307 -0
  41. sportsball-0.10.0/tests/data/sportsdb/__init__.py +0 -0
  42. sportsball-0.10.0/tests/data/sportsreference/__init__.py +0 -0
  43. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/sportsreference/sportsreference_player_model_test.py +29 -0
  44. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/sportsreference/sportsreference_team_model_test.py +261 -0
  45. sportsball-0.10.0/tests/data/x/__init__.py +0 -0
  46. sportsball-0.9.8/sportsball/data/combined/combined_player_model.py +0 -1507
  47. sportsball-0.9.8/sportsball/data/combined/combined_weather_model.py +0 -359
  48. sportsball-0.9.8/tests/data/player_model_test.py +0 -279
  49. {sportsball-0.9.8 → sportsball-0.10.0}/LICENSE +0 -0
  50. {sportsball-0.9.8 → sportsball-0.10.0}/MANIFEST.in +0 -0
  51. {sportsball-0.9.8 → sportsball-0.10.0}/requirements.txt +0 -0
  52. {sportsball-0.9.8 → sportsball-0.10.0}/setup.cfg +0 -0
  53. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/__main__.py +0 -0
  54. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/args.py +0 -0
  55. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/cache.py +0 -0
  56. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/__init__.py +0 -0
  57. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/address_model.py +0 -0
  58. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/__init__.py +0 -0
  59. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afl/__init__.py +0 -0
  60. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afl/afl_afl_bookie_model.py +0 -0
  61. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
  62. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afl/afl_afl_league_model.py +0 -0
  63. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afl/afl_afl_odds_model.py +0 -0
  64. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
  65. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
  66. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afltables/__init__.py +0 -0
  67. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afltables/afl_afltables_coach_model.py +0 -0
  68. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
  69. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
  70. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
  71. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
  72. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
  73. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
  74. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/combined/__init__.py +0 -0
  75. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
  76. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/espn/__init__.py +0 -0
  77. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
  78. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/oddsportal/__init__.py +0 -0
  79. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
  80. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/afl/position.py +0 -0
  81. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/aussportsbetting/__init__.py +0 -0
  82. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
  83. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
  84. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
  85. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
  86. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
  87. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
  88. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/bet.py +0 -0
  89. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/bookie_model.py +0 -0
  90. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/coach_model.py +0 -0
  91. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/combined/__init__.py +0 -0
  92. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/combined/combined_league_model.py +0 -0
  93. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/combined/ffill.py +0 -0
  94. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/combined/null_check.py +0 -0
  95. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/delimiter.py +0 -0
  96. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/dividend_model.py +0 -0
  97. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/espn/__init__.py +0 -0
  98. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/espn/espn_bookie_model.py +0 -0
  99. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/espn/espn_coach_model.py +0 -0
  100. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/espn/espn_game_model.py +0 -0
  101. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/espn/espn_league_model.py +0 -0
  102. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/espn/espn_odds_model.py +0 -0
  103. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/espn/espn_team_model.py +0 -0
  104. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/espn/espn_venue_model.py +0 -0
  105. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/field_type.py +0 -0
  106. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/game_model.py +0 -0
  107. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/google/__init__.py +0 -0
  108. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/google/google_news_model.py +0 -0
  109. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/hkjc/__init__.py +0 -0
  110. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/hkjc/hkjc/__init__.py +0 -0
  111. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_bookie_model.py +0 -0
  112. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_coach_model.py +0 -0
  113. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_dividend_model.py +0 -0
  114. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_game_model.py +0 -0
  115. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_league_model.py +0 -0
  116. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_odds_model.py +0 -0
  117. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_owner_model.py +0 -0
  118. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_team_model.py +0 -0
  119. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_venue_model.py +0 -0
  120. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/hkjc/position.py +0 -0
  121. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/league_model.py +0 -0
  122. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/model.py +0 -0
  123. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/__init__.py +0 -0
  124. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/combined/__init__.py +0 -0
  125. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
  126. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/espn/__init__.py +0 -0
  127. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
  128. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/nba/__init__.py +0 -0
  129. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
  130. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
  131. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
  132. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/nbacom/__init__.py +0 -0
  133. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/nbacom/nba_nbacom_game_model.py +0 -0
  134. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/nbacom/nba_nbacom_league_model.py +0 -0
  135. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/nbacom/nba_nbacom_team_model.py +0 -0
  136. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/nbacom/nba_nbacom_venue_model.py +0 -0
  137. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/oddsportal/__init__.py +0 -0
  138. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
  139. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/position.py +0 -0
  140. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/sportsdb/__init__.py +0 -0
  141. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
  142. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/sportsreference/__init__.py +0 -0
  143. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
  144. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaab/__init__.py +0 -0
  145. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaab/combined/__init__.py +0 -0
  146. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
  147. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaab/espn/__init__.py +0 -0
  148. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
  149. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
  150. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
  151. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaab/sportsdb/__init__.py +0 -0
  152. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaab/sportsdb/ncaab_sportsdb_league_model.py +0 -0
  153. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
  154. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
  155. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaaf/__init__.py +0 -0
  156. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaaf/combined/__init__.py +0 -0
  157. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
  158. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaaf/espn/__init__.py +0 -0
  159. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
  160. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
  161. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
  162. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaaf/sportsdb/__init__.py +0 -0
  163. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaaf/sportsdb/ncaaf_sportsdb_league_model.py +0 -0
  164. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaaf/sportsreference/__init__.py +0 -0
  165. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/ncaaf/sportsreference/ncaaf_sportsreference_league_model.py +0 -0
  166. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/news_model.py +0 -0
  167. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/__init__.py +0 -0
  168. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
  169. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
  170. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/combined/__init__.py +0 -0
  171. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
  172. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/espn/__init__.py +0 -0
  173. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
  174. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
  175. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
  176. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/position.py +0 -0
  177. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
  178. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
  179. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/sportsreference/__init__.py +0 -0
  180. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/nfl/sportsreference/nfl_sportsreference_league_model.py +0 -0
  181. {sportsball-0.9.8/sportsball/data/oddsportal → sportsball-0.10.0/sportsball/data/nhl/combined}/__init__.py +0 -0
  182. {sportsball-0.9.8/sportsball/data/sportsdb → sportsball-0.10.0/sportsball/data/nhl/espn}/__init__.py +0 -0
  183. {sportsball-0.9.8/sportsball/data/sportsreference → sportsball-0.10.0/sportsball/data/nhl/oddsportal}/__init__.py +0 -0
  184. {sportsball-0.9.8/sportsball/data/weather → sportsball-0.10.0/sportsball/data/nhl/sportsdb}/__init__.py +0 -0
  185. {sportsball-0.9.8/sportsball/data/weather/gribstream → sportsball-0.10.0/sportsball/data/nhl/sportsreference}/__init__.py +0 -0
  186. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/odds_model.py +0 -0
  187. {sportsball-0.9.8/sportsball/data/weather/openmeteo → sportsball-0.10.0/sportsball/data/oddsportal}/__init__.py +0 -0
  188. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/oddsportal/decrypt.py +0 -0
  189. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
  190. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
  191. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
  192. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
  193. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
  194. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/owner_model.py +0 -0
  195. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/season_type.py +0 -0
  196. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/sex.py +0 -0
  197. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/social_model.py +0 -0
  198. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/species.py +0 -0
  199. {sportsball-0.9.8/sportsball/data/wikipedia → sportsball-0.10.0/sportsball/data/sportsdb}/__init__.py +0 -0
  200. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
  201. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
  202. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
  203. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
  204. {sportsball-0.9.8/sportsball/data/x → sportsball-0.10.0/sportsball/data/sportsreference}/__init__.py +0 -0
  205. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/sportsreference/sportsreference_coach_model.py +0 -0
  206. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
  207. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/team_model.py +0 -0
  208. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/venue_model.py +0 -0
  209. {sportsball-0.9.8/sportsball/vendor → sportsball-0.10.0/sportsball/data/weather}/__init__.py +0 -0
  210. {sportsball-0.9.8/tests → sportsball-0.10.0/sportsball/data/weather/gribstream}/__init__.py +0 -0
  211. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
  212. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/weather/multi_weather_model.py +0 -0
  213. {sportsball-0.9.8/tests/data → sportsball-0.10.0/sportsball/data/weather/openmeteo}/__init__.py +0 -0
  214. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
  215. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/weather_model.py +0 -0
  216. {sportsball-0.9.8/tests/data/afl → sportsball-0.10.0/sportsball/data/wikipedia}/__init__.py +0 -0
  217. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
  218. {sportsball-0.9.8/tests/data/afl/afl → sportsball-0.10.0/sportsball/data/x}/__init__.py +0 -0
  219. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/data/x/x_social_model.py +0 -0
  220. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/logger.py +0 -0
  221. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/loglevel.py +0 -0
  222. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/playwright.py +0 -0
  223. {sportsball-0.9.8/tests/data/afl/afltables → sportsball-0.10.0/sportsball/vendor}/__init__.py +0 -0
  224. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball/vendor/pygooglenews/__init__.py +0 -0
  225. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball.egg-info/dependency_links.txt +0 -0
  226. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball.egg-info/entry_points.txt +0 -0
  227. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball.egg-info/not-zip-safe +0 -0
  228. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball.egg-info/requires.txt +0 -0
  229. {sportsball-0.9.8 → sportsball-0.10.0}/sportsball.egg-info/top_level.txt +0 -0
  230. {sportsball-0.9.8/tests/data/aussportsbetting → sportsball-0.10.0/tests}/__init__.py +0 -0
  231. {sportsball-0.9.8/tests/data/combined → sportsball-0.10.0/tests/data}/__init__.py +0 -0
  232. {sportsball-0.9.8/tests/data/espn → sportsball-0.10.0/tests/data/afl}/__init__.py +0 -0
  233. {sportsball-0.9.8/tests/data/google → sportsball-0.10.0/tests/data/afl/afl}/__init__.py +0 -0
  234. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/afl/afl/afl_afl_game_model_test.py +0 -0
  235. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/afl/afl/afl_afl_league_model_test.py +0 -0
  236. {sportsball-0.9.8/tests/data/hkjc → sportsball-0.10.0/tests/data/afl/afltables}/__init__.py +0 -0
  237. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/afl/afltables/afl_afltables_coach_model_test.py +0 -0
  238. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
  239. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
  240. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
  241. {sportsball-0.9.8/tests/data/hkjc/hkjc → sportsball-0.10.0/tests/data/aussportsbetting}/__init__.py +0 -0
  242. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
  243. {sportsball-0.9.8/tests/data/nba → sportsball-0.10.0/tests/data/combined}/__init__.py +0 -0
  244. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/combined/combined_game_model_test.py +0 -0
  245. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/combined/combined_venue_model_test.py +0 -0
  246. {sportsball-0.9.8/tests/data/nba/nba → sportsball-0.10.0/tests/data/espn}/__init__.py +0 -0
  247. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/espn/espn_game_model_test.py +0 -0
  248. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/espn/espn_player_model_test.py +0 -0
  249. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/game_model_test.py +0 -0
  250. {sportsball-0.9.8/tests/data/nba/sportsdb → sportsball-0.10.0/tests/data/google}/__init__.py +0 -0
  251. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/google/google_address_model_test.py +0 -0
  252. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/google/google_news_model_test.py +0 -0
  253. {sportsball-0.9.8/tests/data/nba/sportsreference → sportsball-0.10.0/tests/data/hkjc}/__init__.py +0 -0
  254. {sportsball-0.9.8/tests/data/ncaab → sportsball-0.10.0/tests/data/hkjc/hkjc}/__init__.py +0 -0
  255. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/hkjc/hkjc/hkjc_hkjc_game_model_test.py +0 -0
  256. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/hkjc/hkjc/hkjc_hkjc_player_model_test.py +0 -0
  257. {sportsball-0.9.8/tests/data/ncaab/sportsreference → sportsball-0.10.0/tests/data/nba}/__init__.py +0 -0
  258. {sportsball-0.9.8/tests/data/nfl → sportsball-0.10.0/tests/data/nba/nba}/__init__.py +0 -0
  259. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
  260. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
  261. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
  262. {sportsball-0.9.8/tests/data/nfl → sportsball-0.10.0/tests/data/nba}/sportsdb/__init__.py +0 -0
  263. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
  264. {sportsball-0.9.8/tests/data/oddsportal → sportsball-0.10.0/tests/data/nba/sportsreference}/__init__.py +0 -0
  265. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
  266. {sportsball-0.9.8/tests/data/sportsdb → sportsball-0.10.0/tests/data/ncaab}/__init__.py +0 -0
  267. {sportsball-0.9.8/tests/data → sportsball-0.10.0/tests/data/ncaab}/sportsreference/__init__.py +0 -0
  268. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
  269. {sportsball-0.9.8/tests/data/x → sportsball-0.10.0/tests/data/nfl}/__init__.py +0 -0
  270. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
  271. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/oddsportal/decrypt_test.py +0 -0
  272. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
  273. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
  274. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/social_model_test.py +0 -0
  275. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
  276. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
  277. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
  278. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
  279. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/sportsreference/sportsreference_coach_model_test.py +0 -0
  280. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
  281. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
  282. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
  283. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/team_model_test.py +0 -0
  284. {sportsball-0.9.8 → sportsball-0.10.0}/tests/data/x/x_social_model_test.py +0 -0
  285. {sportsball-0.9.8 → sportsball-0.10.0}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.9.8
3
+ Version: 0.10.0
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
@@ -127,6 +127,7 @@ The supported leagues are:
127
127
  * 🏀 [NCAAB](https://www.ncaa.com/sports/basketball-men/d1)
128
128
  * 🏈 [NCAAF](https://www.ncaa.com/sports/football/fbs)
129
129
  * 🏈 [NFL](https://www.nfl.com/)
130
+ * 🏒 [NHL](https://www.nhl.com/)
130
131
 
131
132
  ## Architecture :triangular_ruler:
132
133
 
@@ -500,6 +501,34 @@ A representation of a player within a team within a game.
500
501
  * **rushing_touchdowns_39_yards**: The rushing touchdowns made by the player during the game from 39 yards.
501
502
  * **rushing_touchdowns_49_yards**: The rushing touchdowns made by the player during the game from 49 yards.
502
503
  * **rushing_touchdowns_above_50_yards**: The rushing touchdowns made by the player during the game above 50 yards.
504
+ * **penalties_in_minutes**: The penalties in minutes for the player during the game (in seconds).
505
+ * **even_strength_goals**: The even strength goals by the player during the game.
506
+ * **power_play_goals**: The power play goals by the player during the game.
507
+ * **short_handed_goals**: The short handed goals by the player during the game.
508
+ * **game_winning_goals**: The game winning goals by the player during the game.
509
+ * **even_strength_assists**: The even strength assists by the player during the game.
510
+ * **power_play_assists**: The power play assists by the player during the game.
511
+ * **short_handed_assists**: The short handed assists by the player during the game.
512
+ * **shots_on_goal**: The shots on goal by the player during the game.
513
+ * **shooting_percentage**: The shooting percentage by the player during the game.
514
+ * **shifts**: The shifts by the player during the game.
515
+ * **time_on_ice**: The time on the ice by the player during the game in seconds.
516
+ * **decision**: The goalie decision by the player during the game.
517
+ * **goals_against**: The goals against the player during the game.
518
+ * **shots_against**: The shots against the player during the game.
519
+ * **saves**: The saves by the player during the game.
520
+ * **save_percentage**: The save percentage of the player during the game.
521
+ * **shutouts**: The shutouts by the player during the game.
522
+ * **individual_corsi_for_events**: Individual Corsi refers to the number of shot attempts (including shots on goal, blocked shots, and missed shots) taken by a player's team while that player is on the ice, compared to the number of shot attempts taken by the opposing team.
523
+ * **on_shot_ice_for_events**: : The total number of shot attempts (shots on goal, missed shots, and blocked shots) a player is on the ice for, both for and against their team, during a specific game or time period.
524
+ * **on_shot_ice_against_events**: The number of shot attempts the opposing team makes while that same player is on the ice.
525
+ * **corsi_for_percentage**: Measures a player's or team's shot attempt differential while on the ice.
526
+ * **relative_corsi_for_percentage**: Measures how much a player's on-ice Corsi For Percentage (CF%) differs from their team's overall CF% when the player is not on the ice.
527
+ * **offensive_zone_starts**: Indicates how frequently a player begins a shift in the offensive zone compared to the defensive zone.
528
+ * **defensive_zone_starts**: Indicates how frequently a player begins a shift in the defensive zone compared to the offensize zone.
529
+ * **offensive_zone_start_percentage**: The percentage a player begins a shift in the offensize zone to the defensize zone compared to the defensize zone to the offensize zone.
530
+ * **hits**: The hits made by the player during the game.
531
+ * **true_shooting_percentage**: The true shooting percentage of the player during the game.
503
532
 
504
533
  #### Odds
505
534
 
@@ -65,6 +65,7 @@ The supported leagues are:
65
65
  * 🏀 [NCAAB](https://www.ncaa.com/sports/basketball-men/d1)
66
66
  * 🏈 [NCAAF](https://www.ncaa.com/sports/football/fbs)
67
67
  * 🏈 [NFL](https://www.nfl.com/)
68
+ * 🏒 [NHL](https://www.nhl.com/)
68
69
 
69
70
  ## Architecture :triangular_ruler:
70
71
 
@@ -438,6 +439,34 @@ A representation of a player within a team within a game.
438
439
  * **rushing_touchdowns_39_yards**: The rushing touchdowns made by the player during the game from 39 yards.
439
440
  * **rushing_touchdowns_49_yards**: The rushing touchdowns made by the player during the game from 49 yards.
440
441
  * **rushing_touchdowns_above_50_yards**: The rushing touchdowns made by the player during the game above 50 yards.
442
+ * **penalties_in_minutes**: The penalties in minutes for the player during the game (in seconds).
443
+ * **even_strength_goals**: The even strength goals by the player during the game.
444
+ * **power_play_goals**: The power play goals by the player during the game.
445
+ * **short_handed_goals**: The short handed goals by the player during the game.
446
+ * **game_winning_goals**: The game winning goals by the player during the game.
447
+ * **even_strength_assists**: The even strength assists by the player during the game.
448
+ * **power_play_assists**: The power play assists by the player during the game.
449
+ * **short_handed_assists**: The short handed assists by the player during the game.
450
+ * **shots_on_goal**: The shots on goal by the player during the game.
451
+ * **shooting_percentage**: The shooting percentage by the player during the game.
452
+ * **shifts**: The shifts by the player during the game.
453
+ * **time_on_ice**: The time on the ice by the player during the game in seconds.
454
+ * **decision**: The goalie decision by the player during the game.
455
+ * **goals_against**: The goals against the player during the game.
456
+ * **shots_against**: The shots against the player during the game.
457
+ * **saves**: The saves by the player during the game.
458
+ * **save_percentage**: The save percentage of the player during the game.
459
+ * **shutouts**: The shutouts by the player during the game.
460
+ * **individual_corsi_for_events**: Individual Corsi refers to the number of shot attempts (including shots on goal, blocked shots, and missed shots) taken by a player's team while that player is on the ice, compared to the number of shot attempts taken by the opposing team.
461
+ * **on_shot_ice_for_events**: : The total number of shot attempts (shots on goal, missed shots, and blocked shots) a player is on the ice for, both for and against their team, during a specific game or time period.
462
+ * **on_shot_ice_against_events**: The number of shot attempts the opposing team makes while that same player is on the ice.
463
+ * **corsi_for_percentage**: Measures a player's or team's shot attempt differential while on the ice.
464
+ * **relative_corsi_for_percentage**: Measures how much a player's on-ice Corsi For Percentage (CF%) differs from their team's overall CF% when the player is not on the ice.
465
+ * **offensive_zone_starts**: Indicates how frequently a player begins a shift in the offensive zone compared to the defensive zone.
466
+ * **defensive_zone_starts**: Indicates how frequently a player begins a shift in the defensive zone compared to the offensize zone.
467
+ * **offensive_zone_start_percentage**: The percentage a player begins a shift in the offensize zone to the defensize zone compared to the defensize zone to the offensize zone.
468
+ * **hits**: The hits made by the player during the game.
469
+ * **true_shooting_percentage**: The true shooting percentage of the player during the game.
441
470
 
442
471
  #### Odds
443
472
 
@@ -26,7 +26,7 @@ def install_requires() -> typing.List[str]:
26
26
 
27
27
  setup(
28
28
  name='sportsball',
29
- version='0.9.8',
29
+ version='0.10.0',
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.9.8"
7
+ __VERSION__ = "0.10.0"
@@ -280,4 +280,32 @@ def create_afl_afl_player_model(
280
280
  rushing_touchdowns_39_yards=None,
281
281
  rushing_touchdowns_49_yards=None,
282
282
  rushing_touchdowns_above_50_yards=None,
283
+ penalties_in_minutes=None,
284
+ even_strength_goals=None,
285
+ power_play_goals=None,
286
+ short_handed_goals=None,
287
+ game_winning_goals=None,
288
+ even_strength_assists=None,
289
+ power_play_assists=None,
290
+ short_handed_assists=None,
291
+ shots_on_goal=None,
292
+ shooting_percentage=None,
293
+ shifts=None,
294
+ time_on_ice=None,
295
+ decision=None,
296
+ goals_against=None,
297
+ shots_against=None,
298
+ saves=None,
299
+ save_percentage=None,
300
+ shutouts=None,
301
+ individual_corsi_for_events=None,
302
+ on_shot_ice_for_events=None,
303
+ on_shot_ice_against_events=None,
304
+ corsi_for_percentage=None,
305
+ relative_corsi_for_percentage=None,
306
+ offensive_zone_starts=None,
307
+ defensive_zone_starts=None,
308
+ offensive_zone_start_percentage=None,
309
+ hits=None,
310
+ true_shooting_percentage=None,
283
311
  )
@@ -345,6 +345,34 @@ def _create_afl_afltables_player_model(
345
345
  rushing_touchdowns_39_yards=None,
346
346
  rushing_touchdowns_49_yards=None,
347
347
  rushing_touchdowns_above_50_yards=None,
348
+ penalties_in_minutes=None,
349
+ even_strength_goals=None,
350
+ power_play_goals=None,
351
+ short_handed_goals=None,
352
+ game_winning_goals=None,
353
+ even_strength_assists=None,
354
+ power_play_assists=None,
355
+ short_handed_assists=None,
356
+ shots_on_goal=None,
357
+ shooting_percentage=None,
358
+ shifts=None,
359
+ time_on_ice=None,
360
+ decision=None,
361
+ goals_against=None,
362
+ shots_against=None,
363
+ saves=None,
364
+ save_percentage=None,
365
+ shutouts=None,
366
+ individual_corsi_for_events=None,
367
+ on_shot_ice_for_events=None,
368
+ on_shot_ice_against_events=None,
369
+ corsi_for_percentage=None,
370
+ relative_corsi_for_percentage=None,
371
+ offensive_zone_starts=None,
372
+ defensive_zone_starts=None,
373
+ offensive_zone_start_percentage=None,
374
+ hits=None,
375
+ true_shooting_percentage=None,
348
376
  )
349
377
 
350
378
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  from ..address_model import AddressModel
4
4
  from .combined_weather_model import create_combined_weather_model
5
+ from .most_interesting import more_interesting
5
6
  from .null_check import is_null
6
7
 
7
8
 
@@ -17,21 +18,13 @@ def create_combined_address_model(
17
18
  weather_models = []
18
19
  altitude = None
19
20
  for address_model in address_models:
20
- address_model_latitude = address_model.latitude
21
- if not is_null(address_model_latitude):
22
- latitude = address_model_latitude
23
- address_model_longitude = address_model.longitude
24
- if not is_null(address_model_longitude):
25
- longitude = address_model_longitude
26
- address_model_housenumber = address_model.housenumber
27
- if not is_null(address_model_housenumber):
28
- housenumber = address_model_housenumber
21
+ latitude = more_interesting(latitude, address_model.latitude)
22
+ longitude = more_interesting(longitude, address_model.longitude)
23
+ housenumber = more_interesting(housenumber, address_model.housenumber)
29
24
  address_model_weather = address_model.weather
30
25
  if not is_null(address_model_weather):
31
26
  weather_models.append(address_model_weather)
32
- address_model_altitude = address_model.altitude
33
- if not is_null(address_model_altitude):
34
- altitude = address_model_altitude
27
+ altitude = more_interesting(altitude, address_model.altitude)
35
28
  return AddressModel(
36
29
  city=address_models[0].city,
37
30
  state=address_models[0].state,
@@ -4,7 +4,7 @@ from typing import Any
4
4
 
5
5
  from ..coach_model import VERSION, CoachModel
6
6
  from .ffill import ffill
7
- from .null_check import is_null
7
+ from .most_interesting import more_interesting
8
8
 
9
9
 
10
10
  def create_combined_coach_model(
@@ -18,18 +18,10 @@ def create_combined_coach_model(
18
18
  age = None
19
19
  sex = None
20
20
  for coach_model in coach_models:
21
- coach_model_name = coach_model.name
22
- if not is_null(coach_model_name):
23
- name = coach_model_name
24
- coach_model_birthdate = coach_model.birth_date
25
- if not is_null(coach_model_birthdate):
26
- birth_date = coach_model_birthdate
27
- coach_model_age = coach_model.age
28
- if not is_null(coach_model_age):
29
- age = coach_model_age
30
- coach_model_sex = coach_model.sex
31
- if not is_null(coach_model_sex):
32
- sex = coach_model_sex
21
+ name = more_interesting(name, coach_model.name)
22
+ birth_date = more_interesting(birth_date, coach_model.birth_date)
23
+ age = more_interesting(age, coach_model.age)
24
+ sex = more_interesting(sex, coach_model.sex)
33
25
  if name is None:
34
26
  raise ValueError("name is null.")
35
27
  coach_model = CoachModel(
@@ -11,7 +11,7 @@ from ..team_model import TeamModel
11
11
  from ..venue_model import VenueModel
12
12
  from .combined_team_model import create_combined_team_model
13
13
  from .combined_venue_model import create_combined_venue_model
14
- from .null_check import is_null
14
+ from .most_interesting import more_interesting
15
15
 
16
16
 
17
17
  def _venue_models(
@@ -110,40 +110,18 @@ def create_combined_game_model(
110
110
  pot = None
111
111
  dt = game_models[0].dt
112
112
  for game_model in game_models:
113
- game_model_dt = game_model.dt
114
- if game_model_dt.tzinfo is not None and dt.tzinfo is None:
115
- dt = game_model_dt
116
- game_model_attendance = game_model.attendance
117
- if not is_null(game_model_attendance):
118
- attendance = game_model_attendance
119
- game_model_end_dt = game_model.end_dt
120
- if not is_null(game_model_end_dt):
121
- end_dt = game_model_end_dt
122
- game_model_year = game_model.year
123
- if not is_null(game_model_year):
124
- year = game_model_year
125
- game_model_season_type = game_model.season_type
126
- if not is_null(game_model_season_type):
127
- season_type = game_model_season_type
128
- game_model_week = game_model.week
129
- if not is_null(game_model_week):
130
- week = game_model_week
131
- game_model_game_number = game_model.game_number
132
- if not is_null(game_model_game_number):
133
- game_number = game_model_game_number
134
- game_model_postponed = game_model.postponed
135
- if not is_null(game_model_postponed):
136
- postponed = game_model_postponed
137
- game_model_play_off = game_model.play_off
138
- if not is_null(game_model_play_off):
139
- play_off = game_model_play_off
140
- game_model_distance = game_model.distance
141
- if not is_null(game_model_distance):
142
- distance = game_model_distance
113
+ dt = more_interesting(dt, game_model.dt)
114
+ attendance = more_interesting(attendance, game_model.attendance)
115
+ end_dt = more_interesting(end_dt, game_model.end_dt)
116
+ year = more_interesting(year, game_model.year)
117
+ season_type = more_interesting(season_type, game_model.season_type)
118
+ week = more_interesting(week, game_model.week)
119
+ game_number = more_interesting(game_number, game_model.game_number)
120
+ postponed = more_interesting(postponed, game_model.postponed)
121
+ play_off = more_interesting(play_off, game_model.play_off)
122
+ distance = more_interesting(distance, game_model.distance)
143
123
  dividends.extend(game_model.dividends)
144
- game_model_pot = game_model.pot
145
- if not is_null(game_model_pot):
146
- pot = game_model_pot
124
+ pot = more_interesting(pot, game_model.pot)
147
125
 
148
126
  if full_venue_identity is None and venue_models:
149
127
  for venue_model in venue_models: