-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathsample.py
More file actions
131 lines (103 loc) · 4.71 KB
/
sample.py
File metadata and controls
131 lines (103 loc) · 4.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
import sys
from kagglesdk.competitions.services.competition_service import CompetitionClient
from kagglesdk.competitions.types.competition_service import GetCompetitionRequest
from kagglesdk.competitions.types.competition_service import ListCompetitionsRequest
from kagglesdk.datasets.types.dataset_service import (
DatasetListItem,
SearchDatasetsRequest,
)
from kagglesdk.datasets.services.dataset_service import DatasetClient
from kagglesdk.kernels.services.kernels_service import KernelsClient
from kagglesdk.kernels.types.kernels_enums import (
KernelsListSortType,
KernelsListViewType,
)
from kagglesdk.kernels.types.kernels_types import (
KernelList,
ListKernelIdsRequest,
ListKernelsRequest,
SearchKernelIdsRequest,
)
from kagglesdk.users.types.users_service import (
GetCurrentUserRequest,
SearchUsersSuggestionsRequest,
)
from kagglesdk.users.services.users_service import UsersClient
from kagglesdk import KaggleClient, KaggleEnv
def get_competition(client: CompetitionClient):
competition = client.get_competition(competition_name="titanic")
print("Competition:")
print(f"/competitions/{competition.competition_name} {competition.title} {competition.brief_description}")
print()
def list_competitions(client: CompetitionClient):
request = ListCompetitionsRequest()
request.page_size = 5
request.selector = ListCompetitionsRequest.Selector()
request.selector.list_option = ListCompetitionsRequest.Selector.ListOption.LIST_OPTION_ACTIVE
request.selector.sort_option = ListCompetitionsRequest.Selector.SortOption.SORT_OPTION_NUM_TEAMS
request.selector.visibility_filter = ListCompetitionsRequest.Selector.VisibilityFilter.VISIBILITY_FILTER_PUBLIC
response = client.list_competitions(request)
print("Competitions:")
for competition in response.competitions:
print(f'/competitions/{competition.competition_name} "{competition.title}" "{competition.brief_description}"')
print()
def list_kernels(client: KernelsClient):
request = ListKernelsRequest()
request.kernel_filter_criteria = SearchKernelIdsRequest()
request.kernel_filter_criteria.list_request = ListKernelIdsRequest()
request.kernel_filter_criteria.list_request.competition_id = 3136 # Titanic
request.kernel_filter_criteria.list_request.sort_by = KernelsListSortType.HOTNESS
request.kernel_filter_criteria.list_request.page_size = 5
request.kernel_filter_criteria.list_request.page = 1
request.kernel_filter_criteria.list_request.group = KernelsListViewType.EVERYONE
response = response = client.list_kernels(request)
print("Kernels:")
for kernel in response.kernels:
print(f'/code/{kernel.current_url_slug} "{kernel.title}" by "{kernel.author.display_name}"')
print()
def list_datasets(client: DatasetClient):
request = SearchDatasetsRequest()
response = client.search_datasets(request)
print("Datasets:")
for dataset in response.dataset_list.items[:5]:
print(f'{dataset.dataset_url} by "{dataset.owner_name}"')
print()
def get_current_user(client: UsersClient):
current_user = client.get_current_user()
print("Current user:")
print(f'{current_user.id}/{current_user.user_name} "{current_user.display_name}"')
print()
def search_users_suggestions(client: UsersClient):
topic_id = 293861 # /discussions/getting-started/293861
response = client.search_users_suggestions(query="yas", topic_id=topic_id, page_size=5)
print("User suggestions:")
for user in response.users_suggestions:
print(f'{user.id}/{user.user_name} "{user.display_name}"')
print()
def _build_kaggle_client(args):
env = (
KaggleEnv.STAGING
if "--staging" in args
else (KaggleEnv.ADMIN if "--admin" in args else KaggleEnv.QA if "--qa" in args else KaggleEnv.LOCAL)
)
verbose = "--verbose" in args or "-v" in args
return KaggleClient(env=env, verbose=verbose)
def main(args):
try:
with _build_kaggle_client(args) as kaggle_client:
if "--competitions" in args:
get_competition(kaggle_client.competitions.competition_client)
list_competitions(kaggle_client.competitions.competition_client)
if "--code" in args:
list_kernels(kaggle_client.kernels.kernels_client)
if "--datasets" in args:
list_datasets(kaggle_client.datasets.dataset_client)
if "--users" in args:
get_current_user(kaggle_client.users.users_client)
search_users_suggestions(kaggle_client.users.users_client)
except Exception as e:
if "--verbose" in args or "-v" in args:
raise
print(e)
if __name__ == "__main__":
main(sys.argv[1:])