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.16"
__version__ = "0.1.17"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know the release process of kaggle-sdk but I suppose there is some manual step here to actually publish this package. I don't know how kaggle-cli imports this package. It used be a manual copy but I am not sure if that has changed. @stevemessick knows better

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just realized Steve is OOO this week. Requested review from Jonathan instead

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes @nl917 I think these are experimental features only with placeholder code but not real implementation? Checking in the code is to help unblock downstream application. But if this got published to pypi, we probably just wait till everything is implemented by @andrewmwang first.

Copy link
Copy Markdown
Contributor

@jeward414 jeward414 Apr 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm also not super familiar with recent implementations/updates to the sdk but I can do a quick look over and see if anything stands out

Copy link
Copy Markdown

@jmasukawa jmasukawa Apr 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once this is merged and a new version of kagglesdk is published to pypi (docs here: https://g3doc.corp.google.com/cloud/kaggle/apis/g3doc/kagglesdk.md#how-to-push-to-pypi), the way Kaggle CLI gets the new package is by bumping it's dependency here: https://github.com/Kaggle/kaggle-cli/blob/main/pyproject.toml#L27

it is currently set to 0.1.16 and we'd change that to 0.1.17.

then we'd need to do a release of Kaggle CLI so our users can pick up the new version. we can test that Kaggle CLI deps pull in the new kagglesdk version locally by:

hatch env remove default
hatch run kaggle --help

(that 2nd line could be any command. we just want to call something to rebuild the CLI)

it'd be good to run the Kaggle CLI tests too to make sure everything is working: https://github.com/kaggle/kaggle-cli?tab=readme-ov-file#tests

btw this assumes in your local CLI env you didn't do anything like pip install kagglesdk --break-system-packages (b/c then it would pull from that global install vs. try to install based on the .toml definition)


from kagglesdk.kaggle_client import KaggleClient
from kagglesdk.kaggle_creds import KaggleCredentials
Expand Down
Empty file added kagglesdk/abuse/__init__.py
Empty file.
Empty file.
7 changes: 7 additions & 0 deletions kagglesdk/abuse/types/abuse_enums.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import enum

class PrivatedModerationStatus(enum.Enum):
PRIVATED_MODERATION_STATUS_UNSPECIFIED = 0
PRIVATED_MODERATION_STATUS_NO_ABUSE = 1
PERMANENTLY_PRIVATED = 3

Empty file added kagglesdk/agents/__init__.py
Empty file.
Empty file.
91 changes: 91 additions & 0 deletions kagglesdk/agents/services/agent_exam_service.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
from kagglesdk.agents.types.agent_exam_service import ApiCompleteAgentExamSubmissionRequest, ApiCompleteAgentExamSubmissionResponse, ApiCreateAgentExamAgentRequest, ApiCreateAgentExamAgentResponse, ApiCreateAgentExamSubmissionRequest, ApiCreateAgentExamSubmissionResponse, ApiGetAgentExamAgentRequest, ApiGetAgentExamAgentResponse, ApiGetAgentExamInsightsRequest, ApiGetAgentExamInsightsResponse, ApiGetAgentExamSubmissionRequest, ApiGetAgentExamSubmissionResponse, ApiListTopAgentExamAgentsRequest, ApiListTopAgentExamAgentsResponse
from kagglesdk.kaggle_http_client import KaggleHttpClient

class AgentExamClient(object):

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

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

if request is None:
request = ApiCreateAgentExamAgentRequest()

return self._client.call("agents.AgentExamService", "CreateAgentExamAgent", request, ApiCreateAgentExamAgentResponse)

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

if request is None:
request = ApiGetAgentExamAgentRequest()

return self._client.call("agents.AgentExamService", "GetAgentExamAgent", request, ApiGetAgentExamAgentResponse)

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

if request is None:
request = ApiCreateAgentExamSubmissionRequest()

return self._client.call("agents.AgentExamService", "CreateAgentExamSubmission", request, ApiCreateAgentExamSubmissionResponse)

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

if request is None:
request = ApiCompleteAgentExamSubmissionRequest()

return self._client.call("agents.AgentExamService", "CompleteAgentExamSubmission", request, ApiCompleteAgentExamSubmissionResponse)

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

if request is None:
request = ApiGetAgentExamSubmissionRequest()

return self._client.call("agents.AgentExamService", "GetAgentExamSubmission", request, ApiGetAgentExamSubmissionResponse)

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

if request is None:
request = ApiListTopAgentExamAgentsRequest()

return self._client.call("agents.AgentExamService", "ListTopAgentExamAgents", request, ApiListTopAgentExamAgentsResponse)

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

if request is None:
request = ApiGetAgentExamInsightsRequest()

return self._client.call("agents.AgentExamService", "GetAgentExamInsights", request, ApiGetAgentExamInsightsResponse)
Empty file.
9 changes: 9 additions & 0 deletions kagglesdk/agents/types/agent_exam_enums.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import enum

class AgentExamSubmissionStatus(enum.Enum):
"""Saved to the DB. Do not modify existing values."""
AGENT_EXAM_SUBMISSION_STATUS_UNSPECIFIED = 0
AGENT_EXAM_SUBMISSION_STATUS_STARTED = 1
AGENT_EXAM_SUBMISSION_STATUS_COMPLETED = 2
AGENT_EXAM_SUBMISSION_STATUS_TIMED_OUT = 3

Loading