Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/kagglesdk/competitions/types/search_competitions.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ class SearchCompetitionsRole(enum.Enum):
SEARCH_COMPETITIONS_ROLE_PARTICIPANT = 2
SEARCH_COMPETITIONS_ROLE_PARTICIPANT_ONLY = 3
"""Excludes competitions user hosted, even if they are also a participant"""
SEARCH_COMPETITIONS_ROLE_JUDGE = 4

class SearchCompetitionsStatus(enum.Enum):
SEARCH_COMPETITIONS_STATUS_ANY = 0
Expand Down
1 change: 1 addition & 0 deletions src/kagglesdk/discussions/types/search_discussions.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class SearchDiscussionsSourceType(enum.Enum):
SEARCH_DISCUSSIONS_SOURCE_TYPE_COMPETITION_SOLUTION = 6
SEARCH_DISCUSSIONS_SOURCE_TYPE_MODEL = 7
SEARCH_DISCUSSIONS_SOURCE_TYPE_WRITE_UP = 8
SEARCH_DISCUSSIONS_SOURCE_TYPE_LEARN_TRACK = 9

class SearchDiscussionsTopicType(enum.Enum):
SEARCH_DISCUSSIONS_TOPIC_TYPE_UNSPECIFIED = 0
Expand Down
5 changes: 4 additions & 1 deletion src/kagglesdk/kaggle_http_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -255,4 +255,7 @@ def _try_fill_auth(self):
self._signed_in = False

def _get_request_url(self, service_name: str, request_name: str):
return f"{self._endpoint}/v1/{service_name}/{request_name}"
# On prod, API endpoints are served under https://api.kaggle.com/v1,
# but on staging/admin/local, they are served under http://localhost/api/v1.
base_url = self._endpoint if self._env == KaggleEnv.PROD else f"{self._endpoint}/api"
return f"{base_url}/v1/{service_name}/{request_name}"
16 changes: 15 additions & 1 deletion src/kagglesdk/security/services/oauth_service.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from kagglesdk.common.types.http_redirect import HttpRedirect
from kagglesdk.kaggle_http_client import KaggleHttpClient
from kagglesdk.security.types.oauth_service import ExchangeOAuthTokenRequest, ExchangeOAuthTokenResponse, IntrospectTokenRequest, IntrospectTokenResponse, StartOAuthFlowRequest
from kagglesdk.security.types.oauth_service import ExchangeOAuthTokenRequest, ExchangeOAuthTokenResponse, IntrospectTokenRequest, IntrospectTokenResponse, RegisterOAuthClientRequest, RegisterOAuthClientResponse, StartOAuthFlowRequest

class OAuthClient(object):

Expand Down Expand Up @@ -42,3 +42,17 @@ def introspect_token(self, request: IntrospectTokenRequest = None) -> Introspect
request = IntrospectTokenRequest()

return self._client.call("security.OAuthService", "IntrospectToken", request, IntrospectTokenResponse)

def register_oauth_client(self, request: RegisterOAuthClientRequest = None) -> RegisterOAuthClientResponse:
r"""
Dynamic Client Registration Endpoint (RFC 7591)

Args:
request (RegisterOAuthClientRequest):
The request object; initialized to empty instance if not specified.
"""

if request is None:
request = RegisterOAuthClientRequest()

return self._client.call("security.OAuthService", "RegisterOAuthClient", request, RegisterOAuthClientResponse)
Loading