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.
- cbbd/__init__.py +64 -0
- cbbd/api/__init__.py +10 -0
- cbbd/api/conferences_api.py +176 -0
- cbbd/api/games_api.py +806 -0
- cbbd/api/plays_api.py +761 -0
- cbbd/api/stats_api.py +423 -0
- cbbd/api/teams_api.py +195 -0
- cbbd/api/venues_api.py +176 -0
- cbbd/api_client.py +767 -0
- cbbd/api_response.py +25 -0
- cbbd/configuration.py +443 -0
- cbbd/exceptions.py +167 -0
- cbbd/models/__init__.py +42 -0
- cbbd/models/conference_info.py +80 -0
- cbbd/models/game_box_score_players.py +147 -0
- cbbd/models/game_box_score_players_players_inner.py +238 -0
- cbbd/models/game_box_score_team.py +148 -0
- cbbd/models/game_box_score_team_stats.py +170 -0
- cbbd/models/game_box_score_team_stats_points.py +112 -0
- cbbd/models/game_info.py +212 -0
- cbbd/models/game_media_info.py +133 -0
- cbbd/models/game_media_info_broadcasts_inner.py +74 -0
- cbbd/models/game_status.py +44 -0
- cbbd/models/play_info.py +193 -0
- cbbd/models/play_info_participants_inner.py +74 -0
- cbbd/models/play_type_info.py +74 -0
- cbbd/models/player_season_stats.py +231 -0
- cbbd/models/season_type.py +42 -0
- cbbd/models/team_info.py +160 -0
- cbbd/models/team_season_stats.py +112 -0
- cbbd/models/team_season_unit_stats.py +163 -0
- cbbd/models/team_season_unit_stats_field_goals.py +91 -0
- cbbd/models/team_season_unit_stats_fouls.py +91 -0
- cbbd/models/team_season_unit_stats_four_factors.py +98 -0
- cbbd/models/team_season_unit_stats_points.py +98 -0
- cbbd/models/team_season_unit_stats_rebounds.py +91 -0
- cbbd/models/team_season_unit_stats_turnovers.py +84 -0
- cbbd/models/venue_info.py +102 -0
- cbbd/py.typed +0 -0
- cbbd/rest.py +330 -0
- cbbd-1.1.0a1.dist-info/METADATA +24 -0
- cbbd-1.1.0a1.dist-info/RECORD +44 -0
- cbbd-1.1.0a1.dist-info/WHEEL +5 -0
- 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 @@
|
|
1
|
+
cbbd
|