sportsball 0.5.23__tar.gz → 0.6.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 (263) hide show
  1. {sportsball-0.5.23/sportsball.egg-info → sportsball-0.6.0}/PKG-INFO +64 -1
  2. {sportsball-0.5.23 → sportsball-0.6.0}/README.md +63 -0
  3. {sportsball-0.5.23 → sportsball-0.6.0}/setup.py +1 -1
  4. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/__init__.py +1 -1
  5. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/combined/afl_combined_league_model.py +1 -0
  6. sportsball-0.6.0/sportsball/data/combined/combined_weather_model.py +359 -0
  7. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/google/google_address_model.py +1 -0
  8. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/league_model.py +19 -1
  9. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nfl/position.py +1 -0
  10. sportsball-0.6.0/sportsball/data/weather/gribstream/gribstream_weather_model.py +159 -0
  11. sportsball-0.6.0/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +480 -0
  12. sportsball-0.6.0/sportsball/data/weather_model.py +77 -0
  13. {sportsball-0.5.23 → sportsball-0.6.0/sportsball.egg-info}/PKG-INFO +64 -1
  14. sportsball-0.5.23/sportsball/data/combined/combined_weather_model.py +0 -22
  15. sportsball-0.5.23/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -85
  16. sportsball-0.5.23/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -181
  17. sportsball-0.5.23/sportsball/data/weather_model.py +0 -10
  18. {sportsball-0.5.23 → sportsball-0.6.0}/LICENSE +0 -0
  19. {sportsball-0.5.23 → sportsball-0.6.0}/MANIFEST.in +0 -0
  20. {sportsball-0.5.23 → sportsball-0.6.0}/requirements.txt +0 -0
  21. {sportsball-0.5.23 → sportsball-0.6.0}/setup.cfg +0 -0
  22. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/__main__.py +0 -0
  23. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/args.py +0 -0
  24. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/cache.py +0 -0
  25. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/__init__.py +0 -0
  26. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/address_model.py +0 -0
  27. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/__init__.py +0 -0
  28. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afl/__init__.py +0 -0
  29. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afl/afl_afl_bookie_model.py +0 -0
  30. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
  31. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afl/afl_afl_league_model.py +0 -0
  32. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afl/afl_afl_odds_model.py +0 -0
  33. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
  34. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
  35. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
  36. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afltables/__init__.py +0 -0
  37. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afltables/afl_afltables_coach_model.py +0 -0
  38. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
  39. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
  40. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
  41. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
  42. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
  43. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
  44. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
  45. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/combined/__init__.py +0 -0
  46. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/espn/__init__.py +0 -0
  47. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
  48. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/oddsportal/__init__.py +0 -0
  49. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
  50. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/afl/position.py +0 -0
  51. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/aussportsbetting/__init__.py +0 -0
  52. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
  53. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
  54. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
  55. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
  56. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
  57. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
  58. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/bet.py +0 -0
  59. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/bookie_model.py +0 -0
  60. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/coach_model.py +0 -0
  61. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/combined/__init__.py +0 -0
  62. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/combined/combined_address_model.py +0 -0
  63. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/combined/combined_coach_model.py +0 -0
  64. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/combined/combined_game_model.py +0 -0
  65. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/combined/combined_league_model.py +0 -0
  66. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/combined/combined_player_model.py +0 -0
  67. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/combined/combined_team_model.py +0 -0
  68. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/combined/combined_venue_model.py +0 -0
  69. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/combined/null_check.py +0 -0
  70. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/dividend_model.py +0 -0
  71. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/espn/__init__.py +0 -0
  72. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/espn/espn_bookie_model.py +0 -0
  73. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/espn/espn_coach_model.py +0 -0
  74. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/espn/espn_game_model.py +0 -0
  75. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/espn/espn_league_model.py +0 -0
  76. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/espn/espn_odds_model.py +0 -0
  77. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/espn/espn_player_model.py +0 -0
  78. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/espn/espn_team_model.py +0 -0
  79. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/espn/espn_venue_model.py +0 -0
  80. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/field_type.py +0 -0
  81. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/game_model.py +0 -0
  82. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/google/__init__.py +0 -0
  83. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/google/google_news_model.py +0 -0
  84. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/hkjc/__init__.py +0 -0
  85. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/hkjc/hkjc/__init__.py +0 -0
  86. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_bookie_model.py +0 -0
  87. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_coach_model.py +0 -0
  88. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_dividend_model.py +0 -0
  89. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_game_model.py +0 -0
  90. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_league_model.py +0 -0
  91. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_odds_model.py +0 -0
  92. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_owner_model.py +0 -0
  93. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_player_model.py +0 -0
  94. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_team_model.py +0 -0
  95. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/hkjc/hkjc/hkjc_hkjc_venue_model.py +0 -0
  96. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/hkjc/position.py +0 -0
  97. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/league.py +0 -0
  98. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/model.py +0 -0
  99. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/__init__.py +0 -0
  100. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/combined/__init__.py +0 -0
  101. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
  102. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/espn/__init__.py +0 -0
  103. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
  104. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/nba/__init__.py +0 -0
  105. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
  106. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
  107. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
  108. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/nbacom/__init__.py +0 -0
  109. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/nbacom/nba_nbacom_game_model.py +0 -0
  110. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/nbacom/nba_nbacom_league_model.py +0 -0
  111. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/nbacom/nba_nbacom_player_model.py +0 -0
  112. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/nbacom/nba_nbacom_team_model.py +0 -0
  113. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/nbacom/nba_nbacom_venue_model.py +0 -0
  114. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/oddsportal/__init__.py +0 -0
  115. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
  116. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/position.py +0 -0
  117. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/sportsdb/__init__.py +0 -0
  118. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
  119. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/sportsreference/__init__.py +0 -0
  120. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
  121. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaab/__init__.py +0 -0
  122. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaab/combined/__init__.py +0 -0
  123. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
  124. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaab/espn/__init__.py +0 -0
  125. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
  126. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
  127. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
  128. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
  129. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
  130. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaaf/__init__.py +0 -0
  131. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaaf/combined/__init__.py +0 -0
  132. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
  133. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaaf/espn/__init__.py +0 -0
  134. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
  135. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
  136. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
  137. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/news_model.py +0 -0
  138. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nfl/__init__.py +0 -0
  139. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
  140. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
  141. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nfl/combined/__init__.py +0 -0
  142. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
  143. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nfl/espn/__init__.py +0 -0
  144. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
  145. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
  146. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
  147. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
  148. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
  149. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/odds_model.py +0 -0
  150. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/oddsportal/__init__.py +0 -0
  151. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/oddsportal/decrypt.py +0 -0
  152. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
  153. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
  154. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
  155. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
  156. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
  157. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
  158. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/owner_model.py +0 -0
  159. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/player_model.py +0 -0
  160. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/season_type.py +0 -0
  161. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/sex.py +0 -0
  162. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/social_model.py +0 -0
  163. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/species.py +0 -0
  164. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/sportsdb/__init__.py +0 -0
  165. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
  166. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
  167. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
  168. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
  169. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/sportsreference/__init__.py +0 -0
  170. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/sportsreference/sportsreference_coach_model.py +0 -0
  171. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/sportsreference/sportsreference_game_model.py +0 -0
  172. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
  173. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
  174. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/sportsreference/sportsreference_team_model.py +0 -0
  175. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
  176. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/team_model.py +0 -0
  177. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/venue_model.py +0 -0
  178. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/weather/__init__.py +0 -0
  179. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/weather/gribstream/__init__.py +0 -0
  180. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/weather/multi_weather_model.py +0 -0
  181. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/weather/openmeteo/__init__.py +0 -0
  182. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/wikipedia/__init__.py +0 -0
  183. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
  184. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/x/__init__.py +0 -0
  185. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/data/x/x_social_model.py +0 -0
  186. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/logger.py +0 -0
  187. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/loglevel.py +0 -0
  188. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/playwright.py +0 -0
  189. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/sportsball.py +0 -0
  190. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/vendor/__init__.py +0 -0
  191. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball/vendor/pygooglenews/__init__.py +0 -0
  192. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball.egg-info/SOURCES.txt +0 -0
  193. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball.egg-info/dependency_links.txt +0 -0
  194. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball.egg-info/entry_points.txt +0 -0
  195. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball.egg-info/not-zip-safe +0 -0
  196. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball.egg-info/requires.txt +0 -0
  197. {sportsball-0.5.23 → sportsball-0.6.0}/sportsball.egg-info/top_level.txt +0 -0
  198. {sportsball-0.5.23 → sportsball-0.6.0}/tests/__init__.py +0 -0
  199. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/__init__.py +0 -0
  200. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/afl/__init__.py +0 -0
  201. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/afl/afl/__init__.py +0 -0
  202. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/afl/afl/afl_afl_game_model_test.py +0 -0
  203. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/afl/afl/afl_afl_league_model_test.py +0 -0
  204. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/afl/afltables/__init__.py +0 -0
  205. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/afl/afltables/afl_afltables_coach_model_test.py +0 -0
  206. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
  207. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
  208. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
  209. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/aussportsbetting/__init__.py +0 -0
  210. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
  211. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/combined/__init__.py +0 -0
  212. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/combined/combined_game_model_test.py +0 -0
  213. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/combined/combined_player_model_test.py +0 -0
  214. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/combined/combined_team_model_test.py +0 -0
  215. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/combined/combined_venue_model_test.py +0 -0
  216. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/espn/__init__.py +0 -0
  217. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/espn/espn_game_model_test.py +0 -0
  218. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/espn/espn_player_model_test.py +0 -0
  219. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/game_model_test.py +0 -0
  220. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/google/__init__.py +0 -0
  221. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/google/google_address_model_test.py +0 -0
  222. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/google/google_news_model_test.py +0 -0
  223. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/hkjc/__init__.py +0 -0
  224. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/hkjc/hkjc/__init__.py +0 -0
  225. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/hkjc/hkjc/hkjc_hkjc_game_model_test.py +0 -0
  226. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/hkjc/hkjc/hkjc_hkjc_player_model_test.py +0 -0
  227. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/nba/__init__.py +0 -0
  228. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/nba/nba/__init__.py +0 -0
  229. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
  230. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
  231. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
  232. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/nba/sportsdb/__init__.py +0 -0
  233. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
  234. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/nba/sportsreference/__init__.py +0 -0
  235. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
  236. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/ncaab/__init__.py +0 -0
  237. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/ncaab/sportsreference/__init__.py +0 -0
  238. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
  239. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/nfl/__init__.py +0 -0
  240. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/nfl/sportsdb/__init__.py +0 -0
  241. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
  242. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/oddsportal/__init__.py +0 -0
  243. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/oddsportal/decrypt_test.py +0 -0
  244. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
  245. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
  246. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/player_model_test.py +0 -0
  247. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/social_model_test.py +0 -0
  248. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/sportsdb/__init__.py +0 -0
  249. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
  250. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
  251. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
  252. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
  253. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/sportsreference/__init__.py +0 -0
  254. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/sportsreference/sportsreference_coach_model_test.py +0 -0
  255. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
  256. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
  257. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
  258. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
  259. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
  260. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/team_model_test.py +0 -0
  261. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/x/__init__.py +0 -0
  262. {sportsball-0.5.23 → sportsball-0.6.0}/tests/data/x/x_social_model_test.py +0 -0
  263. {sportsball-0.5.23 → sportsball-0.6.0}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.5.23
3
+ Version: 0.6.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
@@ -328,6 +328,69 @@ The forecasted weather one day out at the address of the game start time.
328
328
 
329
329
  * **temperature**: The temperature at the address at the game start time.
330
330
  * **relative_humidity**: The relative humidity at the address at the game start time.
331
+ * **dew_point**: The temperature at the address at the game start time.
332
+ * **apparent_temperature**: The apparent temperature at the address at the game start time.
333
+ * **precipitation_probability**: The precipitation probability at the address at the game start time.
334
+ * **precipitation**: The precipitation at the address at the game start time.
335
+ * **rain**: The rain at the address at the game start time.
336
+ * **showers**: The showers at the address at the game start time.
337
+ * **snowfall**: The snowfall at the address at the game start time.
338
+ * **snow_depth**: The snow depth at the address at the game start time.
339
+ * **weather_code**: The weather code at the address at the game start time.
340
+ * **sealevel_pressure**: The sealevel pressure at the address at the game start time.
341
+ * **surface_pressure**: The surface pressure at the address at the game start time.
342
+ * **cloud_cover_total**: The total cloud cover at the address at the game start time.
343
+ * **cloud_cover_low**: The low cloud cover at the address at the game start time.
344
+ * **cloud_cover_mid**: The mid cloud cover at the address at the game start time.
345
+ * **cloud_cover_high**: The high cloud cover at the address at the game start time.
346
+ * **visibility**: The visibility at the address at the game start time.
347
+ * **evapotranspiration**: The evapotranspiration at the address at the game start time.
348
+ * **reference_evapotranspiration**: The reference evapotranspiration at the address at the game start time.
349
+ * **vapour_pressure_deficit**: The vapour pressure deficit at the address at the game start time.
350
+ * **wind_speed_10m**: The wind speed at 10m at the address at the game start time.
351
+ * **wind_speed_80m**: The wind speed at 80m at the address at the game start time.
352
+ * **wind_speed_120m**: The wind speed at 120m at the address at the game start time.
353
+ * **wind_speed_180m**: The wind speed at 180m at the address at the game start time.
354
+ * **wind_direction_10m**: The wind direction at 10m at the address at the game start time.
355
+ * **wind_direction_80m**: The wind direction at 80m at the address at the game start time.
356
+ * **wind_direction_120m**: The wind direction at 120m at the address at the game start time.
357
+ * **wind_direction_180m**: The wind direction at 180m at the address at the game start time.
358
+ * **wind_gusts**: The wind gusts at the address at the game start time.
359
+ * **temperature_80m**: The temperature at 80m at the address at the game start time.
360
+ * **temperature_120m**: The temperature at 120m at the address at the game start time.
361
+ * **temperature_180m**: The temperature at 180m at the address at the game start time.
362
+ * **soil_temperature_0cm**: The soil temperature at the address at the game start time.
363
+ * **soil_temperature_6cm**: The soil temperature at 6cm at the address at the game start time.
364
+ * **soil_temperature_18cm**: The soil temperature at 18cm at the address at the game start time.
365
+ * **soil_temperature_54cm**: The soil temperature at 54cm at the address at the game start time.
366
+ * **soil_moisture_0cm**: The soil moisture at the address at the game start time.
367
+ * **soil_moisture_1cm**: The soil moisture at 1cm at the address at the game start time.
368
+ * **soil_moisture_3cm**: The soil moisture at 3cm at the address at the game start time.
369
+ * **soil_moisture_9cm**: The soil moisture at 9cm at the address at the game start time.
370
+ * **soil_moisture_27cm**: The soil moisture at 27cm at the address at the game start time.
371
+ * **daily_weather_code**: The daily weather code at the address at the game start time.
372
+ * **daily_maximum_temperature_2m**: The daily maximum temperature at 2m at the address at the game start time.
373
+ * **daily_minimum_temperature_2m**: The daily minimum temperature at 2m at the address at the game start time.
374
+ * **daily_maximum_apparent_temperature_2m**: The daily maximum apparent temperature at 2m at the address at the game start time.
375
+ * **daily_minimum_apparent_temperature_2m**: The daily minimum apparent temperature at 2m at the address at the game start time.
376
+ * **sunrise**: The sunrise at the address at the game start time.
377
+ * **sunset**: The sunset at the address at the game start time.
378
+ * **daylight_duration**: The daylight duration at the address at the game start time.
379
+ * **sunshine_duration**: The sunshine duration at the address at the game start time.
380
+ * **uv_index**: The UV index at the address at the game start time.
381
+ * **uv_index_clear_sky**: The UV index for clear sky at the address at the game start time.
382
+ * **rain_sum**: The rain sum at the address at the game start time.
383
+ * **showers_sum**: The showers sum at the address at the game start time.
384
+ * **snowfall_sum**: The snowfall sum at the address at the game start time.
385
+ * **precipitation_sum**: The precipitation sum at the address at the game start time.
386
+ * **precipitation_hours**: The precipitation hours at the address at the game start time.
387
+ * **precipitation_probability_max**: The maximum precipitation probability at the address at the game start time.
388
+ * **maximum_wind_speed_10m**: The maximum wind speed at 10m at the address at the game start time.
389
+ * **maximum_wind_gusts_10m**: The maximum wind gusts at 10m at the address at the game start time.
390
+ * **dominant_wind_direction**: The dominant wind direction at the address at the game start time.
391
+ * **shortwave_radiation_sum**: The shortwave radiation sum at the address at the game start time.
392
+ * **daily_reference_evapotranspiration**: The daily reference evapotranspiration at the address at the game start time.
393
+ * **version**: The version of the weather model.
331
394
 
332
395
  #### News
333
396
 
@@ -267,6 +267,69 @@ The forecasted weather one day out at the address of the game start time.
267
267
 
268
268
  * **temperature**: The temperature at the address at the game start time.
269
269
  * **relative_humidity**: The relative humidity at the address at the game start time.
270
+ * **dew_point**: The temperature at the address at the game start time.
271
+ * **apparent_temperature**: The apparent temperature at the address at the game start time.
272
+ * **precipitation_probability**: The precipitation probability at the address at the game start time.
273
+ * **precipitation**: The precipitation at the address at the game start time.
274
+ * **rain**: The rain at the address at the game start time.
275
+ * **showers**: The showers at the address at the game start time.
276
+ * **snowfall**: The snowfall at the address at the game start time.
277
+ * **snow_depth**: The snow depth at the address at the game start time.
278
+ * **weather_code**: The weather code at the address at the game start time.
279
+ * **sealevel_pressure**: The sealevel pressure at the address at the game start time.
280
+ * **surface_pressure**: The surface pressure at the address at the game start time.
281
+ * **cloud_cover_total**: The total cloud cover at the address at the game start time.
282
+ * **cloud_cover_low**: The low cloud cover at the address at the game start time.
283
+ * **cloud_cover_mid**: The mid cloud cover at the address at the game start time.
284
+ * **cloud_cover_high**: The high cloud cover at the address at the game start time.
285
+ * **visibility**: The visibility at the address at the game start time.
286
+ * **evapotranspiration**: The evapotranspiration at the address at the game start time.
287
+ * **reference_evapotranspiration**: The reference evapotranspiration at the address at the game start time.
288
+ * **vapour_pressure_deficit**: The vapour pressure deficit at the address at the game start time.
289
+ * **wind_speed_10m**: The wind speed at 10m at the address at the game start time.
290
+ * **wind_speed_80m**: The wind speed at 80m at the address at the game start time.
291
+ * **wind_speed_120m**: The wind speed at 120m at the address at the game start time.
292
+ * **wind_speed_180m**: The wind speed at 180m at the address at the game start time.
293
+ * **wind_direction_10m**: The wind direction at 10m at the address at the game start time.
294
+ * **wind_direction_80m**: The wind direction at 80m at the address at the game start time.
295
+ * **wind_direction_120m**: The wind direction at 120m at the address at the game start time.
296
+ * **wind_direction_180m**: The wind direction at 180m at the address at the game start time.
297
+ * **wind_gusts**: The wind gusts at the address at the game start time.
298
+ * **temperature_80m**: The temperature at 80m at the address at the game start time.
299
+ * **temperature_120m**: The temperature at 120m at the address at the game start time.
300
+ * **temperature_180m**: The temperature at 180m at the address at the game start time.
301
+ * **soil_temperature_0cm**: The soil temperature at the address at the game start time.
302
+ * **soil_temperature_6cm**: The soil temperature at 6cm at the address at the game start time.
303
+ * **soil_temperature_18cm**: The soil temperature at 18cm at the address at the game start time.
304
+ * **soil_temperature_54cm**: The soil temperature at 54cm at the address at the game start time.
305
+ * **soil_moisture_0cm**: The soil moisture at the address at the game start time.
306
+ * **soil_moisture_1cm**: The soil moisture at 1cm at the address at the game start time.
307
+ * **soil_moisture_3cm**: The soil moisture at 3cm at the address at the game start time.
308
+ * **soil_moisture_9cm**: The soil moisture at 9cm at the address at the game start time.
309
+ * **soil_moisture_27cm**: The soil moisture at 27cm at the address at the game start time.
310
+ * **daily_weather_code**: The daily weather code at the address at the game start time.
311
+ * **daily_maximum_temperature_2m**: The daily maximum temperature at 2m at the address at the game start time.
312
+ * **daily_minimum_temperature_2m**: The daily minimum temperature at 2m at the address at the game start time.
313
+ * **daily_maximum_apparent_temperature_2m**: The daily maximum apparent temperature at 2m at the address at the game start time.
314
+ * **daily_minimum_apparent_temperature_2m**: The daily minimum apparent temperature at 2m at the address at the game start time.
315
+ * **sunrise**: The sunrise at the address at the game start time.
316
+ * **sunset**: The sunset at the address at the game start time.
317
+ * **daylight_duration**: The daylight duration at the address at the game start time.
318
+ * **sunshine_duration**: The sunshine duration at the address at the game start time.
319
+ * **uv_index**: The UV index at the address at the game start time.
320
+ * **uv_index_clear_sky**: The UV index for clear sky at the address at the game start time.
321
+ * **rain_sum**: The rain sum at the address at the game start time.
322
+ * **showers_sum**: The showers sum at the address at the game start time.
323
+ * **snowfall_sum**: The snowfall sum at the address at the game start time.
324
+ * **precipitation_sum**: The precipitation sum at the address at the game start time.
325
+ * **precipitation_hours**: The precipitation hours at the address at the game start time.
326
+ * **precipitation_probability_max**: The maximum precipitation probability at the address at the game start time.
327
+ * **maximum_wind_speed_10m**: The maximum wind speed at 10m at the address at the game start time.
328
+ * **maximum_wind_gusts_10m**: The maximum wind gusts at 10m at the address at the game start time.
329
+ * **dominant_wind_direction**: The dominant wind direction at the address at the game start time.
330
+ * **shortwave_radiation_sum**: The shortwave radiation sum at the address at the game start time.
331
+ * **daily_reference_evapotranspiration**: The daily reference evapotranspiration at the address at the game start time.
332
+ * **version**: The version of the weather model.
270
333
 
271
334
  #### News
272
335
 
@@ -26,7 +26,7 @@ def install_requires() -> typing.List[str]:
26
26
 
27
27
  setup(
28
28
  name='sportsball',
29
- version='0.5.23',
29
+ version='0.6.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.5.23"
7
+ __VERSION__ = "0.6.0"
@@ -207,6 +207,7 @@ AFL_VENUE_IDENTITY_MAP = {
207
207
  "norwood": NORWOOD,
208
208
  "summit": SUMMIT,
209
209
  "barossa": BAROSSA_PARK,
210
+ "hands": HANDS_OVAL,
210
211
  # Aus Sports Betting
211
212
  "MCG": MCG,
212
213
  "SCG": SCG,
@@ -0,0 +1,359 @@
1
+ """Combined weather model."""
2
+
3
+ # pylint: disable=too-many-locals,too-many-statements,too-many-branches
4
+ from ..weather_model import WeatherModel
5
+ from .null_check import is_null
6
+
7
+
8
+ def create_combined_weather_model(
9
+ weather_models: list[WeatherModel],
10
+ ) -> WeatherModel | None:
11
+ """Create a weather model by combining many weather models."""
12
+ if not weather_models:
13
+ return None
14
+ temperature = None
15
+ relative_humidity = None
16
+ dew_point = None
17
+ apparent_temperature = None
18
+ precipitation_probability = None
19
+ precipitation = None
20
+ rain = None
21
+ showers = None
22
+ snowfall = None
23
+ snow_depth = None
24
+ weather_code = None
25
+ sealevel_pressure = None
26
+ surface_pressure = None
27
+ cloud_cover_total = None
28
+ cloud_cover_low = None
29
+ cloud_cover_mid = None
30
+ cloud_cover_high = None
31
+ visibility = None
32
+ evapotranspiration = None
33
+ reference_evapotranspiration = None
34
+ vapour_pressure_deficit = None
35
+ wind_speed_10m = None
36
+ wind_speed_80m = None
37
+ wind_speed_120m = None
38
+ wind_speed_180m = None
39
+ wind_direction_10m = None
40
+ wind_direction_80m = None
41
+ wind_direction_120m = None
42
+ wind_direction_180m = None
43
+ wind_gusts = None
44
+ temperature_80m = None
45
+ temperature_120m = None
46
+ temperature_180m = None
47
+ soil_temperature_0cm = None
48
+ soil_temperature_6cm = None
49
+ soil_temperature_18cm = None
50
+ soil_temperature_54cm = None
51
+ soil_moisture_0cm = None
52
+ soil_moisture_1cm = None
53
+ soil_moisture_3cm = None
54
+ soil_moisture_9cm = None
55
+ soil_moisture_27cm = None
56
+ daily_weather_code = None
57
+ daily_maximum_temperature_2m = None
58
+ daily_minimum_temperature_2m = None
59
+ daily_maximum_apparent_temperature_2m = None
60
+ daily_minimum_apparent_temperature_2m = None
61
+ sunrise = None
62
+ sunset = None
63
+ daylight_duration = None
64
+ sunshine_duration = None
65
+ uv_index = None
66
+ uv_index_clear_sky = None
67
+ rain_sum = None
68
+ showers_sum = None
69
+ snowfall_sum = None
70
+ precipitation_sum = None
71
+ precipitation_hours = None
72
+ precipitation_probability_max = None
73
+ maximum_wind_speed_10m = None
74
+ maximum_wind_gusts_10m = None
75
+ dominant_wind_direction = None
76
+ shortwave_radiation_sum = None
77
+ daily_reference_evapotranspiration = None
78
+ for weather_model in weather_models:
79
+ weather_model_temperature = weather_model.temperature
80
+ if not is_null(weather_model_temperature):
81
+ temperature = weather_model_temperature
82
+ weather_model_relative_humidity = weather_model.relative_humidity
83
+ if not is_null(weather_model_relative_humidity):
84
+ relative_humidity = weather_model_relative_humidity
85
+ weather_model_dew_point = weather_model.dew_point
86
+ if not is_null(weather_model_dew_point):
87
+ dew_point = weather_model_dew_point
88
+ weather_model_apparent_temperature = weather_model.apparent_temperature
89
+ if not is_null(weather_model_apparent_temperature):
90
+ apparent_temperature = weather_model_apparent_temperature
91
+ weather_model_precipitation_probability = (
92
+ weather_model.precipitation_probability
93
+ )
94
+ if not is_null(weather_model_precipitation_probability):
95
+ precipitation_probability = weather_model_precipitation_probability
96
+ weather_model_precipitation = weather_model.precipitation
97
+ if not is_null(weather_model_precipitation):
98
+ precipitation = weather_model_precipitation
99
+ weather_model_rain = weather_model.rain
100
+ if not is_null(weather_model_rain):
101
+ rain = weather_model_rain
102
+ weather_model_showers = weather_model.showers
103
+ if not is_null(weather_model_showers):
104
+ showers = weather_model_showers
105
+ weather_model_snowfall = weather_model.snowfall
106
+ if not is_null(weather_model_snowfall):
107
+ snowfall = weather_model_snowfall
108
+ weather_model_snow_depth = weather_model.snow_depth
109
+ if not is_null(weather_model_snow_depth):
110
+ snow_depth = weather_model_snow_depth
111
+ weather_model_weather_code = weather_model.weather_code
112
+ if not is_null(weather_model_weather_code):
113
+ weather_code = weather_model_weather_code
114
+ weather_model_sealevel_pressure = weather_model.sealevel_pressure
115
+ if not is_null(weather_model_sealevel_pressure):
116
+ sealevel_pressure = weather_model_sealevel_pressure
117
+ weather_model_surface_pressure = weather_model.surface_pressure
118
+ if not is_null(weather_model_surface_pressure):
119
+ surface_pressure = weather_model_surface_pressure
120
+ weather_model_cloud_cover_total = weather_model.cloud_cover_total
121
+ if not is_null(weather_model_cloud_cover_total):
122
+ cloud_cover_total = weather_model_cloud_cover_total
123
+ weather_model_cloud_cover_low = weather_model.cloud_cover_low
124
+ if not is_null(weather_model_cloud_cover_low):
125
+ cloud_cover_low = weather_model_cloud_cover_low
126
+ weather_model_cloud_cover_mid = weather_model.cloud_cover_mid
127
+ if not is_null(weather_model_cloud_cover_mid):
128
+ cloud_cover_mid = weather_model_cloud_cover_mid
129
+ weather_model_cloud_cover_high = weather_model.cloud_cover_high
130
+ if not is_null(weather_model_cloud_cover_high):
131
+ cloud_cover_high = weather_model_cloud_cover_high
132
+ weather_model_visibility = weather_model.visibility
133
+ if not is_null(weather_model_visibility):
134
+ visibility = weather_model_visibility
135
+ weather_model_evapotranspiration = weather_model.evapotranspiration
136
+ if not is_null(weather_model_evapotranspiration):
137
+ evapotranspiration = weather_model_evapotranspiration
138
+ weather_model_reference_evapotranspiration = (
139
+ weather_model.reference_evapotranspiration
140
+ )
141
+ if not is_null(weather_model_reference_evapotranspiration):
142
+ reference_evapotranspiration = weather_model_reference_evapotranspiration
143
+ weather_model_vapour_pressure_deficit = weather_model.vapour_pressure_deficit
144
+ if not is_null(weather_model_vapour_pressure_deficit):
145
+ vapour_pressure_deficit = weather_model_vapour_pressure_deficit
146
+ weather_model_wind_speed_10m = weather_model.wind_speed_10m
147
+ if not is_null(weather_model_wind_speed_10m):
148
+ wind_speed_10m = weather_model_wind_speed_10m
149
+ weather_model_wind_speed_80m = weather_model.wind_speed_80m
150
+ if not is_null(weather_model_wind_speed_80m):
151
+ wind_speed_80m = weather_model_wind_speed_80m
152
+ weather_model_wind_speed_120m = weather_model.wind_speed_120m
153
+ if not is_null(weather_model_wind_speed_120m):
154
+ wind_speed_120m = weather_model_wind_speed_120m
155
+ weather_model_wind_speed_180m = weather_model.wind_speed_180m
156
+ if not is_null(weather_model_wind_speed_180m):
157
+ wind_speed_180m = weather_model.wind_speed_180m
158
+ weather_model_wind_direction_10m = weather_model.wind_direction_10m
159
+ if not is_null(weather_model_wind_direction_10m):
160
+ wind_direction_10m = weather_model.wind_direction_10m
161
+ weather_model_wind_direction_80m = weather_model.wind_direction_80m
162
+ if not is_null(weather_model_wind_direction_80m):
163
+ wind_direction_80m = weather_model_wind_direction_80m
164
+ weather_model_wind_direction_120m = weather_model.wind_direction_120m
165
+ if not is_null(weather_model_wind_direction_120m):
166
+ wind_direction_120m = weather_model_wind_direction_120m
167
+ weather_model_wind_direction_180m = weather_model.wind_direction_180m
168
+ if not is_null(weather_model_wind_direction_180m):
169
+ wind_direction_180m = weather_model_wind_direction_180m
170
+ weather_model_wind_gusts = weather_model.wind_gusts
171
+ if not is_null(weather_model_wind_gusts):
172
+ wind_gusts = weather_model_wind_gusts
173
+ weather_model_temperature_80m = weather_model.temperature_80m
174
+ if not is_null(weather_model_temperature_80m):
175
+ temperature_80m = weather_model_temperature_80m
176
+ weather_model_temperature_120m = weather_model.temperature_120m
177
+ if not is_null(weather_model_temperature_120m):
178
+ temperature_120m = weather_model_temperature_120m
179
+ weather_model_temperature_180m = weather_model.temperature_180m
180
+ if not is_null(weather_model_temperature_180m):
181
+ temperature_180m = weather_model_temperature_180m
182
+ weather_model_soil_temperature_0cm = weather_model.soil_temperature_0cm
183
+ if not is_null(weather_model_soil_temperature_0cm):
184
+ soil_temperature_0cm = weather_model_soil_temperature_0cm
185
+ weather_model_soil_temperature_6cm = weather_model.soil_temperature_6cm
186
+ if not is_null(weather_model_soil_temperature_6cm):
187
+ soil_temperature_6cm = weather_model_soil_temperature_6cm
188
+ weather_model_soil_temperature_18cm = weather_model.soil_temperature_18cm
189
+ if not is_null(weather_model_soil_temperature_18cm):
190
+ soil_temperature_18cm = weather_model_soil_temperature_18cm
191
+ weather_model_soil_temperature_54cm = weather_model.soil_temperature_54cm
192
+ if not is_null(weather_model_soil_temperature_54cm):
193
+ soil_temperature_54cm = weather_model_soil_temperature_54cm
194
+ weather_model_soil_moisture_0cm = weather_model.soil_moisture_0cm
195
+ if not is_null(weather_model_soil_moisture_0cm):
196
+ soil_moisture_0cm = weather_model.soil_moisture_0cm
197
+ weather_model_soil_moisture_1cm = weather_model.soil_moisture_1cm
198
+ if not is_null(weather_model_soil_moisture_1cm):
199
+ soil_moisture_1cm = weather_model_soil_moisture_1cm
200
+ weather_model_soil_moisture_3cm = weather_model.soil_moisture_3cm
201
+ if not is_null(weather_model_soil_moisture_3cm):
202
+ soil_moisture_3cm = weather_model_soil_moisture_3cm
203
+ weather_model_soil_moisture_9cm = weather_model.soil_moisture_9cm
204
+ if not is_null(weather_model_soil_moisture_9cm):
205
+ soil_moisture_9cm = weather_model_soil_moisture_9cm
206
+ weather_model_soil_moisture_27cm = weather_model.soil_moisture_27cm
207
+ if not is_null(weather_model_soil_moisture_27cm):
208
+ soil_moisture_27cm = weather_model_soil_moisture_27cm
209
+ weather_model_daily_weather_code = weather_model.daily_weather_code
210
+ if not is_null(weather_model_daily_weather_code):
211
+ daily_weather_code = weather_model_daily_weather_code
212
+ weather_model_daily_maximum_temperature_2m = (
213
+ weather_model.daily_maximum_temperature_2m
214
+ )
215
+ if not is_null(weather_model_daily_maximum_temperature_2m):
216
+ daily_maximum_temperature_2m = weather_model_daily_maximum_temperature_2m
217
+ weather_model_daily_minimum_temperature_2m = (
218
+ weather_model.daily_minimum_temperature_2m
219
+ )
220
+ if not is_null(weather_model_daily_minimum_temperature_2m):
221
+ daily_minimum_temperature_2m = weather_model_daily_minimum_temperature_2m
222
+ weather_model_daily_maximum_apparent_temperature_2m = (
223
+ weather_model.daily_maximum_apparent_temperature_2m
224
+ )
225
+ if not is_null(weather_model_daily_maximum_apparent_temperature_2m):
226
+ daily_maximum_apparent_temperature_2m = (
227
+ weather_model_daily_maximum_apparent_temperature_2m
228
+ )
229
+ weather_model_daily_minimum_apparent_temperature_2m = (
230
+ weather_model.daily_minimum_apparent_temperature_2m
231
+ )
232
+ if not is_null(weather_model_daily_minimum_apparent_temperature_2m):
233
+ daily_minimum_apparent_temperature_2m = (
234
+ weather_model_daily_minimum_apparent_temperature_2m
235
+ )
236
+ weather_model_sunrise = weather_model.sunrise
237
+ if not is_null(weather_model_sunrise):
238
+ sunrise = weather_model_sunrise
239
+ weather_model_sunset = weather_model.sunset
240
+ if not is_null(weather_model_sunset):
241
+ sunset = weather_model_sunset
242
+ weather_model_daylight_duration = weather_model.daylight_duration
243
+ if not is_null(weather_model_daylight_duration):
244
+ daylight_duration = weather_model_daylight_duration
245
+ weather_model_sunshine_duration = weather_model.sunshine_duration
246
+ if not is_null(weather_model_sunshine_duration):
247
+ sunshine_duration = weather_model_sunshine_duration
248
+ weather_model_uv_index = weather_model.uv_index
249
+ if not is_null(weather_model_uv_index):
250
+ uv_index = weather_model_uv_index
251
+ weather_model_uv_index_clear_sky = weather_model.uv_index_clear_sky
252
+ if not is_null(weather_model_uv_index_clear_sky):
253
+ uv_index_clear_sky = weather_model_uv_index_clear_sky
254
+ weather_model_rain_sum = weather_model.rain_sum
255
+ if not is_null(weather_model_rain_sum):
256
+ rain_sum = weather_model_rain_sum
257
+ weather_model_showers_sum = weather_model.showers_sum
258
+ if not is_null(weather_model_showers_sum):
259
+ showers_sum = weather_model_showers_sum
260
+ weather_model_snowfall_sum = weather_model.snowfall_sum
261
+ if not is_null(weather_model_snowfall_sum):
262
+ snowfall_sum = weather_model_snowfall_sum
263
+ weather_model_precipitation_sum = weather_model.precipitation_sum
264
+ if not is_null(weather_model_precipitation_sum):
265
+ precipitation_sum = weather_model_precipitation_sum
266
+ weather_model_precipitation_hours = weather_model.precipitation_hours
267
+ if not is_null(weather_model_precipitation_hours):
268
+ precipitation_hours = weather_model_precipitation_hours
269
+ weather_model_precipitation_probability_max = (
270
+ weather_model.precipitation_probability_max
271
+ )
272
+ if not is_null(weather_model_precipitation_probability_max):
273
+ precipitation_probability_max = weather_model_precipitation_probability_max
274
+ weather_model_maximum_wind_speed_10m = weather_model.maximum_wind_speed_10m
275
+ if not is_null(weather_model_maximum_wind_speed_10m):
276
+ maximum_wind_speed_10m = weather_model_maximum_wind_speed_10m
277
+ weather_model_maximum_wind_gusts_10m = weather_model.maximum_wind_gusts_10m
278
+ if not is_null(weather_model_maximum_wind_gusts_10m):
279
+ maximum_wind_gusts_10m = weather_model_maximum_wind_gusts_10m
280
+ weather_model_dominant_wind_direction = weather_model.dominant_wind_direction
281
+ if not is_null(weather_model_dominant_wind_direction):
282
+ dominant_wind_direction = weather_model.dominant_wind_direction
283
+ weather_model_shortwave_radiation_sum = weather_model.shortwave_radiation_sum
284
+ if not is_null(weather_model_shortwave_radiation_sum):
285
+ shortwave_radiation_sum = weather_model_shortwave_radiation_sum
286
+ weather_model_daily_reference_evapotranspiration = (
287
+ weather_model.daily_reference_evapotranspiration
288
+ )
289
+ if not is_null(weather_model_daily_reference_evapotranspiration):
290
+ daily_reference_evapotranspiration = (
291
+ weather_model_daily_reference_evapotranspiration
292
+ )
293
+
294
+ return WeatherModel(
295
+ temperature=temperature,
296
+ relative_humidity=relative_humidity,
297
+ dew_point=dew_point,
298
+ apparent_temperature=apparent_temperature,
299
+ precipitation_probability=precipitation_probability,
300
+ precipitation=precipitation,
301
+ rain=rain,
302
+ showers=showers,
303
+ snowfall=snowfall,
304
+ snow_depth=snow_depth,
305
+ weather_code=weather_code,
306
+ sealevel_pressure=sealevel_pressure,
307
+ surface_pressure=surface_pressure,
308
+ cloud_cover_total=cloud_cover_total,
309
+ cloud_cover_low=cloud_cover_low,
310
+ cloud_cover_mid=cloud_cover_mid,
311
+ cloud_cover_high=cloud_cover_high,
312
+ visibility=visibility,
313
+ evapotranspiration=evapotranspiration,
314
+ reference_evapotranspiration=reference_evapotranspiration,
315
+ vapour_pressure_deficit=vapour_pressure_deficit,
316
+ wind_speed_10m=wind_speed_10m,
317
+ wind_speed_80m=wind_speed_80m,
318
+ wind_speed_120m=wind_speed_120m,
319
+ wind_speed_180m=wind_speed_180m,
320
+ wind_direction_10m=wind_direction_10m,
321
+ wind_direction_80m=wind_direction_80m,
322
+ wind_direction_120m=wind_direction_120m,
323
+ wind_direction_180m=wind_direction_180m,
324
+ wind_gusts=wind_gusts,
325
+ temperature_80m=temperature_80m,
326
+ temperature_120m=temperature_120m,
327
+ temperature_180m=temperature_180m,
328
+ soil_temperature_0cm=soil_temperature_0cm,
329
+ soil_temperature_6cm=soil_temperature_6cm,
330
+ soil_temperature_18cm=soil_temperature_18cm,
331
+ soil_temperature_54cm=soil_temperature_54cm,
332
+ soil_moisture_0cm=soil_moisture_0cm,
333
+ soil_moisture_1cm=soil_moisture_1cm,
334
+ soil_moisture_3cm=soil_moisture_3cm,
335
+ soil_moisture_9cm=soil_moisture_9cm,
336
+ soil_moisture_27cm=soil_moisture_27cm,
337
+ daily_weather_code=daily_weather_code,
338
+ daily_maximum_temperature_2m=daily_maximum_temperature_2m,
339
+ daily_minimum_temperature_2m=daily_minimum_temperature_2m,
340
+ daily_maximum_apparent_temperature_2m=daily_maximum_apparent_temperature_2m,
341
+ daily_minimum_apparent_temperature_2m=daily_minimum_apparent_temperature_2m,
342
+ sunrise=sunrise,
343
+ sunset=sunset,
344
+ daylight_duration=daylight_duration,
345
+ sunshine_duration=sunshine_duration,
346
+ uv_index=uv_index,
347
+ uv_index_clear_sky=uv_index_clear_sky,
348
+ rain_sum=rain_sum,
349
+ showers_sum=showers_sum,
350
+ snowfall_sum=snowfall_sum,
351
+ precipitation_sum=precipitation_sum,
352
+ precipitation_hours=precipitation_hours,
353
+ precipitation_probability_max=precipitation_probability_max,
354
+ maximum_wind_speed_10m=maximum_wind_speed_10m,
355
+ maximum_wind_gusts_10m=maximum_wind_gusts_10m,
356
+ dominant_wind_direction=dominant_wind_direction,
357
+ shortwave_radiation_sum=shortwave_radiation_sum,
358
+ daily_reference_evapotranspiration=daily_reference_evapotranspiration,
359
+ )
@@ -15977,6 +15977,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
15977
15977
  housenumber="",
15978
15978
  country="USA",
15979
15979
  ),
15980
+ "The Spectrum, Philadelphia, Pennsylvania": SPECTRUM,
15980
15981
  }
15981
15982
 
15982
15983
 
@@ -30,6 +30,22 @@ def _clear_column_list(df: pd.DataFrame) -> pd.DataFrame:
30
30
  return df.drop(columns=cols)
31
31
 
32
32
 
33
+ def _reduce_memory_usage(df: pd.DataFrame) -> pd.DataFrame:
34
+ for col in df.columns:
35
+ if df[col].dtype == "int64":
36
+ df[col] = pd.to_numeric(df[col], downcast="integer")
37
+ elif df[col].dtype == "float64":
38
+ df[col] = pd.to_numeric(df[col], downcast="float")
39
+ elif df[col].dtype == "object":
40
+ num_unique_values = len(df[col].unique())
41
+ num_total_values = len(df[col])
42
+ if num_unique_values / num_total_values < 0.5:
43
+ df[col] = df[col].astype("category")
44
+ else:
45
+ df[col] = df[col].astype("string")
46
+ return df
47
+
48
+
33
49
  def _normalize_tz(df: pd.DataFrame) -> pd.DataFrame:
34
50
  tz_column = DELIMITER.join(
35
51
  [VENUE_COLUMN_PREFIX, VENUE_ADDRESS_COLUMN, ADDRESS_TIMEZONE_COLUMN]
@@ -210,7 +226,9 @@ class LeagueModel(Model):
210
226
  df = _clear_column_list(df)
211
227
  df = df.reset_index()
212
228
 
213
- df = df[sorted(df.columns.values.tolist())].dropna(axis=1, how="all")
229
+ df = _reduce_memory_usage(
230
+ df[sorted(df.columns.values.tolist())].dropna(axis=1, how="all")
231
+ )
214
232
 
215
233
  self._df = df
216
234
  return df
@@ -17,3 +17,4 @@ class Position(StrEnum):
17
17
  RUNNING_BACK = "RB"
18
18
  TIGHT_END = "TE"
19
19
  OFFENSIVE_TACKLE = "OT"
20
+ CORNER_BACK = "CB"