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
2 changes: 1 addition & 1 deletion kagglesdk/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "0.1.29"
__version__ = "0.1.30"

from kagglesdk.kaggle_client import KaggleClient
from kagglesdk.kaggle_creds import KaggleCredentials
Expand Down
16 changes: 15 additions & 1 deletion kagglesdk/discussions/services/discussions_api_service.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from kagglesdk.discussions.types.discussions_api_service import ApiGetTopicRequest, ApiGetTopicResponse, ApiListBenchmarkTopicsRequest, ApiListCommentsRequest, ApiListCommentsResponse, ApiListDatasetTopicsRequest, ApiListForumsRequest, ApiListForumsResponse, ApiListModelTopicsRequest, ApiListTopicsRequest, ApiListTopicsResponse
from kagglesdk.discussions.types.discussions_api_service import ApiGetTopicRequest, ApiGetTopicResponse, ApiListBenchmarkTopicsRequest, ApiListCommentsRequest, ApiListCommentsResponse, ApiListDatasetTopicsRequest, ApiListForumsRequest, ApiListForumsResponse, ApiListKernelTopicsRequest, ApiListModelTopicsRequest, ApiListTopicsRequest, ApiListTopicsResponse
from kagglesdk.kaggle_http_client import KaggleHttpClient

class DiscussionApiClient(object):
Expand Down Expand Up @@ -103,3 +103,17 @@ def list_benchmark_topics(self, request: ApiListBenchmarkTopicsRequest = None) -
request = ApiListBenchmarkTopicsRequest()

return self._client.call("discussions.DiscussionApiService", "ListBenchmarkTopics", request, ApiListTopicsResponse)

def list_kernel_topics(self, request: ApiListKernelTopicsRequest = None) -> ApiListTopicsResponse:
r"""
List discussion topics for a kernel.

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

if request is None:
request = ApiListKernelTopicsRequest()

return self._client.call("discussions.DiscussionApiService", "ListKernelTopics", request, ApiListTopicsResponse)
128 changes: 128 additions & 0 deletions kagglesdk/discussions/types/discussions_api_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -830,6 +830,125 @@ def forums(self, forums: Optional[List[Optional['ApiDiscussionForum']]]):
self._forums = forums


class ApiListKernelTopicsRequest(KaggleObject):
r"""
Attributes:
owner_slug (str)
The owner (user or organization) slug for the kernel.
kernel_slug (str)
The kernel slug.
sort_by (TopicListSortBy)
Sort order for the results.
page_size (int)
Page size for results.
page_token (str)
Page token used for pagination.
search_query (str)
Optional search query to filter topics by.
"""

def __init__(self):
self._owner_slug = ""
self._kernel_slug = ""
self._sort_by = None
self._page_size = None
self._page_token = None
self._search_query = None
self._freeze()

@property
def owner_slug(self) -> str:
"""The owner (user or organization) slug for the kernel."""
return self._owner_slug

@owner_slug.setter
def owner_slug(self, owner_slug: str):
if owner_slug is None:
del self.owner_slug
return
if not isinstance(owner_slug, str):
raise TypeError('owner_slug must be of type str')
self._owner_slug = owner_slug

@property
def kernel_slug(self) -> str:
"""The kernel slug."""
return self._kernel_slug

@kernel_slug.setter
def kernel_slug(self, kernel_slug: str):
if kernel_slug is None:
del self.kernel_slug
return
if not isinstance(kernel_slug, str):
raise TypeError('kernel_slug must be of type str')
self._kernel_slug = kernel_slug

@property
def sort_by(self) -> 'TopicListSortBy':
"""Sort order for the results."""
return self._sort_by or TopicListSortBy.TOPIC_LIST_SORT_BY_UNSPECIFIED

@sort_by.setter
def sort_by(self, sort_by: Optional['TopicListSortBy']):
if sort_by is None:
del self.sort_by
return
if not isinstance(sort_by, TopicListSortBy):
raise TypeError('sort_by must be of type TopicListSortBy')
self._sort_by = sort_by

@property
def page_size(self) -> int:
"""Page size for results."""
return self._page_size or 0

@page_size.setter
def page_size(self, page_size: Optional[int]):
if page_size is None:
del self.page_size
return
if not isinstance(page_size, int):
raise TypeError('page_size must be of type int')
self._page_size = page_size

@property
def page_token(self) -> str:
"""Page token used for pagination."""
return self._page_token or ""

@page_token.setter
def page_token(self, page_token: Optional[str]):
if page_token is None:
del self.page_token
return
if not isinstance(page_token, str):
raise TypeError('page_token must be of type str')
self._page_token = page_token

@property
def search_query(self) -> str:
"""Optional search query to filter topics by."""
return self._search_query or ""

@search_query.setter
def search_query(self, search_query: Optional[str]):
if search_query is None:
del self.search_query
return
if not isinstance(search_query, str):
raise TypeError('search_query must be of type str')
self._search_query = search_query

def endpoint(self):
path = '/api/v1/kernels/{owner_slug}/{kernel_slug}/topics/list'
return path.format_map(self.to_field_map(self))

@staticmethod
def endpoint_path():
return '/api/v1/kernels/{owner_slug}/{kernel_slug}/topics/list'


class ApiListModelTopicsRequest(KaggleObject):
r"""
Attributes:
Expand Down Expand Up @@ -1224,6 +1343,15 @@ def nextPageToken(self):
FieldMetadata("forums", "forums", "_forums", ApiDiscussionForum, [], ListSerializer(KaggleObjectSerializer())),
]

ApiListKernelTopicsRequest._fields = [
FieldMetadata("ownerSlug", "owner_slug", "_owner_slug", str, "", PredefinedSerializer()),
FieldMetadata("kernelSlug", "kernel_slug", "_kernel_slug", str, "", PredefinedSerializer()),
FieldMetadata("sortBy", "sort_by", "_sort_by", TopicListSortBy, None, EnumSerializer(), optional=True),
FieldMetadata("pageSize", "page_size", "_page_size", int, None, PredefinedSerializer(), optional=True),
FieldMetadata("pageToken", "page_token", "_page_token", str, None, PredefinedSerializer(), optional=True),
FieldMetadata("searchQuery", "search_query", "_search_query", str, None, PredefinedSerializer(), optional=True),
]

ApiListModelTopicsRequest._fields = [
FieldMetadata("ownerSlug", "owner_slug", "_owner_slug", str, "", PredefinedSerializer()),
FieldMetadata("modelSlug", "model_slug", "_model_slug", str, "", PredefinedSerializer()),
Expand Down