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,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