kaggle 1.7.4.5__py3-none-any.whl → 1.8.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kaggle/__init__.py +10 -6
- kaggle/api/kaggle_api.py +574 -598
- kaggle/api/kaggle_api_extended.py +5251 -4769
- kaggle/cli.py +1335 -1585
- kaggle/models/api_blob_type.py +3 -3
- kaggle/models/dataset_column.py +165 -174
- kaggle/models/dataset_new_request.py +83 -41
- kaggle/models/dataset_new_version_request.py +32 -25
- kaggle/models/dataset_update_settings_request.py +35 -27
- kaggle/models/kaggle_models_extended.py +169 -172
- kaggle/models/kernel_push_request.py +66 -49
- kaggle/models/model_instance_new_version_request.py +10 -18
- kaggle/models/model_instance_update_request.py +103 -34
- kaggle/models/model_new_instance_request.py +138 -41
- kaggle/models/model_new_request.py +35 -27
- kaggle/models/model_update_request.py +32 -25
- kaggle/models/start_blob_upload_request.py +192 -195
- kaggle/models/start_blob_upload_response.py +98 -98
- kaggle/models/upload_file.py +114 -120
- kaggle/test/test_authenticate.py +23 -23
- {kaggle-1.7.4.5.dist-info → kaggle-1.8.0.dist-info}/METADATA +11 -15
- kaggle-1.8.0.dist-info/RECORD +148 -0
- kagglesdk/__init__.py +5 -1
- kagglesdk/benchmarks/services/__init__.py +0 -0
- kagglesdk/benchmarks/services/benchmarks_api_service.py +19 -0
- kagglesdk/benchmarks/types/__init__.py +0 -0
- kagglesdk/benchmarks/types/benchmark_types.py +307 -0
- kagglesdk/benchmarks/types/benchmarks_api_service.py +243 -0
- kagglesdk/blobs/services/blob_api_service.py +1 -1
- kagglesdk/blobs/types/blob_api_service.py +2 -2
- kagglesdk/common/services/__init__.py +0 -0
- kagglesdk/common/services/operations_service.py +46 -0
- kagglesdk/common/types/file_download.py +1 -1
- kagglesdk/common/types/http_redirect.py +1 -1
- kagglesdk/common/types/operations.py +194 -0
- kagglesdk/common/types/operations_service.py +48 -0
- kagglesdk/community/__init__.py +0 -0
- kagglesdk/community/types/__init__.py +0 -0
- kagglesdk/community/types/content_enums.py +44 -0
- kagglesdk/community/types/organization.py +410 -0
- kagglesdk/competitions/services/competition_api_service.py +49 -12
- kagglesdk/competitions/types/competition.py +14 -0
- kagglesdk/competitions/types/competition_api_service.py +1639 -1275
- kagglesdk/competitions/types/search_competitions.py +28 -0
- kagglesdk/datasets/databundles/__init__.py +0 -0
- kagglesdk/datasets/databundles/types/__init__.py +0 -0
- kagglesdk/datasets/databundles/types/databundle_api_types.py +540 -0
- kagglesdk/datasets/services/dataset_api_service.py +39 -14
- kagglesdk/datasets/types/dataset_api_service.py +554 -300
- kagglesdk/datasets/types/dataset_enums.py +21 -0
- kagglesdk/datasets/types/dataset_service.py +145 -0
- kagglesdk/datasets/types/dataset_types.py +74 -74
- kagglesdk/datasets/types/search_datasets.py +6 -0
- kagglesdk/discussions/__init__.py +0 -0
- kagglesdk/discussions/types/__init__.py +0 -0
- kagglesdk/discussions/types/search_discussions.py +43 -0
- kagglesdk/discussions/types/writeup_enums.py +11 -0
- kagglesdk/education/services/education_api_service.py +1 -1
- kagglesdk/education/types/education_api_service.py +1 -1
- kagglesdk/kaggle_client.py +46 -23
- kagglesdk/kaggle_creds.py +148 -0
- kagglesdk/kaggle_env.py +89 -25
- kagglesdk/kaggle_http_client.py +216 -306
- kagglesdk/kaggle_oauth.py +200 -0
- kagglesdk/kaggle_object.py +286 -293
- kagglesdk/kernels/services/kernels_api_service.py +46 -9
- kagglesdk/kernels/types/kernels_api_service.py +635 -159
- kagglesdk/kernels/types/kernels_enums.py +6 -0
- kagglesdk/kernels/types/search_kernels.py +6 -0
- kagglesdk/licenses/__init__.py +0 -0
- kagglesdk/licenses/types/__init__.py +0 -0
- kagglesdk/licenses/types/licenses_types.py +182 -0
- kagglesdk/models/services/model_api_service.py +41 -17
- kagglesdk/models/types/model_api_service.py +987 -637
- kagglesdk/models/types/model_enums.py +8 -0
- kagglesdk/models/types/model_service.py +71 -71
- kagglesdk/models/types/model_types.py +1057 -5
- kagglesdk/models/types/search_models.py +8 -0
- kagglesdk/search/__init__.py +0 -0
- kagglesdk/search/services/__init__.py +0 -0
- kagglesdk/search/services/search_api_service.py +19 -0
- kagglesdk/search/types/__init__.py +0 -0
- kagglesdk/search/types/search_api_service.py +2435 -0
- kagglesdk/search/types/search_content_shared.py +50 -0
- kagglesdk/search/types/search_enums.py +45 -0
- kagglesdk/search/types/search_service.py +303 -0
- kagglesdk/security/services/iam_service.py +31 -0
- kagglesdk/security/services/oauth_service.py +27 -1
- kagglesdk/security/types/authentication.py +63 -63
- kagglesdk/security/types/iam_service.py +496 -0
- kagglesdk/security/types/oauth_service.py +797 -10
- kagglesdk/security/types/roles.py +8 -0
- kagglesdk/security/types/security_types.py +159 -0
- kagglesdk/test/__init__.py +0 -0
- kagglesdk/test/test_client.py +20 -22
- kagglesdk/users/services/account_service.py +13 -1
- kagglesdk/users/services/group_api_service.py +31 -0
- kagglesdk/users/types/account_service.py +169 -28
- kagglesdk/users/types/group_api_service.py +315 -0
- kagglesdk/users/types/group_types.py +165 -0
- kagglesdk/users/types/groups_enum.py +8 -0
- kagglesdk/users/types/progression_service.py +9 -0
- kagglesdk/users/types/search_users.py +23 -0
- kagglesdk/users/types/user_avatar.py +226 -0
- kaggle/configuration.py +0 -206
- kaggle-1.7.4.5.dist-info/RECORD +0 -98
- {kaggle-1.7.4.5.dist-info → kaggle-1.8.0.dist-info}/WHEEL +0 -0
- {kaggle-1.7.4.5.dist-info → kaggle-1.8.0.dist-info}/entry_points.txt +0 -0
- {kaggle-1.7.4.5.dist-info → kaggle-1.8.0.dist-info}/licenses/LICENSE.txt +0 -0
- {kaggle/test → kagglesdk/benchmarks}/__init__.py +0 -0
|
@@ -21,6 +21,7 @@ class DatasetFileTypeGroup(enum.Enum):
|
|
|
21
21
|
DATASET_FILE_TYPE_GROUP_SQLITE = 2
|
|
22
22
|
DATASET_FILE_TYPE_GROUP_JSON = 3
|
|
23
23
|
DATASET_FILE_TYPE_GROUP_BIG_QUERY = 4
|
|
24
|
+
DATASET_FILE_TYPE_GROUP_PARQUET = 5
|
|
24
25
|
|
|
25
26
|
class DatasetLicenseGroup(enum.Enum):
|
|
26
27
|
r"""
|
|
@@ -75,8 +76,28 @@ class DatasetSortBy(enum.Enum):
|
|
|
75
76
|
"""Old world"""
|
|
76
77
|
DATASET_SORT_BY_LAST_VIEWED = 6
|
|
77
78
|
DATASET_SORT_BY_USABILITY = 7
|
|
79
|
+
DATASET_SORT_BY_DOWNLOAD_COUNT = 8
|
|
80
|
+
DATASET_SORT_BY_NOTEBOOK_COUNT = 9
|
|
78
81
|
|
|
79
82
|
class DatasetViewedGroup(enum.Enum):
|
|
80
83
|
DATASET_VIEWED_GROUP_UNSPECIFIED = 0
|
|
81
84
|
DATASET_VIEWED_GROUP_VIEWED = 1
|
|
82
85
|
|
|
86
|
+
class DatabundleVersionType(enum.Enum):
|
|
87
|
+
DATABUNDLE_VERSION_TYPE_UNSPECIFIED = 0
|
|
88
|
+
FILESET = 1
|
|
89
|
+
BIG_QUERY = 2
|
|
90
|
+
REMOTE_URL_FILE_SET = 3
|
|
91
|
+
REMOTE_GIT_REPOSITORY_FILE_SET = 4
|
|
92
|
+
KERNEL_OUTPUT_FILE_SET = 5
|
|
93
|
+
GCS_FILE_SET = 6
|
|
94
|
+
API_MODEL = 7
|
|
95
|
+
REMOTE_HUGGING_FACE_REPOSITORY_FILE_SET = 8
|
|
96
|
+
|
|
97
|
+
class DatasetFileType(enum.Enum):
|
|
98
|
+
DATASET_FILE_TYPE_UNSPECIFIED = 0
|
|
99
|
+
DATASET_FILE_TYPE_CSV = 1
|
|
100
|
+
DATASET_FILE_TYPE_JSON = 2
|
|
101
|
+
DATASET_FILE_TYPE_SQLITE = 3
|
|
102
|
+
DATASET_FILE_TYPE_OTHER = 4
|
|
103
|
+
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
from datetime import datetime
|
|
2
|
+
from kagglesdk.datasets.types.dataset_enums import DatabundleVersionStatus
|
|
3
|
+
from kagglesdk.kaggle_object import *
|
|
4
|
+
from typing import Optional
|
|
5
|
+
|
|
6
|
+
class DatabundleVersionCreationStatus(KaggleObject):
|
|
7
|
+
r"""
|
|
8
|
+
Attributes:
|
|
9
|
+
status (DatabundleVersionStatus)
|
|
10
|
+
creation_percent_complete (float)
|
|
11
|
+
creation_exception (str)
|
|
12
|
+
creation_last_update (datetime)
|
|
13
|
+
creation_step (str)
|
|
14
|
+
creation_start (datetime)
|
|
15
|
+
user_message (str)
|
|
16
|
+
version_number (int)
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
def __init__(self):
|
|
20
|
+
self._status = DatabundleVersionStatus.NOT_YET_PERSISTED
|
|
21
|
+
self._creation_percent_complete = 0.0
|
|
22
|
+
self._creation_exception = None
|
|
23
|
+
self._creation_last_update = None
|
|
24
|
+
self._creation_step = None
|
|
25
|
+
self._creation_start = None
|
|
26
|
+
self._user_message = None
|
|
27
|
+
self._version_number = None
|
|
28
|
+
self._freeze()
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def status(self) -> 'DatabundleVersionStatus':
|
|
32
|
+
return self._status
|
|
33
|
+
|
|
34
|
+
@status.setter
|
|
35
|
+
def status(self, status: 'DatabundleVersionStatus'):
|
|
36
|
+
if status is None:
|
|
37
|
+
del self.status
|
|
38
|
+
return
|
|
39
|
+
if not isinstance(status, DatabundleVersionStatus):
|
|
40
|
+
raise TypeError('status must be of type DatabundleVersionStatus')
|
|
41
|
+
self._status = status
|
|
42
|
+
|
|
43
|
+
@property
|
|
44
|
+
def creation_percent_complete(self) -> float:
|
|
45
|
+
return self._creation_percent_complete
|
|
46
|
+
|
|
47
|
+
@creation_percent_complete.setter
|
|
48
|
+
def creation_percent_complete(self, creation_percent_complete: float):
|
|
49
|
+
if creation_percent_complete is None:
|
|
50
|
+
del self.creation_percent_complete
|
|
51
|
+
return
|
|
52
|
+
if not isinstance(creation_percent_complete, float):
|
|
53
|
+
raise TypeError('creation_percent_complete must be of type float')
|
|
54
|
+
self._creation_percent_complete = creation_percent_complete
|
|
55
|
+
|
|
56
|
+
@property
|
|
57
|
+
def creation_exception(self) -> str:
|
|
58
|
+
return self._creation_exception or ""
|
|
59
|
+
|
|
60
|
+
@creation_exception.setter
|
|
61
|
+
def creation_exception(self, creation_exception: Optional[str]):
|
|
62
|
+
if creation_exception is None:
|
|
63
|
+
del self.creation_exception
|
|
64
|
+
return
|
|
65
|
+
if not isinstance(creation_exception, str):
|
|
66
|
+
raise TypeError('creation_exception must be of type str')
|
|
67
|
+
self._creation_exception = creation_exception
|
|
68
|
+
|
|
69
|
+
@property
|
|
70
|
+
def creation_last_update(self) -> datetime:
|
|
71
|
+
return self._creation_last_update
|
|
72
|
+
|
|
73
|
+
@creation_last_update.setter
|
|
74
|
+
def creation_last_update(self, creation_last_update: datetime):
|
|
75
|
+
if creation_last_update is None:
|
|
76
|
+
del self.creation_last_update
|
|
77
|
+
return
|
|
78
|
+
if not isinstance(creation_last_update, datetime):
|
|
79
|
+
raise TypeError('creation_last_update must be of type datetime')
|
|
80
|
+
self._creation_last_update = creation_last_update
|
|
81
|
+
|
|
82
|
+
@property
|
|
83
|
+
def creation_step(self) -> str:
|
|
84
|
+
return self._creation_step or ""
|
|
85
|
+
|
|
86
|
+
@creation_step.setter
|
|
87
|
+
def creation_step(self, creation_step: Optional[str]):
|
|
88
|
+
if creation_step is None:
|
|
89
|
+
del self.creation_step
|
|
90
|
+
return
|
|
91
|
+
if not isinstance(creation_step, str):
|
|
92
|
+
raise TypeError('creation_step must be of type str')
|
|
93
|
+
self._creation_step = creation_step
|
|
94
|
+
|
|
95
|
+
@property
|
|
96
|
+
def creation_start(self) -> datetime:
|
|
97
|
+
return self._creation_start
|
|
98
|
+
|
|
99
|
+
@creation_start.setter
|
|
100
|
+
def creation_start(self, creation_start: datetime):
|
|
101
|
+
if creation_start is None:
|
|
102
|
+
del self.creation_start
|
|
103
|
+
return
|
|
104
|
+
if not isinstance(creation_start, datetime):
|
|
105
|
+
raise TypeError('creation_start must be of type datetime')
|
|
106
|
+
self._creation_start = creation_start
|
|
107
|
+
|
|
108
|
+
@property
|
|
109
|
+
def user_message(self) -> str:
|
|
110
|
+
return self._user_message or ""
|
|
111
|
+
|
|
112
|
+
@user_message.setter
|
|
113
|
+
def user_message(self, user_message: Optional[str]):
|
|
114
|
+
if user_message is None:
|
|
115
|
+
del self.user_message
|
|
116
|
+
return
|
|
117
|
+
if not isinstance(user_message, str):
|
|
118
|
+
raise TypeError('user_message must be of type str')
|
|
119
|
+
self._user_message = user_message
|
|
120
|
+
|
|
121
|
+
@property
|
|
122
|
+
def version_number(self) -> int:
|
|
123
|
+
return self._version_number or 0
|
|
124
|
+
|
|
125
|
+
@version_number.setter
|
|
126
|
+
def version_number(self, version_number: Optional[int]):
|
|
127
|
+
if version_number is None:
|
|
128
|
+
del self.version_number
|
|
129
|
+
return
|
|
130
|
+
if not isinstance(version_number, int):
|
|
131
|
+
raise TypeError('version_number must be of type int')
|
|
132
|
+
self._version_number = version_number
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
DatabundleVersionCreationStatus._fields = [
|
|
136
|
+
FieldMetadata("status", "status", "_status", DatabundleVersionStatus, DatabundleVersionStatus.NOT_YET_PERSISTED, EnumSerializer()),
|
|
137
|
+
FieldMetadata("creationPercentComplete", "creation_percent_complete", "_creation_percent_complete", float, 0.0, PredefinedSerializer()),
|
|
138
|
+
FieldMetadata("creationException", "creation_exception", "_creation_exception", str, None, PredefinedSerializer(), optional=True),
|
|
139
|
+
FieldMetadata("creationLastUpdate", "creation_last_update", "_creation_last_update", datetime, None, DateTimeSerializer()),
|
|
140
|
+
FieldMetadata("creationStep", "creation_step", "_creation_step", str, None, PredefinedSerializer(), optional=True),
|
|
141
|
+
FieldMetadata("creationStart", "creation_start", "_creation_start", datetime, None, DateTimeSerializer()),
|
|
142
|
+
FieldMetadata("userMessage", "user_message", "_user_message", str, None, PredefinedSerializer(), optional=True),
|
|
143
|
+
FieldMetadata("versionNumber", "version_number", "_version_number", int, None, PredefinedSerializer(), optional=True),
|
|
144
|
+
]
|
|
145
|
+
|
|
@@ -2,6 +2,62 @@ from kagglesdk.kaggle_object import *
|
|
|
2
2
|
from kagglesdk.users.types.users_enums import CollaboratorType
|
|
3
3
|
from typing import Optional, List
|
|
4
4
|
|
|
5
|
+
class DatasetCollaborator(KaggleObject):
|
|
6
|
+
r"""
|
|
7
|
+
Attributes:
|
|
8
|
+
username (str)
|
|
9
|
+
group_slug (str)
|
|
10
|
+
role (CollaboratorType)
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
def __init__(self):
|
|
14
|
+
self._username = None
|
|
15
|
+
self._group_slug = None
|
|
16
|
+
self._role = CollaboratorType.COLLABORATOR_TYPE_UNSPECIFIED
|
|
17
|
+
self._freeze()
|
|
18
|
+
|
|
19
|
+
@property
|
|
20
|
+
def username(self) -> str:
|
|
21
|
+
return self._username or ""
|
|
22
|
+
|
|
23
|
+
@username.setter
|
|
24
|
+
def username(self, username: str):
|
|
25
|
+
if username is None:
|
|
26
|
+
del self.username
|
|
27
|
+
return
|
|
28
|
+
if not isinstance(username, str):
|
|
29
|
+
raise TypeError('username must be of type str')
|
|
30
|
+
del self.group_slug
|
|
31
|
+
self._username = username
|
|
32
|
+
|
|
33
|
+
@property
|
|
34
|
+
def group_slug(self) -> str:
|
|
35
|
+
return self._group_slug or ""
|
|
36
|
+
|
|
37
|
+
@group_slug.setter
|
|
38
|
+
def group_slug(self, group_slug: str):
|
|
39
|
+
if group_slug is None:
|
|
40
|
+
del self.group_slug
|
|
41
|
+
return
|
|
42
|
+
if not isinstance(group_slug, str):
|
|
43
|
+
raise TypeError('group_slug must be of type str')
|
|
44
|
+
del self.username
|
|
45
|
+
self._group_slug = group_slug
|
|
46
|
+
|
|
47
|
+
@property
|
|
48
|
+
def role(self) -> 'CollaboratorType':
|
|
49
|
+
return self._role
|
|
50
|
+
|
|
51
|
+
@role.setter
|
|
52
|
+
def role(self, role: 'CollaboratorType'):
|
|
53
|
+
if role is None:
|
|
54
|
+
del self.role
|
|
55
|
+
return
|
|
56
|
+
if not isinstance(role, CollaboratorType):
|
|
57
|
+
raise TypeError('role must be of type CollaboratorType')
|
|
58
|
+
self._role = role
|
|
59
|
+
|
|
60
|
+
|
|
5
61
|
class DatasetInfo(KaggleObject):
|
|
6
62
|
r"""
|
|
7
63
|
Attributes:
|
|
@@ -60,7 +116,7 @@ class DatasetInfo(KaggleObject):
|
|
|
60
116
|
return self._dataset_slug or ""
|
|
61
117
|
|
|
62
118
|
@dataset_slug.setter
|
|
63
|
-
def dataset_slug(self, dataset_slug: str):
|
|
119
|
+
def dataset_slug(self, dataset_slug: Optional[str]):
|
|
64
120
|
if dataset_slug is None:
|
|
65
121
|
del self.dataset_slug
|
|
66
122
|
return
|
|
@@ -73,7 +129,7 @@ class DatasetInfo(KaggleObject):
|
|
|
73
129
|
return self._owner_user or ""
|
|
74
130
|
|
|
75
131
|
@owner_user.setter
|
|
76
|
-
def owner_user(self, owner_user: str):
|
|
132
|
+
def owner_user(self, owner_user: Optional[str]):
|
|
77
133
|
if owner_user is None:
|
|
78
134
|
del self.owner_user
|
|
79
135
|
return
|
|
@@ -86,7 +142,7 @@ class DatasetInfo(KaggleObject):
|
|
|
86
142
|
return self._usability_rating or 0.0
|
|
87
143
|
|
|
88
144
|
@usability_rating.setter
|
|
89
|
-
def usability_rating(self, usability_rating: float):
|
|
145
|
+
def usability_rating(self, usability_rating: Optional[float]):
|
|
90
146
|
if usability_rating is None:
|
|
91
147
|
del self.usability_rating
|
|
92
148
|
return
|
|
@@ -142,7 +198,7 @@ class DatasetInfo(KaggleObject):
|
|
|
142
198
|
return self._title or ""
|
|
143
199
|
|
|
144
200
|
@title.setter
|
|
145
|
-
def title(self, title: str):
|
|
201
|
+
def title(self, title: Optional[str]):
|
|
146
202
|
if title is None:
|
|
147
203
|
del self.title
|
|
148
204
|
return
|
|
@@ -155,7 +211,7 @@ class DatasetInfo(KaggleObject):
|
|
|
155
211
|
return self._subtitle or ""
|
|
156
212
|
|
|
157
213
|
@subtitle.setter
|
|
158
|
-
def subtitle(self, subtitle: str):
|
|
214
|
+
def subtitle(self, subtitle: Optional[str]):
|
|
159
215
|
if subtitle is None:
|
|
160
216
|
del self.subtitle
|
|
161
217
|
return
|
|
@@ -168,7 +224,7 @@ class DatasetInfo(KaggleObject):
|
|
|
168
224
|
return self._description or ""
|
|
169
225
|
|
|
170
226
|
@description.setter
|
|
171
|
-
def description(self, description: str):
|
|
227
|
+
def description(self, description: Optional[str]):
|
|
172
228
|
if description is None:
|
|
173
229
|
del self.description
|
|
174
230
|
return
|
|
@@ -279,7 +335,7 @@ class DatasetSettings(KaggleObject):
|
|
|
279
335
|
return self._title or ""
|
|
280
336
|
|
|
281
337
|
@title.setter
|
|
282
|
-
def title(self, title: str):
|
|
338
|
+
def title(self, title: Optional[str]):
|
|
283
339
|
if title is None:
|
|
284
340
|
del self.title
|
|
285
341
|
return
|
|
@@ -292,7 +348,7 @@ class DatasetSettings(KaggleObject):
|
|
|
292
348
|
return self._subtitle or ""
|
|
293
349
|
|
|
294
350
|
@subtitle.setter
|
|
295
|
-
def subtitle(self, subtitle: str):
|
|
351
|
+
def subtitle(self, subtitle: Optional[str]):
|
|
296
352
|
if subtitle is None:
|
|
297
353
|
del self.subtitle
|
|
298
354
|
return
|
|
@@ -305,7 +361,7 @@ class DatasetSettings(KaggleObject):
|
|
|
305
361
|
return self._description or ""
|
|
306
362
|
|
|
307
363
|
@description.setter
|
|
308
|
-
def description(self, description: str):
|
|
364
|
+
def description(self, description: Optional[str]):
|
|
309
365
|
if description is None:
|
|
310
366
|
del self.description
|
|
311
367
|
return
|
|
@@ -421,7 +477,7 @@ class DatasetSettingsFile(KaggleObject):
|
|
|
421
477
|
return self._description or ""
|
|
422
478
|
|
|
423
479
|
@description.setter
|
|
424
|
-
def description(self, description: str):
|
|
480
|
+
def description(self, description: Optional[str]):
|
|
425
481
|
if description is None:
|
|
426
482
|
del self.description
|
|
427
483
|
return
|
|
@@ -490,7 +546,7 @@ class DatasetSettingsFileColumn(KaggleObject):
|
|
|
490
546
|
return self._description or ""
|
|
491
547
|
|
|
492
548
|
@description.setter
|
|
493
|
-
def description(self, description: str):
|
|
549
|
+
def description(self, description: Optional[str]):
|
|
494
550
|
if description is None:
|
|
495
551
|
del self.description
|
|
496
552
|
return
|
|
@@ -503,7 +559,7 @@ class DatasetSettingsFileColumn(KaggleObject):
|
|
|
503
559
|
return self._type or ""
|
|
504
560
|
|
|
505
561
|
@type.setter
|
|
506
|
-
def type(self, type: str):
|
|
562
|
+
def type(self, type: Optional[str]):
|
|
507
563
|
if type is None:
|
|
508
564
|
del self.type
|
|
509
565
|
return
|
|
@@ -527,7 +583,7 @@ class SettingsLicense(KaggleObject):
|
|
|
527
583
|
return self._name or ""
|
|
528
584
|
|
|
529
585
|
@name.setter
|
|
530
|
-
def name(self, name: str):
|
|
586
|
+
def name(self, name: Optional[str]):
|
|
531
587
|
if name is None:
|
|
532
588
|
del self.name
|
|
533
589
|
return
|
|
@@ -536,61 +592,11 @@ class SettingsLicense(KaggleObject):
|
|
|
536
592
|
self._name = name
|
|
537
593
|
|
|
538
594
|
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
role (CollaboratorType)
|
|
545
|
-
"""
|
|
546
|
-
|
|
547
|
-
def __init__(self):
|
|
548
|
-
self._username = None
|
|
549
|
-
self._group_slug = None
|
|
550
|
-
self._role = CollaboratorType.COLLABORATOR_TYPE_UNSPECIFIED
|
|
551
|
-
self._freeze()
|
|
552
|
-
|
|
553
|
-
@property
|
|
554
|
-
def username(self) -> str:
|
|
555
|
-
return self._username or ""
|
|
556
|
-
|
|
557
|
-
@username.setter
|
|
558
|
-
def username(self, username: str):
|
|
559
|
-
if username is None:
|
|
560
|
-
del self.username
|
|
561
|
-
return
|
|
562
|
-
if not isinstance(username, str):
|
|
563
|
-
raise TypeError('username must be of type str')
|
|
564
|
-
del self.group_slug
|
|
565
|
-
self._username = username
|
|
566
|
-
|
|
567
|
-
@property
|
|
568
|
-
def group_slug(self) -> str:
|
|
569
|
-
return self._group_slug or ""
|
|
570
|
-
|
|
571
|
-
@group_slug.setter
|
|
572
|
-
def group_slug(self, group_slug: str):
|
|
573
|
-
if group_slug is None:
|
|
574
|
-
del self.group_slug
|
|
575
|
-
return
|
|
576
|
-
if not isinstance(group_slug, str):
|
|
577
|
-
raise TypeError('group_slug must be of type str')
|
|
578
|
-
del self.username
|
|
579
|
-
self._group_slug = group_slug
|
|
580
|
-
|
|
581
|
-
@property
|
|
582
|
-
def role(self) -> 'CollaboratorType':
|
|
583
|
-
return self._role
|
|
584
|
-
|
|
585
|
-
@role.setter
|
|
586
|
-
def role(self, role: 'CollaboratorType'):
|
|
587
|
-
if role is None:
|
|
588
|
-
del self.role
|
|
589
|
-
return
|
|
590
|
-
if not isinstance(role, CollaboratorType):
|
|
591
|
-
raise TypeError('role must be of type CollaboratorType')
|
|
592
|
-
self._role = role
|
|
593
|
-
|
|
595
|
+
DatasetCollaborator._fields = [
|
|
596
|
+
FieldMetadata("username", "username", "_username", str, None, PredefinedSerializer(), optional=True),
|
|
597
|
+
FieldMetadata("groupSlug", "group_slug", "_group_slug", str, None, PredefinedSerializer(), optional=True),
|
|
598
|
+
FieldMetadata("role", "role", "_role", CollaboratorType, CollaboratorType.COLLABORATOR_TYPE_UNSPECIFIED, EnumSerializer()),
|
|
599
|
+
]
|
|
594
600
|
|
|
595
601
|
DatasetInfo._fields = [
|
|
596
602
|
FieldMetadata("datasetId", "dataset_id", "_dataset_id", int, 0, PredefinedSerializer()),
|
|
@@ -638,9 +644,3 @@ SettingsLicense._fields = [
|
|
|
638
644
|
FieldMetadata("name", "name", "_name", str, None, PredefinedSerializer(), optional=True),
|
|
639
645
|
]
|
|
640
646
|
|
|
641
|
-
DatasetCollaborator._fields = [
|
|
642
|
-
FieldMetadata("username", "username", "_username", str, None, PredefinedSerializer(), optional=True),
|
|
643
|
-
FieldMetadata("groupSlug", "group_slug", "_group_slug", str, None, PredefinedSerializer(), optional=True),
|
|
644
|
-
FieldMetadata("role", "role", "_role", CollaboratorType, CollaboratorType.COLLABORATOR_TYPE_UNSPECIFIED, EnumSerializer()),
|
|
645
|
-
]
|
|
646
|
-
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import enum
|
|
2
|
+
|
|
3
|
+
class SearchDiscussionsOrderBy(enum.Enum):
|
|
4
|
+
SEARCH_DISCUSSIONS_ORDER_BY_UNSPECIFIED = 0
|
|
5
|
+
SEARCH_DISCUSSIONS_ORDER_BY_LAST_TOPIC_COMMENT_DATE = 1
|
|
6
|
+
|
|
7
|
+
class SearchDiscussionsDocumentType(enum.Enum):
|
|
8
|
+
SEARCH_DISCUSSIONS_DOCUMENT_TYPE_UNSPECIFIED = 0
|
|
9
|
+
SEARCH_DISCUSSIONS_DOCUMENT_TYPE_COMMENT = 1
|
|
10
|
+
SEARCH_DISCUSSIONS_DOCUMENT_TYPE_TOPIC = 2
|
|
11
|
+
SEARCH_DISCUSSIONS_DOCUMENT_TYPE_WRITE_UP = 3
|
|
12
|
+
|
|
13
|
+
class SearchDiscussionsSourceType(enum.Enum):
|
|
14
|
+
SEARCH_DISCUSSIONS_SOURCE_TYPE_UNSPECIFIED = 0
|
|
15
|
+
SEARCH_DISCUSSIONS_SOURCE_TYPE_COMPETITION = 1
|
|
16
|
+
SEARCH_DISCUSSIONS_SOURCE_TYPE_DATASET = 2
|
|
17
|
+
SEARCH_DISCUSSIONS_SOURCE_TYPE_KERNEL = 4
|
|
18
|
+
SEARCH_DISCUSSIONS_SOURCE_TYPE_SITE_FORUM = 5
|
|
19
|
+
SEARCH_DISCUSSIONS_SOURCE_TYPE_COMPETITION_SOLUTION = 6
|
|
20
|
+
SEARCH_DISCUSSIONS_SOURCE_TYPE_MODEL = 7
|
|
21
|
+
SEARCH_DISCUSSIONS_SOURCE_TYPE_WRITE_UP = 8
|
|
22
|
+
SEARCH_DISCUSSIONS_SOURCE_TYPE_LEARN_TRACK = 9
|
|
23
|
+
|
|
24
|
+
class SearchDiscussionsTopicType(enum.Enum):
|
|
25
|
+
SEARCH_DISCUSSIONS_TOPIC_TYPE_UNSPECIFIED = 0
|
|
26
|
+
SEARCH_DISCUSSIONS_TOPIC_TYPE_TOPICS = 1
|
|
27
|
+
SEARCH_DISCUSSIONS_TOPIC_TYPE_WRITE_UPS = 2
|
|
28
|
+
|
|
29
|
+
class WriteUpInclusionType(enum.Enum):
|
|
30
|
+
WRITE_UP_INCLUSION_TYPE_UNSPECIFIED = 0
|
|
31
|
+
WRITE_UP_INCLUSION_TYPE_EXCLUDE = 1
|
|
32
|
+
r"""
|
|
33
|
+
Only ForumTopics will be included, while
|
|
34
|
+
WriteUps will be excluded
|
|
35
|
+
"""
|
|
36
|
+
WRITE_UP_INCLUSION_TYPE_INCLUDE = 2
|
|
37
|
+
"""WriteUps and ForumTopics will be included"""
|
|
38
|
+
WRITE_UP_INCLUSION_TYPE_ONLY = 3
|
|
39
|
+
r"""
|
|
40
|
+
Only WriteUps will be included, while
|
|
41
|
+
ForumTopics will be excluded
|
|
42
|
+
"""
|
|
43
|
+
|
|
@@ -16,4 +16,4 @@ class EducationApiClient(object):
|
|
|
16
16
|
if request is None:
|
|
17
17
|
request = ApiTrackExerciseInteractionRequest()
|
|
18
18
|
|
|
19
|
-
return self._client.call("education.EducationApiService", "
|
|
19
|
+
return self._client.call("education.EducationApiService", "TrackExerciseInteraction", request, ApiTrackExerciseInteractionResponse)
|
|
@@ -159,7 +159,7 @@ class ApiTrackExerciseInteractionRequest(KaggleObject):
|
|
|
159
159
|
return self._value_towards_completion or 0.0
|
|
160
160
|
|
|
161
161
|
@value_towards_completion.setter
|
|
162
|
-
def value_towards_completion(self, value_towards_completion: float):
|
|
162
|
+
def value_towards_completion(self, value_towards_completion: Optional[float]):
|
|
163
163
|
if value_towards_completion is None:
|
|
164
164
|
del self.value_towards_completion
|
|
165
165
|
return
|
kagglesdk/kaggle_client.py
CHANGED
|
@@ -1,34 +1,38 @@
|
|
|
1
|
-
from kagglesdk.
|
|
1
|
+
from kagglesdk.admin.services.inbox_file_service import InboxFileClient
|
|
2
|
+
from kagglesdk.benchmarks.services.benchmarks_api_service import BenchmarksApiClient
|
|
2
3
|
from kagglesdk.blobs.services.blob_api_service import BlobApiClient
|
|
4
|
+
from kagglesdk.common.services.operations_service import OperationsClient
|
|
5
|
+
from kagglesdk.competitions.services.competition_api_service import CompetitionApiClient
|
|
6
|
+
from kagglesdk.datasets.services.dataset_api_service import DatasetApiClient
|
|
3
7
|
from kagglesdk.education.services.education_api_service import EducationApiClient
|
|
8
|
+
from kagglesdk.kernels.services.kernels_api_service import KernelsApiClient
|
|
4
9
|
from kagglesdk.models.services.model_api_service import ModelApiClient
|
|
5
10
|
from kagglesdk.models.services.model_service import ModelClient
|
|
6
|
-
from kagglesdk.
|
|
7
|
-
from kagglesdk.
|
|
8
|
-
from kagglesdk.admin.services.inbox_file_service import InboxFileClient
|
|
11
|
+
from kagglesdk.search.services.search_api_service import SearchApiClient
|
|
12
|
+
from kagglesdk.security.services.iam_service import IamClient
|
|
9
13
|
from kagglesdk.security.services.oauth_service import OAuthClient
|
|
10
14
|
from kagglesdk.users.services.account_service import AccountClient
|
|
15
|
+
from kagglesdk.users.services.group_api_service import GroupApiClient
|
|
11
16
|
from kagglesdk.kaggle_env import KaggleEnv
|
|
12
17
|
from kagglesdk.kaggle_http_client import KaggleHttpClient
|
|
13
18
|
|
|
14
19
|
|
|
15
20
|
class KaggleClient(object):
|
|
16
|
-
class
|
|
21
|
+
class Admin(object):
|
|
17
22
|
def __init__(self, http_client: KaggleHttpClient):
|
|
18
|
-
self.
|
|
23
|
+
self.inbox_file_client = InboxFileClient(http_client)
|
|
19
24
|
|
|
20
|
-
class
|
|
25
|
+
class Benchmarks(object):
|
|
21
26
|
def __init__(self, http_client: KaggleHttpClient):
|
|
22
|
-
self.
|
|
27
|
+
self.benchmarks_api_client = BenchmarksApiClient(http_client)
|
|
23
28
|
|
|
24
|
-
class
|
|
29
|
+
class Blobs(object):
|
|
25
30
|
def __init__(self, http_client: KaggleHttpClient):
|
|
26
|
-
self.
|
|
31
|
+
self.blob_api_client = BlobApiClient(http_client)
|
|
27
32
|
|
|
28
|
-
class
|
|
33
|
+
class Common(object):
|
|
29
34
|
def __init__(self, http_client: KaggleHttpClient):
|
|
30
|
-
self.
|
|
31
|
-
self.model_client = ModelClient(http_client)
|
|
35
|
+
self.operations_client = OperationsClient(http_client)
|
|
32
36
|
|
|
33
37
|
class Competitions(object):
|
|
34
38
|
def __init__(self, http_client: KaggleHttpClient):
|
|
@@ -38,36 +42,55 @@ class KaggleClient(object):
|
|
|
38
42
|
def __init__(self, http_client: KaggleHttpClient):
|
|
39
43
|
self.dataset_api_client = DatasetApiClient(http_client)
|
|
40
44
|
|
|
41
|
-
class
|
|
45
|
+
class Education(object):
|
|
42
46
|
def __init__(self, http_client: KaggleHttpClient):
|
|
43
|
-
self.
|
|
47
|
+
self.education_api_client = EducationApiClient(http_client)
|
|
48
|
+
|
|
49
|
+
class Kernels(object):
|
|
50
|
+
def __init__(self, http_client: KaggleHttpClient):
|
|
51
|
+
self.kernels_api_client = KernelsApiClient(http_client)
|
|
52
|
+
|
|
53
|
+
class Models(object):
|
|
54
|
+
def __init__(self, http_client: KaggleHttpClient):
|
|
55
|
+
self.model_api_client = ModelApiClient(http_client)
|
|
56
|
+
self.model_client = ModelClient(http_client)
|
|
57
|
+
|
|
58
|
+
class Search(object):
|
|
59
|
+
def __init__(self, http_client: KaggleHttpClient):
|
|
60
|
+
self.search_api_client = SearchApiClient(http_client)
|
|
44
61
|
|
|
45
62
|
class Security(object):
|
|
46
63
|
def __init__(self, http_client: KaggleHttpClient):
|
|
64
|
+
self.iam_client = IamClient(http_client)
|
|
47
65
|
self.oauth_client = OAuthClient(http_client)
|
|
48
66
|
|
|
49
67
|
class Users(object):
|
|
50
68
|
def __init__(self, http_client: KaggleHttpClient):
|
|
51
69
|
self.account_client = AccountClient(http_client)
|
|
70
|
+
self.group_api_client = GroupApiClient(http_client)
|
|
52
71
|
|
|
53
|
-
def __init__(self, env: KaggleEnv = None, verbose: bool = False, username: str = None, password: str = None):
|
|
54
|
-
self._http_client = http_client = KaggleHttpClient(env, verbose,
|
|
55
|
-
self.
|
|
72
|
+
def __init__(self, env: KaggleEnv = None, verbose: bool = False, username: str = None, password: str = None, api_token: str = None):
|
|
73
|
+
self._http_client = http_client = KaggleHttpClient(env, verbose, username=username, password=password, api_token=api_token)
|
|
74
|
+
self.admin = KaggleClient.Admin(http_client)
|
|
75
|
+
self.benchmarks = KaggleClient.Benchmarks(http_client)
|
|
56
76
|
self.blobs = KaggleClient.Blobs(http_client)
|
|
57
|
-
self.
|
|
58
|
-
self.models = KaggleClient.Models(http_client)
|
|
77
|
+
self.common = KaggleClient.Common(http_client)
|
|
59
78
|
self.competitions = KaggleClient.Competitions(http_client)
|
|
60
79
|
self.datasets = KaggleClient.Datasets(http_client)
|
|
61
|
-
self.
|
|
80
|
+
self.education = KaggleClient.Education(http_client)
|
|
81
|
+
self.kernels = KaggleClient.Kernels(http_client)
|
|
82
|
+
self.models = KaggleClient.Models(http_client)
|
|
83
|
+
self.search = KaggleClient.Search(http_client)
|
|
62
84
|
self.security = KaggleClient.Security(http_client)
|
|
63
85
|
self.users = KaggleClient.Users(http_client)
|
|
64
86
|
self.username = username
|
|
65
87
|
self.password = password
|
|
88
|
+
self.api_token = api_token
|
|
66
89
|
|
|
67
|
-
def http_client(self):
|
|
90
|
+
def http_client(self) -> str:
|
|
68
91
|
return self._http_client
|
|
69
92
|
|
|
70
|
-
def _renew_iap_token(self):
|
|
93
|
+
def _renew_iap_token(self) -> str:
|
|
71
94
|
return self.admin.admin_client.renew_iap_token()
|
|
72
95
|
|
|
73
96
|
def __enter__(self):
|