sportsball 0.4.2__tar.gz → 0.4.4__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.2/sportsball.egg-info → sportsball-0.4.4}/PKG-INFO +1 -1
  2. {sportsball-0.4.2 → sportsball-0.4.4}/setup.py +1 -1
  3. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/__init__.py +1 -1
  4. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afltables/afl_afltables_player_model.py +5 -1
  5. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/espn/espn_game_model.py +1 -1
  6. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/google/google_address_model.py +22 -18
  7. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/hkjc/hkjc/hkjc_hkjc_game_model.py +11 -8
  8. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/hkjc/hkjc/hkjc_hkjc_player_model.py +9 -4
  9. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/hkjc/hkjc/hkjc_hkjc_team_model.py +3 -3
  10. {sportsball-0.4.2 → sportsball-0.4.4/sportsball.egg-info}/PKG-INFO +1 -1
  11. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball.egg-info/SOURCES.txt +1 -0
  12. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/afl/afltables/afl_afltables_player_model_test.py +37 -0
  13. sportsball-0.4.4/tests/data/hkjc/hkjc/hkjc_hkjc_player_model_test.py +29 -0
  14. {sportsball-0.4.2 → sportsball-0.4.4}/LICENSE +0 -0
  15. {sportsball-0.4.2 → sportsball-0.4.4}/MANIFEST.in +0 -0
  16. {sportsball-0.4.2 → sportsball-0.4.4}/README.md +0 -0
  17. {sportsball-0.4.2 → sportsball-0.4.4}/requirements.txt +0 -0
  18. {sportsball-0.4.2 → sportsball-0.4.4}/setup.cfg +0 -0
  19. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/__main__.py +0 -0
  20. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/args.py +0 -0
  21. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/cache.py +0 -0
  22. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/__init__.py +0 -0
  23. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/address_model.py +0 -0
  24. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/__init__.py +0 -0
  25. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afl/__init__.py +0 -0
  26. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afl/afl_afl_bookie_model.py +0 -0
  27. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afl/afl_afl_game_model.py +0 -0
  28. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afl/afl_afl_league_model.py +0 -0
  29. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afl/afl_afl_odds_model.py +0 -0
  30. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afl/afl_afl_player_model.py +0 -0
  31. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afl/afl_afl_team_model.py +0 -0
  32. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afl/afl_afl_venue_model.py +0 -0
  33. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afltables/__init__.py +0 -0
  34. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afltables/afl_afltables_coach_model.py +0 -0
  35. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afltables/afl_afltables_game_model.py +0 -0
  36. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afltables/afl_afltables_league_model.py +0 -0
  37. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afltables/afl_afltables_team_model.py +0 -0
  38. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/afltables/afl_afltables_venue_model.py +0 -0
  39. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/aussportsbetting/__init__.py +0 -0
  40. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/aussportsbetting/afl_aussportsbetting_league_model.py +0 -0
  41. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/combined/__init__.py +0 -0
  42. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/combined/afl_combined_league_model.py +0 -0
  43. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/espn/__init__.py +0 -0
  44. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/espn/afl_espn_league_model.py +0 -0
  45. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/oddsportal/__init__.py +0 -0
  46. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/oddsportal/afl_oddsportal_league_model.py +0 -0
  47. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/afl/position.py +0 -0
  48. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/aussportsbetting/__init__.py +0 -0
  49. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/aussportsbetting/aussportsbetting_bookie_model.py +0 -0
  50. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/aussportsbetting/aussportsbetting_game_model.py +0 -0
  51. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/aussportsbetting/aussportsbetting_league_model.py +0 -0
  52. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/aussportsbetting/aussportsbetting_odds_model.py +0 -0
  53. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/aussportsbetting/aussportsbetting_team_model.py +0 -0
  54. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/aussportsbetting/aussportsbetting_venue_model.py +0 -0
  55. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/bet.py +0 -0
  56. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/bookie_model.py +0 -0
  57. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/coach_model.py +0 -0
  58. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/combined/__init__.py +0 -0
  59. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/combined/combined_address_model.py +0 -0
  60. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/combined/combined_coach_model.py +0 -0
  61. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/combined/combined_game_model.py +0 -0
  62. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/combined/combined_league_model.py +0 -0
  63. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/combined/combined_player_model.py +0 -0
  64. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/combined/combined_team_model.py +0 -0
  65. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/combined/combined_venue_model.py +0 -0
  66. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/combined/combined_weather_model.py +0 -0
  67. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/combined/null_check.py +0 -0
  68. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/dividend_model.py +0 -0
  69. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/espn/__init__.py +0 -0
  70. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/espn/espn_bookie_model.py +0 -0
  71. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/espn/espn_coach_model.py +0 -0
  72. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/espn/espn_league_model.py +0 -0
  73. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/espn/espn_odds_model.py +0 -0
  74. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/espn/espn_player_model.py +0 -0
  75. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/espn/espn_team_model.py +0 -0
  76. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/espn/espn_venue_model.py +0 -0
  77. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/field_type.py +0 -0
  78. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/game_model.py +0 -0
  79. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/google/__init__.py +0 -0
  80. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/google/google_news_model.py +0 -0
  81. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/hkjc/__init__.py +0 -0
  82. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/hkjc/hkjc/__init__.py +0 -0
  83. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/hkjc/hkjc/hkjc_hkjc_bookie_model.py +0 -0
  84. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/hkjc/hkjc/hkjc_hkjc_coach_model.py +0 -0
  85. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/hkjc/hkjc/hkjc_hkjc_dividend_model.py +0 -0
  86. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/hkjc/hkjc/hkjc_hkjc_league_model.py +0 -0
  87. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/hkjc/hkjc/hkjc_hkjc_odds_model.py +0 -0
  88. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/hkjc/hkjc/hkjc_hkjc_owner_model.py +0 -0
  89. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/hkjc/hkjc/hkjc_hkjc_venue_model.py +0 -0
  90. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/hkjc/position.py +0 -0
  91. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/league.py +0 -0
  92. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/league_model.py +0 -0
  93. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/model.py +0 -0
  94. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/__init__.py +0 -0
  95. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/combined/__init__.py +0 -0
  96. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/combined/nba_combined_league_model.py +0 -0
  97. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/espn/__init__.py +0 -0
  98. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/espn/nba_espn_league_model.py +0 -0
  99. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/nba/__init__.py +0 -0
  100. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/nba/nba_nba_game_model.py +0 -0
  101. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/nba/nba_nba_league_model.py +0 -0
  102. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/nba/nba_nba_team_model.py +0 -0
  103. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/nbacom/__init__.py +0 -0
  104. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/nbacom/nba_nbacom_game_model.py +0 -0
  105. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/nbacom/nba_nbacom_league_model.py +0 -0
  106. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/nbacom/nba_nbacom_player_model.py +0 -0
  107. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/nbacom/nba_nbacom_team_model.py +0 -0
  108. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/nbacom/nba_nbacom_venue_model.py +0 -0
  109. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/oddsportal/__init__.py +0 -0
  110. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/oddsportal/nba_oddsportal_league_model.py +0 -0
  111. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/position.py +0 -0
  112. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/sportsdb/__init__.py +0 -0
  113. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/sportsdb/nba_sportsdb_league_model.py +0 -0
  114. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/sportsreference/__init__.py +0 -0
  115. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nba/sportsreference/nba_sportsreference_league_model.py +0 -0
  116. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaab/__init__.py +0 -0
  117. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaab/combined/__init__.py +0 -0
  118. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaab/combined/ncaab_combined_league_model.py +0 -0
  119. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaab/espn/__init__.py +0 -0
  120. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaab/espn/ncaab_espn_league_model.py +0 -0
  121. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaab/oddsportal/__init__.py +0 -0
  122. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaab/oddsportal/ncaab_oddsportal_league_model.py +0 -0
  123. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaab/sportsreference/__init__.py +0 -0
  124. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaab/sportsreference/ncaab_sportsreference_league_model.py +0 -0
  125. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaaf/__init__.py +0 -0
  126. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaaf/combined/__init__.py +0 -0
  127. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaaf/combined/ncaaf_combined_league_model.py +0 -0
  128. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaaf/espn/__init__.py +0 -0
  129. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaaf/espn/ncaaf_espn_league_model.py +0 -0
  130. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaaf/oddsportal/__init__.py +0 -0
  131. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/ncaaf/oddsportal/ncaaf_oddsportal_league_model.py +0 -0
  132. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/news_model.py +0 -0
  133. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nfl/__init__.py +0 -0
  134. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nfl/aussportsbetting/__init__.py +0 -0
  135. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nfl/aussportsbetting/nfl_aussportsbetting_league_model.py +0 -0
  136. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nfl/combined/__init__.py +0 -0
  137. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nfl/combined/nfl_combined_league_model.py +0 -0
  138. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nfl/espn/__init__.py +0 -0
  139. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nfl/espn/nfl_espn_league_model.py +0 -0
  140. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nfl/oddsportal/__init__.py +0 -0
  141. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nfl/oddsportal/nfl_oddsportal_league_model.py +0 -0
  142. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nfl/position.py +0 -0
  143. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nfl/sportsdb/__init__.py +0 -0
  144. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/nfl/sportsdb/nfl_sportsdb_league_model.py +0 -0
  145. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/odds_model.py +0 -0
  146. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/oddsportal/__init__.py +0 -0
  147. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/oddsportal/decrypt.py +0 -0
  148. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/oddsportal/oddsportal_bookie_model.py +0 -0
  149. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/oddsportal/oddsportal_game_model.py +0 -0
  150. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/oddsportal/oddsportal_league_model.py +0 -0
  151. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/oddsportal/oddsportal_odds_model.py +0 -0
  152. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/oddsportal/oddsportal_team_model.py +0 -0
  153. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/oddsportal/oddsportal_venue_model.py +0 -0
  154. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/owner_model.py +0 -0
  155. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/player_model.py +0 -0
  156. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/season_type.py +0 -0
  157. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/sex.py +0 -0
  158. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/social_model.py +0 -0
  159. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/species.py +0 -0
  160. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/sportsdb/__init__.py +0 -0
  161. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/sportsdb/sportsdb_game_model.py +0 -0
  162. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/sportsdb/sportsdb_league_model.py +0 -0
  163. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/sportsdb/sportsdb_team_model.py +0 -0
  164. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/sportsdb/sportsdb_venue_model.py +0 -0
  165. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/sportsreference/__init__.py +0 -0
  166. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/sportsreference/sportsreference_coach_model.py +0 -0
  167. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/sportsreference/sportsreference_game_model.py +0 -0
  168. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/sportsreference/sportsreference_league_model.py +0 -0
  169. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/sportsreference/sportsreference_player_model.py +0 -0
  170. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/sportsreference/sportsreference_team_model.py +0 -0
  171. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/sportsreference/sportsreference_venue_model.py +0 -0
  172. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/team_model.py +0 -0
  173. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/venue_model.py +0 -0
  174. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/weather/__init__.py +0 -0
  175. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/weather/gribstream/__init__.py +0 -0
  176. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/weather/gribstream/gribstream_weather_model.py +0 -0
  177. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/weather/multi_weather_model.py +0 -0
  178. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/weather/openmeteo/__init__.py +0 -0
  179. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/weather/openmeteo/openmeteo_weather_model.py +0 -0
  180. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/weather_model.py +0 -0
  181. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/wikipedia/__init__.py +0 -0
  182. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/wikipedia/wikipedia_venue_model.py +0 -0
  183. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/x/__init__.py +0 -0
  184. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/data/x/x_social_model.py +0 -0
  185. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/logger.py +0 -0
  186. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/loglevel.py +0 -0
  187. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/playwright.py +0 -0
  188. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/proxy_session.py +0 -0
  189. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/session.py +0 -0
  190. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/sportsball.py +0 -0
  191. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/vendor/__init__.py +0 -0
  192. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball/vendor/pygooglenews/__init__.py +0 -0
  193. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball.egg-info/dependency_links.txt +0 -0
  194. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball.egg-info/entry_points.txt +0 -0
  195. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball.egg-info/not-zip-safe +0 -0
  196. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball.egg-info/requires.txt +0 -0
  197. {sportsball-0.4.2 → sportsball-0.4.4}/sportsball.egg-info/top_level.txt +0 -0
  198. {sportsball-0.4.2 → sportsball-0.4.4}/tests/__init__.py +0 -0
  199. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/__init__.py +0 -0
  200. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/afl/__init__.py +0 -0
  201. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/afl/afl/__init__.py +0 -0
  202. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/afl/afl/afl_afl_game_model_test.py +0 -0
  203. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/afl/afl/afl_afl_league_model_test.py +0 -0
  204. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/afl/afltables/__init__.py +0 -0
  205. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/afl/afltables/afl_afltables_coach_model_test.py +0 -0
  206. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/afl/afltables/afl_afltables_game_model_test.py +0 -0
  207. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/afl/afltables/afl_afltables_league_model_test.py +0 -0
  208. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/aussportsbetting/__init__.py +0 -0
  209. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/aussportsbetting/aussportsbetting_game_model_test.py +0 -0
  210. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/combined/__init__.py +0 -0
  211. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/combined/combined_game_model_test.py +0 -0
  212. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/combined/combined_player_model_test.py +0 -0
  213. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/combined/combined_team_model_test.py +0 -0
  214. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/espn/__init__.py +0 -0
  215. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/espn/espn_game_model_test.py +0 -0
  216. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/espn/espn_player_model_test.py +0 -0
  217. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/game_model_test.py +0 -0
  218. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/google/__init__.py +0 -0
  219. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/google/google_address_model_test.py +0 -0
  220. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/google/google_news_model_test.py +0 -0
  221. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/hkjc/__init__.py +0 -0
  222. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/hkjc/hkjc/__init__.py +0 -0
  223. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/hkjc/hkjc/hkjc_hkjc_game_model_test.py +0 -0
  224. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/nba/__init__.py +0 -0
  225. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/nba/nba/__init__.py +0 -0
  226. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/nba/nba/nba_nba_game_model_test.py +0 -0
  227. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/nba/nba/nba_nba_league_model_test.py +0 -0
  228. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/nba/nba/nba_nba_team_model_test.py +0 -0
  229. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/nba/sportsdb/__init__.py +0 -0
  230. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/nba/sportsdb/nba_sportsdb_league_model_test.py +0 -0
  231. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/nba/sportsreference/__init__.py +0 -0
  232. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/nba/sportsreference/nba_sportsreference_league_model_test.py +0 -0
  233. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/ncaab/__init__.py +0 -0
  234. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/ncaab/sportsreference/__init__.py +0 -0
  235. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/ncaab/sportsreference/ncaab_sportsreference_league_model_test.py +0 -0
  236. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/nfl/__init__.py +0 -0
  237. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/nfl/sportsdb/__init__.py +0 -0
  238. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/nfl/sportsdb/nfl_sportsdb_league_model_test.py +0 -0
  239. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/oddsportal/__init__.py +0 -0
  240. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/oddsportal/decrypt_test.py +0 -0
  241. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/oddsportal/oddsportal_game_model_test.py +0 -0
  242. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/oddsportal/oddsportal_league_model_test.py +0 -0
  243. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/player_model_test.py +0 -0
  244. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/social_model_test.py +0 -0
  245. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/sportsdb/__init__.py +0 -0
  246. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/sportsdb/sportsdb_game_model_test.py +0 -0
  247. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/sportsdb/sportsdb_league_model_test.py +0 -0
  248. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/sportsdb/sportsdb_team_model_test.py +0 -0
  249. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/sportsdb/sportsdb_venue_model_test.py +0 -0
  250. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/sportsreference/__init__.py +0 -0
  251. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/sportsreference/sportsreference_coach_model_test.py +0 -0
  252. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/sportsreference/sportsreference_game_model_test.py +0 -0
  253. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/sportsreference/sportsreference_league_model_test.py +0 -0
  254. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/sportsreference/sportsreference_player_model_test.py +0 -0
  255. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/sportsreference/sportsreference_team_model_test.py +0 -0
  256. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/sportsreference/sportsreference_venue_model_test.py +0 -0
  257. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/team_model_test.py +0 -0
  258. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/x/__init__.py +0 -0
  259. {sportsball-0.4.2 → sportsball-0.4.4}/tests/data/x/x_social_model_test.py +0 -0
  260. {sportsball-0.4.2 → sportsball-0.4.4}/tests/proxy_session_test.py +0 -0
  261. {sportsball-0.4.2 → sportsball-0.4.4}/tests/sportsball_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.4.2
3
+ Version: 0.4.4
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.2',
29
+ version='0.4.4',
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.2"
7
+ __VERSION__ = "0.4.4"
@@ -66,7 +66,11 @@ def _create_afl_afltables_player_model(
66
66
  except IndexError:
67
67
  logging.warning("Couldn't find birth date from %s", response.url)
68
68
 
69
- weight = float(player_page_text.split("Weight:")[1].strip().split()[0].strip())
69
+ weight = None
70
+ try:
71
+ weight = float(player_page_text.split("Weight:")[1].strip().split()[0].strip())
72
+ except IndexError:
73
+ logging.warning("Couldn't find weight from %s", response.url)
70
74
 
71
75
  return PlayerModel(
72
76
  identifier=identifier,
@@ -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() - datetime.timedelta(days=7)
201
+ and dt < datetime.datetime.now().date() - datetime.timedelta(days=7)
202
202
  ):
203
203
  return _cached_create_espn_game_model(
204
204
  event,
@@ -3196,6 +3196,24 @@ MONROE = SportsballGeocodeTuple(
3196
3196
  housenumber="",
3197
3197
  country="USA",
3198
3198
  )
3199
+ YOKOHAMA_ARENA = SportsballGeocodeTuple(
3200
+ city="Kanagawa",
3201
+ state="",
3202
+ postal="",
3203
+ lat=35.512389,
3204
+ lng=139.620056,
3205
+ housenumber="",
3206
+ country="Japan",
3207
+ )
3208
+ BELL_CENTRE = SportsballGeocodeTuple(
3209
+ city="Montreal",
3210
+ state="QC",
3211
+ postal="",
3212
+ lat=45.496111,
3213
+ lng=-73.569444,
3214
+ housenumber="1909",
3215
+ country="CA",
3216
+ )
3199
3217
  _CACHED_GEOCODES: dict[str, Any] = {
3200
3218
  "S.C.G. - Australia": SCG,
3201
3219
  "Victoria Park - Australia": SportsballGeocodeTuple(
@@ -7990,15 +8008,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
7990
8008
  "Target Center - Minneapolis, Minnesota - United States": TARGET_CENTER,
7991
8009
  "Thomas & Mack Center - Paradise, NV - United States": THOMAS_AND_MACK_CENTER,
7992
8010
  "Delta Center - Salt Lake City, Utah - United States": DELTA_CENTER,
7993
- "Yokohama Arena": SportsballGeocodeTuple(
7994
- city="Kanagawa",
7995
- state="",
7996
- postal="",
7997
- lat=35.512389,
7998
- lng=139.620056,
7999
- housenumber="",
8000
- country="Japan",
8001
- ),
8011
+ "Yokohama Arena": YOKOHAMA_ARENA,
8002
8012
  "Anaheim Convention Center": ANAHEIM_CONVENTION_CENTER,
8003
8013
  "TD Banknorth Garden": TD_GARDEN,
8004
8014
  "Amway Arena": ORLANDO_ARENA,
@@ -8875,15 +8885,7 @@ _CACHED_GEOCODES: dict[str, Any] = {
8875
8885
  "Climate Pledge Arena - Seattle, Washington - United States": CLIMATE_PLEDGE_ARENA,
8876
8886
  "Wells Fargo Center - Philadelphia, PA - United States": SPECTRUM,
8877
8887
  "State Farm Arena - Atlanta, Georgia - United States": STATE_FARM_ARENA,
8878
- "Bell Centre": SportsballGeocodeTuple(
8879
- city="Montreal",
8880
- state="QC",
8881
- postal="",
8882
- lat=45.496111,
8883
- lng=-73.569444,
8884
- housenumber="1909",
8885
- country="CA",
8886
- ),
8888
+ "Bell Centre": BELL_CENTRE,
8887
8889
  "Footprint Center - Phoenix, Arizona - United States": AMERICA_WEST_ARENA,
8888
8890
  "Smoothie King Center - New Orleans, Louisiana, USA - United States": CAESARS_SUPERDOME,
8889
8891
  "Kaseya Center - Miami, Florida - United States": KASEYA_CENTER,
@@ -15527,6 +15529,8 @@ _CACHED_GEOCODES: dict[str, Any] = {
15527
15529
  ),
15528
15530
  "TIO Traeger Park, Alice Springs": TIO_STADIUM,
15529
15531
  "Hard Rock Stadium, Miami Gardens, FL, USA": HARD_ROCK_STADIUM,
15532
+ "Yokohama Arena - Yokohama, Kanagawa - Japan": YOKOHAMA_ARENA,
15533
+ "Centre Bell - Montreal, Quebec, Canada - Canada": BELL_CENTRE,
15530
15534
  }
15531
15535
 
15532
15536
 
@@ -91,7 +91,7 @@ def _create_hkjc_hkjc_game_model(
91
91
  if starting_position_str.strip() != "---":
92
92
  starting_position = position_from_str(starting_position_str.strip())
93
93
 
94
- lbw = 0.0
94
+ lbw: float | None = 0.0
95
95
  lbw_str = row["LBW"].strip()
96
96
  if lbw_str == "HD":
97
97
  lbw = 2.4 * 0.2
@@ -99,14 +99,17 @@ def _create_hkjc_hkjc_game_model(
99
99
  lbw = 2.4 * 0.2 * 0.5
100
100
  elif lbw_str in {"NOSE", "N"}:
101
101
  lbw = 2.4 * 0.05
102
+ elif lbw_str == "ML":
103
+ lbw = None
102
104
  elif lbw_str and lbw_str != "-" and lbw_str != "---":
103
- if "-" in lbw_str:
104
- lbw_horses, lbw_str = lbw_str.split("-")
105
- lbw += 2.4 * int(lbw_horses)
106
- if "/" in lbw_str:
107
- lbw += 2.4 * (1.0 / int(lbw_str.split("/")[-1]))
108
- else:
109
- lbw += 2.4 * int(lbw_str)
105
+ if lbw is not None:
106
+ if "-" in lbw_str:
107
+ lbw_horses, lbw_str = lbw_str.split("-")
108
+ lbw += 2.4 * int(lbw_horses)
109
+ if "/" in lbw_str:
110
+ lbw += 2.4 * (1.0 / int(lbw_str.split("/")[-1]))
111
+ else:
112
+ lbw += 2.4 * int(lbw_str)
110
113
 
111
114
  finish_time_str = row["Finish Time"].strip()
112
115
  end_dt = None
@@ -32,6 +32,10 @@ def _create_hkjc_hkjc_player_model(
32
32
  headers = {X_NO_WAYBACK: "1"}
33
33
  response = session.get(url, headers=headers)
34
34
  response.raise_for_status()
35
+
36
+ o = urlparse(url)
37
+ is_sire = o.path.endswith("Horse/SameSire.aspx")
38
+
35
39
  handle = io.StringIO()
36
40
  handle.write(response.text)
37
41
  handle.seek(0)
@@ -41,10 +45,11 @@ def _create_hkjc_hkjc_player_model(
41
45
  except AttributeError as exc:
42
46
  logging.warning(str(exc))
43
47
  except ValueError:
44
- logging.error(response.text)
45
- logging.error(url)
46
- raise
47
- o = urlparse(url)
48
+ if not is_sire:
49
+ logging.error(response.text)
50
+ logging.error(url)
51
+ raise
52
+
48
53
  soup = BeautifulSoup(response.text, "lxml")
49
54
 
50
55
  name = None
@@ -24,7 +24,7 @@ def _create_hkjc_hkjc_team_model(
24
24
  handicap_weight: float,
25
25
  horse_weight: float | None,
26
26
  starting_position: Position | None,
27
- lbw: float,
27
+ lbw: float | None,
28
28
  end_dt: datetime.datetime | None,
29
29
  odds: list[OddsModel],
30
30
  ) -> TeamModel:
@@ -75,7 +75,7 @@ def _cached_create_hkjc_hkjc_team_model(
75
75
  handicap_weight: float,
76
76
  horse_weight: float | None,
77
77
  starting_position: Position | None,
78
- lbw: float,
78
+ lbw: float | None,
79
79
  end_dt: datetime.datetime | None,
80
80
  odds: list[OddsModel],
81
81
  ) -> TeamModel:
@@ -105,7 +105,7 @@ def create_hkjc_hkjc_team_model(
105
105
  handicap_weight: float,
106
106
  horse_weight: float | None,
107
107
  starting_position: Position | None,
108
- lbw: float,
108
+ lbw: float | None,
109
109
  end_dt: datetime.datetime | None,
110
110
  odds: list[OddsModel],
111
111
  ) -> TeamModel:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sportsball
3
- Version: 0.4.2
3
+ Version: 0.4.4
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
@@ -223,6 +223,7 @@ tests/data/google/google_news_model_test.py
223
223
  tests/data/hkjc/__init__.py
224
224
  tests/data/hkjc/hkjc/__init__.py
225
225
  tests/data/hkjc/hkjc/hkjc_hkjc_game_model_test.py
226
+ tests/data/hkjc/hkjc/hkjc_hkjc_player_model_test.py
226
227
  tests/data/nba/__init__.py
227
228
  tests/data/nba/nba/__init__.py
228
229
  tests/data/nba/nba/nba_nba_game_model_test.py
@@ -85,3 +85,40 @@ class TestAFLTablesPlayerModel(unittest.TestCase):
85
85
  dt=datetime.datetime(2022, 10, 10),
86
86
  )
87
87
  self.assertIsNone(player_model.birth_date)
88
+
89
+ def test_null_weight(self):
90
+ with requests_mock.Mocker() as m:
91
+ url = "https://afltables.com/afl/stats/players/I/Ivan_Astruc.html"
92
+ with open(os.path.join(self.dir, "Ivan_Astruc.html"), "rb") as f:
93
+ m.get(url, content=f.read())
94
+ player_model = create_afl_afltables_player_model(
95
+ player_url=url,
96
+ jersey="35",
97
+ kicks=10,
98
+ session=self._session,
99
+ name="Dennis Armfield",
100
+ marks=0,
101
+ handballs=0,
102
+ disposals=0,
103
+ goals=0,
104
+ behinds=0,
105
+ hit_outs=0,
106
+ tackles=0,
107
+ rebounds=0,
108
+ insides=0,
109
+ clearances=0,
110
+ clangers=0,
111
+ free_kicks_for=0,
112
+ free_kicks_against=0,
113
+ brownlow_votes=0,
114
+ contested_possessions=0,
115
+ uncontested_possessions=0,
116
+ contested_marks=0,
117
+ marks_inside=0,
118
+ one_percenters=0,
119
+ bounces=0,
120
+ goal_assists=0,
121
+ percentage_played=0.0,
122
+ dt=datetime.datetime(2022, 10, 10),
123
+ )
124
+ self.assertIsNone(player_model.weight)
@@ -0,0 +1,29 @@
1
+ """Tests for the HKJC HKJC player model class."""
2
+ import os
3
+ import unittest
4
+
5
+ import requests_mock
6
+ import requests_cache
7
+ from sportsball.data.hkjc.hkjc.hkjc_hkjc_player_model import create_hkjc_hkjc_player_model
8
+
9
+
10
+ class TestHKJCHKJCPlayerModel(unittest.TestCase):
11
+
12
+ def setUp(self):
13
+ self._session = requests_cache.CachedSession(backend="memory")
14
+ self.dir = os.path.dirname(__file__)
15
+
16
+ def test_no_table_for_sire(self):
17
+ with requests_mock.Mocker() as m:
18
+ url = "https://racing.hkjc.com/racing/information/english/Horse/SameSire.aspx?HorseSire=Nyquist"
19
+ with open(os.path.join(self.dir, "sire_nyquist_2.html"), "rb") as f:
20
+ m.get(url, content=f.read())
21
+ player_model = create_hkjc_hkjc_player_model(
22
+ session=self._session,
23
+ url=url,
24
+ jersey=None,
25
+ handicap_weight=None,
26
+ starting_position=None,
27
+ weight=None,
28
+ )
29
+ self.assertEqual(player_model.name, "Nyquist")
File without changes
File without changes
File without changes
File without changes
File without changes