kaggle 1.6.15__tar.gz → 1.7.3b0__tar.gz

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 (100) hide show
  1. kaggle-1.7.3b0/PKG-INFO +14 -0
  2. {kaggle-1.6.15 → kaggle-1.7.3b0}/README.md +0 -2
  3. kaggle-1.7.3b0/setup.py +34 -0
  4. kaggle-1.7.3b0/src/kaggle/__init__.py +6 -0
  5. kaggle-1.7.3b0/src/kaggle/api/__init__.py +0 -0
  6. kaggle-1.7.3b0/src/kaggle/api/kaggle_api.py +614 -0
  7. kaggle-1.7.3b0/src/kaggle/api/kaggle_api_extended.py +4652 -0
  8. kaggle-1.7.3b0/src/kaggle/cli.py +1602 -0
  9. kaggle-1.7.3b0/src/kaggle/configuration.py +206 -0
  10. kaggle-1.7.3b0/src/kaggle/models/__init__.py +0 -0
  11. kaggle-1.7.3b0/src/kaggle/models/api_blob_type.py +4 -0
  12. kaggle-1.7.3b0/src/kaggle/models/dataset_column.py +228 -0
  13. kaggle-1.7.3b0/src/kaggle/models/dataset_new_request.py +385 -0
  14. kaggle-1.7.3b0/src/kaggle/models/dataset_new_version_request.py +287 -0
  15. kaggle-1.7.3b0/src/kaggle/models/dataset_update_settings_request.py +310 -0
  16. kaggle-1.7.3b0/src/kaggle/models/kaggle_models_extended.py +276 -0
  17. kaggle-1.7.3b0/src/kaggle/models/kernel_push_request.py +556 -0
  18. kaggle-1.7.3b0/src/kaggle/models/model_instance_new_version_request.py +145 -0
  19. kaggle-1.7.3b0/src/kaggle/models/model_instance_update_request.py +351 -0
  20. kaggle-1.7.3b0/src/kaggle/models/model_new_instance_request.py +417 -0
  21. kaggle-1.7.3b0/src/kaggle/models/model_new_request.py +314 -0
  22. kaggle-1.7.3b0/src/kaggle/models/model_update_request.py +282 -0
  23. kaggle-1.7.3b0/src/kaggle/models/start_blob_upload_request.py +232 -0
  24. kaggle-1.7.3b0/src/kaggle/models/start_blob_upload_response.py +137 -0
  25. kaggle-1.7.3b0/src/kaggle/models/upload_file.py +169 -0
  26. kaggle-1.7.3b0/src/kaggle/test/__init__.py +0 -0
  27. kaggle-1.7.3b0/src/kaggle/test/test_authenticate.py +43 -0
  28. kaggle-1.7.3b0/src/kaggle.egg-info/PKG-INFO +14 -0
  29. kaggle-1.7.3b0/src/kaggle.egg-info/SOURCES.txt +92 -0
  30. kaggle-1.7.3b0/src/kaggle.egg-info/requires.txt +10 -0
  31. kaggle-1.7.3b0/src/kaggle.egg-info/top_level.txt +2 -0
  32. kaggle-1.7.3b0/src/kagglesdk/__init__.py +2 -0
  33. kaggle-1.7.3b0/src/kagglesdk/admin/__init__.py +0 -0
  34. kaggle-1.7.3b0/src/kagglesdk/admin/services/__init__.py +0 -0
  35. kaggle-1.7.3b0/src/kagglesdk/admin/services/inbox_file_service.py +22 -0
  36. kaggle-1.7.3b0/src/kagglesdk/admin/types/__init__.py +0 -0
  37. kaggle-1.7.3b0/src/kagglesdk/admin/types/inbox_file_service.py +74 -0
  38. kaggle-1.7.3b0/src/kagglesdk/blobs/__init__.py +0 -0
  39. kaggle-1.7.3b0/src/kagglesdk/blobs/services/__init__.py +0 -0
  40. kaggle-1.7.3b0/src/kagglesdk/blobs/services/blob_api_service.py +25 -0
  41. kaggle-1.7.3b0/src/kagglesdk/blobs/types/__init__.py +0 -0
  42. kaggle-1.7.3b0/src/kagglesdk/blobs/types/blob_api_service.py +177 -0
  43. kaggle-1.7.3b0/src/kagglesdk/common/__init__.py +0 -0
  44. kaggle-1.7.3b0/src/kagglesdk/common/types/__init__.py +0 -0
  45. kaggle-1.7.3b0/src/kagglesdk/common/types/file_download.py +102 -0
  46. kaggle-1.7.3b0/src/kagglesdk/common/types/http_redirect.py +105 -0
  47. kaggle-1.7.3b0/src/kagglesdk/competitions/__init__.py +0 -0
  48. kaggle-1.7.3b0/src/kagglesdk/competitions/services/__init__.py +0 -0
  49. kaggle-1.7.3b0/src/kagglesdk/competitions/services/competition_api_service.py +129 -0
  50. kaggle-1.7.3b0/src/kagglesdk/competitions/types/__init__.py +0 -0
  51. kaggle-1.7.3b0/src/kagglesdk/competitions/types/competition_api_service.py +1874 -0
  52. kaggle-1.7.3b0/src/kagglesdk/competitions/types/competition_enums.py +53 -0
  53. kaggle-1.7.3b0/src/kagglesdk/competitions/types/submission_status.py +9 -0
  54. kaggle-1.7.3b0/src/kagglesdk/datasets/__init__.py +0 -0
  55. kaggle-1.7.3b0/src/kagglesdk/datasets/services/__init__.py +0 -0
  56. kaggle-1.7.3b0/src/kagglesdk/datasets/services/dataset_api_service.py +170 -0
  57. kaggle-1.7.3b0/src/kagglesdk/datasets/types/__init__.py +0 -0
  58. kaggle-1.7.3b0/src/kagglesdk/datasets/types/dataset_api_service.py +2777 -0
  59. kaggle-1.7.3b0/src/kagglesdk/datasets/types/dataset_enums.py +82 -0
  60. kaggle-1.7.3b0/src/kagglesdk/datasets/types/dataset_types.py +646 -0
  61. kaggle-1.7.3b0/src/kagglesdk/education/__init__.py +0 -0
  62. kaggle-1.7.3b0/src/kagglesdk/education/services/__init__.py +0 -0
  63. kaggle-1.7.3b0/src/kagglesdk/education/services/education_api_service.py +19 -0
  64. kaggle-1.7.3b0/src/kagglesdk/education/types/__init__.py +0 -0
  65. kaggle-1.7.3b0/src/kagglesdk/education/types/education_api_service.py +248 -0
  66. kaggle-1.7.3b0/src/kagglesdk/education/types/education_service.py +139 -0
  67. kaggle-1.7.3b0/src/kagglesdk/kaggle_client.py +66 -0
  68. kaggle-1.7.3b0/src/kagglesdk/kaggle_env.py +42 -0
  69. kaggle-1.7.3b0/src/kagglesdk/kaggle_http_client.py +316 -0
  70. kaggle-1.7.3b0/src/kagglesdk/kaggle_object.py +293 -0
  71. kaggle-1.7.3b0/src/kagglesdk/kernels/__init__.py +0 -0
  72. kaggle-1.7.3b0/src/kagglesdk/kernels/services/__init__.py +0 -0
  73. kaggle-1.7.3b0/src/kagglesdk/kernels/services/kernels_api_service.py +109 -0
  74. kaggle-1.7.3b0/src/kagglesdk/kernels/types/__init__.py +0 -0
  75. kaggle-1.7.3b0/src/kagglesdk/kernels/types/kernels_api_service.py +1929 -0
  76. kaggle-1.7.3b0/src/kagglesdk/kernels/types/kernels_enums.py +33 -0
  77. kaggle-1.7.3b0/src/kagglesdk/models/__init__.py +0 -0
  78. kaggle-1.7.3b0/src/kagglesdk/models/services/__init__.py +0 -0
  79. kaggle-1.7.3b0/src/kagglesdk/models/services/model_api_service.py +255 -0
  80. kaggle-1.7.3b0/src/kagglesdk/models/services/model_service.py +19 -0
  81. kaggle-1.7.3b0/src/kagglesdk/models/types/__init__.py +0 -0
  82. kaggle-1.7.3b0/src/kagglesdk/models/types/model_api_service.py +3719 -0
  83. kaggle-1.7.3b0/src/kagglesdk/models/types/model_enums.py +60 -0
  84. kaggle-1.7.3b0/src/kagglesdk/models/types/model_service.py +275 -0
  85. kaggle-1.7.3b0/src/kagglesdk/models/types/model_types.py +270 -0
  86. kaggle-1.7.3b0/src/kagglesdk/users/__init__.py +0 -0
  87. kaggle-1.7.3b0/src/kagglesdk/users/types/__init__.py +0 -0
  88. kaggle-1.7.3b0/src/kagglesdk/users/types/users_enums.py +22 -0
  89. kaggle-1.6.15/PKG-INFO +0 -339
  90. kaggle-1.6.15/kaggle.egg-info/PKG-INFO +0 -339
  91. kaggle-1.6.15/kaggle.egg-info/SOURCES.txt +0 -12
  92. kaggle-1.6.15/kaggle.egg-info/requires.txt +0 -13
  93. kaggle-1.6.15/kaggle.egg-info/top_level.txt +0 -1
  94. kaggle-1.6.15/pyproject.toml +0 -67
  95. kaggle-1.6.15/setup.py +0 -36
  96. /kaggle-1.6.15/LICENSE → /kaggle-1.7.3b0/LICENSE.txt +0 -0
  97. {kaggle-1.6.15 → kaggle-1.7.3b0}/MANIFEST.in +0 -0
  98. {kaggle-1.6.15 → kaggle-1.7.3b0}/setup.cfg +0 -0
  99. {kaggle-1.6.15 → kaggle-1.7.3b0/src}/kaggle.egg-info/dependency_links.txt +0 -0
  100. {kaggle-1.6.15 → kaggle-1.7.3b0/src}/kaggle.egg-info/entry_points.txt +0 -0
@@ -0,0 +1,14 @@
1
+ Metadata-Version: 2.1
2
+ Name: kaggle
3
+ Version: 1.7.3b0
4
+ Summary: Kaggle API
5
+ Home-page: https://github.com/Kaggle/kaggle-api
6
+ Author: Kaggle
7
+ Author-email: support@kaggle.com
8
+ Project-URL: Documentation, https://www.kaggle.com/docs/api
9
+ Project-URL: GitHub, https://github.com/Kaggle/kaggle-api
10
+ Project-URL: Tracker, https://github.com/Kaggle/kaggle-api/issues
11
+ Keywords: Kaggle,API
12
+ License-File: LICENSE.txt
13
+
14
+ Official API for https://www.kaggle.com, accessible using a command line tool implemented in Python. Beta release - Kaggle reserves the right to modify the API functionality currently offered.
@@ -22,8 +22,6 @@ Obviously, this depends on Kaggle services. When you're extending the API and mo
22
22
  or adding to those services, you should be working in your Kaggle mid-tier development
23
23
  environment. You'll run Kaggle locally, in the container, and test the Python code by
24
24
  running it in the container so it can connect to your local testing environment.
25
- However, do not try to create a release from within the container. The code formatter
26
- (`yapf3`) changes much more than intended.
27
25
 
28
26
  Also, run the following command to get `autogen.sh` installed:
29
27
  ```bash
@@ -0,0 +1,34 @@
1
+ # coding=utf-8
2
+ from setuptools import setup, find_packages
3
+
4
+ # Note: pyproject.toml seems to be chosen by pip install over setup.py, so this
5
+ # file is likely not being used anymore. There's a problem with cloudbuild.yaml
6
+ # that causes it to require this file.
7
+ setup(
8
+ name='kaggle',
9
+ version='1.7.3b0',
10
+ description='Kaggle API',
11
+ long_description=(
12
+ 'Official API for https://www.kaggle.com, accessible using a command line '
13
+ 'tool implemented in Python. Beta release - Kaggle reserves the right to '
14
+ 'modify the API functionality currently offered.'),
15
+ author='Kaggle',
16
+ author_email='support@kaggle.com',
17
+ url='https://github.com/Kaggle/kaggle-api',
18
+ project_urls={
19
+ 'Documentation': 'https://www.kaggle.com/docs/api',
20
+ 'GitHub': 'https://github.com/Kaggle/kaggle-api',
21
+ 'Tracker': 'https://github.com/Kaggle/kaggle-api/issues',
22
+ },
23
+ keywords=['Kaggle', 'API'],
24
+ entry_points={'console_scripts': ['kaggle = kaggle.cli:main']},
25
+ install_requires=[
26
+ 'six >= 1.10', 'certifi >= 2023.7.22', 'python-dateutil', 'requests',
27
+ 'tqdm', 'python-slugify', 'urllib3', 'bleach', 'protobuf',
28
+ 'hatchling >= 1.27.0'
29
+ ],
30
+ packages=find_packages(
31
+ where='src',
32
+ include=['kaggle*'],
33
+ ),
34
+ package_dir={"": "src"})
@@ -0,0 +1,6 @@
1
+ # coding=utf-8
2
+ from __future__ import absolute_import
3
+ from kaggle.api.kaggle_api_extended import KaggleApi
4
+
5
+ api = KaggleApi()
6
+ api.authenticate()
File without changes
@@ -0,0 +1,614 @@
1
+ #!/usr/bin/python
2
+ #
3
+ # Copyright 2023 Kaggle Inc
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # coding: utf-8
18
+
19
+ # NOTE: THIS FILE IS OBSOLETE AND WILL BE REMOVED IN 2025H2
20
+
21
+ import kaggle_api_extended as api
22
+ import json
23
+ import os
24
+ import re # noqa: F401
25
+ import tempfile
26
+
27
+
28
+ class KaggleApi(object):
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()