cbbd 1.1.0a1__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
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,84 @@
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, StrictFloat, StrictInt
24
+
25
+ class TeamSeasonUnitStatsTurnovers(BaseModel):
26
+ """
27
+ TeamSeasonUnitStatsTurnovers
28
+ """
29
+ team_total: Optional[Union[StrictFloat, StrictInt]] = Field(default=..., alias="teamTotal")
30
+ total: Optional[Union[StrictFloat, StrictInt]] = Field(...)
31
+ __properties = ["teamTotal", "total"]
32
+
33
+ class Config:
34
+ """Pydantic configuration"""
35
+ allow_population_by_field_name = True
36
+ validate_assignment = True
37
+
38
+ def to_str(self) -> str:
39
+ """Returns the string representation of the model using alias"""
40
+ return pprint.pformat(self.dict(by_alias=True))
41
+
42
+ def to_json(self) -> str:
43
+ """Returns the JSON representation of the model using alias"""
44
+ return json.dumps(self.to_dict())
45
+
46
+ @classmethod
47
+ def from_json(cls, json_str: str) -> TeamSeasonUnitStatsTurnovers:
48
+ """Create an instance of TeamSeasonUnitStatsTurnovers from a JSON string"""
49
+ return cls.from_dict(json.loads(json_str))
50
+
51
+ def to_dict(self):
52
+ """Returns the dictionary representation of the model using alias"""
53
+ _dict = self.dict(by_alias=True,
54
+ exclude={
55
+ },
56
+ exclude_none=True)
57
+ # set to None if team_total (nullable) is None
58
+ # and __fields_set__ contains the field
59
+ if self.team_total is None and "team_total" in self.__fields_set__:
60
+ _dict['teamTotal'] = None
61
+
62
+ # set to None if total (nullable) is None
63
+ # and __fields_set__ contains the field
64
+ if self.total is None and "total" in self.__fields_set__:
65
+ _dict['total'] = None
66
+
67
+ return _dict
68
+
69
+ @classmethod
70
+ def from_dict(cls, obj: dict) -> TeamSeasonUnitStatsTurnovers:
71
+ """Create an instance of TeamSeasonUnitStatsTurnovers from a dict"""
72
+ if obj is None:
73
+ return None
74
+
75
+ if not isinstance(obj, dict):
76
+ return TeamSeasonUnitStatsTurnovers.parse_obj(obj)
77
+
78
+ _obj = TeamSeasonUnitStatsTurnovers.parse_obj({
79
+ "team_total": obj.get("teamTotal"),
80
+ "total": obj.get("total")
81
+ })
82
+ return _obj
83
+
84
+
@@ -0,0 +1,102 @@
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, StrictFloat, StrictInt, StrictStr
24
+
25
+ class VenueInfo(BaseModel):
26
+ """
27
+ VenueInfo
28
+ """
29
+ id: Union[StrictFloat, StrictInt] = Field(...)
30
+ source_id: Optional[StrictStr] = Field(default=..., alias="sourceId")
31
+ name: StrictStr = Field(...)
32
+ city: Optional[StrictStr] = Field(...)
33
+ state: Optional[StrictStr] = Field(...)
34
+ country: Optional[StrictStr] = Field(...)
35
+ __properties = ["id", "sourceId", "name", "city", "state", "country"]
36
+
37
+ class Config:
38
+ """Pydantic configuration"""
39
+ allow_population_by_field_name = True
40
+ validate_assignment = True
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.dict(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> VenueInfo:
52
+ """Create an instance of VenueInfo from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self):
56
+ """Returns the dictionary representation of the model using alias"""
57
+ _dict = self.dict(by_alias=True,
58
+ exclude={
59
+ },
60
+ exclude_none=True)
61
+ # set to None if source_id (nullable) is None
62
+ # and __fields_set__ contains the field
63
+ if self.source_id is None and "source_id" in self.__fields_set__:
64
+ _dict['sourceId'] = None
65
+
66
+ # set to None if city (nullable) is None
67
+ # and __fields_set__ contains the field
68
+ if self.city is None and "city" in self.__fields_set__:
69
+ _dict['city'] = None
70
+
71
+ # set to None if state (nullable) is None
72
+ # and __fields_set__ contains the field
73
+ if self.state is None and "state" in self.__fields_set__:
74
+ _dict['state'] = None
75
+
76
+ # set to None if country (nullable) is None
77
+ # and __fields_set__ contains the field
78
+ if self.country is None and "country" in self.__fields_set__:
79
+ _dict['country'] = None
80
+
81
+ return _dict
82
+
83
+ @classmethod
84
+ def from_dict(cls, obj: dict) -> VenueInfo:
85
+ """Create an instance of VenueInfo from a dict"""
86
+ if obj is None:
87
+ return None
88
+
89
+ if not isinstance(obj, dict):
90
+ return VenueInfo.parse_obj(obj)
91
+
92
+ _obj = VenueInfo.parse_obj({
93
+ "id": obj.get("id"),
94
+ "source_id": obj.get("sourceId"),
95
+ "name": obj.get("name"),
96
+ "city": obj.get("city"),
97
+ "state": obj.get("state"),
98
+ "country": obj.get("country")
99
+ })
100
+ return _obj
101
+
102
+
cbbd/py.typed ADDED
File without changes
cbbd/rest.py ADDED
@@ -0,0 +1,330 @@
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
+ import io
17
+ import json
18
+ import logging
19
+ import re
20
+ import ssl
21
+
22
+ from urllib.parse import urlencode, quote_plus
23
+ import urllib3
24
+
25
+ from cbbd.exceptions import ApiException, UnauthorizedException, ForbiddenException, NotFoundException, ServiceException, ApiValueError, BadRequestException
26
+
27
+
28
+ logger = logging.getLogger(__name__)
29
+
30
+ SUPPORTED_SOCKS_PROXIES = {"socks5", "socks5h", "socks4", "socks4a"}
31
+
32
+
33
+ def is_socks_proxy_url(url):
34
+ if url is None:
35
+ return False
36
+ split_section = url.split("://")
37
+ if len(split_section) < 2:
38
+ return False
39
+ else:
40
+ return split_section[0].lower() in SUPPORTED_SOCKS_PROXIES
41
+
42
+
43
+ class RESTResponse(io.IOBase):
44
+
45
+ def __init__(self, resp) -> None:
46
+ self.urllib3_response = resp
47
+ self.status = resp.status
48
+ self.reason = resp.reason
49
+ self.data = resp.data
50
+
51
+ def getheaders(self):
52
+ """Returns a dictionary of the response headers."""
53
+ return self.urllib3_response.headers
54
+
55
+ def getheader(self, name, default=None):
56
+ """Returns a given response header."""
57
+ return self.urllib3_response.headers.get(name, default)
58
+
59
+
60
+ class RESTClientObject:
61
+
62
+ def __init__(self, configuration, pools_size=4, maxsize=None) -> None:
63
+ # urllib3.PoolManager will pass all kw parameters to connectionpool
64
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501
65
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L680 # noqa: E501
66
+ # maxsize is the number of requests to host that are allowed in parallel # noqa: E501
67
+ # Custom SSL certificates and client certificates: http://urllib3.readthedocs.io/en/latest/advanced-usage.html # noqa: E501
68
+
69
+ # cert_reqs
70
+ if configuration.verify_ssl:
71
+ cert_reqs = ssl.CERT_REQUIRED
72
+ else:
73
+ cert_reqs = ssl.CERT_NONE
74
+
75
+ addition_pool_args = {}
76
+ if configuration.assert_hostname is not None:
77
+ addition_pool_args['assert_hostname'] = configuration.assert_hostname # noqa: E501
78
+
79
+ if configuration.retries is not None:
80
+ addition_pool_args['retries'] = configuration.retries
81
+
82
+ if configuration.tls_server_name:
83
+ addition_pool_args['server_hostname'] = configuration.tls_server_name
84
+
85
+
86
+ if configuration.socket_options is not None:
87
+ addition_pool_args['socket_options'] = configuration.socket_options
88
+
89
+ if maxsize is None:
90
+ if configuration.connection_pool_maxsize is not None:
91
+ maxsize = configuration.connection_pool_maxsize
92
+ else:
93
+ maxsize = 4
94
+
95
+ # https pool manager
96
+ if configuration.proxy:
97
+ if is_socks_proxy_url(configuration.proxy):
98
+ from urllib3.contrib.socks import SOCKSProxyManager
99
+ self.pool_manager = SOCKSProxyManager(
100
+ cert_reqs=cert_reqs,
101
+ ca_certs=configuration.ssl_ca_cert,
102
+ cert_file=configuration.cert_file,
103
+ key_file=configuration.key_file,
104
+ proxy_url=configuration.proxy,
105
+ headers=configuration.proxy_headers,
106
+ **addition_pool_args
107
+ )
108
+ else:
109
+ self.pool_manager = urllib3.ProxyManager(
110
+ num_pools=pools_size,
111
+ maxsize=maxsize,
112
+ cert_reqs=cert_reqs,
113
+ ca_certs=configuration.ssl_ca_cert,
114
+ cert_file=configuration.cert_file,
115
+ key_file=configuration.key_file,
116
+ proxy_url=configuration.proxy,
117
+ proxy_headers=configuration.proxy_headers,
118
+ **addition_pool_args
119
+ )
120
+ else:
121
+ self.pool_manager = urllib3.PoolManager(
122
+ num_pools=pools_size,
123
+ maxsize=maxsize,
124
+ cert_reqs=cert_reqs,
125
+ ca_certs=configuration.ssl_ca_cert,
126
+ cert_file=configuration.cert_file,
127
+ key_file=configuration.key_file,
128
+ **addition_pool_args
129
+ )
130
+
131
+ def request(self, method, url, query_params=None, headers=None,
132
+ body=None, post_params=None, _preload_content=True,
133
+ _request_timeout=None):
134
+ """Perform requests.
135
+
136
+ :param method: http request method
137
+ :param url: http request url
138
+ :param query_params: query parameters in the url
139
+ :param headers: http request headers
140
+ :param body: request json body, for `application/json`
141
+ :param post_params: request post parameters,
142
+ `application/x-www-form-urlencoded`
143
+ and `multipart/form-data`
144
+ :param _preload_content: if False, the urllib3.HTTPResponse object will
145
+ be returned without reading/decoding response
146
+ data. Default is True.
147
+ :param _request_timeout: timeout setting for this request. If one
148
+ number provided, it will be total request
149
+ timeout. It can also be a pair (tuple) of
150
+ (connection, read) timeouts.
151
+ """
152
+ method = method.upper()
153
+ assert method in ['GET', 'HEAD', 'DELETE', 'POST', 'PUT',
154
+ 'PATCH', 'OPTIONS']
155
+
156
+ if post_params and body:
157
+ raise ApiValueError(
158
+ "body parameter cannot be used with post_params parameter."
159
+ )
160
+
161
+ post_params = post_params or {}
162
+ headers = headers or {}
163
+ # url already contains the URL query string
164
+ # so reset query_params to empty dict
165
+ query_params = {}
166
+
167
+ timeout = None
168
+ if _request_timeout:
169
+ if isinstance(_request_timeout, (int,float)): # noqa: E501,F821
170
+ timeout = urllib3.Timeout(total=_request_timeout)
171
+ elif (isinstance(_request_timeout, tuple) and
172
+ len(_request_timeout) == 2):
173
+ timeout = urllib3.Timeout(
174
+ connect=_request_timeout[0], read=_request_timeout[1])
175
+
176
+ try:
177
+ # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
178
+ if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
179
+
180
+ # no content type provided or payload is json
181
+ if not headers.get('Content-Type') or re.search('json', headers['Content-Type'], re.IGNORECASE):
182
+ request_body = None
183
+ if body is not None:
184
+ request_body = json.dumps(body)
185
+ r = self.pool_manager.request(
186
+ method, url,
187
+ body=request_body,
188
+ preload_content=_preload_content,
189
+ timeout=timeout,
190
+ headers=headers)
191
+ elif headers['Content-Type'] == 'application/x-www-form-urlencoded': # noqa: E501
192
+ r = self.pool_manager.request(
193
+ method, url,
194
+ fields=post_params,
195
+ encode_multipart=False,
196
+ preload_content=_preload_content,
197
+ timeout=timeout,
198
+ headers=headers)
199
+ elif headers['Content-Type'] == 'multipart/form-data':
200
+ # must del headers['Content-Type'], or the correct
201
+ # Content-Type which generated by urllib3 will be
202
+ # overwritten.
203
+ del headers['Content-Type']
204
+ # Ensures that dict objects are serialized
205
+ post_params = [(a, json.dumps(b)) if isinstance(b, dict) else (a,b) for a, b in post_params]
206
+ r = self.pool_manager.request(
207
+ method, url,
208
+ fields=post_params,
209
+ encode_multipart=True,
210
+ preload_content=_preload_content,
211
+ timeout=timeout,
212
+ headers=headers)
213
+ # Pass a `string` parameter directly in the body to support
214
+ # other content types than Json when `body` argument is
215
+ # provided in serialized form
216
+ elif isinstance(body, str) or isinstance(body, bytes):
217
+ request_body = body
218
+ r = self.pool_manager.request(
219
+ method, url,
220
+ body=request_body,
221
+ preload_content=_preload_content,
222
+ timeout=timeout,
223
+ headers=headers)
224
+ else:
225
+ # Cannot generate the request from given parameters
226
+ msg = """Cannot prepare a request message for provided
227
+ arguments. Please check that your arguments match
228
+ declared content type."""
229
+ raise ApiException(status=0, reason=msg)
230
+ # For `GET`, `HEAD`
231
+ else:
232
+ r = self.pool_manager.request(method, url,
233
+ fields={},
234
+ preload_content=_preload_content,
235
+ timeout=timeout,
236
+ headers=headers)
237
+ except urllib3.exceptions.SSLError as e:
238
+ msg = "{0}\n{1}".format(type(e).__name__, str(e))
239
+ raise ApiException(status=0, reason=msg)
240
+
241
+ if _preload_content:
242
+ r = RESTResponse(r)
243
+
244
+ # log response body
245
+ logger.debug("response body: %s", r.data)
246
+
247
+ if not 200 <= r.status <= 299:
248
+ if r.status == 400:
249
+ raise BadRequestException(http_resp=r)
250
+
251
+ if r.status == 401:
252
+ raise UnauthorizedException(http_resp=r)
253
+
254
+ if r.status == 403:
255
+ raise ForbiddenException(http_resp=r)
256
+
257
+ if r.status == 404:
258
+ raise NotFoundException(http_resp=r)
259
+
260
+ if 500 <= r.status <= 599:
261
+ raise ServiceException(http_resp=r)
262
+
263
+ raise ApiException(http_resp=r)
264
+
265
+ return r
266
+
267
+ def get_request(self, url, headers=None, query_params=None, _preload_content=True,
268
+ _request_timeout=None):
269
+ return self.request("GET", url,
270
+ headers=headers,
271
+ _preload_content=_preload_content,
272
+ _request_timeout=_request_timeout,
273
+ query_params=query_params)
274
+
275
+ def head_request(self, url, headers=None, query_params=None, _preload_content=True,
276
+ _request_timeout=None):
277
+ return self.request("HEAD", url,
278
+ headers=headers,
279
+ _preload_content=_preload_content,
280
+ _request_timeout=_request_timeout,
281
+ query_params=query_params)
282
+
283
+ def options_request(self, url, headers=None, query_params=None, post_params=None,
284
+ body=None, _preload_content=True, _request_timeout=None):
285
+ return self.request("OPTIONS", url,
286
+ headers=headers,
287
+ query_params=query_params,
288
+ post_params=post_params,
289
+ _preload_content=_preload_content,
290
+ _request_timeout=_request_timeout,
291
+ body=body)
292
+
293
+ def delete_request(self, url, headers=None, query_params=None, body=None,
294
+ _preload_content=True, _request_timeout=None):
295
+ return self.request("DELETE", url,
296
+ headers=headers,
297
+ query_params=query_params,
298
+ _preload_content=_preload_content,
299
+ _request_timeout=_request_timeout,
300
+ body=body)
301
+
302
+ def post_request(self, url, headers=None, query_params=None, post_params=None,
303
+ body=None, _preload_content=True, _request_timeout=None):
304
+ return self.request("POST", url,
305
+ headers=headers,
306
+ query_params=query_params,
307
+ post_params=post_params,
308
+ _preload_content=_preload_content,
309
+ _request_timeout=_request_timeout,
310
+ body=body)
311
+
312
+ def put_request(self, url, headers=None, query_params=None, post_params=None,
313
+ body=None, _preload_content=True, _request_timeout=None):
314
+ return self.request("PUT", url,
315
+ headers=headers,
316
+ query_params=query_params,
317
+ post_params=post_params,
318
+ _preload_content=_preload_content,
319
+ _request_timeout=_request_timeout,
320
+ body=body)
321
+
322
+ def patch_request(self, url, headers=None, query_params=None, post_params=None,
323
+ body=None, _preload_content=True, _request_timeout=None):
324
+ return self.request("PATCH", url,
325
+ headers=headers,
326
+ query_params=query_params,
327
+ post_params=post_params,
328
+ _preload_content=_preload_content,
329
+ _request_timeout=_request_timeout,
330
+ body=body)
@@ -0,0 +1,24 @@
1
+ Metadata-Version: 2.2
2
+ Name: cbbd
3
+ Version: 1.1.0a1
4
+ Summary: College Basketball Data API
5
+ Home-page: https://github.com/CFBD/cbbd-python
6
+ Author-email: admin@collegefootballdata.com
7
+ License: MIT
8
+ Keywords: OpenAPI,OpenAPI-Generator,College Basketball Data API
9
+ Description-Content-Type: text/markdown
10
+ Requires-Dist: urllib3<3.0.0,>=1.25.3
11
+ Requires-Dist: python-dateutil
12
+ Requires-Dist: pydantic<2,>=1.10.5
13
+ Requires-Dist: aenum
14
+ Dynamic: author-email
15
+ Dynamic: description
16
+ Dynamic: description-content-type
17
+ Dynamic: home-page
18
+ Dynamic: keywords
19
+ Dynamic: license
20
+ Dynamic: requires-dist
21
+ Dynamic: summary
22
+
23
+ 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.
24
+
@@ -0,0 +1,44 @@
1
+ cbbd/__init__.py,sha256=Nf5-SYC6uwPpnCIZU6f69z-ivM6HWne7Xty-BeoIiz0,2865
2
+ cbbd/api_client.py,sha256=rkapLkCWKIOeBYDUanLK5NaFxI7QFLTF8lW_nDgr_zs,29896
3
+ cbbd/api_response.py,sha256=uCehWdXXDnAO2HAHGKe0SgpQ_mJiGDbcu-BHDF3n_IM,852
4
+ cbbd/configuration.py,sha256=l1infDHB6da6LcE-yt_KI_betSMhvx6H8yVe1S6wjB8,14798
5
+ cbbd/exceptions.py,sha256=3IqXcD6umesGzQ5FUu_LM7UW8CMR2Ol7go7V1F58va4,5545
6
+ cbbd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ cbbd/rest.py,sha256=qrPhZbQ59TN9XijF0HCTblrj4jtjEKP3mPPtSuHmIgo,14162
8
+ cbbd/api/__init__.py,sha256=nv4S_F40ZH9NiWNrm5nu1G3DU1JD9dVdF6aOwzonSO4,302
9
+ cbbd/api/conferences_api.py,sha256=QNIti6ifSgQgqfWHPaNqUgeM5zW1BdDnsh80tHNZNX0,6662
10
+ cbbd/api/games_api.py,sha256=VVLbnJ5F326BMlARcWYW_wylNtP9ega5ACGEV805jp0,41194
11
+ cbbd/api/plays_api.py,sha256=z665OJ7dfmkXtukX9xs2GMwHf4ENMI2P9ww9_2QHhj8,32183
12
+ cbbd/api/stats_api.py,sha256=jvPvZR2yL-M2dR_Dm8q6xZJdtUfokvR9ieqFLJ7-XFk,20182
13
+ cbbd/api/teams_api.py,sha256=nJinfKbZeYDsmtHyOpYP5jxXp-O2oKXfaTpYQRYqeVw,7725
14
+ cbbd/api/venues_api.py,sha256=UB_LDzxBm5OqJzdj_bue1sI899TtFbwVXS-uGaczDts,6567
15
+ cbbd/models/__init__.py,sha256=DZGdFdxId9MML_xxSaBe75XV13pq9Gbal-2u6uEh0ic,2155
16
+ cbbd/models/conference_info.py,sha256=DT1c3FFdaDiqCeKC0Zxmfan9n_nR7rqQQsEfIxKTwFI,2436
17
+ cbbd/models/game_box_score_players.py,sha256=OCYwpLe84A2s6HxzJFPU4_RQXyV9jzjvL4O5QbiIkJM,6355
18
+ cbbd/models/game_box_score_players_players_inner.py,sha256=YsUk7_Pp5cOXIjjxcAN_9r8nXFC5vTflIwZjx2tHQx0,12092
19
+ cbbd/models/game_box_score_team.py,sha256=gLPWjFIY6G13RdxsWrT2z1bOzpDsRp199DWiKeJQWdk,6386
20
+ cbbd/models/game_box_score_team_stats.py,sha256=kOnp_arqLC1ISIucoWrEvB_UWyoybIZTnEsVyX_HUss,8686
21
+ cbbd/models/game_box_score_team_stats_points.py,sha256=09Llaf2df0alJ6gGQBYF7FvX4do8u-VvEmHkBKS2gsM,4297
22
+ cbbd/models/game_info.py,sha256=MTZ3T3Js9Gm3Y7_cuacmPsALX_RNFYHA_hW2ApwvLOw,9614
23
+ cbbd/models/game_media_info.py,sha256=CjFhU4X8k41l1P0OMtXNFge-v_N6_C-Oi1PX8_f08mw,5671
24
+ cbbd/models/game_media_info_broadcasts_inner.py,sha256=THZ2eRalvBhAApQ2QNIZbCnGRkIhZUguTZQ5iJaDfSM,2324
25
+ cbbd/models/game_status.py,sha256=GdEcqbM10ZzM7l8NE1xNwq2W-FBZ1rvy1paXtkQTjJ0,948
26
+ cbbd/models/play_info.py,sha256=Z-UVIOawVRY4bGNDClUmb15nZ1iLMVOxcmrRqu7v9ME,8576
27
+ cbbd/models/play_info_participants_inner.py,sha256=twauas14uc-qFfKqqMSOaoWTyuh8GoODjHUW59KCQsg,2165
28
+ cbbd/models/play_type_info.py,sha256=Ljv2yu7QKabZ2rGwwOlGuBaK-d2qPhm1cp_VL80MHGc,2061
29
+ cbbd/models/player_season_stats.py,sha256=GbXv5PPHBwTakNnMtvgoDppPX-8Qj7R7Xq7_cgzncA0,11712
30
+ cbbd/models/season_type.py,sha256=HAa3ujmYWb5dhYz5CyX-7lXDrqg-8j4143dtuOvbDQo,894
31
+ cbbd/models/team_info.py,sha256=pOrxUR6M6IphY96JV3n29RqfpwU8htm3jS5Fw9D3CgM,6665
32
+ cbbd/models/team_season_stats.py,sha256=hL-2Odl-vFH87s0gFpyTg6SZdEyMXEdaAzcCdGpAavE,4262
33
+ cbbd/models/team_season_unit_stats.py,sha256=PR4zlSNbjuOBksiiuEAu6qIjvV2WEQh8MphcAfElQzE,8286
34
+ cbbd/models/team_season_unit_stats_field_goals.py,sha256=MkjsJ0sjl2RBDmd9gDUoNEXfZeVRAcWN1i_wbLvWdeI,3026
35
+ cbbd/models/team_season_unit_stats_fouls.py,sha256=t7mrq5GripdRqyAKFCEINm3Cb1TEJsQIaXqy_eNWBqw,3034
36
+ cbbd/models/team_season_unit_stats_four_factors.py,sha256=XZkK8O2Zb-_BHqoArpDK3jrK5Wh9Ho6ts7HlJLTglV0,3883
37
+ cbbd/models/team_season_unit_stats_points.py,sha256=SZnITC9BdICkmLEjzBjQ4Xi0-Iu_lrK3wJLzStUvXxY,3498
38
+ cbbd/models/team_season_unit_stats_rebounds.py,sha256=AqYPA9gWQOcrUddTcpHD4f93Qb-g4oBdmD3QxKDOcDw,3066
39
+ cbbd/models/team_season_unit_stats_turnovers.py,sha256=jHJOEutimcmBZHh-FE1PjpOp1Bv2eMcpXuC4fLxVx1o,2763
40
+ cbbd/models/venue_info.py,sha256=0j9Q4QQ1BBLlECkqAhxxzVZ__Wmw6paHNRumbMyP4Eg,3331
41
+ cbbd-1.1.0a1.dist-info/METADATA,sha256=L7zZFVwVPOFeseytE2s39TkW9w7dKUtx73CX0Z1ooIU,765
42
+ cbbd-1.1.0a1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
43
+ cbbd-1.1.0a1.dist-info/top_level.txt,sha256=d8efSEMxRPpV_X-2jtQvf9S-EI4HoFQpCEOZCjDxT24,5
44
+ cbbd-1.1.0a1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (75.8.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1 @@
1
+ cbbd