cbbd 1.1.0a1__py3-none-any.whl

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 (44) hide show
  1. cbbd/__init__.py +64 -0
  2. cbbd/api/__init__.py +10 -0
  3. cbbd/api/conferences_api.py +176 -0
  4. cbbd/api/games_api.py +806 -0
  5. cbbd/api/plays_api.py +761 -0
  6. cbbd/api/stats_api.py +423 -0
  7. cbbd/api/teams_api.py +195 -0
  8. cbbd/api/venues_api.py +176 -0
  9. cbbd/api_client.py +767 -0
  10. cbbd/api_response.py +25 -0
  11. cbbd/configuration.py +443 -0
  12. cbbd/exceptions.py +167 -0
  13. cbbd/models/__init__.py +42 -0
  14. cbbd/models/conference_info.py +80 -0
  15. cbbd/models/game_box_score_players.py +147 -0
  16. cbbd/models/game_box_score_players_players_inner.py +238 -0
  17. cbbd/models/game_box_score_team.py +148 -0
  18. cbbd/models/game_box_score_team_stats.py +170 -0
  19. cbbd/models/game_box_score_team_stats_points.py +112 -0
  20. cbbd/models/game_info.py +212 -0
  21. cbbd/models/game_media_info.py +133 -0
  22. cbbd/models/game_media_info_broadcasts_inner.py +74 -0
  23. cbbd/models/game_status.py +44 -0
  24. cbbd/models/play_info.py +193 -0
  25. cbbd/models/play_info_participants_inner.py +74 -0
  26. cbbd/models/play_type_info.py +74 -0
  27. cbbd/models/player_season_stats.py +231 -0
  28. cbbd/models/season_type.py +42 -0
  29. cbbd/models/team_info.py +160 -0
  30. cbbd/models/team_season_stats.py +112 -0
  31. cbbd/models/team_season_unit_stats.py +163 -0
  32. cbbd/models/team_season_unit_stats_field_goals.py +91 -0
  33. cbbd/models/team_season_unit_stats_fouls.py +91 -0
  34. cbbd/models/team_season_unit_stats_four_factors.py +98 -0
  35. cbbd/models/team_season_unit_stats_points.py +98 -0
  36. cbbd/models/team_season_unit_stats_rebounds.py +91 -0
  37. cbbd/models/team_season_unit_stats_turnovers.py +84 -0
  38. cbbd/models/venue_info.py +102 -0
  39. cbbd/py.typed +0 -0
  40. cbbd/rest.py +330 -0
  41. cbbd-1.1.0a1.dist-info/METADATA +24 -0
  42. cbbd-1.1.0a1.dist-info/RECORD +44 -0
  43. cbbd-1.1.0a1.dist-info/WHEEL +5 -0
  44. cbbd-1.1.0a1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,80 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ College Basketball Data API
5
+
6
+ This API is in limited Beta for Patreon subscribers. It may have bugs and is subject to changes. API keys can be acquired from the CollegeFootballData.com website.
7
+
8
+ The version of the OpenAPI document: 1.1.0
9
+ Contact: admin@collegefootballdata.com
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+
22
+
23
+ from pydantic import BaseModel, Field, StrictInt, StrictStr
24
+
25
+ class ConferenceInfo(BaseModel):
26
+ """
27
+ ConferenceInfo
28
+ """
29
+ id: StrictInt = Field(...)
30
+ source_id: StrictStr = Field(default=..., alias="sourceId")
31
+ name: StrictStr = Field(...)
32
+ abbreviation: StrictStr = Field(...)
33
+ short_name: StrictStr = Field(default=..., alias="shortName")
34
+ __properties = ["id", "sourceId", "name", "abbreviation", "shortName"]
35
+
36
+ class Config:
37
+ """Pydantic configuration"""
38
+ allow_population_by_field_name = True
39
+ validate_assignment = True
40
+
41
+ def to_str(self) -> str:
42
+ """Returns the string representation of the model using alias"""
43
+ return pprint.pformat(self.dict(by_alias=True))
44
+
45
+ def to_json(self) -> str:
46
+ """Returns the JSON representation of the model using alias"""
47
+ return json.dumps(self.to_dict())
48
+
49
+ @classmethod
50
+ def from_json(cls, json_str: str) -> ConferenceInfo:
51
+ """Create an instance of ConferenceInfo from a JSON string"""
52
+ return cls.from_dict(json.loads(json_str))
53
+
54
+ def to_dict(self):
55
+ """Returns the dictionary representation of the model using alias"""
56
+ _dict = self.dict(by_alias=True,
57
+ exclude={
58
+ },
59
+ exclude_none=True)
60
+ return _dict
61
+
62
+ @classmethod
63
+ def from_dict(cls, obj: dict) -> ConferenceInfo:
64
+ """Create an instance of ConferenceInfo from a dict"""
65
+ if obj is None:
66
+ return None
67
+
68
+ if not isinstance(obj, dict):
69
+ return ConferenceInfo.parse_obj(obj)
70
+
71
+ _obj = ConferenceInfo.parse_obj({
72
+ "id": obj.get("id"),
73
+ "source_id": obj.get("sourceId"),
74
+ "name": obj.get("name"),
75
+ "abbreviation": obj.get("abbreviation"),
76
+ "short_name": obj.get("shortName")
77
+ })
78
+ return _obj
79
+
80
+
@@ -0,0 +1,147 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ College Basketball Data API
5
+
6
+ This API is in limited Beta for Patreon subscribers. It may have bugs and is subject to changes. API keys can be acquired from the CollegeFootballData.com website.
7
+
8
+ The version of the OpenAPI document: 1.1.0
9
+ Contact: admin@collegefootballdata.com
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from datetime import datetime
22
+ from typing import List, Optional, Union
23
+ from pydantic import BaseModel, Field, StrictBool, StrictFloat, StrictInt, StrictStr, conlist
24
+ from cbbd.models.game_box_score_players_players_inner import GameBoxScorePlayersPlayersInner
25
+ from cbbd.models.season_type import SeasonType
26
+
27
+ class GameBoxScorePlayers(BaseModel):
28
+ """
29
+ GameBoxScorePlayers
30
+ """
31
+ game_id: StrictInt = Field(default=..., alias="gameId")
32
+ season: StrictInt = Field(...)
33
+ season_label: StrictStr = Field(default=..., alias="seasonLabel")
34
+ season_type: SeasonType = Field(default=..., alias="seasonType")
35
+ start_date: datetime = Field(default=..., alias="startDate")
36
+ start_time_tbd: StrictBool = Field(default=..., alias="startTimeTbd")
37
+ team_id: StrictInt = Field(default=..., alias="teamId")
38
+ team: StrictStr = Field(...)
39
+ conference: Optional[StrictStr] = Field(...)
40
+ opponent_id: StrictInt = Field(default=..., alias="opponentId")
41
+ opponent: StrictStr = Field(...)
42
+ opponent_conference: Optional[StrictStr] = Field(default=..., alias="opponentConference")
43
+ neutral_site: StrictBool = Field(default=..., alias="neutralSite")
44
+ conference_game: StrictBool = Field(default=..., alias="conferenceGame")
45
+ game_type: Optional[StrictStr] = Field(default=..., alias="gameType")
46
+ notes: Optional[StrictStr] = Field(...)
47
+ game_minutes: Optional[Union[StrictFloat, StrictInt]] = Field(default=..., alias="gameMinutes")
48
+ game_pace: Optional[Union[StrictFloat, StrictInt]] = Field(default=..., alias="gamePace")
49
+ players: conlist(GameBoxScorePlayersPlayersInner) = Field(...)
50
+ __properties = ["gameId", "season", "seasonLabel", "seasonType", "startDate", "startTimeTbd", "teamId", "team", "conference", "opponentId", "opponent", "opponentConference", "neutralSite", "conferenceGame", "gameType", "notes", "gameMinutes", "gamePace", "players"]
51
+
52
+ class Config:
53
+ """Pydantic configuration"""
54
+ allow_population_by_field_name = True
55
+ validate_assignment = True
56
+
57
+ def to_str(self) -> str:
58
+ """Returns the string representation of the model using alias"""
59
+ return pprint.pformat(self.dict(by_alias=True))
60
+
61
+ def to_json(self) -> str:
62
+ """Returns the JSON representation of the model using alias"""
63
+ return json.dumps(self.to_dict())
64
+
65
+ @classmethod
66
+ def from_json(cls, json_str: str) -> GameBoxScorePlayers:
67
+ """Create an instance of GameBoxScorePlayers from a JSON string"""
68
+ return cls.from_dict(json.loads(json_str))
69
+
70
+ def to_dict(self):
71
+ """Returns the dictionary representation of the model using alias"""
72
+ _dict = self.dict(by_alias=True,
73
+ exclude={
74
+ },
75
+ exclude_none=True)
76
+ # override the default output from pydantic by calling `to_dict()` of each item in players (list)
77
+ _items = []
78
+ if self.players:
79
+ for _item in self.players:
80
+ if _item:
81
+ _items.append(_item.to_dict())
82
+ _dict['players'] = _items
83
+ # set to None if conference (nullable) is None
84
+ # and __fields_set__ contains the field
85
+ if self.conference is None and "conference" in self.__fields_set__:
86
+ _dict['conference'] = None
87
+
88
+ # set to None if opponent_conference (nullable) is None
89
+ # and __fields_set__ contains the field
90
+ if self.opponent_conference is None and "opponent_conference" in self.__fields_set__:
91
+ _dict['opponentConference'] = None
92
+
93
+ # set to None if game_type (nullable) is None
94
+ # and __fields_set__ contains the field
95
+ if self.game_type is None and "game_type" in self.__fields_set__:
96
+ _dict['gameType'] = None
97
+
98
+ # set to None if notes (nullable) is None
99
+ # and __fields_set__ contains the field
100
+ if self.notes is None and "notes" in self.__fields_set__:
101
+ _dict['notes'] = None
102
+
103
+ # set to None if game_minutes (nullable) is None
104
+ # and __fields_set__ contains the field
105
+ if self.game_minutes is None and "game_minutes" in self.__fields_set__:
106
+ _dict['gameMinutes'] = None
107
+
108
+ # set to None if game_pace (nullable) is None
109
+ # and __fields_set__ contains the field
110
+ if self.game_pace is None and "game_pace" in self.__fields_set__:
111
+ _dict['gamePace'] = None
112
+
113
+ return _dict
114
+
115
+ @classmethod
116
+ def from_dict(cls, obj: dict) -> GameBoxScorePlayers:
117
+ """Create an instance of GameBoxScorePlayers from a dict"""
118
+ if obj is None:
119
+ return None
120
+
121
+ if not isinstance(obj, dict):
122
+ return GameBoxScorePlayers.parse_obj(obj)
123
+
124
+ _obj = GameBoxScorePlayers.parse_obj({
125
+ "game_id": obj.get("gameId"),
126
+ "season": obj.get("season"),
127
+ "season_label": obj.get("seasonLabel"),
128
+ "season_type": obj.get("seasonType"),
129
+ "start_date": obj.get("startDate"),
130
+ "start_time_tbd": obj.get("startTimeTbd"),
131
+ "team_id": obj.get("teamId"),
132
+ "team": obj.get("team"),
133
+ "conference": obj.get("conference"),
134
+ "opponent_id": obj.get("opponentId"),
135
+ "opponent": obj.get("opponent"),
136
+ "opponent_conference": obj.get("opponentConference"),
137
+ "neutral_site": obj.get("neutralSite"),
138
+ "conference_game": obj.get("conferenceGame"),
139
+ "game_type": obj.get("gameType"),
140
+ "notes": obj.get("notes"),
141
+ "game_minutes": obj.get("gameMinutes"),
142
+ "game_pace": obj.get("gamePace"),
143
+ "players": [GameBoxScorePlayersPlayersInner.from_dict(_item) for _item in obj.get("players")] if obj.get("players") is not None else None
144
+ })
145
+ return _obj
146
+
147
+
@@ -0,0 +1,238 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ College Basketball Data API
5
+
6
+ This API is in limited Beta for Patreon subscribers. It may have bugs and is subject to changes. API keys can be acquired from the CollegeFootballData.com website.
7
+
8
+ The version of the OpenAPI document: 1.1.0
9
+ Contact: admin@collegefootballdata.com
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+
22
+ from typing import Optional, Union
23
+ from pydantic import BaseModel, Field, StrictBool, StrictFloat, StrictInt, StrictStr
24
+ from cbbd.models.team_season_unit_stats_field_goals import TeamSeasonUnitStatsFieldGoals
25
+ from cbbd.models.team_season_unit_stats_rebounds import TeamSeasonUnitStatsRebounds
26
+
27
+ class GameBoxScorePlayersPlayersInner(BaseModel):
28
+ """
29
+ GameBoxScorePlayersPlayersInner
30
+ """
31
+ rebounds: TeamSeasonUnitStatsRebounds = Field(...)
32
+ free_throws: TeamSeasonUnitStatsFieldGoals = Field(default=..., alias="freeThrows")
33
+ three_point_field_goals: TeamSeasonUnitStatsFieldGoals = Field(default=..., alias="threePointFieldGoals")
34
+ two_point_field_goals: TeamSeasonUnitStatsFieldGoals = Field(default=..., alias="twoPointFieldGoals")
35
+ field_goals: TeamSeasonUnitStatsFieldGoals = Field(default=..., alias="fieldGoals")
36
+ offensive_rebound_pct: Optional[Union[StrictFloat, StrictInt]] = Field(default=..., alias="offensiveReboundPct")
37
+ free_throw_rate: Optional[Union[StrictFloat, StrictInt]] = Field(default=..., alias="freeThrowRate")
38
+ assists_turnover_ratio: Optional[Union[StrictFloat, StrictInt]] = Field(default=..., alias="assistsTurnoverRatio")
39
+ game_score: Optional[Union[StrictFloat, StrictInt]] = Field(default=..., alias="gameScore")
40
+ true_shooting_pct: Optional[Union[StrictFloat, StrictInt]] = Field(default=..., alias="trueShootingPct")
41
+ effective_field_goal_pct: Optional[Union[StrictFloat, StrictInt]] = Field(default=..., alias="effectiveFieldGoalPct")
42
+ net_rating: Optional[Union[StrictFloat, StrictInt]] = Field(default=..., alias="netRating")
43
+ defensive_rating: Optional[Union[StrictFloat, StrictInt]] = Field(default=..., alias="defensiveRating")
44
+ offensive_rating: Optional[Union[StrictFloat, StrictInt]] = Field(default=..., alias="offensiveRating")
45
+ usage: Optional[Union[StrictFloat, StrictInt]] = Field(...)
46
+ blocks: Optional[Union[StrictFloat, StrictInt]] = Field(...)
47
+ steals: Optional[Union[StrictFloat, StrictInt]] = Field(...)
48
+ assists: Optional[Union[StrictFloat, StrictInt]] = Field(...)
49
+ fouls: Optional[Union[StrictFloat, StrictInt]] = Field(...)
50
+ turnovers: Optional[Union[StrictFloat, StrictInt]] = Field(...)
51
+ points: Optional[Union[StrictFloat, StrictInt]] = Field(...)
52
+ minutes: Optional[Union[StrictFloat, StrictInt]] = Field(...)
53
+ ejected: Optional[StrictBool] = Field(...)
54
+ starter: Optional[StrictBool] = Field(...)
55
+ position: StrictStr = Field(...)
56
+ name: StrictStr = Field(...)
57
+ athlete_source_id: StrictStr = Field(default=..., alias="athleteSourceId")
58
+ athlete_id: StrictInt = Field(default=..., alias="athleteId")
59
+ __properties = ["rebounds", "freeThrows", "threePointFieldGoals", "twoPointFieldGoals", "fieldGoals", "offensiveReboundPct", "freeThrowRate", "assistsTurnoverRatio", "gameScore", "trueShootingPct", "effectiveFieldGoalPct", "netRating", "defensiveRating", "offensiveRating", "usage", "blocks", "steals", "assists", "fouls", "turnovers", "points", "minutes", "ejected", "starter", "position", "name", "athleteSourceId", "athleteId"]
60
+
61
+ class Config:
62
+ """Pydantic configuration"""
63
+ allow_population_by_field_name = True
64
+ validate_assignment = True
65
+
66
+ def to_str(self) -> str:
67
+ """Returns the string representation of the model using alias"""
68
+ return pprint.pformat(self.dict(by_alias=True))
69
+
70
+ def to_json(self) -> str:
71
+ """Returns the JSON representation of the model using alias"""
72
+ return json.dumps(self.to_dict())
73
+
74
+ @classmethod
75
+ def from_json(cls, json_str: str) -> GameBoxScorePlayersPlayersInner:
76
+ """Create an instance of GameBoxScorePlayersPlayersInner from a JSON string"""
77
+ return cls.from_dict(json.loads(json_str))
78
+
79
+ def to_dict(self):
80
+ """Returns the dictionary representation of the model using alias"""
81
+ _dict = self.dict(by_alias=True,
82
+ exclude={
83
+ },
84
+ exclude_none=True)
85
+ # override the default output from pydantic by calling `to_dict()` of rebounds
86
+ if self.rebounds:
87
+ _dict['rebounds'] = self.rebounds.to_dict()
88
+ # override the default output from pydantic by calling `to_dict()` of free_throws
89
+ if self.free_throws:
90
+ _dict['freeThrows'] = self.free_throws.to_dict()
91
+ # override the default output from pydantic by calling `to_dict()` of three_point_field_goals
92
+ if self.three_point_field_goals:
93
+ _dict['threePointFieldGoals'] = self.three_point_field_goals.to_dict()
94
+ # override the default output from pydantic by calling `to_dict()` of two_point_field_goals
95
+ if self.two_point_field_goals:
96
+ _dict['twoPointFieldGoals'] = self.two_point_field_goals.to_dict()
97
+ # override the default output from pydantic by calling `to_dict()` of field_goals
98
+ if self.field_goals:
99
+ _dict['fieldGoals'] = self.field_goals.to_dict()
100
+ # set to None if offensive_rebound_pct (nullable) is None
101
+ # and __fields_set__ contains the field
102
+ if self.offensive_rebound_pct is None and "offensive_rebound_pct" in self.__fields_set__:
103
+ _dict['offensiveReboundPct'] = None
104
+
105
+ # set to None if free_throw_rate (nullable) is None
106
+ # and __fields_set__ contains the field
107
+ if self.free_throw_rate is None and "free_throw_rate" in self.__fields_set__:
108
+ _dict['freeThrowRate'] = None
109
+
110
+ # set to None if assists_turnover_ratio (nullable) is None
111
+ # and __fields_set__ contains the field
112
+ if self.assists_turnover_ratio is None and "assists_turnover_ratio" in self.__fields_set__:
113
+ _dict['assistsTurnoverRatio'] = None
114
+
115
+ # set to None if game_score (nullable) is None
116
+ # and __fields_set__ contains the field
117
+ if self.game_score is None and "game_score" in self.__fields_set__:
118
+ _dict['gameScore'] = None
119
+
120
+ # set to None if true_shooting_pct (nullable) is None
121
+ # and __fields_set__ contains the field
122
+ if self.true_shooting_pct is None and "true_shooting_pct" in self.__fields_set__:
123
+ _dict['trueShootingPct'] = None
124
+
125
+ # set to None if effective_field_goal_pct (nullable) is None
126
+ # and __fields_set__ contains the field
127
+ if self.effective_field_goal_pct is None and "effective_field_goal_pct" in self.__fields_set__:
128
+ _dict['effectiveFieldGoalPct'] = None
129
+
130
+ # set to None if net_rating (nullable) is None
131
+ # and __fields_set__ contains the field
132
+ if self.net_rating is None and "net_rating" in self.__fields_set__:
133
+ _dict['netRating'] = None
134
+
135
+ # set to None if defensive_rating (nullable) is None
136
+ # and __fields_set__ contains the field
137
+ if self.defensive_rating is None and "defensive_rating" in self.__fields_set__:
138
+ _dict['defensiveRating'] = None
139
+
140
+ # set to None if offensive_rating (nullable) is None
141
+ # and __fields_set__ contains the field
142
+ if self.offensive_rating is None and "offensive_rating" in self.__fields_set__:
143
+ _dict['offensiveRating'] = None
144
+
145
+ # set to None if usage (nullable) is None
146
+ # and __fields_set__ contains the field
147
+ if self.usage is None and "usage" in self.__fields_set__:
148
+ _dict['usage'] = None
149
+
150
+ # set to None if blocks (nullable) is None
151
+ # and __fields_set__ contains the field
152
+ if self.blocks is None and "blocks" in self.__fields_set__:
153
+ _dict['blocks'] = None
154
+
155
+ # set to None if steals (nullable) is None
156
+ # and __fields_set__ contains the field
157
+ if self.steals is None and "steals" in self.__fields_set__:
158
+ _dict['steals'] = None
159
+
160
+ # set to None if assists (nullable) is None
161
+ # and __fields_set__ contains the field
162
+ if self.assists is None and "assists" in self.__fields_set__:
163
+ _dict['assists'] = None
164
+
165
+ # set to None if fouls (nullable) is None
166
+ # and __fields_set__ contains the field
167
+ if self.fouls is None and "fouls" in self.__fields_set__:
168
+ _dict['fouls'] = None
169
+
170
+ # set to None if turnovers (nullable) is None
171
+ # and __fields_set__ contains the field
172
+ if self.turnovers is None and "turnovers" in self.__fields_set__:
173
+ _dict['turnovers'] = None
174
+
175
+ # set to None if points (nullable) is None
176
+ # and __fields_set__ contains the field
177
+ if self.points is None and "points" in self.__fields_set__:
178
+ _dict['points'] = None
179
+
180
+ # set to None if minutes (nullable) is None
181
+ # and __fields_set__ contains the field
182
+ if self.minutes is None and "minutes" in self.__fields_set__:
183
+ _dict['minutes'] = None
184
+
185
+ # set to None if ejected (nullable) is None
186
+ # and __fields_set__ contains the field
187
+ if self.ejected is None and "ejected" in self.__fields_set__:
188
+ _dict['ejected'] = None
189
+
190
+ # set to None if starter (nullable) is None
191
+ # and __fields_set__ contains the field
192
+ if self.starter is None and "starter" in self.__fields_set__:
193
+ _dict['starter'] = None
194
+
195
+ return _dict
196
+
197
+ @classmethod
198
+ def from_dict(cls, obj: dict) -> GameBoxScorePlayersPlayersInner:
199
+ """Create an instance of GameBoxScorePlayersPlayersInner from a dict"""
200
+ if obj is None:
201
+ return None
202
+
203
+ if not isinstance(obj, dict):
204
+ return GameBoxScorePlayersPlayersInner.parse_obj(obj)
205
+
206
+ _obj = GameBoxScorePlayersPlayersInner.parse_obj({
207
+ "rebounds": TeamSeasonUnitStatsRebounds.from_dict(obj.get("rebounds")) if obj.get("rebounds") is not None else None,
208
+ "free_throws": TeamSeasonUnitStatsFieldGoals.from_dict(obj.get("freeThrows")) if obj.get("freeThrows") is not None else None,
209
+ "three_point_field_goals": TeamSeasonUnitStatsFieldGoals.from_dict(obj.get("threePointFieldGoals")) if obj.get("threePointFieldGoals") is not None else None,
210
+ "two_point_field_goals": TeamSeasonUnitStatsFieldGoals.from_dict(obj.get("twoPointFieldGoals")) if obj.get("twoPointFieldGoals") is not None else None,
211
+ "field_goals": TeamSeasonUnitStatsFieldGoals.from_dict(obj.get("fieldGoals")) if obj.get("fieldGoals") is not None else None,
212
+ "offensive_rebound_pct": obj.get("offensiveReboundPct"),
213
+ "free_throw_rate": obj.get("freeThrowRate"),
214
+ "assists_turnover_ratio": obj.get("assistsTurnoverRatio"),
215
+ "game_score": obj.get("gameScore"),
216
+ "true_shooting_pct": obj.get("trueShootingPct"),
217
+ "effective_field_goal_pct": obj.get("effectiveFieldGoalPct"),
218
+ "net_rating": obj.get("netRating"),
219
+ "defensive_rating": obj.get("defensiveRating"),
220
+ "offensive_rating": obj.get("offensiveRating"),
221
+ "usage": obj.get("usage"),
222
+ "blocks": obj.get("blocks"),
223
+ "steals": obj.get("steals"),
224
+ "assists": obj.get("assists"),
225
+ "fouls": obj.get("fouls"),
226
+ "turnovers": obj.get("turnovers"),
227
+ "points": obj.get("points"),
228
+ "minutes": obj.get("minutes"),
229
+ "ejected": obj.get("ejected"),
230
+ "starter": obj.get("starter"),
231
+ "position": obj.get("position"),
232
+ "name": obj.get("name"),
233
+ "athlete_source_id": obj.get("athleteSourceId"),
234
+ "athlete_id": obj.get("athleteId")
235
+ })
236
+ return _obj
237
+
238
+
@@ -0,0 +1,148 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ College Basketball Data API
5
+
6
+ This API is in limited Beta for Patreon subscribers. It may have bugs and is subject to changes. API keys can be acquired from the CollegeFootballData.com website.
7
+
8
+ The version of the OpenAPI document: 1.1.0
9
+ Contact: admin@collegefootballdata.com
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from datetime import datetime
22
+ from typing import Optional, Union
23
+ from pydantic import BaseModel, Field, StrictBool, StrictFloat, StrictInt, StrictStr
24
+ from cbbd.models.game_box_score_team_stats import GameBoxScoreTeamStats
25
+ from cbbd.models.season_type import SeasonType
26
+
27
+ class GameBoxScoreTeam(BaseModel):
28
+ """
29
+ GameBoxScoreTeam
30
+ """
31
+ game_id: StrictInt = Field(default=..., alias="gameId")
32
+ season: StrictInt = Field(...)
33
+ season_label: StrictStr = Field(default=..., alias="seasonLabel")
34
+ season_type: SeasonType = Field(default=..., alias="seasonType")
35
+ start_date: datetime = Field(default=..., alias="startDate")
36
+ start_time_tbd: StrictBool = Field(default=..., alias="startTimeTbd")
37
+ team_id: StrictInt = Field(default=..., alias="teamId")
38
+ team: StrictStr = Field(...)
39
+ conference: Optional[StrictStr] = Field(...)
40
+ opponent_id: StrictInt = Field(default=..., alias="opponentId")
41
+ opponent: StrictStr = Field(...)
42
+ opponent_conference: Optional[StrictStr] = Field(default=..., alias="opponentConference")
43
+ neutral_site: StrictBool = Field(default=..., alias="neutralSite")
44
+ conference_game: StrictBool = Field(default=..., alias="conferenceGame")
45
+ game_type: Optional[StrictStr] = Field(default=..., alias="gameType")
46
+ notes: Optional[StrictStr] = Field(...)
47
+ game_minutes: Optional[Union[StrictFloat, StrictInt]] = Field(default=..., alias="gameMinutes")
48
+ pace: Optional[Union[StrictFloat, StrictInt]] = Field(...)
49
+ offense: GameBoxScoreTeamStats = Field(...)
50
+ defense: GameBoxScoreTeamStats = Field(...)
51
+ __properties = ["gameId", "season", "seasonLabel", "seasonType", "startDate", "startTimeTbd", "teamId", "team", "conference", "opponentId", "opponent", "opponentConference", "neutralSite", "conferenceGame", "gameType", "notes", "gameMinutes", "pace", "offense", "defense"]
52
+
53
+ class Config:
54
+ """Pydantic configuration"""
55
+ allow_population_by_field_name = True
56
+ validate_assignment = True
57
+
58
+ def to_str(self) -> str:
59
+ """Returns the string representation of the model using alias"""
60
+ return pprint.pformat(self.dict(by_alias=True))
61
+
62
+ def to_json(self) -> str:
63
+ """Returns the JSON representation of the model using alias"""
64
+ return json.dumps(self.to_dict())
65
+
66
+ @classmethod
67
+ def from_json(cls, json_str: str) -> GameBoxScoreTeam:
68
+ """Create an instance of GameBoxScoreTeam from a JSON string"""
69
+ return cls.from_dict(json.loads(json_str))
70
+
71
+ def to_dict(self):
72
+ """Returns the dictionary representation of the model using alias"""
73
+ _dict = self.dict(by_alias=True,
74
+ exclude={
75
+ },
76
+ exclude_none=True)
77
+ # override the default output from pydantic by calling `to_dict()` of offense
78
+ if self.offense:
79
+ _dict['offense'] = self.offense.to_dict()
80
+ # override the default output from pydantic by calling `to_dict()` of defense
81
+ if self.defense:
82
+ _dict['defense'] = self.defense.to_dict()
83
+ # set to None if conference (nullable) is None
84
+ # and __fields_set__ contains the field
85
+ if self.conference is None and "conference" in self.__fields_set__:
86
+ _dict['conference'] = None
87
+
88
+ # set to None if opponent_conference (nullable) is None
89
+ # and __fields_set__ contains the field
90
+ if self.opponent_conference is None and "opponent_conference" in self.__fields_set__:
91
+ _dict['opponentConference'] = None
92
+
93
+ # set to None if game_type (nullable) is None
94
+ # and __fields_set__ contains the field
95
+ if self.game_type is None and "game_type" in self.__fields_set__:
96
+ _dict['gameType'] = None
97
+
98
+ # set to None if notes (nullable) is None
99
+ # and __fields_set__ contains the field
100
+ if self.notes is None and "notes" in self.__fields_set__:
101
+ _dict['notes'] = None
102
+
103
+ # set to None if game_minutes (nullable) is None
104
+ # and __fields_set__ contains the field
105
+ if self.game_minutes is None and "game_minutes" in self.__fields_set__:
106
+ _dict['gameMinutes'] = None
107
+
108
+ # set to None if pace (nullable) is None
109
+ # and __fields_set__ contains the field
110
+ if self.pace is None and "pace" in self.__fields_set__:
111
+ _dict['pace'] = None
112
+
113
+ return _dict
114
+
115
+ @classmethod
116
+ def from_dict(cls, obj: dict) -> GameBoxScoreTeam:
117
+ """Create an instance of GameBoxScoreTeam from a dict"""
118
+ if obj is None:
119
+ return None
120
+
121
+ if not isinstance(obj, dict):
122
+ return GameBoxScoreTeam.parse_obj(obj)
123
+
124
+ _obj = GameBoxScoreTeam.parse_obj({
125
+ "game_id": obj.get("gameId"),
126
+ "season": obj.get("season"),
127
+ "season_label": obj.get("seasonLabel"),
128
+ "season_type": obj.get("seasonType"),
129
+ "start_date": obj.get("startDate"),
130
+ "start_time_tbd": obj.get("startTimeTbd"),
131
+ "team_id": obj.get("teamId"),
132
+ "team": obj.get("team"),
133
+ "conference": obj.get("conference"),
134
+ "opponent_id": obj.get("opponentId"),
135
+ "opponent": obj.get("opponent"),
136
+ "opponent_conference": obj.get("opponentConference"),
137
+ "neutral_site": obj.get("neutralSite"),
138
+ "conference_game": obj.get("conferenceGame"),
139
+ "game_type": obj.get("gameType"),
140
+ "notes": obj.get("notes"),
141
+ "game_minutes": obj.get("gameMinutes"),
142
+ "pace": obj.get("pace"),
143
+ "offense": GameBoxScoreTeamStats.from_dict(obj.get("offense")) if obj.get("offense") is not None else None,
144
+ "defense": GameBoxScoreTeamStats.from_dict(obj.get("defense")) if obj.get("defense") is not None else None
145
+ })
146
+ return _obj
147
+
148
+