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
38 changes: 37 additions & 1 deletion kagglesdk/competitions/services/competition_api_service.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from kagglesdk.common.types.file_download import FileDownload
from kagglesdk.common.types.http_redirect import HttpRedirect
from kagglesdk.competitions.types.competition_api_service import ApiCompetition, ApiCreateCodeSubmissionRequest, ApiCreateCodeSubmissionResponse, ApiCreateSubmissionRequest, ApiCreateSubmissionResponse, ApiDownloadDataFileRequest, ApiDownloadDataFilesRequest, ApiDownloadLeaderboardRequest, ApiGetCompetitionDataFilesSummaryRequest, ApiGetCompetitionRequest, ApiGetEpisodeAgentLogsRequest, ApiGetEpisodeReplayRequest, ApiGetLeaderboardRequest, ApiGetLeaderboardResponse, ApiGetSubmissionRequest, ApiListCompetitionPagesRequest, ApiListCompetitionPagesResponse, ApiListCompetitionsRequest, ApiListCompetitionsResponse, ApiListCompetitionTopicsRequest, ApiListCompetitionTopicsResponse, ApiListDataFilesRequest, ApiListDataFilesResponse, ApiListDataTreeFilesRequest, ApiListSubmissionEpisodesRequest, ApiListSubmissionEpisodesResponse, ApiListSubmissionsRequest, ApiListSubmissionsResponse, ApiListTeamPublicSubmissionsRequest, ApiListTeamPublicSubmissionsResponse, ApiListTopicMessagesRequest, ApiListTopicMessagesResponse, ApiStartSubmissionUploadRequest, ApiStartSubmissionUploadResponse, ApiSubmission
from kagglesdk.competitions.types.competition_api_service import ApiCompetition, ApiCompetitionPage, ApiCreateCodeSubmissionRequest, ApiCreateCodeSubmissionResponse, ApiCreateCompetitionPageRequest, ApiCreateCompetitionRequest, ApiCreateCompetitionResponse, ApiCreateSubmissionRequest, ApiCreateSubmissionResponse, ApiDownloadDataFileRequest, ApiDownloadDataFilesRequest, ApiDownloadLeaderboardRequest, ApiGetCompetitionDataFilesSummaryRequest, ApiGetCompetitionRequest, ApiGetEpisodeAgentLogsRequest, ApiGetEpisodeReplayRequest, ApiGetLeaderboardRequest, ApiGetLeaderboardResponse, ApiGetSubmissionRequest, ApiLaunchCompetitionRequest, ApiListCompetitionPagesRequest, ApiListCompetitionPagesResponse, ApiListCompetitionsRequest, ApiListCompetitionsResponse, ApiListCompetitionTopicsRequest, ApiListCompetitionTopicsResponse, ApiListDataFilesRequest, ApiListDataFilesResponse, ApiListDataTreeFilesRequest, ApiListSubmissionEpisodesRequest, ApiListSubmissionEpisodesResponse, ApiListSubmissionsRequest, ApiListSubmissionsResponse, ApiListTeamPublicSubmissionsRequest, ApiListTeamPublicSubmissionsResponse, ApiListTopicMessagesRequest, ApiListTopicMessagesResponse, ApiStartSubmissionUploadRequest, ApiStartSubmissionUploadResponse, ApiSubmission
from kagglesdk.datasets.databundles.types.databundle_api_types import ApiDirectoryContent, ApiFilesSummary
from kagglesdk.kaggle_http_client import KaggleHttpClient

Expand All @@ -21,6 +21,18 @@ def list_competitions(self, request: ApiListCompetitionsRequest = None) -> ApiLi

return self._client.call("competitions.CompetitionApiService", "ListCompetitions", request, ApiListCompetitionsResponse)

def create_competition(self, request: ApiCreateCompetitionRequest = None) -> ApiCreateCompetitionResponse:
r"""
Args:
request (ApiCreateCompetitionRequest):
The request object; initialized to empty instance if not specified.
"""

if request is None:
request = ApiCreateCompetitionRequest()

return self._client.call("competitions.CompetitionApiService", "CreateCompetition", request, ApiCreateCompetitionResponse)

def list_submissions(self, request: ApiListSubmissionsRequest = None) -> ApiListSubmissionsResponse:
r"""
Args:
Expand Down Expand Up @@ -237,6 +249,30 @@ def list_competition_pages(self, request: ApiListCompetitionPagesRequest = None)

return self._client.call("competitions.CompetitionApiService", "ListCompetitionPages", request, ApiListCompetitionPagesResponse)

def create_competition_page(self, request: ApiCreateCompetitionPageRequest = None) -> ApiCompetitionPage:
r"""
Args:
request (ApiCreateCompetitionPageRequest):
The request object; initialized to empty instance if not specified.
"""

if request is None:
request = ApiCreateCompetitionPageRequest()

return self._client.call("competitions.CompetitionApiService", "CreateCompetitionPage", request, ApiCompetitionPage)

def launch_competition(self, request: ApiLaunchCompetitionRequest = None):
r"""
Args:
request (ApiLaunchCompetitionRequest):
The request object; initialized to empty instance if not specified.
"""

if request is None:
request = ApiLaunchCompetitionRequest()

self._client.call("competitions.CompetitionApiService", "LaunchCompetition", request, None)

def list_competition_topics(self, request: ApiListCompetitionTopicsRequest = None) -> ApiListCompetitionTopicsResponse:
r"""
Args:
Expand Down
169 changes: 169 additions & 0 deletions kagglesdk/competitions/services/episode_service.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
from kagglesdk.competitions.types.episode import Episode
from kagglesdk.competitions.types.episode_service import BulkCancelEpisodesRequest, BulkSetEpisodeRewardsRequest, BulkSetEpisodeRewardsResponse, CancelEpisodeRequest, CreateEpisodeRequest, GenerateEpisodesForCompetitionRequest, GenerateEpisodesForCompetitionResponse, GetEpisodeRequest, GetEpisodeResponse, GetEpisodeSummaryRequest, GetEpisodeSummaryResponse, ListEpisodesFromCompetitionRequest, ListEpisodesFromCompetitionResponse, ListEpisodesRequest, ListEpisodesResponse, ListValidationEpisodesRequest, ListValidationEpisodesResponse, MarkEnvironmentSubmissionValidatedRequest, SetEpisodeErroredRequest
from kagglesdk.kaggle_http_client import KaggleHttpClient

class EpisodeClient(object):

def __init__(self, client: KaggleHttpClient):
self._client = client

def create_episode(self, request: CreateEpisodeRequest = None) -> Episode:
r"""
Args:
request (CreateEpisodeRequest):
The request object; initialized to empty instance if not specified.
"""

if request is None:
request = CreateEpisodeRequest()

return self._client.call("competitions.EpisodeService", "CreateEpisode", request, Episode)

def generate_episodes_for_competition(self, request: GenerateEpisodesForCompetitionRequest = None) -> GenerateEpisodesForCompetitionResponse:
r"""
For a given Sims Comp, kick off some new Episodes. Intended for use
by the GenerateEpisodes scheduled handler (see below).

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

if request is None:
request = GenerateEpisodesForCompetitionRequest()

return self._client.call("competitions.EpisodeService", "GenerateEpisodesForCompetition", request, GenerateEpisodesForCompetitionResponse)

def get_episode(self, request: GetEpisodeRequest = None) -> GetEpisodeResponse:
r"""
Args:
request (GetEpisodeRequest):
The request object; initialized to empty instance if not specified.
"""

if request is None:
request = GetEpisodeRequest()

return self._client.call("competitions.EpisodeService", "GetEpisode", request, GetEpisodeResponse)

def list_episodes(self, request: ListEpisodesRequest = None) -> ListEpisodesResponse:
r"""
Lists Episodes of type Completed for a given filter. Currently top 1000
only, by most recent EndTime.

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

if request is None:
request = ListEpisodesRequest()

return self._client.call("competitions.EpisodeService", "ListEpisodes", request, ListEpisodesResponse)

def set_episode_errored(self, request: SetEpisodeErroredRequest = None):
r"""
Args:
request (SetEpisodeErroredRequest):
The request object; initialized to empty instance if not specified.
"""

if request is None:
request = SetEpisodeErroredRequest()

self._client.call("competitions.EpisodeService", "SetEpisodeErrored", request, None)

def bulk_set_episode_rewards(self, request: BulkSetEpisodeRewardsRequest = None) -> BulkSetEpisodeRewardsResponse:
r"""
Admin-only bulk action: invokes SetEpisodeRewards for every episode that
matches the provided filter. Defaults to dry_run = true, in which case the
matching episodes are counted but not processed.

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

if request is None:
request = BulkSetEpisodeRewardsRequest()

return self._client.call("competitions.EpisodeService", "BulkSetEpisodeRewards", request, BulkSetEpisodeRewardsResponse)

def cancel_episode(self, request: CancelEpisodeRequest = None):
r"""
Args:
request (CancelEpisodeRequest):
The request object; initialized to empty instance if not specified.
"""

if request is None:
request = CancelEpisodeRequest()

self._client.call("competitions.EpisodeService", "CancelEpisode", request, None)

def bulk_cancel_episodes(self, request: BulkCancelEpisodesRequest = None):
r"""
Args:
request (BulkCancelEpisodesRequest):
The request object; initialized to empty instance if not specified.
"""

if request is None:
request = BulkCancelEpisodesRequest()

self._client.call("competitions.EpisodeService", "BulkCancelEpisodes", request, None)

def list_episodes_from_competition(self, request: ListEpisodesFromCompetitionRequest = None) -> ListEpisodesFromCompetitionResponse:
r"""
List all episodes from a provided competition

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

if request is None:
request = ListEpisodesFromCompetitionRequest()

return self._client.call("competitions.EpisodeService", "ListEpisodesFromCompetition", request, ListEpisodesFromCompetitionResponse)

def get_episode_summary(self, request: GetEpisodeSummaryRequest = None) -> GetEpisodeSummaryResponse:
r"""
Returns per-EpisodeType counts of recent episode activity for a single
competition: started in the last 24h, currently in-flight, completed in
the last 24h, and errored in the last 24h. Backs the admin 'Episode
Summary' tab.

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

if request is None:
request = GetEpisodeSummaryRequest()

return self._client.call("competitions.EpisodeService", "GetEpisodeSummary", request, GetEpisodeSummaryResponse)

def list_validation_episodes(self, request: ListValidationEpisodesRequest = None) -> ListValidationEpisodesResponse:
r"""
Args:
request (ListValidationEpisodesRequest):
The request object; initialized to empty instance if not specified.
"""

if request is None:
request = ListValidationEpisodesRequest()

return self._client.call("competitions.EpisodeService", "ListValidationEpisodes", request, ListValidationEpisodesResponse)

def mark_environment_submission_validated(self, request: MarkEnvironmentSubmissionValidatedRequest = None):
r"""
Args:
request (MarkEnvironmentSubmissionValidatedRequest):
The request object; initialized to empty instance if not specified.
"""

if request is None:
request = MarkEnvironmentSubmissionValidatedRequest()

self._client.call("competitions.EpisodeService", "MarkEnvironmentSubmissionValidated", request, None)
Loading