kaggle 1.7.4.2__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 (114) hide show
  1. kaggle/__init__.py +10 -6
  2. kaggle/api/kaggle_api.py +574 -585
  3. kaggle/api/kaggle_api_extended.py +5251 -4738
  4. kaggle/cli.py +1335 -1585
  5. kaggle/models/api_blob_type.py +3 -3
  6. kaggle/models/dataset_column.py +129 -129
  7. kaggle/models/dataset_new_request.py +130 -72
  8. kaggle/models/dataset_new_version_request.py +88 -56
  9. kaggle/models/dataset_update_settings_request.py +93 -59
  10. kaggle/models/kaggle_models_extended.py +169 -172
  11. kaggle/models/kernel_push_request.py +152 -100
  12. kaggle/models/model_instance_new_version_request.py +30 -30
  13. kaggle/models/model_instance_update_request.py +171 -71
  14. kaggle/models/model_new_instance_request.py +223 -88
  15. kaggle/models/model_new_request.py +61 -46
  16. kaggle/models/model_update_request.py +66 -48
  17. kaggle/models/start_blob_upload_request.py +146 -138
  18. kaggle/models/start_blob_upload_response.py +83 -78
  19. kaggle/models/upload_file.py +92 -96
  20. kaggle/test/test_authenticate.py +23 -23
  21. {kaggle-1.7.4.2.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 +567 -297
  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 +55 -20
  61. kagglesdk/kaggle_creds.py +148 -0
  62. kagglesdk/kaggle_env.py +89 -27
  63. kagglesdk/kaggle_http_client.py +235 -290
  64. kagglesdk/kaggle_oauth.py +200 -0
  65. kagglesdk/kaggle_object.py +298 -250
  66. kagglesdk/kernels/services/kernels_api_service.py +46 -9
  67. kagglesdk/kernels/types/kernels_api_service.py +658 -158
  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 +46 -21
  74. kagglesdk/models/types/model_api_service.py +1018 -652
  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/__init__.py +0 -0
  88. kagglesdk/security/services/__init__.py +0 -0
  89. kagglesdk/security/services/iam_service.py +31 -0
  90. kagglesdk/security/services/oauth_service.py +58 -0
  91. kagglesdk/security/types/__init__.py +0 -0
  92. kagglesdk/security/types/authentication.py +171 -0
  93. kagglesdk/security/types/iam_service.py +496 -0
  94. kagglesdk/security/types/oauth_service.py +1181 -0
  95. kagglesdk/security/types/roles.py +8 -0
  96. kagglesdk/security/types/security_types.py +159 -0
  97. kagglesdk/test/__init__.py +0 -0
  98. kagglesdk/test/test_client.py +20 -24
  99. kagglesdk/users/services/__init__.py +0 -0
  100. kagglesdk/users/services/account_service.py +31 -0
  101. kagglesdk/users/services/group_api_service.py +31 -0
  102. kagglesdk/users/types/account_service.py +345 -0
  103. kagglesdk/users/types/group_api_service.py +315 -0
  104. kagglesdk/users/types/group_types.py +165 -0
  105. kagglesdk/users/types/groups_enum.py +8 -0
  106. kagglesdk/users/types/progression_service.py +9 -0
  107. kagglesdk/users/types/search_users.py +23 -0
  108. kagglesdk/users/types/user_avatar.py +226 -0
  109. kaggle/configuration.py +0 -206
  110. kaggle-1.7.4.2.dist-info/RECORD +0 -89
  111. {kaggle-1.7.4.2.dist-info → kaggle-1.8.0.dist-info}/WHEEL +0 -0
  112. {kaggle-1.7.4.2.dist-info → kaggle-1.8.0.dist-info}/entry_points.txt +0 -0
  113. {kaggle-1.7.4.2.dist-info → kaggle-1.8.0.dist-info}/licenses/LICENSE.txt +0 -0
  114. {kaggle/test → kagglesdk/benchmarks}/__init__.py +0 -0
kaggle/api/kaggle_api.py CHANGED
@@ -27,588 +27,577 @@ import tempfile
27
27
 
28
28
  class KaggleApi(object):
29
29
 
30
- def __init__(self, api_client=None):
31
- if api_client is None:
32
- api_client = api.KaggleApi()
33
- self.api_client = api_client
34
-
35
- def competition_download_leaderboard(self, id): # noqa: E501
36
- """Download competition leaderboard # noqa: E501
37
-
38
- :param str id: Competition name (required)
39
- :return: Result
40
- """
41
- return self.api_client.competition_leaderboard_download(id, None)
42
-
43
- def competition_view_leaderboard(self, id): # noqa: E501
44
- """VIew competition leaderboard # noqa: E501
45
-
46
- :param str id: Competition name (required)
47
- :return: Result
48
- """
49
- return self.api_client.competition_leaderboard_view(id)
50
-
51
- def competitions_data_download_file(self, id, file_name): # noqa: E501
52
- """Download competition data file # noqa: E501
53
-
54
- :param str id: Competition name (required)
55
- :param str file_name: Competition name (required)
56
- :return: Result
57
- """
58
- return self.api_client.competition_download_file(id, file_name)
59
-
60
- def competitions_data_download_files(self, id): # noqa: E501
61
- """Download all competition data files # noqa: E501
62
-
63
- :param str id: Competition name (required)
64
- :return: Result
65
- """
66
- return self.api_client.competition_download_files(id)
67
-
68
- def competitions_data_list_files(self, id): # noqa: E501
69
- """List competition data files # noqa: E501
70
-
71
- :param str id: Competition name (required)
72
- :return: Result
73
- """
74
- return self.api_client.competition_list_files(id)
75
-
76
- def competitions_list(self,
77
- group=None,
78
- category=None,
79
- sort_by=None,
80
- page=1,
81
- search=None): # noqa: E501
82
- """List competitions # noqa: E501
83
-
84
- :param str group: Filter competitions by a particular group
85
- :param str category: Filter competitions by a particular category
86
- :param str sort_by: Sort the results
87
- :param int page: Page number
88
- :param str search: Search terms
89
- :return: Result
90
- If the method is called asynchronously,
91
- returns the request thread.
92
- """
93
- return self.api_client.competitions_list(group, category, sort_by, page,
94
- search)
95
-
96
- def competitions_submissions_list(self, id, page=0): # noqa: E501
97
- """List competition submissions # noqa: E501
98
-
99
- :param str id: Competition name (required)
100
- :param int page: Page number
101
- :return: Result
102
- """
103
- return self.api_client.competition_submissions(id, page)
104
-
105
- def competitions_submissions_submit(self, blob_file_tokens,
106
- submission_description, id): # noqa: E501
107
- """Submit to competition # noqa: E501
108
-
109
- :param str blob_file_tokens: Token identifying location of uploaded submission file (required)
110
- :param str submission_description: Description of competition submission (required)
111
- :param str id: Competition name (required)
112
- :return: Result
113
- """
114
- print("competitions_submissions_submit() not implemented")
115
- print("use kaggle_api_extended.KaggleApi.competition_submit() instead")
116
- raise NotImplementedError()
117
-
118
- def competitions_submissions_upload(self, file, guid, content_length,
119
- last_modified_date_utc): # noqa: E501
120
- """Upload competition submission file # noqa: E501
121
-
122
- :param file file: Competition submission file (required)
123
- :param str guid: Location where submission should be uploaded (required)
124
- :param int content_length: Content length of file in bytes (required)
125
- :param int last_modified_date_utc: Last modified date of file in seconds since epoch in UTC (required)
126
- :return: Result
127
- """
128
- print("competitions_submissions_upload() not implemented")
129
- print(
130
- "use kaggle_api_extended.KaggleApi.competitions_submissions_submit() instead"
131
- )
132
- raise NotImplementedError()
133
-
134
- def competitions_submissions_url(self, id, content_length,
135
- last_modified_date_utc): # noqa: E501
136
- """Generate competition submission URL # noqa: E501
137
-
138
- :param str id: Competition name, as it appears in the competition's URL (required)
139
- :param int content_length: Content length of file in bytes (required)
140
- :param int last_modified_date_utc: Last modified date of file in seconds since epoch in UTC (required)
141
- :param str file_name: Competition submission file name
142
- :return: Result
143
- """
144
- print("competitions_submissions_url() not implemented")
145
- print("use kaggle_api_extended.KaggleApi.competition_submit() instead")
146
- raise NotImplementedError()
147
-
148
- def create_inbox_file(self, create_inbox_file_request): # noqa: E501
149
- """Creates (aka \"drops\") a new file into the inbox. # noqa: E501
150
-
151
- :param CreateInboxFileRequest create_inbox_file_request: (required)
152
- :return: Result
153
- """
154
- print("create_inbox_file() not implemented")
155
- print("use kaggle_api_extended.KaggleApi.files_upload_cli() instead")
156
- raise NotImplementedError()
157
-
158
- def datasets_create_new(self, request): # noqa: E501
159
- """Create a new dataset # noqa: E501
160
-
161
- :param DatasetNewRequest request: Information for creating a new dataset (required)
162
- :return: Result
163
- """
164
- print("datasets_create_new() not implemented")
165
- print("use kaggle_api_extended.KaggleApi.dataset_create_new() instead")
166
- raise NotImplementedError()
167
-
168
- def datasets_create_version_by_id(self, id, dataset_new_version_request,
169
- **kwargs): # noqa: E501
170
- """Create a new dataset version by id # noqa: E501
171
-
172
- :param int id: Dataset ID (required)
173
- :param DatasetNewVersionRequest dataset_new_version_request: Information for creating a new dataset version (required)
174
- :return: Result
175
- If the method is called asynchronously,
176
- returns the request thread.
177
- """
178
- print("datasets_create_version_by_id() not implemented")
179
- print("use kaggle_api_extended.KaggleApi.dataset_create_version() instead")
180
- raise NotImplementedError()
181
-
182
- def datasets_download(self,
183
- owner_slug,
184
- dataset_slug,
185
- dataset_version_number=None): # noqa: E501
186
- """Download dataset file # noqa: E501
187
-
188
- :param str owner_slug: Dataset owner (required)
189
- :param str dataset_slug: Dataset name (required)
190
- :param str dataset_version_number: Dataset version number
191
- :return: Result
192
- """
193
- dataset = f'{owner_slug}/{dataset_slug}'
194
- if dataset_version_number is not None:
195
- dataset += f'/{dataset_version_number}'
196
- return self.api_client.dataset_download_files(dataset)
197
-
198
- def datasets_download_file(self,
199
- owner_slug,
200
- dataset_slug,
201
- file_name,
202
- dataset_version_number=None): # noqa: E501
203
- """Download dataset file # noqa: E501
204
-
205
- :param str owner_slug: Dataset owner (required)
206
- :param str dataset_slug: Dataset name (required)
207
- :param str file_name: File name (required)
208
- :param str dataset_version_number: Dataset version number
209
- :return: Result
210
- If the method is called asynchronously,
211
- returns the request thread.
212
- """
213
- dataset = f'{owner_slug}/{dataset_slug}'
214
- if dataset_version_number is not None:
215
- dataset += f'@{dataset_version_number}'
216
- return self.api_client.dataset_download_file(dataset, file_name)
217
-
218
- def datasets_list(self,
219
- sort_by=None,
220
- size=None,
221
- file_type=None,
222
- license_name=None,
223
- tag_ids=None,
224
- search=None,
225
- user=None,
226
- mine=False,
227
- page=1,
228
- max_size=None,
229
- min_size=None): # noqa: E501
230
- """List datasets # noqa: E501
231
-
232
- :param str group: Display datasets by a particular group
233
- :param str sort_by: Sort the results
234
- :param str size: (DEPRECATED). Please use --max-size and --min-size to filter dataset sizes.
235
- :param str filetype: Display datasets of a specific file type
236
- :param str license: Display datasets with a specific license
237
- :param str tagids: A comma separated list of tags to filter by
238
- :param str search: Search terms
239
- :param str user: Display datasets by a specific user or organization
240
- :param int page: Page number
241
- :param int max_size: Max Dataset Size (bytes)
242
- :param int min_size: Max Dataset Size (bytes)
243
- :return: Result
244
- If the method is called asynchronously,
245
- returns the request thread.
246
- """
247
- return self.api_client.dataset_list(
248
- sort_by=sort_by,
249
- size=size,
250
- file_type=file_type,
251
- license_name=license_name,
252
- tag_ids=tag_ids,
253
- search=search,
254
- user=user,
255
- mine=mine,
256
- page=page,
257
- max_size=max_size,
258
- min_size=min_size)
259
-
260
- def datasets_status(self, owner_slug, dataset_slug, **kwargs): # noqa: E501
261
- """Get dataset creation status # noqa: E501
262
-
263
- :param str owner_slug: Dataset owner (required)
264
- :param str dataset_slug: Dataset name (required)
265
- :return: Result
266
- """
267
- return self.api_client.dataset_status(f'{owner_slug}/{dataset_slug})')
268
-
269
- def delete_model(self, owner_slug, model_slug): # noqa: E501
270
- """Delete a model # noqa: E501
271
-
272
- :param str owner_slug: Model owner (required)
273
- :param str model_slug: Model name (required)
274
- :return: Result
275
- If the method is called asynchronously,
276
- returns the request thread.
277
- """
278
- return self.api_client.model_delete(f'{owner_slug}/{model_slug})')
279
-
280
- def delete_model_instance(self, owner_slug, model_slug, framework,
281
- instance_slug): # noqa: E501
282
- """Delete a model instance # noqa: E501
283
-
284
- :param str owner_slug: Model owner (required)
285
- :param str model_slug: Model name (required)
286
- :param str framework: Model instance framework (required)
287
- :param str instance_slug: Model instance slug (required)
288
- :return: Result
289
- """
290
- return self.api_client.model_instance_delete(
291
- f'{owner_slug}/{model_slug}/{framework}/{instance_slug}', yes=True)
292
-
293
- def delete_model_instance_version(self, owner_slug, model_slug, framework,
294
- instance_slug,
295
- version_number): # noqa: E501
296
- """Delete a model instance version # noqa: E501
297
-
298
- :param str owner_slug: Model owner (required)
299
- :param str model_slug: Model name (required)
300
- :param str framework: Model instance framework (required)
301
- :param str instance_slug: Model instance slug (required)
302
- :param str version_number: Model instance version number (required)
303
- :return: Result
304
- """
305
- return self.api_client.model_instance_version_delete(
306
- f'{owner_slug}/{model_slug}/{framework}/{instance_slug}/{version_number}',
307
- yes=True)
308
-
309
- def get_model(self, owner_slug, model_slug): # noqa: E501
310
- """Get a model # noqa: E501
311
-
312
- :param str owner_slug: Model owner (required)
313
- :param str model_slug: Model name (required)
314
- :return: Result
315
- """
316
- return self.api_client.model_get(f'{owner_slug}/{model_slug}')
317
-
318
- def get_model_instance(self, owner_slug, model_slug, framework,
319
- instance_slug): # noqa: E501
320
- """Get a model instance # noqa: E501
321
-
322
- :param str owner_slug: Model owner (required)
323
- :param str model_slug: Model name (required)
324
- :param str framework: Model instance framework (required)
325
- :param str instance_slug: Model instance slug (required)
326
- :return: Result
327
- """
328
- return self.api_client.model_instance_get(
329
- f'{owner_slug}/{model_slug}/{framework}/{instance_slug}')
330
-
331
- def kernel_output(self, user_name, kernel_slug): # noqa: E501
332
- """Download the latest output from a kernel # noqa: E501
333
-
334
- :param str user_name: Kernel owner (required)
335
- :param str kernel_slug: Kernel name (required)
336
- :return: Result
337
- """
338
- return self.api_client.kernels_output(
339
- f'{user_name}/{kernel_slug}', path=None, force=True)
340
-
341
- def kernel_pull(self, user_name, kernel_slug): # noqa: E501
342
- """Pull the latest code from a kernel # noqa: E501
343
-
344
- :param str user_name: Kernel owner (required)
345
- :param str kernel_slug: Kernel name (required)
346
- :return: Result
347
- """
348
- return self.api_client.kernels_pull(f'{user_name}/{kernel_slug}', path=None)
349
-
350
- def kernel_push(self, kernel_push_request): # noqa: E501
351
- """Push a new kernel version. Can be used to create a new kernel and update an existing one. # noqa: E501
352
-
353
- :param KernelPushRequest kernel_push_request: Information for pushing a new kernel version (required)
354
- :return: Result
355
- """
356
- with tempfile.TemporaryDirectory() as tmpdir:
357
- meta_file = os.path.join(tmpdir, 'kernel-metadata.json')
358
- (fd, code_file) = tempfile.mkstemp('code', 'py', tmpdir, text=True)
359
- fd.write(json.dumps(kernel_push_request.code))
360
- os.close(fd)
361
- with open(meta_file, 'w') as f:
362
- params = kernel_push_request.to_dict()
363
- params['code_file'] = code_file
364
- params['competition_sources'] = params.get('competition_data_sources')
365
- params['dataset_sources'] = params.get('dataset_data_sources')
366
- params['kernel_sources'] = params.get('kernel_data_sources')
367
- params['model_sources'] = params.get('model_data_sources')
368
- params['title'] = params.get('new_title')
369
- entries_to_remove = ('competition_data_sources', 'dataset_data_sources',
370
- 'kernel_data_sources', 'model_data_sources',
371
- 'new_title')
372
- for k in entries_to_remove:
373
- params.pop(k, None)
374
- f.write(json.dumps(params))
375
- return self.api_client.kernels_push(tmpdir)
376
-
377
- def kernel_status(self, user_name, kernel_slug): # noqa: E501
378
- """Get the status of the latest kernel version # noqa: E501
379
-
380
- :param str user_name: Kernel owner (required)
381
- :param str kernel_slug: Kernel name (required)
382
- :return: Result
383
- """
384
- return self.api_client.kernels_status(f'{user_name}/{kernel_slug}')
385
-
386
- def kernels_list(self,
387
- page=1,
388
- page_size=20,
389
- dataset=None,
390
- competition=None,
391
- parent_kernel=None,
392
- search=None,
393
- group='everyone',
394
- user=None,
395
- language=None,
396
- kernel_type=None,
397
- output_type=None,
398
- sort_by=None): # noqa: E501
399
- """List kernels # noqa: E501
400
-
401
- :param int page: Page number
402
- :param int page_size: Page size
403
- :param str search: Search terms
404
- :param str group: Display only your kernels
405
- :param str user: Display kernels by a particular group
406
- :param str language: Display kernels in a specific language
407
- :param str kernel_type: Display kernels of a specific type
408
- :param str output_type: Display kernels with a specific output type
409
- :param str sort_by: Sort the results. 'relevance' only works if there is a search query
410
- :param str dataset: Display kernels using the specified dataset
411
- :param str competition: Display kernels using the specified competition
412
- :param str parent_kernel: Display kernels that have forked the specified kernel
413
- :return: Result
414
- """
415
- return self.api_client.kernels_list(
416
- page=page,
417
- page_size=page_size,
418
- dataset=dataset,
419
- competition=competition,
420
- parent_kernel=parent_kernel,
421
- search=search,
422
- mine=group != 'everyone',
423
- user=user,
424
- language=language,
425
- kernel_type=kernel_type,
426
- output_type=output_type,
427
- sort_by=sort_by)
428
-
429
- def metadata_get(self, owner_slug, dataset_slug): # noqa: E501
430
- """Get the metadata for a dataset # noqa: E501
431
-
432
- :param str owner_slug: Dataset owner (required)
433
- :param str dataset_slug: Dataset name (required)
434
- :return: Result
435
- """
436
- return self.api_client.dataset_metadata(f'{owner_slug}/{dataset_slug}',
437
- None)
438
-
439
- def metadata_post(self, owner_slug, dataset_slug, settings,
440
- request): # noqa: E501
441
- """Update the metadata for a dataset # noqa: E501
442
-
443
- :param str owner_slug: Dataset owner (required)
444
- :param str dataset_slug: Dataset name (required)
445
- :param DatasetUpdateSettingsRequest settings: Dataset metadata to update (required)
446
- :return: Result
447
- """
448
- with tempfile.TemporaryDirectory() as tmpdir:
449
- meta_file = os.path.join(tmpdir, 'dataset-metadata.json')
450
- with open(meta_file, 'w') as f:
451
- params = request.to_dict()
452
- params['isPrivate'] = params.get('is_private')
453
- params.pop('is_private', None)
454
- f.write(json.dumps(params))
455
- return self.api_client.dataset_metadata_update(
456
- f'{owner_slug}/{dataset_slug}', meta_file)
457
-
458
- def model_instance_versions_download(self, owner_slug, model_slug, framework,
459
- instance_slug,
460
- version_number): # noqa: E501
461
- """Download model instance version files # noqa: E501
462
-
463
- :param str owner_slug: Model owner (required)
464
- :param str model_slug: Model name (required)
465
- :param str framework: Model instance framework (required)
466
- :param str instance_slug: Model instance slug (required)
467
- :param str version_number: Model instance version number (required)
468
- :return: Result
469
- """
470
- v = f'{owner_slug}/{model_slug}/{framework}/{instance_slug}/{version_number}'
471
- return self.api_client.model_instance_version_download(v)
472
-
473
- def models_create_instance(self, owner_slug, model_slug,
474
- model_new_instance_request): # noqa: E501
475
- """Create a new model instance # noqa: E501
476
-
477
- :param str owner_slug: Model owner (required)
478
- :param str model_slug: Model slug (required)
479
- :param ModelNewInstanceRequest model_new_instance_request: Information for creating a new model instance (required)
480
- :return: Result
481
- """
482
- print("models_create_instance() not implemented")
483
- print("use kaggle_api_extended.KaggleApi.model_instance_create() instead")
484
- raise NotImplementedError()
485
-
486
- def models_create_instance_version(
487
- self, owner_slug, model_slug, framework, instance_slug,
488
- model_instance_new_version_request): # noqa: E501
489
- """Create a new model instance version # noqa: E501
490
-
491
- :param str owner_slug: Model owner (required)
492
- :param str model_slug: Model slug (required)
493
- :param str framework: Model instance framework (required)
494
- :param str instance_slug: Model instance slug (required)
495
- :param ModelInstanceNewVersionRequest model_instance_new_version_request: Information for creating a new model instance version (required)
496
- :return: Result
497
- """
498
- print("models_create_instance_version() not implemented")
499
- print(
500
- "use kaggle_api_extended.KaggleApi.model_instance_version_create() instead"
501
- )
502
- raise NotImplementedError()
503
-
504
- def models_create_new(self, model_new_request): # noqa: E501
505
- """Create a new model # noqa: E501
506
-
507
- :param ModelNewRequest model_new_request: Information for creating a new model (required)
508
- :return: Result
509
- """
510
- with tempfile.TemporaryDirectory() as tmpdir:
511
- meta_file = os.path.join(tmpdir, 'model-metadata.json')
512
- with open(meta_file, 'w') as f:
513
- params = model_new_request.to_dict()
514
- params['ownerSlug'] = params.get('owner_slug')
515
- params['isPrivate'] = params.get('is_private')
516
- params['publishTime'] = params.get('publish_time')
517
- params['provenanceSources'] = params.get('provenance_sources')
518
- entries_to_remove = ('owner_slug', 'is_private', 'publish_time',
519
- 'provenance_sources')
520
- for k in entries_to_remove:
521
- params.pop(k, None)
522
- f.write(json.dumps(params))
523
- return self.api_client.model_create_new(tmpdir)
524
-
525
- def models_list(self,
526
- sort_by=None,
527
- search=None,
528
- owner=None,
529
- page_size=20,
530
- page_token=None): # noqa: E501
531
- """Lists models # noqa: E501
532
- :param str search: Search terms
533
- :param str sort_by: Sort the results
534
- :param str owner: Display models by a specific user or organization
535
- :param int page_size: Page size
536
- :param str page_token: Page token for pagination
537
- :return: Result
538
- """
539
- return self.api_client.model_list(
540
- sort_by=sort_by,
541
- search=search,
542
- owner=owner,
543
- page_size=page_size,
544
- page_token=page_token)
545
-
546
- def update_model(
547
- self,
548
- owner_slug,
549
- model_slug,
550
- model_update_request,
551
- ): # noqa: E501
552
- """Update a model # noqa: E501
553
-
554
- :param str owner_slug: Model owner (required)
555
- :param str model_slug: Model name (required)
556
- :param ModelUpdateRequest model_update_request: Information for updating a model (required)
557
- :return: Result
558
- """
559
- with tempfile.TemporaryDirectory() as tmpdir:
560
- meta_file = os.path.join(tmpdir, 'model-metadata.json')
561
- with open(meta_file, 'w') as f:
562
- params = model_update_request.to_dict()
563
- params['ownerSlug'] = params.get('owner_slug')
564
- params['isPrivate'] = params.get('is_private')
565
- params['publishTime'] = params.get('publish_time')
566
- params['provenanceSources'] = params.get('provenance_sources')
567
- params['updateMask'] = params.get('update_mask')
568
- entries_to_remove = ('owner_slug', 'is_private', 'publish_time',
569
- 'provenance_sources', 'update_mask')
570
- for k in entries_to_remove:
571
- params.pop(k, None)
572
- f.write(json.dumps(params))
573
- return self.api_client.model_update(tmpdir)
574
-
575
- def update_model_instance(self, owner_slug, model_slug, framework,
576
- instance_slug,
577
- model_instance_update_request): # noqa: E501
578
- """Update a model # noqa: E501
579
-
580
- :param str owner_slug: Model owner (required)
581
- :param str model_slug: Model name (required)
582
- :param str framework: Model instance framework (required)
583
- :param str instance_slug: Model instance slug (required)
584
- :param ModelInstanceUpdateRequest model_instance_update_request: Information for updating a model instance (required)
585
- :return: Result
586
- """
587
- with tempfile.TemporaryDirectory() as tmpdir:
588
- meta_file = os.path.join(tmpdir, 'model-instance-metadata.json')
589
- with open(meta_file, 'w') as f:
590
- params = model_instance_update_request.to_dict()
591
- params['licenseName'] = params.get('license_name')
592
- params['fineTunable'] = params.get('fine_tunable')
593
- params['trainingData'] = params.get('training_data')
594
- params['modelInstanceType'] = params.get('model_instance_type')
595
- params['baseModelInstance'] = params.get('base_model_instance')
596
- params['externalBaseModelUrl'] = params.get('external_base_model_url')
597
- params['updateMask'] = params.get('update_mask')
598
- entries_to_remove = ('license_name', 'fine_tunable', 'training_data',
599
- 'model_instance_type', 'base_model_instance',
600
- 'external_base_model_url', 'update_mask')
601
- for k in entries_to_remove:
602
- params.pop(k, None)
603
- f.write(json.dumps(params))
604
- return self.api_client.model_instance_update(tmpdir)
605
-
606
- def upload_file(self, start_blob_upload_request): # noqa: E501
607
- """Start uploading a file # noqa: E501
608
- :param StartBlobUploadRequest start_blob_upload_request: (required)
609
- :return: StartBlobUploadResponse
610
- """
611
- print("upload_file() not implemented")
612
- print("it should not be needed after converting your code")
613
- print("to use kaggle_api_extended.KaggleApi.<high-level-fn>() instead")
614
- raise NotImplementedError()
30
+ def __init__(self, api_client=None):
31
+ if api_client is None:
32
+ api_client = api.KaggleApi()
33
+ self.api_client = api_client
34
+
35
+ def competition_download_leaderboard(self, id): # noqa: E501
36
+ """Download competition leaderboard # noqa: E501.
37
+
38
+ :param str id: Competition name (required)
39
+ :return: Result
40
+ """
41
+ return self.api_client.competition_leaderboard_download(id, None)
42
+
43
+ def competition_view_leaderboard(self, id): # noqa: E501
44
+ """View competition leaderboard # noqa: E501.
45
+
46
+ :param str id: Competition name (required)
47
+ :return: Result
48
+ """
49
+ return self.api_client.competition_leaderboard_view(id)
50
+
51
+ def competitions_data_download_file(self, id, file_name): # noqa: E501
52
+ """Download competition data file # noqa: E501.
53
+
54
+ :param str id: Competition name (required)
55
+ :param str file_name: Competition name (required)
56
+ :return: Result
57
+ """
58
+ return self.api_client.competition_download_file(id, file_name)
59
+
60
+ def competitions_data_download_files(self, id): # noqa: E501
61
+ """Download all competition data files # noqa: E501.
62
+
63
+ :param str id: Competition name (required)
64
+ :return: Result
65
+ """
66
+ return self.api_client.competition_download_files(id)
67
+
68
+ def competitions_data_list_files(self, id): # noqa: E501
69
+ """List competition data files # noqa: E501.
70
+
71
+ :param str id: Competition name (required)
72
+ :return: Result
73
+ """
74
+ return self.api_client.competition_list_files(id)
75
+
76
+ def competitions_list(self, group=None, category=None, sort_by=None, page=1, search=None): # noqa: E501
77
+ """List competitions # noqa: E501.
78
+
79
+ :param str group: Filter competitions by a particular group
80
+ :param str category: Filter competitions by a particular category
81
+ :param str sort_by: Sort the results
82
+ :param int page: Page number
83
+ :param str search: Search terms
84
+ :return: ApiListCompetitionsResponse
85
+ """
86
+ return self.api_client.competitions_list(group, category, sort_by, page, search)
87
+
88
+ def competitions_submissions_list(self, id, page=0): # noqa: E501
89
+ """List competition submissions # noqa: E501.
90
+
91
+ :param str id: Competition name (required)
92
+ :param int page: Page number
93
+ :return: Result
94
+ """
95
+ return self.api_client.competition_submissions(id, page)
96
+
97
+ def competitions_submissions_submit(self, blob_file_tokens, submission_description, id): # noqa: E501
98
+ """Submit to competition # noqa: E501.
99
+
100
+ :param str blob_file_tokens: Token identifying location of uploaded
101
+ submission file (required)
102
+ :param str submission_description: Description of competition
103
+ submission (required)
104
+ :param str id: Competition name (required)
105
+ :return: Result
106
+ """
107
+ print("competitions_submissions_submit() not implemented")
108
+ print("use kaggle_api_extended.KaggleApi.competition_submit() instead")
109
+ raise NotImplementedError()
110
+
111
+ def competitions_submissions_upload(self, file, guid, content_length, last_modified_date_utc): # noqa: E501
112
+ """Upload competition submission file # noqa: E501.
113
+
114
+ :param file file: Competition submission file (required)
115
+ :param str guid: Location where submission should be uploaded
116
+ (required)
117
+ :param int content_length: Content length of file in bytes
118
+ (required)
119
+ :param int last_modified_date_utc: Last modified date of file in
120
+ seconds since epoch in UTC (required)
121
+ :return: Result
122
+ """
123
+ print("competitions_submissions_upload() not implemented")
124
+ print("use kaggle_api_extended.KaggleApi.competitions_submissions_submit() instead")
125
+ raise NotImplementedError()
126
+
127
+ def competitions_submissions_url(self, id, content_length, last_modified_date_utc): # noqa: E501
128
+ """Generate competition submission URL # noqa: E501.
129
+
130
+ :param str id: Competition name, as it appears in the competition's
131
+ URL (required)
132
+ :param int content_length: Content length of file in bytes
133
+ (required)
134
+ :param int last_modified_date_utc: Last modified date of file in
135
+ seconds since epoch in UTC (required)
136
+ :param str file_name: Competition submission file name
137
+ :return: Result
138
+ """
139
+ print("competitions_submissions_url() not implemented")
140
+ print("use kaggle_api_extended.KaggleApi.competition_submit() instead")
141
+ raise NotImplementedError()
142
+
143
+ def create_inbox_file(self, create_inbox_file_request): # noqa: E501
144
+ """Creates (aka \&quot;drops\&quot;) a new file into the inbox. # noqa:
145
+ E501.
146
+
147
+ :param CreateInboxFileRequest create_inbox_file_request: (required)
148
+ :return: Result
149
+ """
150
+ print("create_inbox_file() not implemented")
151
+ print("use kaggle_api_extended.KaggleApi.files_upload_cli() instead")
152
+ raise NotImplementedError()
153
+
154
+ def datasets_create_new(self, request): # noqa: E501
155
+ """Create a new dataset # noqa: E501.
156
+
157
+ :param DatasetNewRequest request: Information for creating a new
158
+ dataset (required)
159
+ :return: Result
160
+ """
161
+ print("datasets_create_new() not implemented")
162
+ print("use kaggle_api_extended.KaggleApi.dataset_create_new() instead")
163
+ raise NotImplementedError()
164
+
165
+ def datasets_create_version_by_id(self, id, dataset_new_version_request, **kwargs): # noqa: E501
166
+ """Create a new dataset version by id # noqa: E501.
167
+
168
+ :param int id: Dataset ID (required)
169
+ :param DatasetNewVersionRequest dataset_new_version_request:
170
+ Information for creating a new dataset version (required)
171
+ :return: throws NotImplementedError
172
+ """
173
+ print("datasets_create_version_by_id() not implemented")
174
+ print("use kaggle_api_extended.KaggleApi.dataset_create_version() instead")
175
+ raise NotImplementedError()
176
+
177
+ def datasets_download(self, owner_slug, dataset_slug, dataset_version_number=None): # noqa: E501
178
+ """Download dataset file # noqa: E501.
179
+
180
+ :param str owner_slug: Dataset owner (required)
181
+ :param str dataset_slug: Dataset name (required)
182
+ :param str dataset_version_number: Dataset version number
183
+ :return: Result
184
+ """
185
+ dataset = f"{owner_slug}/{dataset_slug}"
186
+ if dataset_version_number is not None:
187
+ dataset += f"/{dataset_version_number}"
188
+ return self.api_client.dataset_download_files(dataset)
189
+
190
+ def datasets_download_file(self, owner_slug, dataset_slug, file_name, dataset_version_number=None): # noqa: E501
191
+ """Download dataset file # noqa: E501.
192
+
193
+ :param str owner_slug: Dataset owner (required)
194
+ :param str dataset_slug: Dataset name (required)
195
+ :param str file_name: File name (required)
196
+ :param str dataset_version_number: Dataset version number
197
+ :return: True if the file was downloaded successfully, False otherwise
198
+ """
199
+ dataset = f"{owner_slug}/{dataset_slug}"
200
+ if dataset_version_number is not None:
201
+ dataset += f"@{dataset_version_number}"
202
+ return self.api_client.dataset_download_file(dataset, file_name)
203
+
204
+ def datasets_list(
205
+ self,
206
+ sort_by=None,
207
+ size=None,
208
+ file_type=None,
209
+ license_name=None,
210
+ tag_ids=None,
211
+ search=None,
212
+ user=None,
213
+ mine=False,
214
+ page=1,
215
+ max_size=None,
216
+ min_size=None,
217
+ ): # noqa: E501
218
+ """List datasets # noqa: E501.
219
+
220
+ :param str group: Display datasets by a particular group
221
+ :param str sort_by: Sort the results
222
+ :param str size: (DEPRECATED). Please use --max-size and --min-size
223
+ to filter dataset sizes.
224
+ :param str filetype: Display datasets of a specific file type
225
+ :param str license: Display datasets with a specific license
226
+ :param str tagids: A comma separated list of tags to filter by
227
+ :param str search: Search terms
228
+ :param str user: Display datasets by a specific user or organization
229
+ :param int page: Page number
230
+ :param int max_size: Max Dataset Size (bytes)
231
+ :param int min_size: Max Dataset Size (bytes)
232
+ :return: List of ApiDatasetFile.
233
+ """
234
+ return self.api_client.dataset_list(
235
+ sort_by=sort_by,
236
+ size=size,
237
+ file_type=file_type,
238
+ license_name=license_name,
239
+ tag_ids=tag_ids,
240
+ search=search,
241
+ user=user,
242
+ mine=mine,
243
+ page=page,
244
+ max_size=max_size,
245
+ min_size=min_size,
246
+ )
247
+
248
+ def datasets_status(self, owner_slug, dataset_slug, **kwargs): # noqa: E501
249
+ """Get dataset creation status # noqa: E501.
250
+
251
+ :param str owner_slug: Dataset owner (required)
252
+ :param str dataset_slug: Dataset name (required)
253
+ :return: Result
254
+ """
255
+ return self.api_client.dataset_status(f"{owner_slug}/{dataset_slug})")
256
+
257
+ def delete_model(self, owner_slug, model_slug): # noqa: E501
258
+ """Delete a model # noqa: E501.
259
+
260
+ :param str owner_slug: Model owner (required)
261
+ :param str model_slug: Model name (required)
262
+ :return: ApiDeleteModelResponse
263
+ """
264
+ return self.api_client.model_delete(f"{owner_slug}/{model_slug})")
265
+
266
+ def delete_model_instance(self, owner_slug, model_slug, framework, instance_slug): # noqa: E501
267
+ """Delete a model instance # noqa: E501.
268
+
269
+ :param str owner_slug: Model owner (required)
270
+ :param str model_slug: Model name (required)
271
+ :param str framework: Model instance framework (required)
272
+ :param str instance_slug: Model instance slug (required)
273
+ :return: Result
274
+ """
275
+ return self.api_client.model_instance_delete(f"{owner_slug}/{model_slug}/{framework}/{instance_slug}", yes=True)
276
+
277
+ def delete_model_instance_version(
278
+ self, owner_slug, model_slug, framework, instance_slug, version_number
279
+ ): # noqa: E501
280
+ """Delete a model instance version # noqa: E501.
281
+
282
+ :param str owner_slug: Model owner (required)
283
+ :param str model_slug: Model name (required)
284
+ :param str framework: Model instance framework (required)
285
+ :param str instance_slug: Model instance slug (required)
286
+ :param str version_number: Model instance version number (required)
287
+ :return: Result
288
+ """
289
+ return self.api_client.model_instance_version_delete(
290
+ f"{owner_slug}/{model_slug}/{framework}/{instance_slug}/{version_number}", yes=True
291
+ )
292
+
293
+ def get_model(self, owner_slug, model_slug): # noqa: E501
294
+ """Get a model # noqa: E501.
295
+
296
+ :param str owner_slug: Model owner (required)
297
+ :param str model_slug: Model name (required)
298
+ :return: Result
299
+ """
300
+ return self.api_client.model_get(f"{owner_slug}/{model_slug}")
301
+
302
+ def get_model_instance(self, owner_slug, model_slug, framework, instance_slug): # noqa: E501
303
+ """Get a model instance # noqa: E501.
304
+
305
+ :param str owner_slug: Model owner (required)
306
+ :param str model_slug: Model name (required)
307
+ :param str framework: Model instance framework (required)
308
+ :param str instance_slug: Model instance slug (required)
309
+ :return: Result
310
+ """
311
+ return self.api_client.model_instance_get(f"{owner_slug}/{model_slug}/{framework}/{instance_slug}")
312
+
313
+ def kernel_output(self, user_name, kernel_slug): # noqa: E501
314
+ """Download the latest output from a kernel # noqa: E501.
315
+
316
+ :param str user_name: Kernel owner (required)
317
+ :param str kernel_slug: Kernel name (required)
318
+ :return: Result
319
+ """
320
+ return self.api_client.kernels_output(f"{user_name}/{kernel_slug}", path=None, force=True)
321
+
322
+ def kernel_pull(self, user_name, kernel_slug): # noqa: E501
323
+ """Pull the latest code from a kernel # noqa: E501.
324
+
325
+ :param str user_name: Kernel owner (required)
326
+ :param str kernel_slug: Kernel name (required)
327
+ :return: Result
328
+ """
329
+ return self.api_client.kernels_pull(f"{user_name}/{kernel_slug}", path=None)
330
+
331
+ def kernel_push(self, kernel_push_request): # noqa: E501
332
+ """Push a new kernel version. Can be used to create a new kernel and
333
+ update an existing one. # noqa: E501.
334
+
335
+ :param KernelPushRequest kernel_push_request: Information for
336
+ pushing a new kernel version (required)
337
+ :return: Result
338
+ """
339
+ with tempfile.TemporaryDirectory() as tmpdir:
340
+ meta_file = os.path.join(tmpdir, "kernel-metadata.json")
341
+ (fd, code_file) = tempfile.mkstemp("code", "py", tmpdir, text=True)
342
+ fd.write(json.dumps(kernel_push_request.code))
343
+ os.close(fd)
344
+ with open(meta_file, "w") as f:
345
+ params = kernel_push_request.to_dict()
346
+ params["code_file"] = code_file
347
+ params["competition_sources"] = params.get("competition_data_sources")
348
+ params["dataset_sources"] = params.get("dataset_data_sources")
349
+ params["kernel_sources"] = params.get("kernel_data_sources")
350
+ params["model_sources"] = params.get("model_data_sources")
351
+ params["title"] = params.get("new_title")
352
+ entries_to_remove = (
353
+ "competition_data_sources",
354
+ "dataset_data_sources",
355
+ "kernel_data_sources",
356
+ "model_data_sources",
357
+ "new_title",
358
+ )
359
+ for k in entries_to_remove:
360
+ params.pop(k, None)
361
+ f.write(json.dumps(params))
362
+ return self.api_client.kernels_push(tmpdir)
363
+
364
+ def kernel_status(self, user_name, kernel_slug): # noqa: E501
365
+ """Get the status of the latest kernel version # noqa: E501.
366
+
367
+ :param str user_name: Kernel owner (required)
368
+ :param str kernel_slug: Kernel name (required)
369
+ :return: Result
370
+ """
371
+ return self.api_client.kernels_status(f"{user_name}/{kernel_slug}")
372
+
373
+ def kernels_list(
374
+ self,
375
+ page=1,
376
+ page_size=20,
377
+ dataset=None,
378
+ competition=None,
379
+ parent_kernel=None,
380
+ search=None,
381
+ group="everyone",
382
+ user=None,
383
+ language=None,
384
+ kernel_type=None,
385
+ output_type=None,
386
+ sort_by=None,
387
+ ): # noqa: E501
388
+ """List kernels # noqa: E501.
389
+
390
+ :param int page: Page number
391
+ :param int page_size: Page size
392
+ :param str search: Search terms
393
+ :param str group: Display only your kernels
394
+ :param str user: Display kernels by a particular group
395
+ :param str language: Display kernels in a specific language
396
+ :param str kernel_type: Display kernels of a specific type
397
+ :param str output_type: Display kernels with a specific output type
398
+ :param str sort_by: Sort the results. 'relevance' only works if
399
+ there is a search query
400
+ :param str dataset: Display kernels using the specified dataset
401
+ :param str competition: Display kernels using the specified
402
+ competition
403
+ :param str parent_kernel: Display kernels that have forked the
404
+ specified kernel
405
+ :return: Result
406
+ """
407
+ return self.api_client.kernels_list(
408
+ page=page,
409
+ page_size=page_size,
410
+ dataset=dataset,
411
+ competition=competition,
412
+ parent_kernel=parent_kernel,
413
+ search=search,
414
+ mine=group != "everyone",
415
+ user=user,
416
+ language=language,
417
+ kernel_type=kernel_type,
418
+ output_type=output_type,
419
+ sort_by=sort_by,
420
+ )
421
+
422
+ def metadata_get(self, owner_slug, dataset_slug): # noqa: E501
423
+ """Get the metadata for a dataset # noqa: E501.
424
+
425
+ :param str owner_slug: Dataset owner (required)
426
+ :param str dataset_slug: Dataset name (required)
427
+ :return: Result
428
+ """
429
+ return self.api_client.dataset_metadata(f"{owner_slug}/{dataset_slug}", None)
430
+
431
+ def metadata_post(self, owner_slug, dataset_slug, settings, request): # noqa: E501
432
+ """Update the metadata for a dataset # noqa: E501.
433
+
434
+ :param str owner_slug: Dataset owner (required)
435
+ :param str dataset_slug: Dataset name (required)
436
+ :param DatasetUpdateSettingsRequest settings: Dataset metadata to
437
+ update (required)
438
+ :return: Result
439
+ """
440
+ with tempfile.TemporaryDirectory() as tmpdir:
441
+ meta_file = os.path.join(tmpdir, "dataset-metadata.json")
442
+ with open(meta_file, "w") as f:
443
+ params = request.to_dict()
444
+ params["isPrivate"] = params.get("is_private")
445
+ params.pop("is_private", None)
446
+ f.write(json.dumps(params))
447
+ return self.api_client.dataset_metadata_update(f"{owner_slug}/{dataset_slug}", meta_file)
448
+
449
+ def model_instance_versions_download(
450
+ self, owner_slug, model_slug, framework, instance_slug, version_number
451
+ ): # noqa: E501
452
+ """Download model instance version files # noqa: E501.
453
+
454
+ :param str owner_slug: Model owner (required)
455
+ :param str model_slug: Model name (required)
456
+ :param str framework: Model instance framework (required)
457
+ :param str instance_slug: Model instance slug (required)
458
+ :param str version_number: Model instance version number (required)
459
+ :return: Result
460
+ """
461
+ v = f"{owner_slug}/{model_slug}/{framework}/{instance_slug}/{version_number}"
462
+ return self.api_client.model_instance_version_download(v)
463
+
464
+ def models_create_instance(self, owner_slug, model_slug, model_new_instance_request): # noqa: E501
465
+ """Create a new model instance # noqa: E501.
466
+
467
+ :param str owner_slug: Model owner (required)
468
+ :param str model_slug: Model slug (required)
469
+ :param ModelNewInstanceRequest model_new_instance_request:
470
+ Information for creating a new model instance (required)
471
+ :return: Result
472
+ """
473
+ print("models_create_instance() not implemented")
474
+ print("use kaggle_api_extended.KaggleApi.model_instance_create() instead")
475
+ raise NotImplementedError()
476
+
477
+ def models_create_instance_version(
478
+ self, owner_slug, model_slug, framework, instance_slug, model_instance_new_version_request
479
+ ): # noqa: E501
480
+ """Create a new model instance version # noqa: E501.
481
+
482
+ :param str owner_slug: Model owner (required)
483
+ :param str model_slug: Model slug (required)
484
+ :param str framework: Model instance framework (required)
485
+ :param str instance_slug: Model instance slug (required)
486
+ :param ModelInstanceNewVersionRequest
487
+ model_instance_new_version_request: Information for creating a
488
+ new model instance version (required)
489
+ :return: Result
490
+ """
491
+ print("models_create_instance_version() not implemented")
492
+ print("use kaggle_api_extended.KaggleApi.model_instance_version_create() instead")
493
+ raise NotImplementedError()
494
+
495
+ def models_create_new(self, model_new_request): # noqa: E501
496
+ """Create a new model # noqa: E501.
497
+
498
+ :param ModelNewRequest model_new_request: Information for creating a
499
+ new model (required)
500
+ :return: Result
501
+ """
502
+ with tempfile.TemporaryDirectory() as tmpdir:
503
+ meta_file = os.path.join(tmpdir, "model-metadata.json")
504
+ with open(meta_file, "w") as f:
505
+ params = model_new_request.to_dict()
506
+ params["ownerSlug"] = params.get("owner_slug")
507
+ params["isPrivate"] = params.get("is_private")
508
+ params["publishTime"] = params.get("publish_time")
509
+ params["provenanceSources"] = params.get("provenance_sources")
510
+ entries_to_remove = ("owner_slug", "is_private", "publish_time", "provenance_sources")
511
+ for k in entries_to_remove:
512
+ params.pop(k, None)
513
+ f.write(json.dumps(params))
514
+ return self.api_client.model_create_new(tmpdir)
515
+
516
+ def models_list(self, sort_by=None, search=None, owner=None, page_size=20, page_token=None):
517
+ """List models
518
+
519
+ :param str search: Search terms
520
+ :param str sort_by: Sort the results
521
+ :param str owner: Display models by a specific user or organization
522
+ :param int page_size: Page size
523
+ :param str page_token: Page token for pagination
524
+ :return: list of models
525
+ """
526
+ return self.api_client.model_list(
527
+ sort_by=sort_by, search=search, owner=owner, page_size=page_size, page_token=page_token
528
+ )
529
+
530
+ def update_model(
531
+ self,
532
+ owner_slug,
533
+ model_slug,
534
+ model_update_request,
535
+ ): # noqa: E501
536
+ """Update a model # noqa: E501.
537
+
538
+ :param str owner_slug: Model owner (required)
539
+ :param str model_slug: Model name (required)
540
+ :param ModelUpdateRequest model_update_request: Information for
541
+ updating a model (required)
542
+ :return: Result
543
+ """
544
+ with tempfile.TemporaryDirectory() as tmpdir:
545
+ meta_file = os.path.join(tmpdir, "model-metadata.json")
546
+ with open(meta_file, "w") as f:
547
+ params = model_update_request.to_dict()
548
+ params["ownerSlug"] = params.get("owner_slug")
549
+ params["isPrivate"] = params.get("is_private")
550
+ params["publishTime"] = params.get("publish_time")
551
+ params["provenanceSources"] = params.get("provenance_sources")
552
+ params["updateMask"] = params.get("update_mask")
553
+ entries_to_remove = ("owner_slug", "is_private", "publish_time", "provenance_sources", "update_mask")
554
+ for k in entries_to_remove:
555
+ params.pop(k, None)
556
+ f.write(json.dumps(params))
557
+ return self.api_client.model_update(tmpdir)
558
+
559
+ def update_model_instance(
560
+ self, owner_slug, model_slug, framework, instance_slug, model_instance_update_request
561
+ ): # noqa: E501
562
+ """Update a model # noqa: E501.
563
+
564
+ :param str owner_slug: Model owner (required)
565
+ :param str model_slug: Model name (required)
566
+ :param str framework: Model instance framework (required)
567
+ :param str instance_slug: Model instance slug (required)
568
+ :param ModelInstanceUpdateRequest model_instance_update_request:
569
+ Information for updating a model instance (required)
570
+ :return: Result
571
+ """
572
+ with tempfile.TemporaryDirectory() as tmpdir:
573
+ meta_file = os.path.join(tmpdir, "model-instance-metadata.json")
574
+ with open(meta_file, "w") as f:
575
+ params = model_instance_update_request.to_dict()
576
+ params["licenseName"] = params.get("license_name")
577
+ params["fineTunable"] = params.get("fine_tunable")
578
+ params["trainingData"] = params.get("training_data")
579
+ params["modelInstanceType"] = params.get("model_instance_type")
580
+ params["baseModelInstance"] = params.get("base_model_instance")
581
+ params["externalBaseModelUrl"] = params.get("external_base_model_url")
582
+ params["updateMask"] = params.get("update_mask")
583
+ entries_to_remove = (
584
+ "license_name",
585
+ "fine_tunable",
586
+ "training_data",
587
+ "model_instance_type",
588
+ "base_model_instance",
589
+ "external_base_model_url",
590
+ "update_mask",
591
+ )
592
+ for k in entries_to_remove:
593
+ params.pop(k, None)
594
+ f.write(json.dumps(params))
595
+ return self.api_client.model_instance_update(tmpdir)
596
+
597
+ def upload_file(self, start_blob_upload_request): # noqa: E501
598
+ """Start uploading a file # noqa: E501 :param StartBlobUploadRequest
599
+ start_blob_upload_request: (required) :return: StartBlobUploadResponse."""
600
+ print("upload_file() not implemented")
601
+ print("it should not be needed after converting your code")
602
+ print("to use kaggle_api_extended.KaggleApi.<high-level-fn>() instead")
603
+ raise NotImplementedError()