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.
Files changed (110) hide show
  1. kaggle/__init__.py +10 -6
  2. kaggle/api/kaggle_api.py +574 -598
  3. kaggle/api/kaggle_api_extended.py +5251 -4769
  4. kaggle/cli.py +1335 -1585
  5. kaggle/models/api_blob_type.py +3 -3
  6. kaggle/models/dataset_column.py +165 -174
  7. kaggle/models/dataset_new_request.py +83 -41
  8. kaggle/models/dataset_new_version_request.py +32 -25
  9. kaggle/models/dataset_update_settings_request.py +35 -27
  10. kaggle/models/kaggle_models_extended.py +169 -172
  11. kaggle/models/kernel_push_request.py +66 -49
  12. kaggle/models/model_instance_new_version_request.py +10 -18
  13. kaggle/models/model_instance_update_request.py +103 -34
  14. kaggle/models/model_new_instance_request.py +138 -41
  15. kaggle/models/model_new_request.py +35 -27
  16. kaggle/models/model_update_request.py +32 -25
  17. kaggle/models/start_blob_upload_request.py +192 -195
  18. kaggle/models/start_blob_upload_response.py +98 -98
  19. kaggle/models/upload_file.py +114 -120
  20. kaggle/test/test_authenticate.py +23 -23
  21. {kaggle-1.7.4.5.dist-info → kaggle-1.8.0.dist-info}/METADATA +11 -15
  22. kaggle-1.8.0.dist-info/RECORD +148 -0
  23. kagglesdk/__init__.py +5 -1
  24. kagglesdk/benchmarks/services/__init__.py +0 -0
  25. kagglesdk/benchmarks/services/benchmarks_api_service.py +19 -0
  26. kagglesdk/benchmarks/types/__init__.py +0 -0
  27. kagglesdk/benchmarks/types/benchmark_types.py +307 -0
  28. kagglesdk/benchmarks/types/benchmarks_api_service.py +243 -0
  29. kagglesdk/blobs/services/blob_api_service.py +1 -1
  30. kagglesdk/blobs/types/blob_api_service.py +2 -2
  31. kagglesdk/common/services/__init__.py +0 -0
  32. kagglesdk/common/services/operations_service.py +46 -0
  33. kagglesdk/common/types/file_download.py +1 -1
  34. kagglesdk/common/types/http_redirect.py +1 -1
  35. kagglesdk/common/types/operations.py +194 -0
  36. kagglesdk/common/types/operations_service.py +48 -0
  37. kagglesdk/community/__init__.py +0 -0
  38. kagglesdk/community/types/__init__.py +0 -0
  39. kagglesdk/community/types/content_enums.py +44 -0
  40. kagglesdk/community/types/organization.py +410 -0
  41. kagglesdk/competitions/services/competition_api_service.py +49 -12
  42. kagglesdk/competitions/types/competition.py +14 -0
  43. kagglesdk/competitions/types/competition_api_service.py +1639 -1275
  44. kagglesdk/competitions/types/search_competitions.py +28 -0
  45. kagglesdk/datasets/databundles/__init__.py +0 -0
  46. kagglesdk/datasets/databundles/types/__init__.py +0 -0
  47. kagglesdk/datasets/databundles/types/databundle_api_types.py +540 -0
  48. kagglesdk/datasets/services/dataset_api_service.py +39 -14
  49. kagglesdk/datasets/types/dataset_api_service.py +554 -300
  50. kagglesdk/datasets/types/dataset_enums.py +21 -0
  51. kagglesdk/datasets/types/dataset_service.py +145 -0
  52. kagglesdk/datasets/types/dataset_types.py +74 -74
  53. kagglesdk/datasets/types/search_datasets.py +6 -0
  54. kagglesdk/discussions/__init__.py +0 -0
  55. kagglesdk/discussions/types/__init__.py +0 -0
  56. kagglesdk/discussions/types/search_discussions.py +43 -0
  57. kagglesdk/discussions/types/writeup_enums.py +11 -0
  58. kagglesdk/education/services/education_api_service.py +1 -1
  59. kagglesdk/education/types/education_api_service.py +1 -1
  60. kagglesdk/kaggle_client.py +46 -23
  61. kagglesdk/kaggle_creds.py +148 -0
  62. kagglesdk/kaggle_env.py +89 -25
  63. kagglesdk/kaggle_http_client.py +216 -306
  64. kagglesdk/kaggle_oauth.py +200 -0
  65. kagglesdk/kaggle_object.py +286 -293
  66. kagglesdk/kernels/services/kernels_api_service.py +46 -9
  67. kagglesdk/kernels/types/kernels_api_service.py +635 -159
  68. kagglesdk/kernels/types/kernels_enums.py +6 -0
  69. kagglesdk/kernels/types/search_kernels.py +6 -0
  70. kagglesdk/licenses/__init__.py +0 -0
  71. kagglesdk/licenses/types/__init__.py +0 -0
  72. kagglesdk/licenses/types/licenses_types.py +182 -0
  73. kagglesdk/models/services/model_api_service.py +41 -17
  74. kagglesdk/models/types/model_api_service.py +987 -637
  75. kagglesdk/models/types/model_enums.py +8 -0
  76. kagglesdk/models/types/model_service.py +71 -71
  77. kagglesdk/models/types/model_types.py +1057 -5
  78. kagglesdk/models/types/search_models.py +8 -0
  79. kagglesdk/search/__init__.py +0 -0
  80. kagglesdk/search/services/__init__.py +0 -0
  81. kagglesdk/search/services/search_api_service.py +19 -0
  82. kagglesdk/search/types/__init__.py +0 -0
  83. kagglesdk/search/types/search_api_service.py +2435 -0
  84. kagglesdk/search/types/search_content_shared.py +50 -0
  85. kagglesdk/search/types/search_enums.py +45 -0
  86. kagglesdk/search/types/search_service.py +303 -0
  87. kagglesdk/security/services/iam_service.py +31 -0
  88. kagglesdk/security/services/oauth_service.py +27 -1
  89. kagglesdk/security/types/authentication.py +63 -63
  90. kagglesdk/security/types/iam_service.py +496 -0
  91. kagglesdk/security/types/oauth_service.py +797 -10
  92. kagglesdk/security/types/roles.py +8 -0
  93. kagglesdk/security/types/security_types.py +159 -0
  94. kagglesdk/test/__init__.py +0 -0
  95. kagglesdk/test/test_client.py +20 -22
  96. kagglesdk/users/services/account_service.py +13 -1
  97. kagglesdk/users/services/group_api_service.py +31 -0
  98. kagglesdk/users/types/account_service.py +169 -28
  99. kagglesdk/users/types/group_api_service.py +315 -0
  100. kagglesdk/users/types/group_types.py +165 -0
  101. kagglesdk/users/types/groups_enum.py +8 -0
  102. kagglesdk/users/types/progression_service.py +9 -0
  103. kagglesdk/users/types/search_users.py +23 -0
  104. kagglesdk/users/types/user_avatar.py +226 -0
  105. kaggle/configuration.py +0 -206
  106. kaggle-1.7.4.5.dist-info/RECORD +0 -98
  107. {kaggle-1.7.4.5.dist-info → kaggle-1.8.0.dist-info}/WHEEL +0 -0
  108. {kaggle-1.7.4.5.dist-info → kaggle-1.8.0.dist-info}/entry_points.txt +0 -0
  109. {kaggle-1.7.4.5.dist-info → kaggle-1.8.0.dist-info}/licenses/LICENSE.txt +0 -0
  110. {kaggle/test → kagglesdk/benchmarks}/__init__.py +0 -0
@@ -4,278 +4,560 @@ from kagglesdk.competitions.types.submission_status import SubmissionStatus
4
4
  from kagglesdk.kaggle_object import *
5
5
  from typing import Optional, List
6
6
 
7
- class ApiCreateCodeSubmissionRequest(KaggleObject):
7
+ class ApiCategory(KaggleObject):
8
8
  r"""
9
+ TODO(erdalsivri): Consider reusing with Kaggle.Sdk.Datasets.ApiCategory.
10
+
9
11
  Attributes:
10
- competition_name (str)
11
- kernel_owner (str)
12
- kernel_slug (str)
13
- kernel_version (int)
14
- file_name (str)
15
- submission_description (str)
12
+ ref (str)
13
+ name (str)
14
+ description (str)
15
+ full_path (str)
16
+ competition_count (int)
17
+ dataset_count (int)
18
+ script_count (int)
19
+ total_count (int)
16
20
  """
17
21
 
18
22
  def __init__(self):
19
- self._competition_name = ""
20
- self._kernel_owner = ""
21
- self._kernel_slug = ""
22
- self._kernel_version = None
23
- self._file_name = None
24
- self._submission_description = None
23
+ self._ref = ""
24
+ self._name = None
25
+ self._description = None
26
+ self._full_path = None
27
+ self._competition_count = 0
28
+ self._dataset_count = 0
29
+ self._script_count = 0
30
+ self._total_count = 0
25
31
  self._freeze()
26
32
 
27
33
  @property
28
- def competition_name(self) -> str:
29
- return self._competition_name
34
+ def ref(self) -> str:
35
+ return self._ref
30
36
 
31
- @competition_name.setter
32
- def competition_name(self, competition_name: str):
33
- if competition_name is None:
34
- del self.competition_name
37
+ @ref.setter
38
+ def ref(self, ref: str):
39
+ if ref is None:
40
+ del self.ref
35
41
  return
36
- if not isinstance(competition_name, str):
37
- raise TypeError('competition_name must be of type str')
38
- self._competition_name = competition_name
42
+ if not isinstance(ref, str):
43
+ raise TypeError('ref must be of type str')
44
+ self._ref = ref
39
45
 
40
46
  @property
41
- def kernel_owner(self) -> str:
42
- return self._kernel_owner
47
+ def name(self) -> str:
48
+ return self._name or ""
43
49
 
44
- @kernel_owner.setter
45
- def kernel_owner(self, kernel_owner: str):
46
- if kernel_owner is None:
47
- del self.kernel_owner
50
+ @name.setter
51
+ def name(self, name: Optional[str]):
52
+ if name is None:
53
+ del self.name
48
54
  return
49
- if not isinstance(kernel_owner, str):
50
- raise TypeError('kernel_owner must be of type str')
51
- self._kernel_owner = kernel_owner
55
+ if not isinstance(name, str):
56
+ raise TypeError('name must be of type str')
57
+ self._name = name
52
58
 
53
59
  @property
54
- def kernel_slug(self) -> str:
55
- return self._kernel_slug
60
+ def description(self) -> str:
61
+ return self._description or ""
56
62
 
57
- @kernel_slug.setter
58
- def kernel_slug(self, kernel_slug: str):
59
- if kernel_slug is None:
60
- del self.kernel_slug
63
+ @description.setter
64
+ def description(self, description: Optional[str]):
65
+ if description is None:
66
+ del self.description
61
67
  return
62
- if not isinstance(kernel_slug, str):
63
- raise TypeError('kernel_slug must be of type str')
64
- self._kernel_slug = kernel_slug
68
+ if not isinstance(description, str):
69
+ raise TypeError('description must be of type str')
70
+ self._description = description
65
71
 
66
72
  @property
67
- def kernel_version(self) -> int:
68
- return self._kernel_version or 0
73
+ def full_path(self) -> str:
74
+ return self._full_path or ""
69
75
 
70
- @kernel_version.setter
71
- def kernel_version(self, kernel_version: int):
72
- if kernel_version is None:
73
- del self.kernel_version
76
+ @full_path.setter
77
+ def full_path(self, full_path: Optional[str]):
78
+ if full_path is None:
79
+ del self.full_path
74
80
  return
75
- if not isinstance(kernel_version, int):
76
- raise TypeError('kernel_version must be of type int')
77
- self._kernel_version = kernel_version
81
+ if not isinstance(full_path, str):
82
+ raise TypeError('full_path must be of type str')
83
+ self._full_path = full_path
78
84
 
79
85
  @property
80
- def file_name(self) -> str:
81
- return self._file_name or ""
86
+ def competition_count(self) -> int:
87
+ return self._competition_count
82
88
 
83
- @file_name.setter
84
- def file_name(self, file_name: str):
85
- if file_name is None:
86
- del self.file_name
89
+ @competition_count.setter
90
+ def competition_count(self, competition_count: int):
91
+ if competition_count is None:
92
+ del self.competition_count
87
93
  return
88
- if not isinstance(file_name, str):
89
- raise TypeError('file_name must be of type str')
90
- self._file_name = file_name
94
+ if not isinstance(competition_count, int):
95
+ raise TypeError('competition_count must be of type int')
96
+ self._competition_count = competition_count
91
97
 
92
98
  @property
93
- def submission_description(self) -> str:
94
- return self._submission_description or ""
99
+ def dataset_count(self) -> int:
100
+ return self._dataset_count
95
101
 
96
- @submission_description.setter
97
- def submission_description(self, submission_description: str):
98
- if submission_description is None:
99
- del self.submission_description
102
+ @dataset_count.setter
103
+ def dataset_count(self, dataset_count: int):
104
+ if dataset_count is None:
105
+ del self.dataset_count
100
106
  return
101
- if not isinstance(submission_description, str):
102
- raise TypeError('submission_description must be of type str')
103
- self._submission_description = submission_description
107
+ if not isinstance(dataset_count, int):
108
+ raise TypeError('dataset_count must be of type int')
109
+ self._dataset_count = dataset_count
104
110
 
105
- def endpoint(self):
106
- path = '/api/v1/competitions/submissions/submit-notebook/{competition_name}'
107
- return path.format_map(self.to_field_map(self))
111
+ @property
112
+ def script_count(self) -> int:
113
+ return self._script_count
114
+
115
+ @script_count.setter
116
+ def script_count(self, script_count: int):
117
+ if script_count is None:
118
+ del self.script_count
119
+ return
120
+ if not isinstance(script_count, int):
121
+ raise TypeError('script_count must be of type int')
122
+ self._script_count = script_count
108
123
 
124
+ @property
125
+ def total_count(self) -> int:
126
+ return self._total_count
109
127
 
110
- @staticmethod
111
- def method():
112
- return 'POST'
128
+ @total_count.setter
129
+ def total_count(self, total_count: int):
130
+ if total_count is None:
131
+ del self.total_count
132
+ return
133
+ if not isinstance(total_count, int):
134
+ raise TypeError('total_count must be of type int')
135
+ self._total_count = total_count
113
136
 
114
137
 
115
- class ApiCreateCodeSubmissionResponse(KaggleObject):
138
+ class ApiCompetition(KaggleObject):
116
139
  r"""
117
140
  Attributes:
118
- message (str)
119
- ref (int)
141
+ id (int)
142
+ ref (str)
143
+ title (str)
144
+ url (str)
145
+ description (str)
146
+ organization_name (str)
147
+ organization_ref (str)
148
+ category (str)
149
+ reward (str)
150
+ tags (ApiCategory)
151
+ deadline (datetime)
152
+ kernel_count (int)
153
+ team_count (int)
154
+ user_has_entered (bool)
155
+ user_rank (int)
156
+ merger_deadline (datetime)
157
+ new_entrant_deadline (datetime)
158
+ enabled_date (datetime)
159
+ max_daily_submissions (int)
160
+ max_team_size (int)
161
+ evaluation_metric (str)
162
+ awards_points (bool)
163
+ is_kernels_submissions_only (bool)
164
+ submissions_disabled (bool)
165
+ thumbnail_image_url (str)
166
+ host_name (str)
120
167
  """
121
168
 
122
169
  def __init__(self):
123
- self._message = ""
124
- self._ref = 0
170
+ self._id = 0
171
+ self._ref = ""
172
+ self._title = None
173
+ self._url = None
174
+ self._description = None
175
+ self._organization_name = None
176
+ self._organization_ref = None
177
+ self._category = None
178
+ self._reward = None
179
+ self._tags = []
180
+ self._deadline = None
181
+ self._kernel_count = 0
182
+ self._team_count = 0
183
+ self._user_has_entered = False
184
+ self._user_rank = None
185
+ self._merger_deadline = None
186
+ self._new_entrant_deadline = None
187
+ self._enabled_date = None
188
+ self._max_daily_submissions = 0
189
+ self._max_team_size = None
190
+ self._evaluation_metric = None
191
+ self._awards_points = False
192
+ self._is_kernels_submissions_only = False
193
+ self._submissions_disabled = False
194
+ self._thumbnail_image_url = None
195
+ self._host_name = ""
125
196
  self._freeze()
126
197
 
127
198
  @property
128
- def message(self) -> str:
129
- return self._message
199
+ def id(self) -> int:
200
+ return self._id
130
201
 
131
- @message.setter
132
- def message(self, message: str):
133
- if message is None:
134
- del self.message
202
+ @id.setter
203
+ def id(self, id: int):
204
+ if id is None:
205
+ del self.id
135
206
  return
136
- if not isinstance(message, str):
137
- raise TypeError('message must be of type str')
138
- self._message = message
207
+ if not isinstance(id, int):
208
+ raise TypeError('id must be of type int')
209
+ self._id = id
139
210
 
140
211
  @property
141
- def ref(self) -> int:
212
+ def ref(self) -> str:
142
213
  return self._ref
143
214
 
144
215
  @ref.setter
145
- def ref(self, ref: int):
216
+ def ref(self, ref: str):
146
217
  if ref is None:
147
218
  del self.ref
148
219
  return
149
- if not isinstance(ref, int):
150
- raise TypeError('ref must be of type int')
220
+ if not isinstance(ref, str):
221
+ raise TypeError('ref must be of type str')
151
222
  self._ref = ref
152
223
 
224
+ @property
225
+ def title(self) -> str:
226
+ return self._title or ""
153
227
 
154
- class ApiCreateSubmissionRequest(KaggleObject):
155
- r"""
156
- Attributes:
157
- competition_name (str)
158
- Competition name. Example: 'titanic'.
159
- blob_file_tokens (str)
160
- Token identifying location of uploaded submission file.
161
- submission_description (str)
162
- Description of competition submission.
163
- """
228
+ @title.setter
229
+ def title(self, title: Optional[str]):
230
+ if title is None:
231
+ del self.title
232
+ return
233
+ if not isinstance(title, str):
234
+ raise TypeError('title must be of type str')
235
+ self._title = title
164
236
 
165
- def __init__(self):
166
- self._competition_name = ""
167
- self._blob_file_tokens = ""
168
- self._submission_description = None
169
- self._freeze()
237
+ @property
238
+ def url(self) -> str:
239
+ return self._url or ""
240
+
241
+ @url.setter
242
+ def url(self, url: Optional[str]):
243
+ if url is None:
244
+ del self.url
245
+ return
246
+ if not isinstance(url, str):
247
+ raise TypeError('url must be of type str')
248
+ self._url = url
170
249
 
171
250
  @property
172
- def competition_name(self) -> str:
173
- """Competition name. Example: 'titanic'."""
174
- return self._competition_name
251
+ def description(self) -> str:
252
+ return self._description or ""
175
253
 
176
- @competition_name.setter
177
- def competition_name(self, competition_name: str):
178
- if competition_name is None:
179
- del self.competition_name
254
+ @description.setter
255
+ def description(self, description: Optional[str]):
256
+ if description is None:
257
+ del self.description
180
258
  return
181
- if not isinstance(competition_name, str):
182
- raise TypeError('competition_name must be of type str')
183
- self._competition_name = competition_name
259
+ if not isinstance(description, str):
260
+ raise TypeError('description must be of type str')
261
+ self._description = description
184
262
 
185
263
  @property
186
- def blob_file_tokens(self) -> str:
187
- """Token identifying location of uploaded submission file."""
188
- return self._blob_file_tokens
264
+ def organization_name(self) -> str:
265
+ return self._organization_name or ""
189
266
 
190
- @blob_file_tokens.setter
191
- def blob_file_tokens(self, blob_file_tokens: str):
192
- if blob_file_tokens is None:
193
- del self.blob_file_tokens
267
+ @organization_name.setter
268
+ def organization_name(self, organization_name: Optional[str]):
269
+ if organization_name is None:
270
+ del self.organization_name
194
271
  return
195
- if not isinstance(blob_file_tokens, str):
196
- raise TypeError('blob_file_tokens must be of type str')
197
- self._blob_file_tokens = blob_file_tokens
272
+ if not isinstance(organization_name, str):
273
+ raise TypeError('organization_name must be of type str')
274
+ self._organization_name = organization_name
198
275
 
199
276
  @property
200
- def submission_description(self) -> str:
201
- """Description of competition submission."""
202
- return self._submission_description or ""
277
+ def organization_ref(self) -> str:
278
+ return self._organization_ref or ""
203
279
 
204
- @submission_description.setter
205
- def submission_description(self, submission_description: str):
206
- if submission_description is None:
207
- del self.submission_description
280
+ @organization_ref.setter
281
+ def organization_ref(self, organization_ref: Optional[str]):
282
+ if organization_ref is None:
283
+ del self.organization_ref
208
284
  return
209
- if not isinstance(submission_description, str):
210
- raise TypeError('submission_description must be of type str')
211
- self._submission_description = submission_description
285
+ if not isinstance(organization_ref, str):
286
+ raise TypeError('organization_ref must be of type str')
287
+ self._organization_ref = organization_ref
212
288
 
213
- def endpoint(self):
214
- path = '/api/v1/competitions/submissions/submit/{competition_name}'
215
- return path.format_map(self.to_field_map(self))
289
+ @property
290
+ def category(self) -> str:
291
+ return self._category or ""
216
292
 
293
+ @category.setter
294
+ def category(self, category: Optional[str]):
295
+ if category is None:
296
+ del self.category
297
+ return
298
+ if not isinstance(category, str):
299
+ raise TypeError('category must be of type str')
300
+ self._category = category
217
301
 
218
- @staticmethod
219
- def method():
220
- return 'POST'
302
+ @property
303
+ def reward(self) -> str:
304
+ return self._reward or ""
221
305
 
306
+ @reward.setter
307
+ def reward(self, reward: Optional[str]):
308
+ if reward is None:
309
+ del self.reward
310
+ return
311
+ if not isinstance(reward, str):
312
+ raise TypeError('reward must be of type str')
313
+ self._reward = reward
222
314
 
223
- class ApiCreateSubmissionResponse(KaggleObject):
224
- r"""
225
- Attributes:
226
- message (str)
227
- ref (int)
228
- """
315
+ @property
316
+ def tags(self) -> Optional[List[Optional['ApiCategory']]]:
317
+ return self._tags
229
318
 
230
- def __init__(self):
231
- self._message = ""
232
- self._ref = 0
233
- self._freeze()
319
+ @tags.setter
320
+ def tags(self, tags: Optional[List[Optional['ApiCategory']]]):
321
+ if tags is None:
322
+ del self.tags
323
+ return
324
+ if not isinstance(tags, list):
325
+ raise TypeError('tags must be of type list')
326
+ if not all([isinstance(t, ApiCategory) for t in tags]):
327
+ raise TypeError('tags must contain only items of type ApiCategory')
328
+ self._tags = tags
234
329
 
235
330
  @property
236
- def message(self) -> str:
237
- return self._message
331
+ def deadline(self) -> datetime:
332
+ return self._deadline
238
333
 
239
- @message.setter
240
- def message(self, message: str):
241
- if message is None:
242
- del self.message
334
+ @deadline.setter
335
+ def deadline(self, deadline: datetime):
336
+ if deadline is None:
337
+ del self.deadline
243
338
  return
244
- if not isinstance(message, str):
245
- raise TypeError('message must be of type str')
246
- self._message = message
339
+ if not isinstance(deadline, datetime):
340
+ raise TypeError('deadline must be of type datetime')
341
+ self._deadline = deadline
247
342
 
248
343
  @property
249
- def ref(self) -> int:
250
- return self._ref
344
+ def kernel_count(self) -> int:
345
+ return self._kernel_count
251
346
 
252
- @ref.setter
253
- def ref(self, ref: int):
254
- if ref is None:
255
- del self.ref
347
+ @kernel_count.setter
348
+ def kernel_count(self, kernel_count: int):
349
+ if kernel_count is None:
350
+ del self.kernel_count
256
351
  return
257
- if not isinstance(ref, int):
258
- raise TypeError('ref must be of type int')
259
- self._ref = ref
352
+ if not isinstance(kernel_count, int):
353
+ raise TypeError('kernel_count must be of type int')
354
+ self._kernel_count = kernel_count
260
355
 
356
+ @property
357
+ def team_count(self) -> int:
358
+ return self._team_count
261
359
 
262
- class ApiDownloadDataFileRequest(KaggleObject):
360
+ @team_count.setter
361
+ def team_count(self, team_count: int):
362
+ if team_count is None:
363
+ del self.team_count
364
+ return
365
+ if not isinstance(team_count, int):
366
+ raise TypeError('team_count must be of type int')
367
+ self._team_count = team_count
368
+
369
+ @property
370
+ def user_has_entered(self) -> bool:
371
+ return self._user_has_entered
372
+
373
+ @user_has_entered.setter
374
+ def user_has_entered(self, user_has_entered: bool):
375
+ if user_has_entered is None:
376
+ del self.user_has_entered
377
+ return
378
+ if not isinstance(user_has_entered, bool):
379
+ raise TypeError('user_has_entered must be of type bool')
380
+ self._user_has_entered = user_has_entered
381
+
382
+ @property
383
+ def user_rank(self) -> int:
384
+ return self._user_rank or 0
385
+
386
+ @user_rank.setter
387
+ def user_rank(self, user_rank: Optional[int]):
388
+ if user_rank is None:
389
+ del self.user_rank
390
+ return
391
+ if not isinstance(user_rank, int):
392
+ raise TypeError('user_rank must be of type int')
393
+ self._user_rank = user_rank
394
+
395
+ @property
396
+ def merger_deadline(self) -> datetime:
397
+ return self._merger_deadline
398
+
399
+ @merger_deadline.setter
400
+ def merger_deadline(self, merger_deadline: datetime):
401
+ if merger_deadline is None:
402
+ del self.merger_deadline
403
+ return
404
+ if not isinstance(merger_deadline, datetime):
405
+ raise TypeError('merger_deadline must be of type datetime')
406
+ self._merger_deadline = merger_deadline
407
+
408
+ @property
409
+ def new_entrant_deadline(self) -> datetime:
410
+ return self._new_entrant_deadline
411
+
412
+ @new_entrant_deadline.setter
413
+ def new_entrant_deadline(self, new_entrant_deadline: datetime):
414
+ if new_entrant_deadline is None:
415
+ del self.new_entrant_deadline
416
+ return
417
+ if not isinstance(new_entrant_deadline, datetime):
418
+ raise TypeError('new_entrant_deadline must be of type datetime')
419
+ self._new_entrant_deadline = new_entrant_deadline
420
+
421
+ @property
422
+ def enabled_date(self) -> datetime:
423
+ return self._enabled_date
424
+
425
+ @enabled_date.setter
426
+ def enabled_date(self, enabled_date: datetime):
427
+ if enabled_date is None:
428
+ del self.enabled_date
429
+ return
430
+ if not isinstance(enabled_date, datetime):
431
+ raise TypeError('enabled_date must be of type datetime')
432
+ self._enabled_date = enabled_date
433
+
434
+ @property
435
+ def max_daily_submissions(self) -> int:
436
+ return self._max_daily_submissions
437
+
438
+ @max_daily_submissions.setter
439
+ def max_daily_submissions(self, max_daily_submissions: int):
440
+ if max_daily_submissions is None:
441
+ del self.max_daily_submissions
442
+ return
443
+ if not isinstance(max_daily_submissions, int):
444
+ raise TypeError('max_daily_submissions must be of type int')
445
+ self._max_daily_submissions = max_daily_submissions
446
+
447
+ @property
448
+ def max_team_size(self) -> int:
449
+ return self._max_team_size or 0
450
+
451
+ @max_team_size.setter
452
+ def max_team_size(self, max_team_size: Optional[int]):
453
+ if max_team_size is None:
454
+ del self.max_team_size
455
+ return
456
+ if not isinstance(max_team_size, int):
457
+ raise TypeError('max_team_size must be of type int')
458
+ self._max_team_size = max_team_size
459
+
460
+ @property
461
+ def evaluation_metric(self) -> str:
462
+ return self._evaluation_metric or ""
463
+
464
+ @evaluation_metric.setter
465
+ def evaluation_metric(self, evaluation_metric: Optional[str]):
466
+ if evaluation_metric is None:
467
+ del self.evaluation_metric
468
+ return
469
+ if not isinstance(evaluation_metric, str):
470
+ raise TypeError('evaluation_metric must be of type str')
471
+ self._evaluation_metric = evaluation_metric
472
+
473
+ @property
474
+ def awards_points(self) -> bool:
475
+ return self._awards_points
476
+
477
+ @awards_points.setter
478
+ def awards_points(self, awards_points: bool):
479
+ if awards_points is None:
480
+ del self.awards_points
481
+ return
482
+ if not isinstance(awards_points, bool):
483
+ raise TypeError('awards_points must be of type bool')
484
+ self._awards_points = awards_points
485
+
486
+ @property
487
+ def is_kernels_submissions_only(self) -> bool:
488
+ return self._is_kernels_submissions_only
489
+
490
+ @is_kernels_submissions_only.setter
491
+ def is_kernels_submissions_only(self, is_kernels_submissions_only: bool):
492
+ if is_kernels_submissions_only is None:
493
+ del self.is_kernels_submissions_only
494
+ return
495
+ if not isinstance(is_kernels_submissions_only, bool):
496
+ raise TypeError('is_kernels_submissions_only must be of type bool')
497
+ self._is_kernels_submissions_only = is_kernels_submissions_only
498
+
499
+ @property
500
+ def submissions_disabled(self) -> bool:
501
+ return self._submissions_disabled
502
+
503
+ @submissions_disabled.setter
504
+ def submissions_disabled(self, submissions_disabled: bool):
505
+ if submissions_disabled is None:
506
+ del self.submissions_disabled
507
+ return
508
+ if not isinstance(submissions_disabled, bool):
509
+ raise TypeError('submissions_disabled must be of type bool')
510
+ self._submissions_disabled = submissions_disabled
511
+
512
+ @property
513
+ def thumbnail_image_url(self) -> str:
514
+ return self._thumbnail_image_url or ""
515
+
516
+ @thumbnail_image_url.setter
517
+ def thumbnail_image_url(self, thumbnail_image_url: Optional[str]):
518
+ if thumbnail_image_url is None:
519
+ del self.thumbnail_image_url
520
+ return
521
+ if not isinstance(thumbnail_image_url, str):
522
+ raise TypeError('thumbnail_image_url must be of type str')
523
+ self._thumbnail_image_url = thumbnail_image_url
524
+
525
+ @property
526
+ def host_name(self) -> str:
527
+ return self._host_name
528
+
529
+ @host_name.setter
530
+ def host_name(self, host_name: str):
531
+ if host_name is None:
532
+ del self.host_name
533
+ return
534
+ if not isinstance(host_name, str):
535
+ raise TypeError('host_name must be of type str')
536
+ self._host_name = host_name
537
+
538
+
539
+ class ApiCreateCodeSubmissionRequest(KaggleObject):
263
540
  r"""
264
541
  Attributes:
265
542
  competition_name (str)
266
- Competition name. Example: 'titanic'.
543
+ kernel_owner (str)
544
+ kernel_slug (str)
545
+ kernel_version (int)
267
546
  file_name (str)
268
- Name of the file to download. Example: 'train/foo/bar.png'.
547
+ submission_description (str)
269
548
  """
270
549
 
271
550
  def __init__(self):
272
551
  self._competition_name = ""
273
- self._file_name = ""
552
+ self._kernel_owner = ""
553
+ self._kernel_slug = ""
554
+ self._kernel_version = None
555
+ self._file_name = None
556
+ self._submission_description = None
274
557
  self._freeze()
275
558
 
276
559
  @property
277
560
  def competition_name(self) -> str:
278
- """Competition name. Example: 'titanic'."""
279
561
  return self._competition_name
280
562
 
281
563
  @competition_name.setter
@@ -287,13 +569,51 @@ class ApiDownloadDataFileRequest(KaggleObject):
287
569
  raise TypeError('competition_name must be of type str')
288
570
  self._competition_name = competition_name
289
571
 
572
+ @property
573
+ def kernel_owner(self) -> str:
574
+ return self._kernel_owner
575
+
576
+ @kernel_owner.setter
577
+ def kernel_owner(self, kernel_owner: str):
578
+ if kernel_owner is None:
579
+ del self.kernel_owner
580
+ return
581
+ if not isinstance(kernel_owner, str):
582
+ raise TypeError('kernel_owner must be of type str')
583
+ self._kernel_owner = kernel_owner
584
+
585
+ @property
586
+ def kernel_slug(self) -> str:
587
+ return self._kernel_slug
588
+
589
+ @kernel_slug.setter
590
+ def kernel_slug(self, kernel_slug: str):
591
+ if kernel_slug is None:
592
+ del self.kernel_slug
593
+ return
594
+ if not isinstance(kernel_slug, str):
595
+ raise TypeError('kernel_slug must be of type str')
596
+ self._kernel_slug = kernel_slug
597
+
598
+ @property
599
+ def kernel_version(self) -> int:
600
+ return self._kernel_version or 0
601
+
602
+ @kernel_version.setter
603
+ def kernel_version(self, kernel_version: Optional[int]):
604
+ if kernel_version is None:
605
+ del self.kernel_version
606
+ return
607
+ if not isinstance(kernel_version, int):
608
+ raise TypeError('kernel_version must be of type int')
609
+ self._kernel_version = kernel_version
610
+
290
611
  @property
291
612
  def file_name(self) -> str:
292
- """Name of the file to download. Example: 'train/foo/bar.png'."""
293
- return self._file_name
613
+ return self._file_name or ""
294
614
 
295
615
  @file_name.setter
296
- def file_name(self, file_name: str):
616
+ def file_name(self, file_name: Optional[str]):
297
617
  if file_name is None:
298
618
  del self.file_name
299
619
  return
@@ -301,95 +621,83 @@ class ApiDownloadDataFileRequest(KaggleObject):
301
621
  raise TypeError('file_name must be of type str')
302
622
  self._file_name = file_name
303
623
 
304
- def endpoint(self):
305
- path = '/api/v1/competitions/data/download/{competition_name}/{file_name}'
306
- return path.format_map(self.to_field_map(self))
307
-
308
- @staticmethod
309
- def endpoint_path():
310
- return '/api/v1/competitions/data/download/{competition_name}/{file_name}'
311
-
312
-
313
- class ApiDownloadDataFilesRequest(KaggleObject):
314
- r"""
315
- Attributes:
316
- competition_name (str)
317
- Competition name. Example: 'titanic'.
318
- """
319
-
320
- def __init__(self):
321
- self._competition_name = ""
322
- self._freeze()
323
-
324
624
  @property
325
- def competition_name(self) -> str:
326
- """Competition name. Example: 'titanic'."""
327
- return self._competition_name
625
+ def submission_description(self) -> str:
626
+ return self._submission_description or ""
328
627
 
329
- @competition_name.setter
330
- def competition_name(self, competition_name: str):
331
- if competition_name is None:
332
- del self.competition_name
628
+ @submission_description.setter
629
+ def submission_description(self, submission_description: Optional[str]):
630
+ if submission_description is None:
631
+ del self.submission_description
333
632
  return
334
- if not isinstance(competition_name, str):
335
- raise TypeError('competition_name must be of type str')
336
- self._competition_name = competition_name
633
+ if not isinstance(submission_description, str):
634
+ raise TypeError('submission_description must be of type str')
635
+ self._submission_description = submission_description
337
636
 
338
637
  def endpoint(self):
339
- path = '/api/v1/competitions/data/download-all/{competition_name}'
638
+ path = '/api/v1/competitions/submissions/submit-notebook/{competition_name}'
340
639
  return path.format_map(self.to_field_map(self))
341
640
 
641
+
342
642
  @staticmethod
343
- def endpoint_path():
344
- return '/api/v1/competitions/data/download-all/{competition_name}'
643
+ def method():
644
+ return 'POST'
345
645
 
346
646
 
347
- class ApiDownloadLeaderboardRequest(KaggleObject):
647
+ class ApiCreateCodeSubmissionResponse(KaggleObject):
348
648
  r"""
349
649
  Attributes:
350
- competition_name (str)
650
+ message (str)
651
+ ref (int)
351
652
  """
352
653
 
353
654
  def __init__(self):
354
- self._competition_name = ""
655
+ self._message = ""
656
+ self._ref = 0
355
657
  self._freeze()
356
658
 
357
659
  @property
358
- def competition_name(self) -> str:
359
- return self._competition_name
660
+ def message(self) -> str:
661
+ return self._message
360
662
 
361
- @competition_name.setter
362
- def competition_name(self, competition_name: str):
363
- if competition_name is None:
364
- del self.competition_name
663
+ @message.setter
664
+ def message(self, message: str):
665
+ if message is None:
666
+ del self.message
365
667
  return
366
- if not isinstance(competition_name, str):
367
- raise TypeError('competition_name must be of type str')
368
- self._competition_name = competition_name
668
+ if not isinstance(message, str):
669
+ raise TypeError('message must be of type str')
670
+ self._message = message
369
671
 
370
- def endpoint(self):
371
- path = '/api/v1/competitions/{competition_name}/leaderboard/download'
372
- return path.format_map(self.to_field_map(self))
672
+ @property
673
+ def ref(self) -> int:
674
+ return self._ref
373
675
 
374
- @staticmethod
375
- def endpoint_path():
376
- return '/api/v1/competitions/{competition_name}/leaderboard/download'
676
+ @ref.setter
677
+ def ref(self, ref: int):
678
+ if ref is None:
679
+ del self.ref
680
+ return
681
+ if not isinstance(ref, int):
682
+ raise TypeError('ref must be of type int')
683
+ self._ref = ref
377
684
 
378
685
 
379
- class ApiGetLeaderboardRequest(KaggleObject):
686
+ class ApiCreateSubmissionRequest(KaggleObject):
380
687
  r"""
381
688
  Attributes:
382
689
  competition_name (str)
383
690
  Competition name. Example: 'titanic'.
384
- override_public (bool)
385
- By default we return the private leaderboard if it's available, otherwise
386
- the public LB. This flag lets you override to get public even if private
387
- is available.
691
+ blob_file_tokens (str)
692
+ Token identifying location of uploaded submission file.
693
+ submission_description (str)
694
+ Description of competition submission.
388
695
  """
389
696
 
390
697
  def __init__(self):
391
698
  self._competition_name = ""
392
- self._override_public = None
699
+ self._blob_file_tokens = ""
700
+ self._submission_description = None
393
701
  self._freeze()
394
702
 
395
703
  @property
@@ -407,72 +715,70 @@ class ApiGetLeaderboardRequest(KaggleObject):
407
715
  self._competition_name = competition_name
408
716
 
409
717
  @property
410
- def override_public(self) -> bool:
411
- r"""
412
- By default we return the private leaderboard if it's available, otherwise
413
- the public LB. This flag lets you override to get public even if private
414
- is available.
415
- """
416
- return self._override_public or False
718
+ def blob_file_tokens(self) -> str:
719
+ """Token identifying location of uploaded submission file."""
720
+ return self._blob_file_tokens
417
721
 
418
- @override_public.setter
419
- def override_public(self, override_public: bool):
420
- if override_public is None:
421
- del self.override_public
722
+ @blob_file_tokens.setter
723
+ def blob_file_tokens(self, blob_file_tokens: str):
724
+ if blob_file_tokens is None:
725
+ del self.blob_file_tokens
422
726
  return
423
- if not isinstance(override_public, bool):
424
- raise TypeError('override_public must be of type bool')
425
- self._override_public = override_public
727
+ if not isinstance(blob_file_tokens, str):
728
+ raise TypeError('blob_file_tokens must be of type str')
729
+ self._blob_file_tokens = blob_file_tokens
730
+
731
+ @property
732
+ def submission_description(self) -> str:
733
+ """Description of competition submission."""
734
+ return self._submission_description or ""
735
+
736
+ @submission_description.setter
737
+ def submission_description(self, submission_description: Optional[str]):
738
+ if submission_description is None:
739
+ del self.submission_description
740
+ return
741
+ if not isinstance(submission_description, str):
742
+ raise TypeError('submission_description must be of type str')
743
+ self._submission_description = submission_description
426
744
 
427
745
  def endpoint(self):
428
- path = '/api/v1/competitions/{competition_name}/leaderboard/view'
746
+ path = '/api/v1/competitions/submissions/submit/{competition_name}'
429
747
  return path.format_map(self.to_field_map(self))
430
748
 
749
+
431
750
  @staticmethod
432
- def endpoint_path():
433
- return '/api/v1/competitions/{competition_name}/leaderboard/view'
751
+ def method():
752
+ return 'POST'
434
753
 
435
754
 
436
- class ApiGetLeaderboardResponse(KaggleObject):
755
+ class ApiCreateSubmissionResponse(KaggleObject):
437
756
  r"""
438
757
  Attributes:
439
- submissions (ApiLeaderboardSubmission)
758
+ message (str)
759
+ ref (int)
440
760
  """
441
761
 
442
762
  def __init__(self):
443
- self._submissions = []
763
+ self._message = ""
764
+ self._ref = 0
444
765
  self._freeze()
445
766
 
446
767
  @property
447
- def submissions(self) -> Optional[List[Optional['ApiLeaderboardSubmission']]]:
448
- return self._submissions
768
+ def message(self) -> str:
769
+ return self._message
449
770
 
450
- @submissions.setter
451
- def submissions(self, submissions: Optional[List[Optional['ApiLeaderboardSubmission']]]):
452
- if submissions is None:
453
- del self.submissions
771
+ @message.setter
772
+ def message(self, message: str):
773
+ if message is None:
774
+ del self.message
454
775
  return
455
- if not isinstance(submissions, list):
456
- raise TypeError('submissions must be of type list')
457
- if not all([isinstance(t, ApiLeaderboardSubmission) for t in submissions]):
458
- raise TypeError('submissions must contain only items of type ApiLeaderboardSubmission')
459
- self._submissions = submissions
460
-
461
-
462
- class ApiGetSubmissionRequest(KaggleObject):
463
- r"""
464
- Attributes:
465
- ref (int)
466
- SubmissionId.
467
- """
468
-
469
- def __init__(self):
470
- self._ref = 0
471
- self._freeze()
776
+ if not isinstance(message, str):
777
+ raise TypeError('message must be of type str')
778
+ self._message = message
472
779
 
473
780
  @property
474
781
  def ref(self) -> int:
475
- """SubmissionId."""
476
782
  return self._ref
477
783
 
478
784
  @ref.setter
@@ -484,242 +790,118 @@ class ApiGetSubmissionRequest(KaggleObject):
484
790
  raise TypeError('ref must be of type int')
485
791
  self._ref = ref
486
792
 
487
- def endpoint(self):
488
- path = '/api/v1/competitions/submissions/get/{ref}'
489
- return path.format_map(self.to_field_map(self))
490
-
491
-
492
- @staticmethod
493
- def method():
494
- return 'POST'
495
-
496
-
497
- class ApiLeaderboardSubmission(KaggleObject):
498
- r"""
499
- Attributes:
500
- team_id (int)
501
- team_name (str)
502
- submission_date (datetime)
503
- score (str)
504
- """
505
-
506
- def __init__(self):
507
- self._team_id = 0
508
- self._team_name = None
509
- self._submission_date = None
510
- self._score = None
511
- self._freeze()
512
-
513
- @property
514
- def team_id(self) -> int:
515
- return self._team_id
516
-
517
- @team_id.setter
518
- def team_id(self, team_id: int):
519
- if team_id is None:
520
- del self.team_id
521
- return
522
- if not isinstance(team_id, int):
523
- raise TypeError('team_id must be of type int')
524
- self._team_id = team_id
525
-
526
- @property
527
- def team_name(self) -> str:
528
- return self._team_name or ""
529
-
530
- @team_name.setter
531
- def team_name(self, team_name: str):
532
- if team_name is None:
533
- del self.team_name
534
- return
535
- if not isinstance(team_name, str):
536
- raise TypeError('team_name must be of type str')
537
- self._team_name = team_name
538
-
539
- @property
540
- def submission_date(self) -> datetime:
541
- return self._submission_date
542
-
543
- @submission_date.setter
544
- def submission_date(self, submission_date: datetime):
545
- if submission_date is None:
546
- del self.submission_date
547
- return
548
- if not isinstance(submission_date, datetime):
549
- raise TypeError('submission_date must be of type datetime')
550
- self._submission_date = submission_date
551
-
552
- @property
553
- def score(self) -> str:
554
- return self._score or ""
555
-
556
- @score.setter
557
- def score(self, score: str):
558
- if score is None:
559
- del self.score
560
- return
561
- if not isinstance(score, str):
562
- raise TypeError('score must be of type str')
563
- self._score = score
564
-
565
793
 
566
- class ApiListCompetitionsRequest(KaggleObject):
794
+ class ApiDataFile(KaggleObject):
567
795
  r"""
568
796
  Attributes:
569
- group (CompetitionListTab)
570
- Filter competitions by a particular group (default is 'general').
571
- One of 'general', 'entered' and 'inClass'.
572
- category (HostSegment)
573
- Filter competitions by a particular category (default is 'all').
574
- One of 'all', 'featured', 'research', 'recruitment', 'gettingStarted',
575
- 'masters', 'playground'.
576
- sort_by (CompetitionSortBy)
577
- Sort the results (default is 'latestDeadline').
578
- One of 'grouped', 'prize', 'earliestDeadline', 'latestDeadline',
579
- 'numberOfTeams', 'recentlyCreated'.
580
- search (str)
581
- Filter competitions by search terms.
582
- page (int)
583
- Page number (default is 1).
797
+ ref (str)
798
+ name (str)
799
+ description (str)
800
+ total_bytes (int)
801
+ url (str)
802
+ creation_date (datetime)
584
803
  """
585
804
 
586
805
  def __init__(self):
587
- self._group = None
588
- self._category = None
589
- self._sort_by = None
590
- self._search = None
591
- self._page = None
806
+ self._ref = ""
807
+ self._name = None
808
+ self._description = None
809
+ self._total_bytes = 0
810
+ self._url = None
811
+ self._creation_date = None
592
812
  self._freeze()
593
813
 
594
814
  @property
595
- def group(self) -> 'CompetitionListTab':
596
- r"""
597
- Filter competitions by a particular group (default is 'general').
598
- One of 'general', 'entered' and 'inClass'.
599
- """
600
- return self._group or CompetitionListTab.COMPETITION_LIST_TAB_GENERAL
601
-
602
- @group.setter
603
- def group(self, group: 'CompetitionListTab'):
604
- if group is None:
605
- del self.group
606
- return
607
- if not isinstance(group, CompetitionListTab):
608
- raise TypeError('group must be of type CompetitionListTab')
609
- self._group = group
610
-
611
- @property
612
- def category(self) -> 'HostSegment':
613
- r"""
614
- Filter competitions by a particular category (default is 'all').
615
- One of 'all', 'featured', 'research', 'recruitment', 'gettingStarted',
616
- 'masters', 'playground'.
617
- """
618
- return self._category or HostSegment.HOST_SEGMENT_UNSPECIFIED
815
+ def ref(self) -> str:
816
+ return self._ref
619
817
 
620
- @category.setter
621
- def category(self, category: 'HostSegment'):
622
- if category is None:
623
- del self.category
818
+ @ref.setter
819
+ def ref(self, ref: str):
820
+ if ref is None:
821
+ del self.ref
624
822
  return
625
- if not isinstance(category, HostSegment):
626
- raise TypeError('category must be of type HostSegment')
627
- self._category = category
823
+ if not isinstance(ref, str):
824
+ raise TypeError('ref must be of type str')
825
+ self._ref = ref
628
826
 
629
827
  @property
630
- def sort_by(self) -> 'CompetitionSortBy':
631
- r"""
632
- Sort the results (default is 'latestDeadline').
633
- One of 'grouped', 'prize', 'earliestDeadline', 'latestDeadline',
634
- 'numberOfTeams', 'recentlyCreated'.
635
- """
636
- return self._sort_by or CompetitionSortBy.COMPETITION_SORT_BY_GROUPED
828
+ def name(self) -> str:
829
+ return self._name or ""
637
830
 
638
- @sort_by.setter
639
- def sort_by(self, sort_by: 'CompetitionSortBy'):
640
- if sort_by is None:
641
- del self.sort_by
831
+ @name.setter
832
+ def name(self, name: Optional[str]):
833
+ if name is None:
834
+ del self.name
642
835
  return
643
- if not isinstance(sort_by, CompetitionSortBy):
644
- raise TypeError('sort_by must be of type CompetitionSortBy')
645
- self._sort_by = sort_by
836
+ if not isinstance(name, str):
837
+ raise TypeError('name must be of type str')
838
+ self._name = name
646
839
 
647
840
  @property
648
- def search(self) -> str:
649
- """Filter competitions by search terms."""
650
- return self._search or ""
841
+ def description(self) -> str:
842
+ return self._description or ""
651
843
 
652
- @search.setter
653
- def search(self, search: str):
654
- if search is None:
655
- del self.search
844
+ @description.setter
845
+ def description(self, description: Optional[str]):
846
+ if description is None:
847
+ del self.description
656
848
  return
657
- if not isinstance(search, str):
658
- raise TypeError('search must be of type str')
659
- self._search = search
849
+ if not isinstance(description, str):
850
+ raise TypeError('description must be of type str')
851
+ self._description = description
660
852
 
661
853
  @property
662
- def page(self) -> int:
663
- """Page number (default is 1)."""
664
- return self._page or 0
854
+ def total_bytes(self) -> int:
855
+ return self._total_bytes
665
856
 
666
- @page.setter
667
- def page(self, page: int):
668
- if page is None:
669
- del self.page
857
+ @total_bytes.setter
858
+ def total_bytes(self, total_bytes: int):
859
+ if total_bytes is None:
860
+ del self.total_bytes
670
861
  return
671
- if not isinstance(page, int):
672
- raise TypeError('page must be of type int')
673
- self._page = page
674
-
675
- def endpoint(self):
676
- path = '/api/v1/competitions/list'
677
- return path.format_map(self.to_field_map(self))
678
-
862
+ if not isinstance(total_bytes, int):
863
+ raise TypeError('total_bytes must be of type int')
864
+ self._total_bytes = total_bytes
679
865
 
680
- class ApiListCompetitionsResponse(KaggleObject):
681
- r"""
682
- Attributes:
683
- competitions (ApiCompetition)
684
- """
866
+ @property
867
+ def url(self) -> str:
868
+ return self._url or ""
685
869
 
686
- def __init__(self):
687
- self._competitions = []
688
- self._freeze()
870
+ @url.setter
871
+ def url(self, url: Optional[str]):
872
+ if url is None:
873
+ del self.url
874
+ return
875
+ if not isinstance(url, str):
876
+ raise TypeError('url must be of type str')
877
+ self._url = url
689
878
 
690
879
  @property
691
- def competitions(self) -> Optional[List[Optional['ApiCompetition']]]:
692
- return self._competitions
880
+ def creation_date(self) -> datetime:
881
+ return self._creation_date
693
882
 
694
- @competitions.setter
695
- def competitions(self, competitions: Optional[List[Optional['ApiCompetition']]]):
696
- if competitions is None:
697
- del self.competitions
883
+ @creation_date.setter
884
+ def creation_date(self, creation_date: datetime):
885
+ if creation_date is None:
886
+ del self.creation_date
698
887
  return
699
- if not isinstance(competitions, list):
700
- raise TypeError('competitions must be of type list')
701
- if not all([isinstance(t, ApiCompetition) for t in competitions]):
702
- raise TypeError('competitions must contain only items of type ApiCompetition')
703
- self._competitions = competitions
704
-
705
- @classmethod
706
- def prepare_from(cls, http_response):
707
- return cls.from_dict({'competitions': json.loads(http_response.text)})
888
+ if not isinstance(creation_date, datetime):
889
+ raise TypeError('creation_date must be of type datetime')
890
+ self._creation_date = creation_date
708
891
 
709
892
 
710
- class ApiListDataFilesRequest(KaggleObject):
893
+ class ApiDownloadDataFileRequest(KaggleObject):
711
894
  r"""
712
895
  Attributes:
713
896
  competition_name (str)
714
897
  Competition name. Example: 'titanic'.
715
- page_size (int)
716
- page_token (str)
898
+ file_name (str)
899
+ Name of the file to download. Example: 'train/foo/bar.png'.
717
900
  """
718
901
 
719
902
  def __init__(self):
720
903
  self._competition_name = ""
721
- self._page_size = None
722
- self._page_token = None
904
+ self._file_name = ""
723
905
  self._freeze()
724
906
 
725
907
  @property
@@ -737,99 +919,70 @@ class ApiListDataFilesRequest(KaggleObject):
737
919
  self._competition_name = competition_name
738
920
 
739
921
  @property
740
- def page_size(self) -> int:
741
- return self._page_size or 0
742
-
743
- @page_size.setter
744
- def page_size(self, page_size: int):
745
- if page_size is None:
746
- del self.page_size
747
- return
748
- if not isinstance(page_size, int):
749
- raise TypeError('page_size must be of type int')
750
- self._page_size = page_size
751
-
752
- @property
753
- def page_token(self) -> str:
754
- return self._page_token or ""
922
+ def file_name(self) -> str:
923
+ """Name of the file to download. Example: 'train/foo/bar.png'."""
924
+ return self._file_name
755
925
 
756
- @page_token.setter
757
- def page_token(self, page_token: str):
758
- if page_token is None:
759
- del self.page_token
926
+ @file_name.setter
927
+ def file_name(self, file_name: str):
928
+ if file_name is None:
929
+ del self.file_name
760
930
  return
761
- if not isinstance(page_token, str):
762
- raise TypeError('page_token must be of type str')
763
- self._page_token = page_token
931
+ if not isinstance(file_name, str):
932
+ raise TypeError('file_name must be of type str')
933
+ self._file_name = file_name
764
934
 
765
935
  def endpoint(self):
766
- path = '/api/v1/competitions/data/list/{competition_name}'
936
+ path = '/api/v1/competitions/data/download/{competition_name}/{file_name}'
767
937
  return path.format_map(self.to_field_map(self))
768
938
 
769
939
  @staticmethod
770
940
  def endpoint_path():
771
- return '/api/v1/competitions/data/list/{competition_name}'
941
+ return '/api/v1/competitions/data/download/{competition_name}/{file_name}'
772
942
 
773
943
 
774
- class ApiListDataFilesResponse(KaggleObject):
944
+ class ApiDownloadDataFilesRequest(KaggleObject):
775
945
  r"""
776
946
  Attributes:
777
- files (ApiDataFile)
778
- next_page_token (str)
947
+ competition_name (str)
948
+ Competition name. Example: 'titanic'.
779
949
  """
780
950
 
781
951
  def __init__(self):
782
- self._files = []
783
- self._next_page_token = ""
952
+ self._competition_name = ""
784
953
  self._freeze()
785
954
 
786
955
  @property
787
- def files(self) -> Optional[List[Optional['ApiDataFile']]]:
788
- return self._files
956
+ def competition_name(self) -> str:
957
+ """Competition name. Example: 'titanic'."""
958
+ return self._competition_name
789
959
 
790
- @files.setter
791
- def files(self, files: Optional[List[Optional['ApiDataFile']]]):
792
- if files is None:
793
- del self.files
960
+ @competition_name.setter
961
+ def competition_name(self, competition_name: str):
962
+ if competition_name is None:
963
+ del self.competition_name
794
964
  return
795
- if not isinstance(files, list):
796
- raise TypeError('files must be of type list')
797
- if not all([isinstance(t, ApiDataFile) for t in files]):
798
- raise TypeError('files must contain only items of type ApiDataFile')
799
- self._files = files
800
-
801
- @property
802
- def next_page_token(self) -> str:
803
- return self._next_page_token
965
+ if not isinstance(competition_name, str):
966
+ raise TypeError('competition_name must be of type str')
967
+ self._competition_name = competition_name
804
968
 
805
- @next_page_token.setter
806
- def next_page_token(self, next_page_token: str):
807
- if next_page_token is None:
808
- del self.next_page_token
809
- return
810
- if not isinstance(next_page_token, str):
811
- raise TypeError('next_page_token must be of type str')
812
- self._next_page_token = next_page_token
969
+ def endpoint(self):
970
+ path = '/api/v1/competitions/data/download-all/{competition_name}'
971
+ return path.format_map(self.to_field_map(self))
813
972
 
814
- @property
815
- def nextPageToken(self):
816
- return self.next_page_token
973
+ @staticmethod
974
+ def endpoint_path():
975
+ return '/api/v1/competitions/data/download-all/{competition_name}'
817
976
 
818
977
 
819
- class ApiListSubmissionsRequest(KaggleObject):
978
+ class ApiDownloadLeaderboardRequest(KaggleObject):
820
979
  r"""
821
980
  Attributes:
822
981
  competition_name (str)
823
- sort_by (SubmissionSortBy)
824
- group (SubmissionGroup)
825
- page (int)
826
982
  """
827
983
 
828
984
  def __init__(self):
829
985
  self._competition_name = ""
830
- self._sort_by = SubmissionSortBy.SUBMISSION_SORT_BY_DATE
831
- self._group = SubmissionGroup.SUBMISSION_GROUP_ALL
832
- self._page = None
833
986
  self._freeze()
834
987
 
835
988
  @property
@@ -845,104 +998,103 @@ class ApiListSubmissionsRequest(KaggleObject):
845
998
  raise TypeError('competition_name must be of type str')
846
999
  self._competition_name = competition_name
847
1000
 
848
- @property
849
- def sort_by(self) -> 'SubmissionSortBy':
850
- return self._sort_by
1001
+ def endpoint(self):
1002
+ path = '/api/v1/competitions/{competition_name}/leaderboard/download'
1003
+ return path.format_map(self.to_field_map(self))
851
1004
 
852
- @sort_by.setter
853
- def sort_by(self, sort_by: 'SubmissionSortBy'):
854
- if sort_by is None:
855
- del self.sort_by
856
- return
857
- if not isinstance(sort_by, SubmissionSortBy):
858
- raise TypeError('sort_by must be of type SubmissionSortBy')
859
- self._sort_by = sort_by
1005
+ @staticmethod
1006
+ def endpoint_path():
1007
+ return '/api/v1/competitions/{competition_name}/leaderboard/download'
860
1008
 
861
- @property
862
- def group(self) -> 'SubmissionGroup':
863
- return self._group
864
1009
 
865
- @group.setter
866
- def group(self, group: 'SubmissionGroup'):
867
- if group is None:
868
- del self.group
869
- return
870
- if not isinstance(group, SubmissionGroup):
871
- raise TypeError('group must be of type SubmissionGroup')
872
- self._group = group
1010
+ class ApiGetCompetitionDataFilesSummaryRequest(KaggleObject):
1011
+ r"""
1012
+ Attributes:
1013
+ competition_name (str)
1014
+ """
1015
+
1016
+ def __init__(self):
1017
+ self._competition_name = ""
1018
+ self._freeze()
873
1019
 
874
1020
  @property
875
- def page(self) -> int:
876
- return self._page or 0
1021
+ def competition_name(self) -> str:
1022
+ return self._competition_name
877
1023
 
878
- @page.setter
879
- def page(self, page: int):
880
- if page is None:
881
- del self.page
1024
+ @competition_name.setter
1025
+ def competition_name(self, competition_name: str):
1026
+ if competition_name is None:
1027
+ del self.competition_name
882
1028
  return
883
- if not isinstance(page, int):
884
- raise TypeError('page must be of type int')
885
- self._page = page
1029
+ if not isinstance(competition_name, str):
1030
+ raise TypeError('competition_name must be of type str')
1031
+ self._competition_name = competition_name
886
1032
 
887
1033
  def endpoint(self):
888
- path = '/api/v1/competitions/submissions/list/{competition_name}'
1034
+ path = '/api/v1/competitions/data/summary/{competition_name}'
889
1035
  return path.format_map(self.to_field_map(self))
890
1036
 
891
1037
  @staticmethod
892
1038
  def endpoint_path():
893
- return '/api/v1/competitions/submissions/list/{competition_name}'
1039
+ return '/api/v1/competitions/data/summary/{competition_name}'
894
1040
 
895
1041
 
896
- class ApiListSubmissionsResponse(KaggleObject):
1042
+ class ApiGetCompetitionRequest(KaggleObject):
897
1043
  r"""
898
1044
  Attributes:
899
- submissions (ApiSubmission)
1045
+ competition_name (str)
900
1046
  """
901
1047
 
902
1048
  def __init__(self):
903
- self._submissions = []
1049
+ self._competition_name = ""
904
1050
  self._freeze()
905
1051
 
906
1052
  @property
907
- def submissions(self) -> Optional[List[Optional['ApiSubmission']]]:
908
- return self._submissions
1053
+ def competition_name(self) -> str:
1054
+ return self._competition_name
909
1055
 
910
- @submissions.setter
911
- def submissions(self, submissions: Optional[List[Optional['ApiSubmission']]]):
912
- if submissions is None:
913
- del self.submissions
1056
+ @competition_name.setter
1057
+ def competition_name(self, competition_name: str):
1058
+ if competition_name is None:
1059
+ del self.competition_name
914
1060
  return
915
- if not isinstance(submissions, list):
916
- raise TypeError('submissions must be of type list')
917
- if not all([isinstance(t, ApiSubmission) for t in submissions]):
918
- raise TypeError('submissions must contain only items of type ApiSubmission')
919
- self._submissions = submissions
1061
+ if not isinstance(competition_name, str):
1062
+ raise TypeError('competition_name must be of type str')
1063
+ self._competition_name = competition_name
1064
+
1065
+ def endpoint(self):
1066
+ path = '/api/v1/competitions/get/{competition_name}'
1067
+ return path.format_map(self.to_field_map(self))
920
1068
 
921
- @classmethod
922
- def prepare_from(cls, http_response):
923
- return cls.from_dict({'submissions': json.loads(http_response.text)})
1069
+ @staticmethod
1070
+ def endpoint_path():
1071
+ return '/api/v1/competitions/get/{competition_name}'
924
1072
 
925
1073
 
926
- class ApiStartSubmissionUploadRequest(KaggleObject):
1074
+ class ApiGetLeaderboardRequest(KaggleObject):
927
1075
  r"""
928
1076
  Attributes:
929
1077
  competition_name (str)
930
- content_length (int)
931
- last_modified_epoch_seconds (int)
932
- file_name (str)
933
- Comes from form upload
1078
+ Competition name. Example: 'titanic'.
1079
+ override_public (bool)
1080
+ By default we return the private leaderboard if it's available, otherwise
1081
+ the public LB. This flag lets you override to get public even if private
1082
+ is available.
1083
+ page_size (int)
1084
+ page_token (str)
934
1085
  """
935
1086
 
936
1087
  def __init__(self):
937
- self._competition_name = None
938
- self._content_length = 0
939
- self._last_modified_epoch_seconds = 0
940
- self._file_name = ""
1088
+ self._competition_name = ""
1089
+ self._override_public = None
1090
+ self._page_size = None
1091
+ self._page_token = None
941
1092
  self._freeze()
942
1093
 
943
1094
  @property
944
1095
  def competition_name(self) -> str:
945
- return self._competition_name or ""
1096
+ """Competition name. Example: 'titanic'."""
1097
+ return self._competition_name
946
1098
 
947
1099
  @competition_name.setter
948
1100
  def competition_name(self, competition_name: str):
@@ -954,839 +1106,968 @@ class ApiStartSubmissionUploadRequest(KaggleObject):
954
1106
  self._competition_name = competition_name
955
1107
 
956
1108
  @property
957
- def content_length(self) -> int:
958
- return self._content_length
1109
+ def override_public(self) -> bool:
1110
+ r"""
1111
+ By default we return the private leaderboard if it's available, otherwise
1112
+ the public LB. This flag lets you override to get public even if private
1113
+ is available.
1114
+ """
1115
+ return self._override_public or False
959
1116
 
960
- @content_length.setter
961
- def content_length(self, content_length: int):
962
- if content_length is None:
963
- del self.content_length
1117
+ @override_public.setter
1118
+ def override_public(self, override_public: Optional[bool]):
1119
+ if override_public is None:
1120
+ del self.override_public
964
1121
  return
965
- if not isinstance(content_length, int):
966
- raise TypeError('content_length must be of type int')
967
- self._content_length = content_length
1122
+ if not isinstance(override_public, bool):
1123
+ raise TypeError('override_public must be of type bool')
1124
+ self._override_public = override_public
968
1125
 
969
1126
  @property
970
- def last_modified_epoch_seconds(self) -> int:
971
- return self._last_modified_epoch_seconds
1127
+ def page_size(self) -> int:
1128
+ return self._page_size or 0
972
1129
 
973
- @last_modified_epoch_seconds.setter
974
- def last_modified_epoch_seconds(self, last_modified_epoch_seconds: int):
975
- if last_modified_epoch_seconds is None:
976
- del self.last_modified_epoch_seconds
1130
+ @page_size.setter
1131
+ def page_size(self, page_size: Optional[int]):
1132
+ if page_size is None:
1133
+ del self.page_size
977
1134
  return
978
- if not isinstance(last_modified_epoch_seconds, int):
979
- raise TypeError('last_modified_epoch_seconds must be of type int')
980
- self._last_modified_epoch_seconds = last_modified_epoch_seconds
1135
+ if not isinstance(page_size, int):
1136
+ raise TypeError('page_size must be of type int')
1137
+ self._page_size = page_size
981
1138
 
982
1139
  @property
983
- def file_name(self) -> str:
984
- """Comes from form upload"""
985
- return self._file_name
1140
+ def page_token(self) -> str:
1141
+ return self._page_token or ""
986
1142
 
987
- @file_name.setter
988
- def file_name(self, file_name: str):
989
- if file_name is None:
990
- del self.file_name
1143
+ @page_token.setter
1144
+ def page_token(self, page_token: Optional[str]):
1145
+ if page_token is None:
1146
+ del self.page_token
991
1147
  return
992
- if not isinstance(file_name, str):
993
- raise TypeError('file_name must be of type str')
994
- self._file_name = file_name
1148
+ if not isinstance(page_token, str):
1149
+ raise TypeError('page_token must be of type str')
1150
+ self._page_token = page_token
995
1151
 
996
1152
  def endpoint(self):
997
- path = '/api/v1/competitions/submission-url'
1153
+ path = '/api/v1/competitions/{competition_name}/leaderboard/view'
998
1154
  return path.format_map(self.to_field_map(self))
999
1155
 
1000
-
1001
1156
  @staticmethod
1002
- def method():
1003
- return 'POST'
1157
+ def endpoint_path():
1158
+ return '/api/v1/competitions/{competition_name}/leaderboard/view'
1004
1159
 
1005
1160
 
1006
- class ApiStartSubmissionUploadResponse(KaggleObject):
1161
+ class ApiGetLeaderboardResponse(KaggleObject):
1007
1162
  r"""
1008
- Currently identical to StartBlobUploadResponse, but keeping separate since
1009
- they could change independently and this is a legacy V1 type.
1010
-
1011
1163
  Attributes:
1012
- token (str)
1013
- create_url (str)
1164
+ submissions (ApiLeaderboardSubmission)
1165
+ next_page_token (str)
1014
1166
  """
1015
1167
 
1016
1168
  def __init__(self):
1017
- self._token = ""
1018
- self._create_url = ""
1169
+ self._submissions = []
1170
+ self._next_page_token = ""
1019
1171
  self._freeze()
1020
1172
 
1021
1173
  @property
1022
- def token(self) -> str:
1023
- return self._token
1174
+ def submissions(self) -> Optional[List[Optional['ApiLeaderboardSubmission']]]:
1175
+ return self._submissions
1024
1176
 
1025
- @token.setter
1026
- def token(self, token: str):
1027
- if token is None:
1028
- del self.token
1177
+ @submissions.setter
1178
+ def submissions(self, submissions: Optional[List[Optional['ApiLeaderboardSubmission']]]):
1179
+ if submissions is None:
1180
+ del self.submissions
1029
1181
  return
1030
- if not isinstance(token, str):
1031
- raise TypeError('token must be of type str')
1032
- self._token = token
1182
+ if not isinstance(submissions, list):
1183
+ raise TypeError('submissions must be of type list')
1184
+ if not all([isinstance(t, ApiLeaderboardSubmission) for t in submissions]):
1185
+ raise TypeError('submissions must contain only items of type ApiLeaderboardSubmission')
1186
+ self._submissions = submissions
1033
1187
 
1034
1188
  @property
1035
- def create_url(self) -> str:
1036
- return self._create_url
1189
+ def next_page_token(self) -> str:
1190
+ return self._next_page_token
1037
1191
 
1038
- @create_url.setter
1039
- def create_url(self, create_url: str):
1040
- if create_url is None:
1041
- del self.create_url
1192
+ @next_page_token.setter
1193
+ def next_page_token(self, next_page_token: str):
1194
+ if next_page_token is None:
1195
+ del self.next_page_token
1042
1196
  return
1043
- if not isinstance(create_url, str):
1044
- raise TypeError('create_url must be of type str')
1045
- self._create_url = create_url
1197
+ if not isinstance(next_page_token, str):
1198
+ raise TypeError('next_page_token must be of type str')
1199
+ self._next_page_token = next_page_token
1046
1200
 
1047
1201
  @property
1048
- def createUrl(self):
1049
- return self.create_url
1202
+ def nextPageToken(self):
1203
+ return self.next_page_token
1050
1204
 
1051
1205
 
1052
- class ApiSubmission(KaggleObject):
1206
+ class ApiGetSubmissionRequest(KaggleObject):
1053
1207
  r"""
1054
1208
  Attributes:
1055
1209
  ref (int)
1056
- total_bytes (int)
1057
- date (datetime)
1058
- description (str)
1059
- error_description (str)
1060
- file_name (str)
1061
- public_score (str)
1062
- private_score (str)
1063
- status (SubmissionStatus)
1064
- submitted_by (str)
1065
- submitted_by_ref (str)
1066
- team_name (str)
1067
- url (str)
1068
- Minor note: ListSubmissions and GetSubmission may differ in setting this
1069
- field.
1210
+ SubmissionId.
1070
1211
  """
1071
1212
 
1072
1213
  def __init__(self):
1073
1214
  self._ref = 0
1074
- self._total_bytes = None
1075
- self._date = None
1076
- self._description = None
1077
- self._error_description = None
1078
- self._file_name = None
1079
- self._public_score = None
1080
- self._private_score = None
1081
- self._status = SubmissionStatus.PENDING
1082
- self._submitted_by = None
1083
- self._submitted_by_ref = None
1215
+ self._freeze()
1216
+
1217
+ @property
1218
+ def ref(self) -> int:
1219
+ """SubmissionId."""
1220
+ return self._ref
1221
+
1222
+ @ref.setter
1223
+ def ref(self, ref: int):
1224
+ if ref is None:
1225
+ del self.ref
1226
+ return
1227
+ if not isinstance(ref, int):
1228
+ raise TypeError('ref must be of type int')
1229
+ self._ref = ref
1230
+
1231
+ def endpoint(self):
1232
+ path = '/api/v1/competitions/submissions/get/{ref}'
1233
+ return path.format_map(self.to_field_map(self))
1234
+
1235
+
1236
+ @staticmethod
1237
+ def method():
1238
+ return 'POST'
1239
+
1240
+
1241
+ class ApiLeaderboardSubmission(KaggleObject):
1242
+ r"""
1243
+ Attributes:
1244
+ team_id (int)
1245
+ team_name (str)
1246
+ submission_date (datetime)
1247
+ score (str)
1248
+ """
1249
+
1250
+ def __init__(self):
1251
+ self._team_id = 0
1084
1252
  self._team_name = None
1085
- self._url = None
1253
+ self._submission_date = None
1254
+ self._score = None
1086
1255
  self._freeze()
1087
1256
 
1088
1257
  @property
1089
- def ref(self) -> int:
1090
- return self._ref
1258
+ def team_id(self) -> int:
1259
+ return self._team_id
1260
+
1261
+ @team_id.setter
1262
+ def team_id(self, team_id: int):
1263
+ if team_id is None:
1264
+ del self.team_id
1265
+ return
1266
+ if not isinstance(team_id, int):
1267
+ raise TypeError('team_id must be of type int')
1268
+ self._team_id = team_id
1269
+
1270
+ @property
1271
+ def team_name(self) -> str:
1272
+ return self._team_name or ""
1091
1273
 
1092
- @ref.setter
1093
- def ref(self, ref: int):
1094
- if ref is None:
1095
- del self.ref
1274
+ @team_name.setter
1275
+ def team_name(self, team_name: Optional[str]):
1276
+ if team_name is None:
1277
+ del self.team_name
1096
1278
  return
1097
- if not isinstance(ref, int):
1098
- raise TypeError('ref must be of type int')
1099
- self._ref = ref
1279
+ if not isinstance(team_name, str):
1280
+ raise TypeError('team_name must be of type str')
1281
+ self._team_name = team_name
1100
1282
 
1101
1283
  @property
1102
- def total_bytes(self) -> int:
1103
- return self._total_bytes or 0
1284
+ def submission_date(self) -> datetime:
1285
+ return self._submission_date
1104
1286
 
1105
- @total_bytes.setter
1106
- def total_bytes(self, total_bytes: int):
1107
- if total_bytes is None:
1108
- del self.total_bytes
1287
+ @submission_date.setter
1288
+ def submission_date(self, submission_date: datetime):
1289
+ if submission_date is None:
1290
+ del self.submission_date
1109
1291
  return
1110
- if not isinstance(total_bytes, int):
1111
- raise TypeError('total_bytes must be of type int')
1112
- self._total_bytes = total_bytes
1292
+ if not isinstance(submission_date, datetime):
1293
+ raise TypeError('submission_date must be of type datetime')
1294
+ self._submission_date = submission_date
1113
1295
 
1114
1296
  @property
1115
- def date(self) -> datetime:
1116
- return self._date
1297
+ def score(self) -> str:
1298
+ return self._score or ""
1117
1299
 
1118
- @date.setter
1119
- def date(self, date: datetime):
1120
- if date is None:
1121
- del self.date
1300
+ @score.setter
1301
+ def score(self, score: Optional[str]):
1302
+ if score is None:
1303
+ del self.score
1122
1304
  return
1123
- if not isinstance(date, datetime):
1124
- raise TypeError('date must be of type datetime')
1125
- self._date = date
1305
+ if not isinstance(score, str):
1306
+ raise TypeError('score must be of type str')
1307
+ self._score = score
1308
+
1309
+
1310
+ class ApiListCompetitionsRequest(KaggleObject):
1311
+ r"""
1312
+ Attributes:
1313
+ group (CompetitionListTab)
1314
+ Filter competitions by a particular group (default is 'general').
1315
+ One of 'general', 'entered' and 'inClass'.
1316
+ category (HostSegment)
1317
+ Filter competitions by a particular category (default is 'all').
1318
+ One of 'all', 'featured', 'research', 'recruitment', 'gettingStarted',
1319
+ 'masters', 'playground'.
1320
+ sort_by (CompetitionSortBy)
1321
+ Sort the results (default is 'latestDeadline').
1322
+ One of 'grouped', 'prize', 'earliestDeadline', 'latestDeadline',
1323
+ 'numberOfTeams', 'recentlyCreated'.
1324
+ search (str)
1325
+ Filter competitions by search terms.
1326
+ page (int)
1327
+ Page number (default is 1).
1328
+ page_token (str)
1329
+ page_size (int)
1330
+ """
1331
+
1332
+ def __init__(self):
1333
+ self._group = None
1334
+ self._category = None
1335
+ self._sort_by = None
1336
+ self._search = None
1337
+ self._page = None
1338
+ self._page_token = None
1339
+ self._page_size = None
1340
+ self._freeze()
1126
1341
 
1127
1342
  @property
1128
- def description(self) -> str:
1129
- return self._description or ""
1343
+ def group(self) -> 'CompetitionListTab':
1344
+ r"""
1345
+ Filter competitions by a particular group (default is 'general').
1346
+ One of 'general', 'entered' and 'inClass'.
1347
+ """
1348
+ return self._group or CompetitionListTab.COMPETITION_LIST_TAB_GENERAL
1130
1349
 
1131
- @description.setter
1132
- def description(self, description: str):
1133
- if description is None:
1134
- del self.description
1350
+ @group.setter
1351
+ def group(self, group: Optional['CompetitionListTab']):
1352
+ if group is None:
1353
+ del self.group
1135
1354
  return
1136
- if not isinstance(description, str):
1137
- raise TypeError('description must be of type str')
1138
- self._description = description
1355
+ if not isinstance(group, CompetitionListTab):
1356
+ raise TypeError('group must be of type CompetitionListTab')
1357
+ self._group = group
1139
1358
 
1140
1359
  @property
1141
- def error_description(self) -> str:
1142
- return self._error_description or ""
1360
+ def category(self) -> 'HostSegment':
1361
+ r"""
1362
+ Filter competitions by a particular category (default is 'all').
1363
+ One of 'all', 'featured', 'research', 'recruitment', 'gettingStarted',
1364
+ 'masters', 'playground'.
1365
+ """
1366
+ return self._category or HostSegment.HOST_SEGMENT_UNSPECIFIED
1143
1367
 
1144
- @error_description.setter
1145
- def error_description(self, error_description: str):
1146
- if error_description is None:
1147
- del self.error_description
1368
+ @category.setter
1369
+ def category(self, category: Optional['HostSegment']):
1370
+ if category is None:
1371
+ del self.category
1148
1372
  return
1149
- if not isinstance(error_description, str):
1150
- raise TypeError('error_description must be of type str')
1151
- self._error_description = error_description
1373
+ if not isinstance(category, HostSegment):
1374
+ raise TypeError('category must be of type HostSegment')
1375
+ self._category = category
1152
1376
 
1153
1377
  @property
1154
- def file_name(self) -> str:
1155
- return self._file_name or ""
1378
+ def sort_by(self) -> 'CompetitionSortBy':
1379
+ r"""
1380
+ Sort the results (default is 'latestDeadline').
1381
+ One of 'grouped', 'prize', 'earliestDeadline', 'latestDeadline',
1382
+ 'numberOfTeams', 'recentlyCreated'.
1383
+ """
1384
+ return self._sort_by or CompetitionSortBy.COMPETITION_SORT_BY_GROUPED
1156
1385
 
1157
- @file_name.setter
1158
- def file_name(self, file_name: str):
1159
- if file_name is None:
1160
- del self.file_name
1386
+ @sort_by.setter
1387
+ def sort_by(self, sort_by: Optional['CompetitionSortBy']):
1388
+ if sort_by is None:
1389
+ del self.sort_by
1161
1390
  return
1162
- if not isinstance(file_name, str):
1163
- raise TypeError('file_name must be of type str')
1164
- self._file_name = file_name
1391
+ if not isinstance(sort_by, CompetitionSortBy):
1392
+ raise TypeError('sort_by must be of type CompetitionSortBy')
1393
+ self._sort_by = sort_by
1165
1394
 
1166
1395
  @property
1167
- def public_score(self) -> str:
1168
- return self._public_score or ""
1396
+ def search(self) -> str:
1397
+ """Filter competitions by search terms."""
1398
+ return self._search or ""
1169
1399
 
1170
- @public_score.setter
1171
- def public_score(self, public_score: str):
1172
- if public_score is None:
1173
- del self.public_score
1400
+ @search.setter
1401
+ def search(self, search: Optional[str]):
1402
+ if search is None:
1403
+ del self.search
1174
1404
  return
1175
- if not isinstance(public_score, str):
1176
- raise TypeError('public_score must be of type str')
1177
- self._public_score = public_score
1405
+ if not isinstance(search, str):
1406
+ raise TypeError('search must be of type str')
1407
+ self._search = search
1178
1408
 
1179
1409
  @property
1180
- def private_score(self) -> str:
1181
- return self._private_score or ""
1410
+ def page(self) -> int:
1411
+ """Page number (default is 1)."""
1412
+ return self._page or 0
1182
1413
 
1183
- @private_score.setter
1184
- def private_score(self, private_score: str):
1185
- if private_score is None:
1186
- del self.private_score
1414
+ @page.setter
1415
+ def page(self, page: Optional[int]):
1416
+ if page is None:
1417
+ del self.page
1187
1418
  return
1188
- if not isinstance(private_score, str):
1189
- raise TypeError('private_score must be of type str')
1190
- self._private_score = private_score
1419
+ if not isinstance(page, int):
1420
+ raise TypeError('page must be of type int')
1421
+ self._page = page
1191
1422
 
1192
1423
  @property
1193
- def status(self) -> 'SubmissionStatus':
1194
- return self._status
1424
+ def page_token(self) -> str:
1425
+ return self._page_token or ""
1195
1426
 
1196
- @status.setter
1197
- def status(self, status: 'SubmissionStatus'):
1198
- if status is None:
1199
- del self.status
1427
+ @page_token.setter
1428
+ def page_token(self, page_token: Optional[str]):
1429
+ if page_token is None:
1430
+ del self.page_token
1200
1431
  return
1201
- if not isinstance(status, SubmissionStatus):
1202
- raise TypeError('status must be of type SubmissionStatus')
1203
- self._status = status
1432
+ if not isinstance(page_token, str):
1433
+ raise TypeError('page_token must be of type str')
1434
+ self._page_token = page_token
1204
1435
 
1205
1436
  @property
1206
- def submitted_by(self) -> str:
1207
- return self._submitted_by or ""
1437
+ def page_size(self) -> int:
1438
+ return self._page_size or 0
1208
1439
 
1209
- @submitted_by.setter
1210
- def submitted_by(self, submitted_by: str):
1211
- if submitted_by is None:
1212
- del self.submitted_by
1440
+ @page_size.setter
1441
+ def page_size(self, page_size: Optional[int]):
1442
+ if page_size is None:
1443
+ del self.page_size
1213
1444
  return
1214
- if not isinstance(submitted_by, str):
1215
- raise TypeError('submitted_by must be of type str')
1216
- self._submitted_by = submitted_by
1445
+ if not isinstance(page_size, int):
1446
+ raise TypeError('page_size must be of type int')
1447
+ self._page_size = page_size
1448
+
1449
+ def endpoint(self):
1450
+ path = '/api/v1/competitions/list'
1451
+ return path.format_map(self.to_field_map(self))
1452
+
1453
+
1454
+ class ApiListCompetitionsResponse(KaggleObject):
1455
+ r"""
1456
+ Attributes:
1457
+ competitions (ApiCompetition)
1458
+ next_page_token (str)
1459
+ """
1460
+
1461
+ def __init__(self):
1462
+ self._competitions = []
1463
+ self._next_page_token = ""
1464
+ self._freeze()
1217
1465
 
1218
1466
  @property
1219
- def submitted_by_ref(self) -> str:
1220
- return self._submitted_by_ref or ""
1467
+ def competitions(self) -> Optional[List[Optional['ApiCompetition']]]:
1468
+ return self._competitions
1221
1469
 
1222
- @submitted_by_ref.setter
1223
- def submitted_by_ref(self, submitted_by_ref: str):
1224
- if submitted_by_ref is None:
1225
- del self.submitted_by_ref
1470
+ @competitions.setter
1471
+ def competitions(self, competitions: Optional[List[Optional['ApiCompetition']]]):
1472
+ if competitions is None:
1473
+ del self.competitions
1226
1474
  return
1227
- if not isinstance(submitted_by_ref, str):
1228
- raise TypeError('submitted_by_ref must be of type str')
1229
- self._submitted_by_ref = submitted_by_ref
1475
+ if not isinstance(competitions, list):
1476
+ raise TypeError('competitions must be of type list')
1477
+ if not all([isinstance(t, ApiCompetition) for t in competitions]):
1478
+ raise TypeError('competitions must contain only items of type ApiCompetition')
1479
+ self._competitions = competitions
1230
1480
 
1231
1481
  @property
1232
- def team_name(self) -> str:
1233
- return self._team_name or ""
1482
+ def next_page_token(self) -> str:
1483
+ return self._next_page_token
1234
1484
 
1235
- @team_name.setter
1236
- def team_name(self, team_name: str):
1237
- if team_name is None:
1238
- del self.team_name
1485
+ @next_page_token.setter
1486
+ def next_page_token(self, next_page_token: str):
1487
+ if next_page_token is None:
1488
+ del self.next_page_token
1239
1489
  return
1240
- if not isinstance(team_name, str):
1241
- raise TypeError('team_name must be of type str')
1242
- self._team_name = team_name
1490
+ if not isinstance(next_page_token, str):
1491
+ raise TypeError('next_page_token must be of type str')
1492
+ self._next_page_token = next_page_token
1243
1493
 
1244
1494
  @property
1245
- def url(self) -> str:
1246
- r"""
1247
- Minor note: ListSubmissions and GetSubmission may differ in setting this
1248
- field.
1249
- """
1250
- return self._url or ""
1251
-
1252
- @url.setter
1253
- def url(self, url: str):
1254
- if url is None:
1255
- del self.url
1256
- return
1257
- if not isinstance(url, str):
1258
- raise TypeError('url must be of type str')
1259
- self._url = url
1495
+ def nextPageToken(self):
1496
+ return self.next_page_token
1260
1497
 
1261
1498
 
1262
- class ApiCompetition(KaggleObject):
1499
+ class ApiListDataFilesRequest(KaggleObject):
1263
1500
  r"""
1264
1501
  Attributes:
1265
- id (int)
1266
- ref (str)
1267
- title (str)
1268
- url (str)
1269
- description (str)
1270
- organization_name (str)
1271
- organization_ref (str)
1272
- category (str)
1273
- reward (str)
1274
- tags (ApiCategory)
1275
- deadline (datetime)
1276
- kernel_count (int)
1277
- team_count (int)
1278
- user_has_entered (bool)
1279
- user_rank (int)
1280
- merger_deadline (datetime)
1281
- new_entrant_deadline (datetime)
1282
- enabled_date (datetime)
1283
- max_daily_submissions (int)
1284
- max_team_size (int)
1285
- evaluation_metric (str)
1286
- awards_points (bool)
1287
- is_kernels_submissions_only (bool)
1288
- submissions_disabled (bool)
1502
+ competition_name (str)
1503
+ Competition name. Example: 'titanic'.
1504
+ page_size (int)
1505
+ page_token (str)
1289
1506
  """
1290
1507
 
1291
1508
  def __init__(self):
1292
- self._id = 0
1293
- self._ref = ""
1294
- self._title = None
1295
- self._url = None
1296
- self._description = None
1297
- self._organization_name = None
1298
- self._organization_ref = None
1299
- self._category = None
1300
- self._reward = None
1301
- self._tags = []
1302
- self._deadline = None
1303
- self._kernel_count = 0
1304
- self._team_count = 0
1305
- self._user_has_entered = False
1306
- self._user_rank = None
1307
- self._merger_deadline = None
1308
- self._new_entrant_deadline = None
1309
- self._enabled_date = None
1310
- self._max_daily_submissions = 0
1311
- self._max_team_size = None
1312
- self._evaluation_metric = None
1313
- self._awards_points = False
1314
- self._is_kernels_submissions_only = False
1315
- self._submissions_disabled = False
1509
+ self._competition_name = ""
1510
+ self._page_size = None
1511
+ self._page_token = None
1316
1512
  self._freeze()
1317
1513
 
1318
1514
  @property
1319
- def id(self) -> int:
1320
- return self._id
1515
+ def competition_name(self) -> str:
1516
+ """Competition name. Example: 'titanic'."""
1517
+ return self._competition_name
1321
1518
 
1322
- @id.setter
1323
- def id(self, id: int):
1324
- if id is None:
1325
- del self.id
1519
+ @competition_name.setter
1520
+ def competition_name(self, competition_name: str):
1521
+ if competition_name is None:
1522
+ del self.competition_name
1326
1523
  return
1327
- if not isinstance(id, int):
1328
- raise TypeError('id must be of type int')
1329
- self._id = id
1524
+ if not isinstance(competition_name, str):
1525
+ raise TypeError('competition_name must be of type str')
1526
+ self._competition_name = competition_name
1330
1527
 
1331
1528
  @property
1332
- def ref(self) -> str:
1333
- return self._ref
1529
+ def page_size(self) -> int:
1530
+ return self._page_size or 0
1334
1531
 
1335
- @ref.setter
1336
- def ref(self, ref: str):
1337
- if ref is None:
1338
- del self.ref
1532
+ @page_size.setter
1533
+ def page_size(self, page_size: Optional[int]):
1534
+ if page_size is None:
1535
+ del self.page_size
1339
1536
  return
1340
- if not isinstance(ref, str):
1341
- raise TypeError('ref must be of type str')
1342
- self._ref = ref
1537
+ if not isinstance(page_size, int):
1538
+ raise TypeError('page_size must be of type int')
1539
+ self._page_size = page_size
1343
1540
 
1344
1541
  @property
1345
- def title(self) -> str:
1346
- return self._title or ""
1542
+ def page_token(self) -> str:
1543
+ return self._page_token or ""
1347
1544
 
1348
- @title.setter
1349
- def title(self, title: str):
1350
- if title is None:
1351
- del self.title
1545
+ @page_token.setter
1546
+ def page_token(self, page_token: Optional[str]):
1547
+ if page_token is None:
1548
+ del self.page_token
1352
1549
  return
1353
- if not isinstance(title, str):
1354
- raise TypeError('title must be of type str')
1355
- self._title = title
1550
+ if not isinstance(page_token, str):
1551
+ raise TypeError('page_token must be of type str')
1552
+ self._page_token = page_token
1356
1553
 
1357
- @property
1358
- def url(self) -> str:
1359
- return self._url or ""
1554
+ def endpoint(self):
1555
+ path = '/api/v1/competitions/data/list/{competition_name}'
1556
+ return path.format_map(self.to_field_map(self))
1360
1557
 
1361
- @url.setter
1362
- def url(self, url: str):
1363
- if url is None:
1364
- del self.url
1365
- return
1366
- if not isinstance(url, str):
1367
- raise TypeError('url must be of type str')
1368
- self._url = url
1558
+ @staticmethod
1559
+ def endpoint_path():
1560
+ return '/api/v1/competitions/data/list/{competition_name}'
1369
1561
 
1370
- @property
1371
- def description(self) -> str:
1372
- return self._description or ""
1373
1562
 
1374
- @description.setter
1375
- def description(self, description: str):
1376
- if description is None:
1377
- del self.description
1378
- return
1379
- if not isinstance(description, str):
1380
- raise TypeError('description must be of type str')
1381
- self._description = description
1563
+ class ApiListDataFilesResponse(KaggleObject):
1564
+ r"""
1565
+ Attributes:
1566
+ files (ApiDataFile)
1567
+ next_page_token (str)
1568
+ children_fetch_time_ms (int)
1569
+ """
1570
+
1571
+ def __init__(self):
1572
+ self._files = []
1573
+ self._next_page_token = ""
1574
+ self._children_fetch_time_ms = 0
1575
+ self._freeze()
1382
1576
 
1383
1577
  @property
1384
- def organization_name(self) -> str:
1385
- return self._organization_name or ""
1578
+ def files(self) -> Optional[List[Optional['ApiDataFile']]]:
1579
+ return self._files
1386
1580
 
1387
- @organization_name.setter
1388
- def organization_name(self, organization_name: str):
1389
- if organization_name is None:
1390
- del self.organization_name
1581
+ @files.setter
1582
+ def files(self, files: Optional[List[Optional['ApiDataFile']]]):
1583
+ if files is None:
1584
+ del self.files
1391
1585
  return
1392
- if not isinstance(organization_name, str):
1393
- raise TypeError('organization_name must be of type str')
1394
- self._organization_name = organization_name
1586
+ if not isinstance(files, list):
1587
+ raise TypeError('files must be of type list')
1588
+ if not all([isinstance(t, ApiDataFile) for t in files]):
1589
+ raise TypeError('files must contain only items of type ApiDataFile')
1590
+ self._files = files
1395
1591
 
1396
1592
  @property
1397
- def organization_ref(self) -> str:
1398
- return self._organization_ref or ""
1593
+ def next_page_token(self) -> str:
1594
+ return self._next_page_token
1399
1595
 
1400
- @organization_ref.setter
1401
- def organization_ref(self, organization_ref: str):
1402
- if organization_ref is None:
1403
- del self.organization_ref
1596
+ @next_page_token.setter
1597
+ def next_page_token(self, next_page_token: str):
1598
+ if next_page_token is None:
1599
+ del self.next_page_token
1404
1600
  return
1405
- if not isinstance(organization_ref, str):
1406
- raise TypeError('organization_ref must be of type str')
1407
- self._organization_ref = organization_ref
1601
+ if not isinstance(next_page_token, str):
1602
+ raise TypeError('next_page_token must be of type str')
1603
+ self._next_page_token = next_page_token
1408
1604
 
1409
1605
  @property
1410
- def category(self) -> str:
1411
- return self._category or ""
1606
+ def children_fetch_time_ms(self) -> int:
1607
+ return self._children_fetch_time_ms
1412
1608
 
1413
- @category.setter
1414
- def category(self, category: str):
1415
- if category is None:
1416
- del self.category
1609
+ @children_fetch_time_ms.setter
1610
+ def children_fetch_time_ms(self, children_fetch_time_ms: int):
1611
+ if children_fetch_time_ms is None:
1612
+ del self.children_fetch_time_ms
1417
1613
  return
1418
- if not isinstance(category, str):
1419
- raise TypeError('category must be of type str')
1420
- self._category = category
1614
+ if not isinstance(children_fetch_time_ms, int):
1615
+ raise TypeError('children_fetch_time_ms must be of type int')
1616
+ self._children_fetch_time_ms = children_fetch_time_ms
1421
1617
 
1422
1618
  @property
1423
- def reward(self) -> str:
1424
- return self._reward or ""
1425
-
1426
- @reward.setter
1427
- def reward(self, reward: str):
1428
- if reward is None:
1429
- del self.reward
1430
- return
1431
- if not isinstance(reward, str):
1432
- raise TypeError('reward must be of type str')
1433
- self._reward = reward
1619
+ def nextPageToken(self):
1620
+ return self.next_page_token
1434
1621
 
1435
1622
  @property
1436
- def tags(self) -> Optional[List[Optional['ApiCategory']]]:
1437
- return self._tags
1623
+ def childrenFetchTimeMs(self):
1624
+ return self.children_fetch_time_ms
1438
1625
 
1439
- @tags.setter
1440
- def tags(self, tags: Optional[List[Optional['ApiCategory']]]):
1441
- if tags is None:
1442
- del self.tags
1443
- return
1444
- if not isinstance(tags, list):
1445
- raise TypeError('tags must be of type list')
1446
- if not all([isinstance(t, ApiCategory) for t in tags]):
1447
- raise TypeError('tags must contain only items of type ApiCategory')
1448
- self._tags = tags
1626
+
1627
+ class ApiListDataTreeFilesRequest(KaggleObject):
1628
+ r"""
1629
+ Attributes:
1630
+ competition_name (str)
1631
+ Competition name. Example: 'titanic'.
1632
+ path (str)
1633
+ The path of the directory to list files from. If not provided, the root
1634
+ directory will be listed.
1635
+ page_size (int)
1636
+ page_token (str)
1637
+ """
1638
+
1639
+ def __init__(self):
1640
+ self._competition_name = ""
1641
+ self._path = None
1642
+ self._page_size = None
1643
+ self._page_token = None
1644
+ self._freeze()
1449
1645
 
1450
1646
  @property
1451
- def deadline(self) -> datetime:
1452
- return self._deadline
1647
+ def competition_name(self) -> str:
1648
+ """Competition name. Example: 'titanic'."""
1649
+ return self._competition_name
1453
1650
 
1454
- @deadline.setter
1455
- def deadline(self, deadline: datetime):
1456
- if deadline is None:
1457
- del self.deadline
1651
+ @competition_name.setter
1652
+ def competition_name(self, competition_name: str):
1653
+ if competition_name is None:
1654
+ del self.competition_name
1458
1655
  return
1459
- if not isinstance(deadline, datetime):
1460
- raise TypeError('deadline must be of type datetime')
1461
- self._deadline = deadline
1656
+ if not isinstance(competition_name, str):
1657
+ raise TypeError('competition_name must be of type str')
1658
+ self._competition_name = competition_name
1462
1659
 
1463
1660
  @property
1464
- def kernel_count(self) -> int:
1465
- return self._kernel_count
1661
+ def path(self) -> str:
1662
+ r"""
1663
+ The path of the directory to list files from. If not provided, the root
1664
+ directory will be listed.
1665
+ """
1666
+ return self._path or ""
1466
1667
 
1467
- @kernel_count.setter
1468
- def kernel_count(self, kernel_count: int):
1469
- if kernel_count is None:
1470
- del self.kernel_count
1668
+ @path.setter
1669
+ def path(self, path: Optional[str]):
1670
+ if path is None:
1671
+ del self.path
1471
1672
  return
1472
- if not isinstance(kernel_count, int):
1473
- raise TypeError('kernel_count must be of type int')
1474
- self._kernel_count = kernel_count
1673
+ if not isinstance(path, str):
1674
+ raise TypeError('path must be of type str')
1675
+ self._path = path
1475
1676
 
1476
1677
  @property
1477
- def team_count(self) -> int:
1478
- return self._team_count
1678
+ def page_size(self) -> int:
1679
+ return self._page_size or 0
1479
1680
 
1480
- @team_count.setter
1481
- def team_count(self, team_count: int):
1482
- if team_count is None:
1483
- del self.team_count
1681
+ @page_size.setter
1682
+ def page_size(self, page_size: Optional[int]):
1683
+ if page_size is None:
1684
+ del self.page_size
1484
1685
  return
1485
- if not isinstance(team_count, int):
1486
- raise TypeError('team_count must be of type int')
1487
- self._team_count = team_count
1686
+ if not isinstance(page_size, int):
1687
+ raise TypeError('page_size must be of type int')
1688
+ self._page_size = page_size
1488
1689
 
1489
1690
  @property
1490
- def user_has_entered(self) -> bool:
1491
- return self._user_has_entered
1691
+ def page_token(self) -> str:
1692
+ return self._page_token or ""
1492
1693
 
1493
- @user_has_entered.setter
1494
- def user_has_entered(self, user_has_entered: bool):
1495
- if user_has_entered is None:
1496
- del self.user_has_entered
1694
+ @page_token.setter
1695
+ def page_token(self, page_token: Optional[str]):
1696
+ if page_token is None:
1697
+ del self.page_token
1497
1698
  return
1498
- if not isinstance(user_has_entered, bool):
1499
- raise TypeError('user_has_entered must be of type bool')
1500
- self._user_has_entered = user_has_entered
1699
+ if not isinstance(page_token, str):
1700
+ raise TypeError('page_token must be of type str')
1701
+ self._page_token = page_token
1501
1702
 
1502
- @property
1503
- def user_rank(self) -> int:
1504
- return self._user_rank or 0
1703
+ def endpoint(self):
1704
+ path = '/api/v1/competitions/{competition_name}/data-tree/list/'
1705
+ return path.format_map(self.to_field_map(self))
1505
1706
 
1506
- @user_rank.setter
1507
- def user_rank(self, user_rank: int):
1508
- if user_rank is None:
1509
- del self.user_rank
1510
- return
1511
- if not isinstance(user_rank, int):
1512
- raise TypeError('user_rank must be of type int')
1513
- self._user_rank = user_rank
1707
+ @staticmethod
1708
+ def endpoint_path():
1709
+ return '/api/v1/competitions/{competition_name}/data-tree/list/'
1514
1710
 
1515
- @property
1516
- def merger_deadline(self) -> datetime:
1517
- return self._merger_deadline
1518
1711
 
1519
- @merger_deadline.setter
1520
- def merger_deadline(self, merger_deadline: datetime):
1521
- if merger_deadline is None:
1522
- del self.merger_deadline
1523
- return
1524
- if not isinstance(merger_deadline, datetime):
1525
- raise TypeError('merger_deadline must be of type datetime')
1526
- self._merger_deadline = merger_deadline
1712
+ class ApiListSubmissionsRequest(KaggleObject):
1713
+ r"""
1714
+ Attributes:
1715
+ competition_name (str)
1716
+ sort_by (SubmissionSortBy)
1717
+ group (SubmissionGroup)
1718
+ page (int)
1719
+ page_token (str)
1720
+ page_size (int)
1721
+ """
1722
+
1723
+ def __init__(self):
1724
+ self._competition_name = ""
1725
+ self._sort_by = SubmissionSortBy.SUBMISSION_SORT_BY_DATE
1726
+ self._group = SubmissionGroup.SUBMISSION_GROUP_ALL
1727
+ self._page = None
1728
+ self._page_token = None
1729
+ self._page_size = None
1730
+ self._freeze()
1527
1731
 
1528
1732
  @property
1529
- def new_entrant_deadline(self) -> datetime:
1530
- return self._new_entrant_deadline
1733
+ def competition_name(self) -> str:
1734
+ return self._competition_name
1531
1735
 
1532
- @new_entrant_deadline.setter
1533
- def new_entrant_deadline(self, new_entrant_deadline: datetime):
1534
- if new_entrant_deadline is None:
1535
- del self.new_entrant_deadline
1736
+ @competition_name.setter
1737
+ def competition_name(self, competition_name: str):
1738
+ if competition_name is None:
1739
+ del self.competition_name
1536
1740
  return
1537
- if not isinstance(new_entrant_deadline, datetime):
1538
- raise TypeError('new_entrant_deadline must be of type datetime')
1539
- self._new_entrant_deadline = new_entrant_deadline
1741
+ if not isinstance(competition_name, str):
1742
+ raise TypeError('competition_name must be of type str')
1743
+ self._competition_name = competition_name
1540
1744
 
1541
1745
  @property
1542
- def enabled_date(self) -> datetime:
1543
- return self._enabled_date
1746
+ def sort_by(self) -> 'SubmissionSortBy':
1747
+ return self._sort_by
1544
1748
 
1545
- @enabled_date.setter
1546
- def enabled_date(self, enabled_date: datetime):
1547
- if enabled_date is None:
1548
- del self.enabled_date
1749
+ @sort_by.setter
1750
+ def sort_by(self, sort_by: 'SubmissionSortBy'):
1751
+ if sort_by is None:
1752
+ del self.sort_by
1549
1753
  return
1550
- if not isinstance(enabled_date, datetime):
1551
- raise TypeError('enabled_date must be of type datetime')
1552
- self._enabled_date = enabled_date
1754
+ if not isinstance(sort_by, SubmissionSortBy):
1755
+ raise TypeError('sort_by must be of type SubmissionSortBy')
1756
+ self._sort_by = sort_by
1553
1757
 
1554
1758
  @property
1555
- def max_daily_submissions(self) -> int:
1556
- return self._max_daily_submissions
1759
+ def group(self) -> 'SubmissionGroup':
1760
+ return self._group
1557
1761
 
1558
- @max_daily_submissions.setter
1559
- def max_daily_submissions(self, max_daily_submissions: int):
1560
- if max_daily_submissions is None:
1561
- del self.max_daily_submissions
1762
+ @group.setter
1763
+ def group(self, group: 'SubmissionGroup'):
1764
+ if group is None:
1765
+ del self.group
1562
1766
  return
1563
- if not isinstance(max_daily_submissions, int):
1564
- raise TypeError('max_daily_submissions must be of type int')
1565
- self._max_daily_submissions = max_daily_submissions
1767
+ if not isinstance(group, SubmissionGroup):
1768
+ raise TypeError('group must be of type SubmissionGroup')
1769
+ self._group = group
1566
1770
 
1567
1771
  @property
1568
- def max_team_size(self) -> int:
1569
- return self._max_team_size or 0
1772
+ def page(self) -> int:
1773
+ return self._page or 0
1570
1774
 
1571
- @max_team_size.setter
1572
- def max_team_size(self, max_team_size: int):
1573
- if max_team_size is None:
1574
- del self.max_team_size
1775
+ @page.setter
1776
+ def page(self, page: Optional[int]):
1777
+ if page is None:
1778
+ del self.page
1575
1779
  return
1576
- if not isinstance(max_team_size, int):
1577
- raise TypeError('max_team_size must be of type int')
1578
- self._max_team_size = max_team_size
1780
+ if not isinstance(page, int):
1781
+ raise TypeError('page must be of type int')
1782
+ self._page = page
1579
1783
 
1580
1784
  @property
1581
- def evaluation_metric(self) -> str:
1582
- return self._evaluation_metric or ""
1785
+ def page_token(self) -> str:
1786
+ return self._page_token or ""
1583
1787
 
1584
- @evaluation_metric.setter
1585
- def evaluation_metric(self, evaluation_metric: str):
1586
- if evaluation_metric is None:
1587
- del self.evaluation_metric
1788
+ @page_token.setter
1789
+ def page_token(self, page_token: Optional[str]):
1790
+ if page_token is None:
1791
+ del self.page_token
1588
1792
  return
1589
- if not isinstance(evaluation_metric, str):
1590
- raise TypeError('evaluation_metric must be of type str')
1591
- self._evaluation_metric = evaluation_metric
1793
+ if not isinstance(page_token, str):
1794
+ raise TypeError('page_token must be of type str')
1795
+ self._page_token = page_token
1592
1796
 
1593
1797
  @property
1594
- def awards_points(self) -> bool:
1595
- return self._awards_points
1798
+ def page_size(self) -> int:
1799
+ return self._page_size or 0
1596
1800
 
1597
- @awards_points.setter
1598
- def awards_points(self, awards_points: bool):
1599
- if awards_points is None:
1600
- del self.awards_points
1801
+ @page_size.setter
1802
+ def page_size(self, page_size: Optional[int]):
1803
+ if page_size is None:
1804
+ del self.page_size
1601
1805
  return
1602
- if not isinstance(awards_points, bool):
1603
- raise TypeError('awards_points must be of type bool')
1604
- self._awards_points = awards_points
1806
+ if not isinstance(page_size, int):
1807
+ raise TypeError('page_size must be of type int')
1808
+ self._page_size = page_size
1809
+
1810
+ def endpoint(self):
1811
+ path = '/api/v1/competitions/submissions/list/{competition_name}'
1812
+ return path.format_map(self.to_field_map(self))
1813
+
1814
+ @staticmethod
1815
+ def endpoint_path():
1816
+ return '/api/v1/competitions/submissions/list/{competition_name}'
1817
+
1818
+
1819
+ class ApiListSubmissionsResponse(KaggleObject):
1820
+ r"""
1821
+ Attributes:
1822
+ submissions (ApiSubmission)
1823
+ next_page_token (str)
1824
+ """
1825
+
1826
+ def __init__(self):
1827
+ self._submissions = []
1828
+ self._next_page_token = ""
1829
+ self._freeze()
1605
1830
 
1606
1831
  @property
1607
- def is_kernels_submissions_only(self) -> bool:
1608
- return self._is_kernels_submissions_only
1832
+ def submissions(self) -> Optional[List[Optional['ApiSubmission']]]:
1833
+ return self._submissions
1609
1834
 
1610
- @is_kernels_submissions_only.setter
1611
- def is_kernels_submissions_only(self, is_kernels_submissions_only: bool):
1612
- if is_kernels_submissions_only is None:
1613
- del self.is_kernels_submissions_only
1835
+ @submissions.setter
1836
+ def submissions(self, submissions: Optional[List[Optional['ApiSubmission']]]):
1837
+ if submissions is None:
1838
+ del self.submissions
1614
1839
  return
1615
- if not isinstance(is_kernels_submissions_only, bool):
1616
- raise TypeError('is_kernels_submissions_only must be of type bool')
1617
- self._is_kernels_submissions_only = is_kernels_submissions_only
1840
+ if not isinstance(submissions, list):
1841
+ raise TypeError('submissions must be of type list')
1842
+ if not all([isinstance(t, ApiSubmission) for t in submissions]):
1843
+ raise TypeError('submissions must contain only items of type ApiSubmission')
1844
+ self._submissions = submissions
1618
1845
 
1619
1846
  @property
1620
- def submissions_disabled(self) -> bool:
1621
- return self._submissions_disabled
1847
+ def next_page_token(self) -> str:
1848
+ return self._next_page_token
1622
1849
 
1623
- @submissions_disabled.setter
1624
- def submissions_disabled(self, submissions_disabled: bool):
1625
- if submissions_disabled is None:
1626
- del self.submissions_disabled
1850
+ @next_page_token.setter
1851
+ def next_page_token(self, next_page_token: str):
1852
+ if next_page_token is None:
1853
+ del self.next_page_token
1627
1854
  return
1628
- if not isinstance(submissions_disabled, bool):
1629
- raise TypeError('submissions_disabled must be of type bool')
1630
- self._submissions_disabled = submissions_disabled
1855
+ if not isinstance(next_page_token, str):
1856
+ raise TypeError('next_page_token must be of type str')
1857
+ self._next_page_token = next_page_token
1858
+
1859
+ @property
1860
+ def nextPageToken(self):
1861
+ return self.next_page_token
1631
1862
 
1632
1863
 
1633
- class ApiDataFile(KaggleObject):
1864
+ class ApiStartSubmissionUploadRequest(KaggleObject):
1634
1865
  r"""
1635
1866
  Attributes:
1636
- ref (str)
1637
- name (str)
1638
- description (str)
1639
- total_bytes (int)
1640
- url (str)
1641
- creation_date (datetime)
1867
+ competition_name (str)
1868
+ content_length (int)
1869
+ last_modified_epoch_seconds (int)
1870
+ file_name (str)
1871
+ Comes from form upload
1642
1872
  """
1643
1873
 
1644
1874
  def __init__(self):
1645
- self._ref = ""
1646
- self._name = None
1647
- self._description = None
1648
- self._total_bytes = 0
1649
- self._url = None
1650
- self._creation_date = None
1875
+ self._competition_name = None
1876
+ self._content_length = 0
1877
+ self._last_modified_epoch_seconds = 0
1878
+ self._file_name = ""
1651
1879
  self._freeze()
1652
1880
 
1653
1881
  @property
1654
- def ref(self) -> str:
1655
- return self._ref
1882
+ def competition_name(self) -> str:
1883
+ return self._competition_name or ""
1656
1884
 
1657
- @ref.setter
1658
- def ref(self, ref: str):
1659
- if ref is None:
1660
- del self.ref
1885
+ @competition_name.setter
1886
+ def competition_name(self, competition_name: Optional[str]):
1887
+ if competition_name is None:
1888
+ del self.competition_name
1661
1889
  return
1662
- if not isinstance(ref, str):
1663
- raise TypeError('ref must be of type str')
1664
- self._ref = ref
1890
+ if not isinstance(competition_name, str):
1891
+ raise TypeError('competition_name must be of type str')
1892
+ self._competition_name = competition_name
1665
1893
 
1666
1894
  @property
1667
- def name(self) -> str:
1668
- return self._name or ""
1895
+ def content_length(self) -> int:
1896
+ return self._content_length
1669
1897
 
1670
- @name.setter
1671
- def name(self, name: str):
1672
- if name is None:
1673
- del self.name
1898
+ @content_length.setter
1899
+ def content_length(self, content_length: int):
1900
+ if content_length is None:
1901
+ del self.content_length
1674
1902
  return
1675
- if not isinstance(name, str):
1676
- raise TypeError('name must be of type str')
1677
- self._name = name
1903
+ if not isinstance(content_length, int):
1904
+ raise TypeError('content_length must be of type int')
1905
+ self._content_length = content_length
1678
1906
 
1679
1907
  @property
1680
- def description(self) -> str:
1681
- return self._description or ""
1908
+ def last_modified_epoch_seconds(self) -> int:
1909
+ return self._last_modified_epoch_seconds
1682
1910
 
1683
- @description.setter
1684
- def description(self, description: str):
1685
- if description is None:
1686
- del self.description
1911
+ @last_modified_epoch_seconds.setter
1912
+ def last_modified_epoch_seconds(self, last_modified_epoch_seconds: int):
1913
+ if last_modified_epoch_seconds is None:
1914
+ del self.last_modified_epoch_seconds
1687
1915
  return
1688
- if not isinstance(description, str):
1689
- raise TypeError('description must be of type str')
1690
- self._description = description
1916
+ if not isinstance(last_modified_epoch_seconds, int):
1917
+ raise TypeError('last_modified_epoch_seconds must be of type int')
1918
+ self._last_modified_epoch_seconds = last_modified_epoch_seconds
1691
1919
 
1692
1920
  @property
1693
- def total_bytes(self) -> int:
1694
- return self._total_bytes
1921
+ def file_name(self) -> str:
1922
+ """Comes from form upload"""
1923
+ return self._file_name
1695
1924
 
1696
- @total_bytes.setter
1697
- def total_bytes(self, total_bytes: int):
1698
- if total_bytes is None:
1699
- del self.total_bytes
1925
+ @file_name.setter
1926
+ def file_name(self, file_name: str):
1927
+ if file_name is None:
1928
+ del self.file_name
1700
1929
  return
1701
- if not isinstance(total_bytes, int):
1702
- raise TypeError('total_bytes must be of type int')
1703
- self._total_bytes = total_bytes
1930
+ if not isinstance(file_name, str):
1931
+ raise TypeError('file_name must be of type str')
1932
+ self._file_name = file_name
1933
+
1934
+ def endpoint(self):
1935
+ path = '/api/v1/competitions/submission-url'
1936
+ return path.format_map(self.to_field_map(self))
1937
+
1938
+
1939
+ @staticmethod
1940
+ def method():
1941
+ return 'POST'
1942
+
1943
+
1944
+ class ApiStartSubmissionUploadResponse(KaggleObject):
1945
+ r"""
1946
+ Currently identical to StartBlobUploadResponse, but keeping separate since
1947
+ they could change independently and this is a legacy V1 type.
1948
+
1949
+ Attributes:
1950
+ token (str)
1951
+ create_url (str)
1952
+ """
1953
+
1954
+ def __init__(self):
1955
+ self._token = ""
1956
+ self._create_url = ""
1957
+ self._freeze()
1704
1958
 
1705
1959
  @property
1706
- def url(self) -> str:
1707
- return self._url or ""
1960
+ def token(self) -> str:
1961
+ return self._token
1708
1962
 
1709
- @url.setter
1710
- def url(self, url: str):
1711
- if url is None:
1712
- del self.url
1963
+ @token.setter
1964
+ def token(self, token: str):
1965
+ if token is None:
1966
+ del self.token
1713
1967
  return
1714
- if not isinstance(url, str):
1715
- raise TypeError('url must be of type str')
1716
- self._url = url
1968
+ if not isinstance(token, str):
1969
+ raise TypeError('token must be of type str')
1970
+ self._token = token
1717
1971
 
1718
1972
  @property
1719
- def creation_date(self) -> datetime:
1720
- return self._creation_date
1973
+ def create_url(self) -> str:
1974
+ return self._create_url
1721
1975
 
1722
- @creation_date.setter
1723
- def creation_date(self, creation_date: datetime):
1724
- if creation_date is None:
1725
- del self.creation_date
1976
+ @create_url.setter
1977
+ def create_url(self, create_url: str):
1978
+ if create_url is None:
1979
+ del self.create_url
1726
1980
  return
1727
- if not isinstance(creation_date, datetime):
1728
- raise TypeError('creation_date must be of type datetime')
1729
- self._creation_date = creation_date
1981
+ if not isinstance(create_url, str):
1982
+ raise TypeError('create_url must be of type str')
1983
+ self._create_url = create_url
1730
1984
 
1985
+ @property
1986
+ def createUrl(self):
1987
+ return self.create_url
1731
1988
 
1732
- class ApiCategory(KaggleObject):
1733
- r"""
1734
- TODO(erdalsivri): Consider reusing with Kaggle.Sdk.Datasets.ApiCategory.
1735
1989
 
1990
+ class ApiSubmission(KaggleObject):
1991
+ r"""
1736
1992
  Attributes:
1737
- ref (str)
1738
- name (str)
1993
+ ref (int)
1994
+ total_bytes (int)
1995
+ date (datetime)
1739
1996
  description (str)
1740
- full_path (str)
1741
- competition_count (int)
1742
- dataset_count (int)
1743
- script_count (int)
1744
- total_count (int)
1997
+ error_description (str)
1998
+ file_name (str)
1999
+ public_score (str)
2000
+ private_score (str)
2001
+ status (SubmissionStatus)
2002
+ submitted_by (str)
2003
+ submitted_by_ref (str)
2004
+ team_name (str)
2005
+ url (str)
2006
+ Minor note: ListSubmissions and GetSubmission may differ in setting this
2007
+ field.
1745
2008
  """
1746
2009
 
1747
2010
  def __init__(self):
1748
- self._ref = ""
1749
- self._name = None
2011
+ self._ref = 0
2012
+ self._total_bytes = None
2013
+ self._date = None
1750
2014
  self._description = None
1751
- self._full_path = None
1752
- self._competition_count = 0
1753
- self._dataset_count = 0
1754
- self._script_count = 0
1755
- self._total_count = 0
2015
+ self._error_description = None
2016
+ self._file_name = None
2017
+ self._public_score = None
2018
+ self._private_score = None
2019
+ self._status = SubmissionStatus.PENDING
2020
+ self._submitted_by = None
2021
+ self._submitted_by_ref = None
2022
+ self._team_name = None
2023
+ self._url = None
1756
2024
  self._freeze()
1757
2025
 
1758
2026
  @property
1759
- def ref(self) -> str:
2027
+ def ref(self) -> int:
1760
2028
  return self._ref
1761
2029
 
1762
2030
  @ref.setter
1763
- def ref(self, ref: str):
2031
+ def ref(self, ref: int):
1764
2032
  if ref is None:
1765
2033
  del self.ref
1766
2034
  return
1767
- if not isinstance(ref, str):
1768
- raise TypeError('ref must be of type str')
2035
+ if not isinstance(ref, int):
2036
+ raise TypeError('ref must be of type int')
1769
2037
  self._ref = ref
1770
2038
 
1771
2039
  @property
1772
- def name(self) -> str:
1773
- return self._name or ""
2040
+ def total_bytes(self) -> int:
2041
+ return self._total_bytes or 0
1774
2042
 
1775
- @name.setter
1776
- def name(self, name: str):
1777
- if name is None:
1778
- del self.name
2043
+ @total_bytes.setter
2044
+ def total_bytes(self, total_bytes: Optional[int]):
2045
+ if total_bytes is None:
2046
+ del self.total_bytes
1779
2047
  return
1780
- if not isinstance(name, str):
1781
- raise TypeError('name must be of type str')
1782
- self._name = name
2048
+ if not isinstance(total_bytes, int):
2049
+ raise TypeError('total_bytes must be of type int')
2050
+ self._total_bytes = total_bytes
2051
+
2052
+ @property
2053
+ def date(self) -> datetime:
2054
+ return self._date
2055
+
2056
+ @date.setter
2057
+ def date(self, date: datetime):
2058
+ if date is None:
2059
+ del self.date
2060
+ return
2061
+ if not isinstance(date, datetime):
2062
+ raise TypeError('date must be of type datetime')
2063
+ self._date = date
1783
2064
 
1784
2065
  @property
1785
2066
  def description(self) -> str:
1786
2067
  return self._description or ""
1787
2068
 
1788
2069
  @description.setter
1789
- def description(self, description: str):
2070
+ def description(self, description: Optional[str]):
1790
2071
  if description is None:
1791
2072
  del self.description
1792
2073
  return
@@ -1795,70 +2076,166 @@ class ApiCategory(KaggleObject):
1795
2076
  self._description = description
1796
2077
 
1797
2078
  @property
1798
- def full_path(self) -> str:
1799
- return self._full_path or ""
2079
+ def error_description(self) -> str:
2080
+ return self._error_description or ""
1800
2081
 
1801
- @full_path.setter
1802
- def full_path(self, full_path: str):
1803
- if full_path is None:
1804
- del self.full_path
2082
+ @error_description.setter
2083
+ def error_description(self, error_description: Optional[str]):
2084
+ if error_description is None:
2085
+ del self.error_description
1805
2086
  return
1806
- if not isinstance(full_path, str):
1807
- raise TypeError('full_path must be of type str')
1808
- self._full_path = full_path
2087
+ if not isinstance(error_description, str):
2088
+ raise TypeError('error_description must be of type str')
2089
+ self._error_description = error_description
1809
2090
 
1810
2091
  @property
1811
- def competition_count(self) -> int:
1812
- return self._competition_count
2092
+ def file_name(self) -> str:
2093
+ return self._file_name or ""
1813
2094
 
1814
- @competition_count.setter
1815
- def competition_count(self, competition_count: int):
1816
- if competition_count is None:
1817
- del self.competition_count
2095
+ @file_name.setter
2096
+ def file_name(self, file_name: Optional[str]):
2097
+ if file_name is None:
2098
+ del self.file_name
1818
2099
  return
1819
- if not isinstance(competition_count, int):
1820
- raise TypeError('competition_count must be of type int')
1821
- self._competition_count = competition_count
2100
+ if not isinstance(file_name, str):
2101
+ raise TypeError('file_name must be of type str')
2102
+ self._file_name = file_name
1822
2103
 
1823
2104
  @property
1824
- def dataset_count(self) -> int:
1825
- return self._dataset_count
2105
+ def public_score(self) -> str:
2106
+ return self._public_score or ""
1826
2107
 
1827
- @dataset_count.setter
1828
- def dataset_count(self, dataset_count: int):
1829
- if dataset_count is None:
1830
- del self.dataset_count
2108
+ @public_score.setter
2109
+ def public_score(self, public_score: Optional[str]):
2110
+ if public_score is None:
2111
+ del self.public_score
1831
2112
  return
1832
- if not isinstance(dataset_count, int):
1833
- raise TypeError('dataset_count must be of type int')
1834
- self._dataset_count = dataset_count
2113
+ if not isinstance(public_score, str):
2114
+ raise TypeError('public_score must be of type str')
2115
+ self._public_score = public_score
1835
2116
 
1836
2117
  @property
1837
- def script_count(self) -> int:
1838
- return self._script_count
2118
+ def private_score(self) -> str:
2119
+ return self._private_score or ""
1839
2120
 
1840
- @script_count.setter
1841
- def script_count(self, script_count: int):
1842
- if script_count is None:
1843
- del self.script_count
2121
+ @private_score.setter
2122
+ def private_score(self, private_score: Optional[str]):
2123
+ if private_score is None:
2124
+ del self.private_score
1844
2125
  return
1845
- if not isinstance(script_count, int):
1846
- raise TypeError('script_count must be of type int')
1847
- self._script_count = script_count
2126
+ if not isinstance(private_score, str):
2127
+ raise TypeError('private_score must be of type str')
2128
+ self._private_score = private_score
1848
2129
 
1849
2130
  @property
1850
- def total_count(self) -> int:
1851
- return self._total_count
2131
+ def status(self) -> 'SubmissionStatus':
2132
+ return self._status
1852
2133
 
1853
- @total_count.setter
1854
- def total_count(self, total_count: int):
1855
- if total_count is None:
1856
- del self.total_count
2134
+ @status.setter
2135
+ def status(self, status: 'SubmissionStatus'):
2136
+ if status is None:
2137
+ del self.status
1857
2138
  return
1858
- if not isinstance(total_count, int):
1859
- raise TypeError('total_count must be of type int')
1860
- self._total_count = total_count
2139
+ if not isinstance(status, SubmissionStatus):
2140
+ raise TypeError('status must be of type SubmissionStatus')
2141
+ self._status = status
2142
+
2143
+ @property
2144
+ def submitted_by(self) -> str:
2145
+ return self._submitted_by or ""
2146
+
2147
+ @submitted_by.setter
2148
+ def submitted_by(self, submitted_by: Optional[str]):
2149
+ if submitted_by is None:
2150
+ del self.submitted_by
2151
+ return
2152
+ if not isinstance(submitted_by, str):
2153
+ raise TypeError('submitted_by must be of type str')
2154
+ self._submitted_by = submitted_by
2155
+
2156
+ @property
2157
+ def submitted_by_ref(self) -> str:
2158
+ return self._submitted_by_ref or ""
2159
+
2160
+ @submitted_by_ref.setter
2161
+ def submitted_by_ref(self, submitted_by_ref: Optional[str]):
2162
+ if submitted_by_ref is None:
2163
+ del self.submitted_by_ref
2164
+ return
2165
+ if not isinstance(submitted_by_ref, str):
2166
+ raise TypeError('submitted_by_ref must be of type str')
2167
+ self._submitted_by_ref = submitted_by_ref
2168
+
2169
+ @property
2170
+ def team_name(self) -> str:
2171
+ return self._team_name or ""
2172
+
2173
+ @team_name.setter
2174
+ def team_name(self, team_name: Optional[str]):
2175
+ if team_name is None:
2176
+ del self.team_name
2177
+ return
2178
+ if not isinstance(team_name, str):
2179
+ raise TypeError('team_name must be of type str')
2180
+ self._team_name = team_name
2181
+
2182
+ @property
2183
+ def url(self) -> str:
2184
+ r"""
2185
+ Minor note: ListSubmissions and GetSubmission may differ in setting this
2186
+ field.
2187
+ """
2188
+ return self._url or ""
2189
+
2190
+ @url.setter
2191
+ def url(self, url: Optional[str]):
2192
+ if url is None:
2193
+ del self.url
2194
+ return
2195
+ if not isinstance(url, str):
2196
+ raise TypeError('url must be of type str')
2197
+ self._url = url
2198
+
2199
+
2200
+ ApiCategory._fields = [
2201
+ FieldMetadata("ref", "ref", "_ref", str, "", PredefinedSerializer()),
2202
+ FieldMetadata("name", "name", "_name", str, None, PredefinedSerializer(), optional=True),
2203
+ FieldMetadata("description", "description", "_description", str, None, PredefinedSerializer(), optional=True),
2204
+ FieldMetadata("fullPath", "full_path", "_full_path", str, None, PredefinedSerializer(), optional=True),
2205
+ FieldMetadata("competitionCount", "competition_count", "_competition_count", int, 0, PredefinedSerializer()),
2206
+ FieldMetadata("datasetCount", "dataset_count", "_dataset_count", int, 0, PredefinedSerializer()),
2207
+ FieldMetadata("scriptCount", "script_count", "_script_count", int, 0, PredefinedSerializer()),
2208
+ FieldMetadata("totalCount", "total_count", "_total_count", int, 0, PredefinedSerializer()),
2209
+ ]
1861
2210
 
2211
+ ApiCompetition._fields = [
2212
+ FieldMetadata("id", "id", "_id", int, 0, PredefinedSerializer()),
2213
+ FieldMetadata("ref", "ref", "_ref", str, "", PredefinedSerializer()),
2214
+ FieldMetadata("title", "title", "_title", str, None, PredefinedSerializer(), optional=True),
2215
+ FieldMetadata("url", "url", "_url", str, None, PredefinedSerializer(), optional=True),
2216
+ FieldMetadata("description", "description", "_description", str, None, PredefinedSerializer(), optional=True),
2217
+ FieldMetadata("organizationName", "organization_name", "_organization_name", str, None, PredefinedSerializer(), optional=True),
2218
+ FieldMetadata("organizationRef", "organization_ref", "_organization_ref", str, None, PredefinedSerializer(), optional=True),
2219
+ FieldMetadata("category", "category", "_category", str, None, PredefinedSerializer(), optional=True),
2220
+ FieldMetadata("reward", "reward", "_reward", str, None, PredefinedSerializer(), optional=True),
2221
+ FieldMetadata("tags", "tags", "_tags", ApiCategory, [], ListSerializer(KaggleObjectSerializer())),
2222
+ FieldMetadata("deadline", "deadline", "_deadline", datetime, None, DateTimeSerializer()),
2223
+ FieldMetadata("kernelCount", "kernel_count", "_kernel_count", int, 0, PredefinedSerializer()),
2224
+ FieldMetadata("teamCount", "team_count", "_team_count", int, 0, PredefinedSerializer()),
2225
+ FieldMetadata("userHasEntered", "user_has_entered", "_user_has_entered", bool, False, PredefinedSerializer()),
2226
+ FieldMetadata("userRank", "user_rank", "_user_rank", int, None, PredefinedSerializer(), optional=True),
2227
+ FieldMetadata("mergerDeadline", "merger_deadline", "_merger_deadline", datetime, None, DateTimeSerializer()),
2228
+ FieldMetadata("newEntrantDeadline", "new_entrant_deadline", "_new_entrant_deadline", datetime, None, DateTimeSerializer()),
2229
+ FieldMetadata("enabledDate", "enabled_date", "_enabled_date", datetime, None, DateTimeSerializer()),
2230
+ FieldMetadata("maxDailySubmissions", "max_daily_submissions", "_max_daily_submissions", int, 0, PredefinedSerializer()),
2231
+ FieldMetadata("maxTeamSize", "max_team_size", "_max_team_size", int, None, PredefinedSerializer(), optional=True),
2232
+ FieldMetadata("evaluationMetric", "evaluation_metric", "_evaluation_metric", str, None, PredefinedSerializer(), optional=True),
2233
+ FieldMetadata("awardsPoints", "awards_points", "_awards_points", bool, False, PredefinedSerializer()),
2234
+ FieldMetadata("isKernelsSubmissionsOnly", "is_kernels_submissions_only", "_is_kernels_submissions_only", bool, False, PredefinedSerializer()),
2235
+ FieldMetadata("submissionsDisabled", "submissions_disabled", "_submissions_disabled", bool, False, PredefinedSerializer()),
2236
+ FieldMetadata("thumbnailImageUrl", "thumbnail_image_url", "_thumbnail_image_url", str, None, PredefinedSerializer(), optional=True),
2237
+ FieldMetadata("hostName", "host_name", "_host_name", str, "", PredefinedSerializer()),
2238
+ ]
1862
2239
 
1863
2240
  ApiCreateCodeSubmissionRequest._fields = [
1864
2241
  FieldMetadata("competitionName", "competition_name", "_competition_name", str, "", PredefinedSerializer()),
@@ -1885,6 +2262,15 @@ ApiCreateSubmissionResponse._fields = [
1885
2262
  FieldMetadata("ref", "ref", "_ref", int, 0, PredefinedSerializer()),
1886
2263
  ]
1887
2264
 
2265
+ ApiDataFile._fields = [
2266
+ FieldMetadata("ref", "ref", "_ref", str, "", PredefinedSerializer()),
2267
+ FieldMetadata("name", "name", "_name", str, None, PredefinedSerializer(), optional=True),
2268
+ FieldMetadata("description", "description", "_description", str, None, PredefinedSerializer(), optional=True),
2269
+ FieldMetadata("totalBytes", "total_bytes", "_total_bytes", int, 0, PredefinedSerializer()),
2270
+ FieldMetadata("url", "url", "_url", str, None, PredefinedSerializer(), optional=True),
2271
+ FieldMetadata("creationDate", "creation_date", "_creation_date", datetime, None, DateTimeSerializer()),
2272
+ ]
2273
+
1888
2274
  ApiDownloadDataFileRequest._fields = [
1889
2275
  FieldMetadata("competitionName", "competition_name", "_competition_name", str, "", PredefinedSerializer()),
1890
2276
  FieldMetadata("fileName", "file_name", "_file_name", str, "", PredefinedSerializer()),
@@ -1898,13 +2284,24 @@ ApiDownloadLeaderboardRequest._fields = [
1898
2284
  FieldMetadata("competitionName", "competition_name", "_competition_name", str, "", PredefinedSerializer()),
1899
2285
  ]
1900
2286
 
2287
+ ApiGetCompetitionDataFilesSummaryRequest._fields = [
2288
+ FieldMetadata("competitionName", "competition_name", "_competition_name", str, "", PredefinedSerializer()),
2289
+ ]
2290
+
2291
+ ApiGetCompetitionRequest._fields = [
2292
+ FieldMetadata("competitionName", "competition_name", "_competition_name", str, "", PredefinedSerializer()),
2293
+ ]
2294
+
1901
2295
  ApiGetLeaderboardRequest._fields = [
1902
2296
  FieldMetadata("competitionName", "competition_name", "_competition_name", str, "", PredefinedSerializer()),
1903
2297
  FieldMetadata("overridePublic", "override_public", "_override_public", bool, None, PredefinedSerializer(), optional=True),
2298
+ FieldMetadata("pageSize", "page_size", "_page_size", int, None, PredefinedSerializer(), optional=True),
2299
+ FieldMetadata("pageToken", "page_token", "_page_token", str, None, PredefinedSerializer(), optional=True),
1904
2300
  ]
1905
2301
 
1906
2302
  ApiGetLeaderboardResponse._fields = [
1907
2303
  FieldMetadata("submissions", "submissions", "_submissions", ApiLeaderboardSubmission, [], ListSerializer(KaggleObjectSerializer())),
2304
+ FieldMetadata("nextPageToken", "next_page_token", "_next_page_token", str, "", PredefinedSerializer()),
1908
2305
  ]
1909
2306
 
1910
2307
  ApiGetSubmissionRequest._fields = [
@@ -1924,10 +2321,13 @@ ApiListCompetitionsRequest._fields = [
1924
2321
  FieldMetadata("sortBy", "sort_by", "_sort_by", CompetitionSortBy, None, EnumSerializer(), optional=True),
1925
2322
  FieldMetadata("search", "search", "_search", str, None, PredefinedSerializer(), optional=True),
1926
2323
  FieldMetadata("page", "page", "_page", int, None, PredefinedSerializer(), optional=True),
2324
+ FieldMetadata("pageToken", "page_token", "_page_token", str, None, PredefinedSerializer(), optional=True),
2325
+ FieldMetadata("pageSize", "page_size", "_page_size", int, None, PredefinedSerializer(), optional=True),
1927
2326
  ]
1928
2327
 
1929
2328
  ApiListCompetitionsResponse._fields = [
1930
2329
  FieldMetadata("competitions", "competitions", "_competitions", ApiCompetition, [], ListSerializer(KaggleObjectSerializer())),
2330
+ FieldMetadata("nextPageToken", "next_page_token", "_next_page_token", str, "", PredefinedSerializer()),
1931
2331
  ]
1932
2332
 
1933
2333
  ApiListDataFilesRequest._fields = [
@@ -1939,6 +2339,14 @@ ApiListDataFilesRequest._fields = [
1939
2339
  ApiListDataFilesResponse._fields = [
1940
2340
  FieldMetadata("files", "files", "_files", ApiDataFile, [], ListSerializer(KaggleObjectSerializer())),
1941
2341
  FieldMetadata("nextPageToken", "next_page_token", "_next_page_token", str, "", PredefinedSerializer()),
2342
+ FieldMetadata("childrenFetchTimeMs", "children_fetch_time_ms", "_children_fetch_time_ms", int, 0, PredefinedSerializer()),
2343
+ ]
2344
+
2345
+ ApiListDataTreeFilesRequest._fields = [
2346
+ FieldMetadata("competitionName", "competition_name", "_competition_name", str, "", PredefinedSerializer()),
2347
+ FieldMetadata("path", "path", "_path", str, None, PredefinedSerializer(), optional=True),
2348
+ FieldMetadata("pageSize", "page_size", "_page_size", int, None, PredefinedSerializer(), optional=True),
2349
+ FieldMetadata("pageToken", "page_token", "_page_token", str, None, PredefinedSerializer(), optional=True),
1942
2350
  ]
1943
2351
 
1944
2352
  ApiListSubmissionsRequest._fields = [
@@ -1946,10 +2354,13 @@ ApiListSubmissionsRequest._fields = [
1946
2354
  FieldMetadata("sortBy", "sort_by", "_sort_by", SubmissionSortBy, SubmissionSortBy.SUBMISSION_SORT_BY_DATE, EnumSerializer()),
1947
2355
  FieldMetadata("group", "group", "_group", SubmissionGroup, SubmissionGroup.SUBMISSION_GROUP_ALL, EnumSerializer()),
1948
2356
  FieldMetadata("page", "page", "_page", int, None, PredefinedSerializer(), optional=True),
2357
+ FieldMetadata("pageToken", "page_token", "_page_token", str, None, PredefinedSerializer(), optional=True),
2358
+ FieldMetadata("pageSize", "page_size", "_page_size", int, None, PredefinedSerializer(), optional=True),
1949
2359
  ]
1950
2360
 
1951
2361
  ApiListSubmissionsResponse._fields = [
1952
2362
  FieldMetadata("submissions", "submissions", "_submissions", ApiSubmission, [], ListSerializer(KaggleObjectSerializer())),
2363
+ FieldMetadata("nextPageToken", "next_page_token", "_next_page_token", str, "", PredefinedSerializer()),
1953
2364
  ]
1954
2365
 
1955
2366
  ApiStartSubmissionUploadRequest._fields = [
@@ -1980,50 +2391,3 @@ ApiSubmission._fields = [
1980
2391
  FieldMetadata("url", "url", "_url", str, None, PredefinedSerializer(), optional=True),
1981
2392
  ]
1982
2393
 
1983
- ApiCompetition._fields = [
1984
- FieldMetadata("id", "id", "_id", int, 0, PredefinedSerializer()),
1985
- FieldMetadata("ref", "ref", "_ref", str, "", PredefinedSerializer()),
1986
- FieldMetadata("title", "title", "_title", str, None, PredefinedSerializer(), optional=True),
1987
- FieldMetadata("url", "url", "_url", str, None, PredefinedSerializer(), optional=True),
1988
- FieldMetadata("description", "description", "_description", str, None, PredefinedSerializer(), optional=True),
1989
- FieldMetadata("organizationName", "organization_name", "_organization_name", str, None, PredefinedSerializer(), optional=True),
1990
- FieldMetadata("organizationRef", "organization_ref", "_organization_ref", str, None, PredefinedSerializer(), optional=True),
1991
- FieldMetadata("category", "category", "_category", str, None, PredefinedSerializer(), optional=True),
1992
- FieldMetadata("reward", "reward", "_reward", str, None, PredefinedSerializer(), optional=True),
1993
- FieldMetadata("tags", "tags", "_tags", ApiCategory, [], ListSerializer(KaggleObjectSerializer())),
1994
- FieldMetadata("deadline", "deadline", "_deadline", datetime, None, DateTimeSerializer()),
1995
- FieldMetadata("kernelCount", "kernel_count", "_kernel_count", int, 0, PredefinedSerializer()),
1996
- FieldMetadata("teamCount", "team_count", "_team_count", int, 0, PredefinedSerializer()),
1997
- FieldMetadata("userHasEntered", "user_has_entered", "_user_has_entered", bool, False, PredefinedSerializer()),
1998
- FieldMetadata("userRank", "user_rank", "_user_rank", int, None, PredefinedSerializer(), optional=True),
1999
- FieldMetadata("mergerDeadline", "merger_deadline", "_merger_deadline", datetime, None, DateTimeSerializer()),
2000
- FieldMetadata("newEntrantDeadline", "new_entrant_deadline", "_new_entrant_deadline", datetime, None, DateTimeSerializer()),
2001
- FieldMetadata("enabledDate", "enabled_date", "_enabled_date", datetime, None, DateTimeSerializer()),
2002
- FieldMetadata("maxDailySubmissions", "max_daily_submissions", "_max_daily_submissions", int, 0, PredefinedSerializer()),
2003
- FieldMetadata("maxTeamSize", "max_team_size", "_max_team_size", int, None, PredefinedSerializer(), optional=True),
2004
- FieldMetadata("evaluationMetric", "evaluation_metric", "_evaluation_metric", str, None, PredefinedSerializer(), optional=True),
2005
- FieldMetadata("awardsPoints", "awards_points", "_awards_points", bool, False, PredefinedSerializer()),
2006
- FieldMetadata("isKernelsSubmissionsOnly", "is_kernels_submissions_only", "_is_kernels_submissions_only", bool, False, PredefinedSerializer()),
2007
- FieldMetadata("submissionsDisabled", "submissions_disabled", "_submissions_disabled", bool, False, PredefinedSerializer()),
2008
- ]
2009
-
2010
- ApiDataFile._fields = [
2011
- FieldMetadata("ref", "ref", "_ref", str, "", PredefinedSerializer()),
2012
- FieldMetadata("name", "name", "_name", str, None, PredefinedSerializer(), optional=True),
2013
- FieldMetadata("description", "description", "_description", str, None, PredefinedSerializer(), optional=True),
2014
- FieldMetadata("totalBytes", "total_bytes", "_total_bytes", int, 0, PredefinedSerializer()),
2015
- FieldMetadata("url", "url", "_url", str, None, PredefinedSerializer(), optional=True),
2016
- FieldMetadata("creationDate", "creation_date", "_creation_date", datetime, None, DateTimeSerializer()),
2017
- ]
2018
-
2019
- ApiCategory._fields = [
2020
- FieldMetadata("ref", "ref", "_ref", str, "", PredefinedSerializer()),
2021
- FieldMetadata("name", "name", "_name", str, None, PredefinedSerializer(), optional=True),
2022
- FieldMetadata("description", "description", "_description", str, None, PredefinedSerializer(), optional=True),
2023
- FieldMetadata("fullPath", "full_path", "_full_path", str, None, PredefinedSerializer(), optional=True),
2024
- FieldMetadata("competitionCount", "competition_count", "_competition_count", int, 0, PredefinedSerializer()),
2025
- FieldMetadata("datasetCount", "dataset_count", "_dataset_count", int, 0, PredefinedSerializer()),
2026
- FieldMetadata("scriptCount", "script_count", "_script_count", int, 0, PredefinedSerializer()),
2027
- FieldMetadata("totalCount", "total_count", "_total_count", int, 0, PredefinedSerializer()),
2028
- ]
2029
-