sportsball 0.4.7__tar.gz → 0.4.9__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 (261) hide show
  1. {sportsball-0.4.7/sportsball.egg-info → sportsball-0.4.9}/PKG-INFO +1 -1
  2. {sportsball-0.4.7 → sportsball-0.4.9}/setup.py +1 -1
  3. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/__init__.py +1 -1
  4. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/bet.py +1 -0
  5. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/espn/espn_game_model.py +1 -1
  6. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/espn/espn_team_model.py +1 -1
  7. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/google/google_address_model.py +2 -0
  8. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/hkjc/hkjc/hkjc_hkjc_dividend_model.py +3 -1
  9. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/hkjc/hkjc/hkjc_hkjc_game_model.py +47 -9
  10. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/hkjc/hkjc/hkjc_hkjc_player_model.py +13 -3
  11. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/hkjc/hkjc/hkjc_hkjc_team_model.py +8 -5
  12. {sportsball-0.4.7 → sportsball-0.4.9/sportsball.egg-info}/PKG-INFO +1 -1
  13. {sportsball-0.4.7 → sportsball-0.4.9}/LICENSE +0 -0
  14. {sportsball-0.4.7 → sportsball-0.4.9}/MANIFEST.in +0 -0
  15. {sportsball-0.4.7 → sportsball-0.4.9}/README.md +0 -0
  16. {sportsball-0.4.7 → sportsball-0.4.9}/requirements.txt +0 -0
  17. {sportsball-0.4.7 → sportsball-0.4.9}/setup.cfg +0 -0
  18. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/__main__.py +0 -0
  19. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/args.py +0 -0
  20. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/cache.py +0 -0
  21. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/__init__.py +0 -0
  22. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/address_model.py +0 -0
  23. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/__init__.py +0 -0
  24. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afl/__init__.py +0 -0
  25. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afl/afl_afl_bookie_model.py +0 -0
  26. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
  27. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afl/afl_afl_league_model.py +0 -0
  28. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afl/afl_afl_odds_model.py +0 -0
  29. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
  30. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
  31. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
  32. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afltables/__init__.py +0 -0
  33. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afltables/afl_afltables_coach_model.py +0 -0
  34. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
  35. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
  36. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afltables/afl_afltables_player_model.py +0 -0
  37. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
  38. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
  39. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
  40. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
  41. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/combined/__init__.py +0 -0
  42. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
  43. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/espn/__init__.py +0 -0
  44. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
  45. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/oddsportal/__init__.py +0 -0
  46. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
  47. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/afl/position.py +0 -0
  48. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/aussportsbetting/__init__.py +0 -0
  49. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
  50. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
  51. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
  52. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
  53. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
  54. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
  55. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/bookie_model.py +0 -0
  56. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/coach_model.py +0 -0
  57. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/combined/__init__.py +0 -0
  58. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/combined/combined_address_model.py +0 -0
  59. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/combined/combined_coach_model.py +0 -0
  60. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/combined/combined_game_model.py +0 -0
  61. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/combined/combined_league_model.py +0 -0
  62. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/combined/combined_player_model.py +0 -0
  63. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/combined/combined_team_model.py +0 -0
  64. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/combined/combined_venue_model.py +0 -0
  65. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/combined/combined_weather_model.py +0 -0
  66. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/combined/null_check.py +0 -0
  67. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/dividend_model.py +0 -0
  68. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/espn/__init__.py +0 -0
  69. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/espn/espn_bookie_model.py +0 -0
  70. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/espn/espn_coach_model.py +0 -0
  71. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/espn/espn_league_model.py +0 -0
  72. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/espn/espn_odds_model.py +0 -0
  73. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/espn/espn_player_model.py +0 -0
  74. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/espn/espn_venue_model.py +0 -0
  75. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/field_type.py +0 -0
  76. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/game_model.py +0 -0
  77. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/google/__init__.py +0 -0
  78. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/google/google_news_model.py +0 -0
  79. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/hkjc/__init__.py +0 -0
  80. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/hkjc/hkjc/__init__.py +0 -0
  81. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/hkjc/hkjc/hkjc_hkjc_bookie_model.py +0 -0
  82. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/hkjc/hkjc/hkjc_hkjc_coach_model.py +0 -0
  83. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/hkjc/hkjc/hkjc_hkjc_league_model.py +0 -0
  84. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/hkjc/hkjc/hkjc_hkjc_odds_model.py +0 -0
  85. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/hkjc/hkjc/hkjc_hkjc_owner_model.py +0 -0
  86. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/hkjc/hkjc/hkjc_hkjc_venue_model.py +0 -0
  87. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/hkjc/position.py +0 -0
  88. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/league.py +0 -0
  89. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/league_model.py +0 -0
  90. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/model.py +0 -0
  91. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/__init__.py +0 -0
  92. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/combined/__init__.py +0 -0
  93. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
  94. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/espn/__init__.py +0 -0
  95. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
  96. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/nba/__init__.py +0 -0
  97. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
  98. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
  99. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
  100. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/nbacom/__init__.py +0 -0
  101. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/nbacom/nba_nbacom_game_model.py +0 -0
  102. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/nbacom/nba_nbacom_league_model.py +0 -0
  103. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/nbacom/nba_nbacom_player_model.py +0 -0
  104. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/nbacom/nba_nbacom_team_model.py +0 -0
  105. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/nbacom/nba_nbacom_venue_model.py +0 -0
  106. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/oddsportal/__init__.py +0 -0
  107. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
  108. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/position.py +0 -0
  109. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/sportsdb/__init__.py +0 -0
  110. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
  111. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/sportsreference/__init__.py +0 -0
  112. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
  113. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaab/__init__.py +0 -0
  114. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaab/combined/__init__.py +0 -0
  115. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
  116. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaab/espn/__init__.py +0 -0
  117. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
  118. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
  119. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
  120. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
  121. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
  122. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaaf/__init__.py +0 -0
  123. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaaf/combined/__init__.py +0 -0
  124. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
  125. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaaf/espn/__init__.py +0 -0
  126. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
  127. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
  128. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
  129. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/news_model.py +0 -0
  130. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nfl/__init__.py +0 -0
  131. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
  132. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
  133. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nfl/combined/__init__.py +0 -0
  134. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
  135. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nfl/espn/__init__.py +0 -0
  136. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
  137. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
  138. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
  139. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nfl/position.py +0 -0
  140. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
  141. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
  142. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/odds_model.py +0 -0
  143. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/oddsportal/__init__.py +0 -0
  144. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/oddsportal/decrypt.py +0 -0
  145. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
  146. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
  147. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
  148. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
  149. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
  150. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
  151. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/owner_model.py +0 -0
  152. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/player_model.py +0 -0
  153. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/season_type.py +0 -0
  154. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/sex.py +0 -0
  155. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/social_model.py +0 -0
  156. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/species.py +0 -0
  157. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/sportsdb/__init__.py +0 -0
  158. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
  159. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
  160. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
  161. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
  162. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/sportsreference/__init__.py +0 -0
  163. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/sportsreference/sportsreference_coach_model.py +0 -0
  164. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/sportsreference/sportsreference_game_model.py +0 -0
  165. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
  166. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
  167. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/sportsreference/sportsreference_team_model.py +0 -0
  168. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
  169. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/team_model.py +0 -0
  170. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/venue_model.py +0 -0
  171. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/weather/__init__.py +0 -0
  172. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/weather/gribstream/__init__.py +0 -0
  173. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
  174. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/weather/multi_weather_model.py +0 -0
  175. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/weather/openmeteo/__init__.py +0 -0
  176. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
  177. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/weather_model.py +0 -0
  178. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/wikipedia/__init__.py +0 -0
  179. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
  180. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/x/__init__.py +0 -0
  181. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/data/x/x_social_model.py +0 -0
  182. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/logger.py +0 -0
  183. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/loglevel.py +0 -0
  184. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/playwright.py +0 -0
  185. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/proxy_session.py +0 -0
  186. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/session.py +0 -0
  187. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/sportsball.py +0 -0
  188. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/vendor/__init__.py +0 -0
  189. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball/vendor/pygooglenews/__init__.py +0 -0
  190. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball.egg-info/SOURCES.txt +0 -0
  191. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball.egg-info/dependency_links.txt +0 -0
  192. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball.egg-info/entry_points.txt +0 -0
  193. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball.egg-info/not-zip-safe +0 -0
  194. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball.egg-info/requires.txt +0 -0
  195. {sportsball-0.4.7 → sportsball-0.4.9}/sportsball.egg-info/top_level.txt +0 -0
  196. {sportsball-0.4.7 → sportsball-0.4.9}/tests/__init__.py +0 -0
  197. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/__init__.py +0 -0
  198. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/afl/__init__.py +0 -0
  199. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/afl/afl/__init__.py +0 -0
  200. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/afl/afl/afl_afl_game_model_test.py +0 -0
  201. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/afl/afl/afl_afl_league_model_test.py +0 -0
  202. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/afl/afltables/__init__.py +0 -0
  203. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/afl/afltables/afl_afltables_coach_model_test.py +0 -0
  204. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
  205. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
  206. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/afl/afltables/afl_afltables_player_model_test.py +0 -0
  207. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/aussportsbetting/__init__.py +0 -0
  208. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
  209. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/combined/__init__.py +0 -0
  210. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/combined/combined_game_model_test.py +0 -0
  211. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/combined/combined_player_model_test.py +0 -0
  212. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/combined/combined_team_model_test.py +0 -0
  213. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/espn/__init__.py +0 -0
  214. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/espn/espn_game_model_test.py +0 -0
  215. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/espn/espn_player_model_test.py +0 -0
  216. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/game_model_test.py +0 -0
  217. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/google/__init__.py +0 -0
  218. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/google/google_address_model_test.py +0 -0
  219. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/google/google_news_model_test.py +0 -0
  220. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/hkjc/__init__.py +0 -0
  221. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/hkjc/hkjc/__init__.py +0 -0
  222. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/hkjc/hkjc/hkjc_hkjc_game_model_test.py +0 -0
  223. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/hkjc/hkjc/hkjc_hkjc_player_model_test.py +0 -0
  224. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/nba/__init__.py +0 -0
  225. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/nba/nba/__init__.py +0 -0
  226. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
  227. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
  228. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
  229. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/nba/sportsdb/__init__.py +0 -0
  230. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
  231. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/nba/sportsreference/__init__.py +0 -0
  232. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
  233. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/ncaab/__init__.py +0 -0
  234. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/ncaab/sportsreference/__init__.py +0 -0
  235. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
  236. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/nfl/__init__.py +0 -0
  237. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/nfl/sportsdb/__init__.py +0 -0
  238. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
  239. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/oddsportal/__init__.py +0 -0
  240. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/oddsportal/decrypt_test.py +0 -0
  241. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
  242. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
  243. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/player_model_test.py +0 -0
  244. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/social_model_test.py +0 -0
  245. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/sportsdb/__init__.py +0 -0
  246. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
  247. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
  248. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
  249. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
  250. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/sportsreference/__init__.py +0 -0
  251. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/sportsreference/sportsreference_coach_model_test.py +0 -0
  252. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
  253. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
  254. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
  255. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
  256. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
  257. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/team_model_test.py +0 -0
  258. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/x/__init__.py +0 -0
  259. {sportsball-0.4.7 → sportsball-0.4.9}/tests/data/x/x_social_model_test.py +0 -0
  260. {sportsball-0.4.7 → sportsball-0.4.9}/tests/proxy_session_test.py +0 -0
  261. {sportsball-0.4.7 → sportsball-0.4.9}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.4.7
3
+ Version: 0.4.9
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
@@ -26,7 +26,7 @@ def install_requires() -> typing.List[str]:
26
26
 
27
27
  setup(
28
28
  name='sportsball',
29
- version='0.4.7',
29
+ version='0.4.9',
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.4.7"
7
+ __VERSION__ = "0.4.9"
@@ -36,6 +36,7 @@ class Bet(StrEnum):
36
36
  SECOND_TREBLE = auto()
37
37
  FIFTH_DOUBLE_TRIO = auto()
38
38
  SIX_UP = auto()
39
+ TREBLE = auto()
39
40
 
40
41
 
41
42
  _BETS = {str(x).lower(): x for x in Bet}
@@ -198,7 +198,7 @@ def create_espn_game_model(
198
198
  dt = parse(event["date"])
199
199
  if (
200
200
  not pytest_is_running.is_running()
201
- and dt < datetime.datetime.now().date() - datetime.timedelta(days=7)
201
+ and dt.date() < datetime.datetime.now().date() - datetime.timedelta(days=7)
202
202
  ):
203
203
  return _cached_create_espn_game_model(
204
204
  event,
@@ -87,7 +87,7 @@ def create_espn_team_model(
87
87
  """Create team model from ESPN."""
88
88
  if (
89
89
  not pytest_is_running.is_running()
90
- and dt < datetime.datetime.now() - datetime.timedelta(days=7)
90
+ and dt.date() < datetime.datetime.today().date() - datetime.timedelta(days=7)
91
91
  ):
92
92
  return _cached_create_espn_team_model(
93
93
  session,
@@ -15531,6 +15531,8 @@ _CACHED_GEOCODES: dict[str, Any] = {
15531
15531
  "Hard Rock Stadium, Miami Gardens, FL, USA": HARD_ROCK_STADIUM,
15532
15532
  "Yokohama Arena - Yokohama, Kanagawa - Japan": YOKOHAMA_ARENA,
15533
15533
  "Centre Bell - Montreal, Quebec, Canada - Canada": BELL_CENTRE,
15534
+ "Yankee Stadium - Bronx, New York, USA - United States": YANKEE_STADIUM,
15535
+ "Allegiant Stadium, Paradise, NV, USA": ALLEGIANT_STADIUM,
15534
15536
  }
15535
15537
 
15536
15538
 
@@ -9,7 +9,9 @@ def create_hkjc_hkjc_dividend_model(
9
9
  pool: str, combination: list[str], team_models: list[TeamModel], dividend: float
10
10
  ) -> DividendModel:
11
11
  """Create a dividend model from HKJC."""
12
- jerseys_teams = {x.players[0].jersey: x.identifier for x in team_models}
12
+ jerseys_teams = {
13
+ x.players[0].jersey: x.identifier for x in team_models if x.players
14
+ }
13
15
  return DividendModel(
14
16
  pool=bet_from_str(pool),
15
17
  combination=[jerseys_teams[x] for x in combination if x in jerseys_teams],
@@ -1,6 +1,6 @@
1
1
  """HKJC HKJC game model."""
2
2
 
3
- # pylint: disable=too-many-nested-blocks,too-many-statements,too-many-branches,too-many-locals
3
+ # pylint: disable=too-many-nested-blocks,too-many-statements,too-many-branches,too-many-locals,too-many-return-statements
4
4
  import datetime
5
5
  import io
6
6
  import logging
@@ -43,6 +43,12 @@ def _create_hkjc_hkjc_game_model(
43
43
  return None
44
44
  if "this race is declared void" in div_text.lower():
45
45
  return None
46
+ if "information will be released shortly" in div_text.lower():
47
+ return None
48
+ if "unofficial dividends" in div_text.lower():
49
+ return None
50
+ if "this race has been abandoned" in div_text.lower():
51
+ return None
46
52
 
47
53
  o = urlparse(url)
48
54
  query = urllib.parse.parse_qs(o.query)
@@ -61,7 +67,13 @@ def _create_hkjc_hkjc_game_model(
61
67
  dividends = []
62
68
  for count, df in enumerate(dfs):
63
69
  if count == 1:
64
- race_track = df.iat[2, 2].split("-")[0].strip()
70
+ race_track = ""
71
+ try:
72
+ race_track = df.iat[2, 2].split("-")[0].strip()
73
+ except IndexError:
74
+ logging.error(url)
75
+ raise
76
+
65
77
  distance = 0.0
66
78
  try:
67
79
  distance = float(df.iat[1, 0].split("-")[1].strip().replace("M", ""))
@@ -72,9 +84,20 @@ def _create_hkjc_hkjc_game_model(
72
84
  pot = float(df.iat[3, 0].split()[-1].strip().replace(",", ""))
73
85
  elif count == 2:
74
86
  for _, row in df.iterrows():
75
- horse_name = row["Horse"].split("(")[0].strip()
87
+ horse_name = None
88
+ try:
89
+ horse_name = row["Horse"].split("(")[0].strip()
90
+ except KeyError:
91
+ logging.error(url)
92
+ raise
93
+
76
94
  jockey_name = row["Jockey"].split("(")[0].strip()
77
- trainer_name = row["Trainer"].split("(")[0].strip()
95
+
96
+ trainer_name = None
97
+ try:
98
+ trainer_name = row["Trainer"].split("(")[0].strip()
99
+ except KeyError:
100
+ logging.warning("Failed to find trainer name for %s", url)
78
101
 
79
102
  place_str = str(row["Pla."]).strip()
80
103
  place = None
@@ -83,10 +106,19 @@ def _create_hkjc_hkjc_game_model(
83
106
 
84
107
  jersey = str(row["Horse No."])
85
108
 
86
- handicap_weight = float(row["Act. Wt."]) * 0.453592
109
+ handicap_weight = None
110
+ try:
111
+ handicap_weight = float(row["Act. Wt."]) * 0.453592
112
+ except KeyError:
113
+ logging.warning("Failed to find handicap weight for %s", url)
114
+
87
115
  horse_weight = None
88
- if row["Declar. Horse Wt."] != "---":
89
- horse_weight = float(row["Declar. Horse Wt."]) * 0.453592
116
+ try:
117
+ horse_weight_str = row["Declar. Horse Wt."]
118
+ if horse_weight_str != "---":
119
+ horse_weight = float(horse_weight_str) * 0.453592
120
+ except KeyError:
121
+ logging.warning("Failed to find horse weight for %s", url)
90
122
 
91
123
  starting_position = None
92
124
  starting_position_str = str(row["Dr."]).strip()
@@ -103,6 +135,8 @@ def _create_hkjc_hkjc_game_model(
103
135
  lbw = 2.4 * 0.05
104
136
  elif lbw_str == "ML":
105
137
  lbw = None
138
+ elif lbw_str == "TO":
139
+ lbw = 100.0
106
140
  elif lbw_str and lbw_str != "-" and lbw_str != "---":
107
141
  if lbw is not None:
108
142
  if "-" in lbw_str:
@@ -143,7 +177,7 @@ def _create_hkjc_hkjc_game_model(
143
177
  o = urlparse(a_url)
144
178
  if o.path.endswith("/Jockey/JockeyProfile.aspx"):
145
179
  jockey_url = a_url
146
- elif a_text == trainer_name:
180
+ elif trainer_name is not None and a_text == trainer_name:
147
181
  a_url = urllib.parse.urljoin(url, a.get("href"))
148
182
  o = urlparse(a_url)
149
183
  if o.path.endswith("/Trainers/TrainerProfile.aspx"):
@@ -213,8 +247,12 @@ def _create_hkjc_hkjc_game_model(
213
247
  dividends.append(dividend_model)
214
248
 
215
249
  if race_track is None:
250
+ logging.error(url)
216
251
  raise ValueError("race_track is null")
217
252
 
253
+ end_dts = [x.end_dt for x in teams if x.end_dt is not None]
254
+ end_dt = None if not end_dts else min(end_dts)
255
+
218
256
  return GameModel(
219
257
  dt=dt,
220
258
  week=None,
@@ -226,7 +264,7 @@ def _create_hkjc_hkjc_game_model(
226
264
  race_track=race_track,
227
265
  ),
228
266
  teams=teams,
229
- end_dt=min(x.end_dt for x in teams if x.end_dt is not None),
267
+ end_dt=end_dt,
230
268
  attendance=None,
231
269
  league=str(League.HKJC),
232
270
  year=dt.year,
@@ -28,7 +28,7 @@ def _create_hkjc_hkjc_player_model(
28
28
  handicap_weight: float | None,
29
29
  starting_position: Position | None,
30
30
  weight: float | None,
31
- ) -> PlayerModel:
31
+ ) -> PlayerModel | None:
32
32
  headers = {X_NO_WAYBACK: "1"}
33
33
  response = session.get(url, headers=headers)
34
34
  response.raise_for_status()
@@ -51,6 +51,12 @@ def _create_hkjc_hkjc_player_model(
51
51
  raise
52
52
 
53
53
  soup = BeautifulSoup(response.text, "lxml")
54
+ for noscript in soup.find_all("noscript"):
55
+ no_script_text = noscript.get_text().strip().lower()
56
+ if "javascript must be enabled in order to view this page." in no_script_text:
57
+ logging.error("Javascript error on %s", url)
58
+ session.cache.delete(urls=[url, response.url])
59
+ return None
54
60
 
55
61
  name = None
56
62
  species = Species.HUMAN
@@ -114,6 +120,10 @@ def _create_hkjc_hkjc_player_model(
114
120
  name = query["HorseSire"][0]
115
121
 
116
122
  if name is None:
123
+ logging.error(response.text)
124
+ logging.error(dfs)
125
+ logging.error(o.path)
126
+ logging.error(url)
117
127
  raise ValueError("name is null")
118
128
 
119
129
  return PlayerModel(
@@ -173,7 +183,7 @@ def _cached_create_hkjc_hkjc_player_model(
173
183
  handicap_weight: float | None,
174
184
  starting_position: Position | None,
175
185
  weight: float | None,
176
- ) -> PlayerModel:
186
+ ) -> PlayerModel | None:
177
187
  return _create_hkjc_hkjc_player_model(
178
188
  session=session,
179
189
  url=url,
@@ -191,7 +201,7 @@ def create_hkjc_hkjc_player_model(
191
201
  handicap_weight: float | None,
192
202
  starting_position: Position | None,
193
203
  weight: float | None,
194
- ) -> PlayerModel:
204
+ ) -> PlayerModel | None:
195
205
  """Create a player model based off HKJC."""
196
206
  if not pytest_is_running.is_running():
197
207
  return _cached_create_hkjc_hkjc_player_model(
@@ -21,13 +21,14 @@ def _create_hkjc_hkjc_team_model(
21
21
  trainer_url: str | None,
22
22
  points: float,
23
23
  jersey: str,
24
- handicap_weight: float,
24
+ handicap_weight: float | None,
25
25
  horse_weight: float | None,
26
26
  starting_position: Position | None,
27
27
  lbw: float | None,
28
28
  end_dt: datetime.datetime | None,
29
29
  odds: list[OddsModel],
30
30
  ) -> TeamModel:
31
+ players = []
31
32
  horse_player = create_hkjc_hkjc_player_model(
32
33
  session=session,
33
34
  url=horse_url,
@@ -36,7 +37,8 @@ def _create_hkjc_hkjc_team_model(
36
37
  starting_position=starting_position,
37
38
  weight=horse_weight,
38
39
  )
39
- players = [horse_player]
40
+ if horse_player is not None:
41
+ players.append(horse_player)
40
42
  if jockey_url is not None:
41
43
  jockey_player = create_hkjc_hkjc_player_model(
42
44
  session=session,
@@ -46,7 +48,8 @@ def _create_hkjc_hkjc_team_model(
46
48
  starting_position=starting_position,
47
49
  weight=None,
48
50
  )
49
- players.append(jockey_player)
51
+ if jockey_player is not None:
52
+ players.append(jockey_player)
50
53
  coaches = (
51
54
  [create_hkjc_hkjc_coach_model(session=session, url=trainer_url)]
52
55
  if trainer_url is not None
@@ -78,7 +81,7 @@ def _cached_create_hkjc_hkjc_team_model(
78
81
  trainer_url: str | None,
79
82
  points: float,
80
83
  jersey: str,
81
- handicap_weight: float,
84
+ handicap_weight: float | None,
82
85
  horse_weight: float | None,
83
86
  starting_position: Position | None,
84
87
  lbw: float | None,
@@ -108,7 +111,7 @@ def create_hkjc_hkjc_team_model(
108
111
  trainer_url: str | None,
109
112
  points: float,
110
113
  jersey: str,
111
- handicap_weight: float,
114
+ handicap_weight: float | None,
112
115
  horse_weight: float | None,
113
116
  starting_position: Position | None,
114
117
  lbw: float | None,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.4.7
3
+ Version: 0.4.9
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
File without changes
File without changes
File without changes
File without changes
File without changes