kaggle 1.7.3b1__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 (89) hide show
  1. kaggle/LICENSE +201 -0
  2. kaggle/__init__.py +6 -0
  3. kaggle/api/__init__.py +0 -0
  4. kaggle/api/kaggle_api.py +614 -0
  5. kaggle/api/kaggle_api_extended.py +4657 -0
  6. kaggle/cli.py +1606 -0
  7. kaggle/configuration.py +206 -0
  8. kaggle/models/__init__.py +0 -0
  9. kaggle/models/api_blob_type.py +4 -0
  10. kaggle/models/dataset_column.py +228 -0
  11. kaggle/models/dataset_new_request.py +385 -0
  12. kaggle/models/dataset_new_version_request.py +287 -0
  13. kaggle/models/dataset_update_settings_request.py +310 -0
  14. kaggle/models/kaggle_models_extended.py +276 -0
  15. kaggle/models/kernel_push_request.py +556 -0
  16. kaggle/models/model_instance_new_version_request.py +145 -0
  17. kaggle/models/model_instance_update_request.py +351 -0
  18. kaggle/models/model_new_instance_request.py +417 -0
  19. kaggle/models/model_new_request.py +314 -0
  20. kaggle/models/model_update_request.py +282 -0
  21. kaggle/models/start_blob_upload_request.py +232 -0
  22. kaggle/models/start_blob_upload_response.py +137 -0
  23. kaggle/models/upload_file.py +169 -0
  24. kaggle/test/__init__.py +0 -0
  25. kaggle/test/test_authenticate.py +43 -0
  26. kaggle-1.7.3b1.dist-info/METADATA +348 -0
  27. kaggle-1.7.3b1.dist-info/RECORD +89 -0
  28. kaggle-1.7.3b1.dist-info/WHEEL +4 -0
  29. kaggle-1.7.3b1.dist-info/entry_points.txt +2 -0
  30. kaggle-1.7.3b1.dist-info/licenses/LICENSE.txt +201 -0
  31. kagglesdk/LICENSE +201 -0
  32. kagglesdk/__init__.py +2 -0
  33. kagglesdk/admin/__init__.py +0 -0
  34. kagglesdk/admin/services/__init__.py +0 -0
  35. kagglesdk/admin/services/inbox_file_service.py +22 -0
  36. kagglesdk/admin/types/__init__.py +0 -0
  37. kagglesdk/admin/types/inbox_file_service.py +74 -0
  38. kagglesdk/blobs/__init__.py +0 -0
  39. kagglesdk/blobs/services/__init__.py +0 -0
  40. kagglesdk/blobs/services/blob_api_service.py +25 -0
  41. kagglesdk/blobs/types/__init__.py +0 -0
  42. kagglesdk/blobs/types/blob_api_service.py +177 -0
  43. kagglesdk/common/__init__.py +0 -0
  44. kagglesdk/common/types/__init__.py +0 -0
  45. kagglesdk/common/types/file_download.py +102 -0
  46. kagglesdk/common/types/http_redirect.py +105 -0
  47. kagglesdk/competitions/__init__.py +0 -0
  48. kagglesdk/competitions/services/__init__.py +0 -0
  49. kagglesdk/competitions/services/competition_api_service.py +129 -0
  50. kagglesdk/competitions/types/__init__.py +0 -0
  51. kagglesdk/competitions/types/competition_api_service.py +1874 -0
  52. kagglesdk/competitions/types/competition_enums.py +53 -0
  53. kagglesdk/competitions/types/submission_status.py +9 -0
  54. kagglesdk/datasets/__init__.py +0 -0
  55. kagglesdk/datasets/services/__init__.py +0 -0
  56. kagglesdk/datasets/services/dataset_api_service.py +170 -0
  57. kagglesdk/datasets/types/__init__.py +0 -0
  58. kagglesdk/datasets/types/dataset_api_service.py +2777 -0
  59. kagglesdk/datasets/types/dataset_enums.py +82 -0
  60. kagglesdk/datasets/types/dataset_types.py +646 -0
  61. kagglesdk/education/__init__.py +0 -0
  62. kagglesdk/education/services/__init__.py +0 -0
  63. kagglesdk/education/services/education_api_service.py +19 -0
  64. kagglesdk/education/types/__init__.py +0 -0
  65. kagglesdk/education/types/education_api_service.py +248 -0
  66. kagglesdk/education/types/education_service.py +139 -0
  67. kagglesdk/kaggle_client.py +66 -0
  68. kagglesdk/kaggle_env.py +42 -0
  69. kagglesdk/kaggle_http_client.py +316 -0
  70. kagglesdk/kaggle_object.py +293 -0
  71. kagglesdk/kernels/__init__.py +0 -0
  72. kagglesdk/kernels/services/__init__.py +0 -0
  73. kagglesdk/kernels/services/kernels_api_service.py +109 -0
  74. kagglesdk/kernels/types/__init__.py +0 -0
  75. kagglesdk/kernels/types/kernels_api_service.py +1951 -0
  76. kagglesdk/kernels/types/kernels_enums.py +33 -0
  77. kagglesdk/models/__init__.py +0 -0
  78. kagglesdk/models/services/__init__.py +0 -0
  79. kagglesdk/models/services/model_api_service.py +255 -0
  80. kagglesdk/models/services/model_service.py +19 -0
  81. kagglesdk/models/types/__init__.py +0 -0
  82. kagglesdk/models/types/model_api_service.py +3719 -0
  83. kagglesdk/models/types/model_enums.py +60 -0
  84. kagglesdk/models/types/model_service.py +275 -0
  85. kagglesdk/models/types/model_types.py +286 -0
  86. kagglesdk/test/test_client.py +45 -0
  87. kagglesdk/users/__init__.py +0 -0
  88. kagglesdk/users/types/__init__.py +0 -0
  89. kagglesdk/users/types/users_enums.py +22 -0
@@ -0,0 +1,60 @@
1
+ import enum
2
+
3
+ class GatingAgreementRequestsExpiryStatus(enum.Enum):
4
+ GATING_AGREEMENT_REQUESTS_EXPIRY_STATUS_UNSPECIFIED = 0
5
+ GATING_AGREEMENT_REQUESTS_EXPIRY_STATUS_NOT_EXPIRED = 1
6
+ GATING_AGREEMENT_REQUESTS_EXPIRY_STATUS_IS_EXPIRED = 2
7
+
8
+ class GatingAgreementRequestsReviewStatus(enum.Enum):
9
+ GATING_AGREEMENT_REQUESTS_REVIEW_STATUS_UNSPECIFIED = 0
10
+ GATING_AGREEMENT_REQUESTS_REVIEW_STATUS_PENDING = 1
11
+ GATING_AGREEMENT_REQUESTS_REVIEW_STATUS_ACCEPTED = 2
12
+ GATING_AGREEMENT_REQUESTS_REVIEW_STATUS_REJECTED = 3
13
+
14
+ class ListModelsOrderBy(enum.Enum):
15
+ LIST_MODELS_ORDER_BY_UNSPECIFIED = 0
16
+ LIST_MODELS_ORDER_BY_HOTNESS = 1
17
+ LIST_MODELS_ORDER_BY_DOWNLOAD_COUNT = 2
18
+ LIST_MODELS_ORDER_BY_VOTE_COUNT = 3
19
+ LIST_MODELS_ORDER_BY_NOTEBOOK_COUNT = 4
20
+ LIST_MODELS_ORDER_BY_PUBLISH_TIME = 5
21
+ LIST_MODELS_ORDER_BY_CREATE_TIME = 6
22
+ LIST_MODELS_ORDER_BY_UPDATE_TIME = 7
23
+ LIST_MODELS_ORDER_BY_VIEW_TIME_DESC = 8
24
+
25
+ class ModelFramework(enum.Enum):
26
+ MODEL_FRAMEWORK_UNSPECIFIED = 0
27
+ MODEL_FRAMEWORK_TENSOR_FLOW_1 = 1
28
+ MODEL_FRAMEWORK_TENSOR_FLOW_2 = 2
29
+ MODEL_FRAMEWORK_TF_LITE = 3
30
+ MODEL_FRAMEWORK_TF_JS = 4
31
+ MODEL_FRAMEWORK_PY_TORCH = 5
32
+ MODEL_FRAMEWORK_JAX = 6
33
+ MODEL_FRAMEWORK_FLAX = 14
34
+ MODEL_FRAMEWORK_PAX = 15
35
+ MODEL_FRAMEWORK_MAX_TEXT = 17
36
+ MODEL_FRAMEWORK_GEMMA_CPP = 18
37
+ MODEL_FRAMEWORK_GGML = 19
38
+ MODEL_FRAMEWORK_GGUF = 21
39
+ MODEL_FRAMEWORK_CORAL = 7
40
+ MODEL_FRAMEWORK_SCIKIT_LEARN = 8
41
+ MODEL_FRAMEWORK_MXNET = 9
42
+ MODEL_FRAMEWORK_ONNX = 10
43
+ MODEL_FRAMEWORK_KERAS = 11
44
+ MODEL_FRAMEWORK_TRANSFORMERS = 16
45
+ MODEL_FRAMEWORK_API = 12
46
+ MODEL_FRAMEWORK_OTHER = 13
47
+ MODEL_FRAMEWORK_TENSOR_RT_LLM = 20
48
+ MODEL_FRAMEWORK_TRITON = 22
49
+
50
+ class ModelInstanceType(enum.Enum):
51
+ MODEL_INSTANCE_TYPE_UNSPECIFIED = 0
52
+ MODEL_INSTANCE_TYPE_BASE_MODEL = 1
53
+ MODEL_INSTANCE_TYPE_KAGGLE_VARIANT = 2
54
+ MODEL_INSTANCE_TYPE_EXTERNAL_VARIANT = 3
55
+
56
+ class ModelVersionLinkType(enum.Enum):
57
+ MODEL_VERSION_LINK_TYPE_UNSPECIFIED = 0
58
+ MODEL_VERSION_LINK_TYPE_VERTEX_OPEN = 1
59
+ MODEL_VERSION_LINK_TYPE_VERTEX_DEPLOY = 2
60
+
@@ -0,0 +1,275 @@
1
+ from datetime import datetime
2
+ from kagglesdk.kaggle_object import *
3
+ from kagglesdk.models.types.model_enums import ModelFramework
4
+ from typing import Optional, List
5
+
6
+ class GetModelMetricsRequest(KaggleObject):
7
+ r"""
8
+ Attributes:
9
+ owner_slug (str)
10
+ model_slug (str)
11
+ start_time (datetime)
12
+ Optional start time for the time series. A year ago by default.
13
+ """
14
+
15
+ def __init__(self):
16
+ self._owner_slug = ""
17
+ self._model_slug = ""
18
+ self._start_time = None
19
+ self._freeze()
20
+
21
+ @property
22
+ def owner_slug(self) -> str:
23
+ return self._owner_slug
24
+
25
+ @owner_slug.setter
26
+ def owner_slug(self, owner_slug: str):
27
+ if owner_slug is None:
28
+ del self.owner_slug
29
+ return
30
+ if not isinstance(owner_slug, str):
31
+ raise TypeError('owner_slug must be of type str')
32
+ self._owner_slug = owner_slug
33
+
34
+ @property
35
+ def model_slug(self) -> str:
36
+ return self._model_slug
37
+
38
+ @model_slug.setter
39
+ def model_slug(self, model_slug: str):
40
+ if model_slug is None:
41
+ del self.model_slug
42
+ return
43
+ if not isinstance(model_slug, str):
44
+ raise TypeError('model_slug must be of type str')
45
+ self._model_slug = model_slug
46
+
47
+ @property
48
+ def start_time(self) -> datetime:
49
+ """Optional start time for the time series. A year ago by default."""
50
+ return self._start_time or None
51
+
52
+ @start_time.setter
53
+ def start_time(self, start_time: datetime):
54
+ if start_time is None:
55
+ del self.start_time
56
+ return
57
+ if not isinstance(start_time, datetime):
58
+ raise TypeError('start_time must be of type datetime')
59
+ self._start_time = start_time
60
+
61
+ def endpoint(self):
62
+ path = '/api/v1/models/{owner_slug}/{model_slug}/metrics'
63
+ return path.format_map(self.to_field_map(self))
64
+
65
+ @staticmethod
66
+ def endpoint_path():
67
+ return '/models/{owner_slug}/{model_slug}/metrics'
68
+
69
+
70
+ class GetModelMetricsResponse(KaggleObject):
71
+ r"""
72
+ Attributes:
73
+ metrics (ModelMetric)
74
+ """
75
+
76
+ def __init__(self):
77
+ self._metrics = []
78
+ self._freeze()
79
+
80
+ @property
81
+ def metrics(self) -> Optional[List[Optional['ModelMetric']]]:
82
+ return self._metrics
83
+
84
+ @metrics.setter
85
+ def metrics(self, metrics: Optional[List[Optional['ModelMetric']]]):
86
+ if metrics is None:
87
+ del self.metrics
88
+ return
89
+ if not isinstance(metrics, list):
90
+ raise TypeError('metrics must be of type list')
91
+ if not all([isinstance(t, ModelMetric) for t in metrics]):
92
+ raise TypeError('metrics must contain only items of type ModelMetric')
93
+ self._metrics = metrics
94
+
95
+
96
+ class ModelMetric(KaggleObject):
97
+ r"""
98
+ Attributes:
99
+ date (str)
100
+ views (int)
101
+ downloads (int)
102
+ notebooks (int)
103
+ instances (ModelInstanceMetric)
104
+ """
105
+
106
+ def __init__(self):
107
+ self._date = ""
108
+ self._views = 0
109
+ self._downloads = 0
110
+ self._notebooks = 0
111
+ self._instances = []
112
+ self._freeze()
113
+
114
+ @property
115
+ def date(self) -> str:
116
+ return self._date
117
+
118
+ @date.setter
119
+ def date(self, date: str):
120
+ if date is None:
121
+ del self.date
122
+ return
123
+ if not isinstance(date, str):
124
+ raise TypeError('date must be of type str')
125
+ self._date = date
126
+
127
+ @property
128
+ def views(self) -> int:
129
+ return self._views
130
+
131
+ @views.setter
132
+ def views(self, views: int):
133
+ if views is None:
134
+ del self.views
135
+ return
136
+ if not isinstance(views, int):
137
+ raise TypeError('views must be of type int')
138
+ self._views = views
139
+
140
+ @property
141
+ def downloads(self) -> int:
142
+ return self._downloads
143
+
144
+ @downloads.setter
145
+ def downloads(self, downloads: int):
146
+ if downloads is None:
147
+ del self.downloads
148
+ return
149
+ if not isinstance(downloads, int):
150
+ raise TypeError('downloads must be of type int')
151
+ self._downloads = downloads
152
+
153
+ @property
154
+ def notebooks(self) -> int:
155
+ return self._notebooks
156
+
157
+ @notebooks.setter
158
+ def notebooks(self, notebooks: int):
159
+ if notebooks is None:
160
+ del self.notebooks
161
+ return
162
+ if not isinstance(notebooks, int):
163
+ raise TypeError('notebooks must be of type int')
164
+ self._notebooks = notebooks
165
+
166
+ @property
167
+ def instances(self) -> Optional[List[Optional['ModelInstanceMetric']]]:
168
+ return self._instances
169
+
170
+ @instances.setter
171
+ def instances(self, instances: Optional[List[Optional['ModelInstanceMetric']]]):
172
+ if instances is None:
173
+ del self.instances
174
+ return
175
+ if not isinstance(instances, list):
176
+ raise TypeError('instances must be of type list')
177
+ if not all([isinstance(t, ModelInstanceMetric) for t in instances]):
178
+ raise TypeError('instances must contain only items of type ModelInstanceMetric')
179
+ self._instances = instances
180
+
181
+
182
+ class ModelInstanceMetric(KaggleObject):
183
+ r"""
184
+ Attributes:
185
+ variation (str)
186
+ framework (ModelFramework)
187
+ downloads (int)
188
+ notebooks (int)
189
+ """
190
+
191
+ def __init__(self):
192
+ self._variation = ""
193
+ self._framework = ModelFramework.MODEL_FRAMEWORK_UNSPECIFIED
194
+ self._downloads = 0
195
+ self._notebooks = 0
196
+ self._freeze()
197
+
198
+ @property
199
+ def variation(self) -> str:
200
+ return self._variation
201
+
202
+ @variation.setter
203
+ def variation(self, variation: str):
204
+ if variation is None:
205
+ del self.variation
206
+ return
207
+ if not isinstance(variation, str):
208
+ raise TypeError('variation must be of type str')
209
+ self._variation = variation
210
+
211
+ @property
212
+ def framework(self) -> 'ModelFramework':
213
+ return self._framework
214
+
215
+ @framework.setter
216
+ def framework(self, framework: 'ModelFramework'):
217
+ if framework is None:
218
+ del self.framework
219
+ return
220
+ if not isinstance(framework, ModelFramework):
221
+ raise TypeError('framework must be of type ModelFramework')
222
+ self._framework = framework
223
+
224
+ @property
225
+ def downloads(self) -> int:
226
+ return self._downloads
227
+
228
+ @downloads.setter
229
+ def downloads(self, downloads: int):
230
+ if downloads is None:
231
+ del self.downloads
232
+ return
233
+ if not isinstance(downloads, int):
234
+ raise TypeError('downloads must be of type int')
235
+ self._downloads = downloads
236
+
237
+ @property
238
+ def notebooks(self) -> int:
239
+ return self._notebooks
240
+
241
+ @notebooks.setter
242
+ def notebooks(self, notebooks: int):
243
+ if notebooks is None:
244
+ del self.notebooks
245
+ return
246
+ if not isinstance(notebooks, int):
247
+ raise TypeError('notebooks must be of type int')
248
+ self._notebooks = notebooks
249
+
250
+
251
+ GetModelMetricsRequest._fields = [
252
+ FieldMetadata("ownerSlug", "owner_slug", "_owner_slug", str, "", PredefinedSerializer()),
253
+ FieldMetadata("modelSlug", "model_slug", "_model_slug", str, "", PredefinedSerializer()),
254
+ FieldMetadata("startTime", "start_time", "_start_time", datetime, None, DateTimeSerializer(), optional=True),
255
+ ]
256
+
257
+ GetModelMetricsResponse._fields = [
258
+ FieldMetadata("metrics", "metrics", "_metrics", ModelMetric, [], ListSerializer(KaggleObjectSerializer())),
259
+ ]
260
+
261
+ ModelMetric._fields = [
262
+ FieldMetadata("date", "date", "_date", str, "", PredefinedSerializer()),
263
+ FieldMetadata("views", "views", "_views", int, 0, PredefinedSerializer()),
264
+ FieldMetadata("downloads", "downloads", "_downloads", int, 0, PredefinedSerializer()),
265
+ FieldMetadata("notebooks", "notebooks", "_notebooks", int, 0, PredefinedSerializer()),
266
+ FieldMetadata("instances", "instances", "_instances", ModelInstanceMetric, [], ListSerializer(KaggleObjectSerializer())),
267
+ ]
268
+
269
+ ModelInstanceMetric._fields = [
270
+ FieldMetadata("variation", "variation", "_variation", str, "", PredefinedSerializer()),
271
+ FieldMetadata("framework", "framework", "_framework", ModelFramework, ModelFramework.MODEL_FRAMEWORK_UNSPECIFIED, EnumSerializer()),
272
+ FieldMetadata("downloads", "downloads", "_downloads", int, 0, PredefinedSerializer()),
273
+ FieldMetadata("notebooks", "notebooks", "_notebooks", int, 0, PredefinedSerializer()),
274
+ ]
275
+
@@ -0,0 +1,286 @@
1
+ from kagglesdk.kaggle_object import *
2
+ from kagglesdk.models.types.model_enums import ModelFramework, ModelVersionLinkType
3
+ from kagglesdk.users.types.users_enums import UserAchievementTier
4
+ from typing import Optional
5
+
6
+ class BaseModelInstanceInformation(KaggleObject):
7
+ r"""
8
+ Attributes:
9
+ id (int)
10
+ owner (Owner)
11
+ model_slug (str)
12
+ instance_slug (str)
13
+ framework (ModelFramework)
14
+ """
15
+
16
+ def __init__(self):
17
+ self._id = 0
18
+ self._owner = None
19
+ self._model_slug = ""
20
+ self._instance_slug = ""
21
+ self._framework = ModelFramework.MODEL_FRAMEWORK_UNSPECIFIED
22
+ self._freeze()
23
+
24
+ @property
25
+ def id(self) -> int:
26
+ return self._id
27
+
28
+ @id.setter
29
+ def id(self, id: int):
30
+ if id is None:
31
+ del self.id
32
+ return
33
+ if not isinstance(id, int):
34
+ raise TypeError('id must be of type int')
35
+ self._id = id
36
+
37
+ @property
38
+ def owner(self) -> Optional['Owner']:
39
+ return self._owner
40
+
41
+ @owner.setter
42
+ def owner(self, owner: Optional['Owner']):
43
+ if owner is None:
44
+ del self.owner
45
+ return
46
+ if not isinstance(owner, Owner):
47
+ raise TypeError('owner must be of type Owner')
48
+ self._owner = owner
49
+
50
+ @property
51
+ def model_slug(self) -> str:
52
+ return self._model_slug
53
+
54
+ @model_slug.setter
55
+ def model_slug(self, model_slug: str):
56
+ if model_slug is None:
57
+ del self.model_slug
58
+ return
59
+ if not isinstance(model_slug, str):
60
+ raise TypeError('model_slug must be of type str')
61
+ self._model_slug = model_slug
62
+
63
+ @property
64
+ def instance_slug(self) -> str:
65
+ return self._instance_slug
66
+
67
+ @instance_slug.setter
68
+ def instance_slug(self, instance_slug: str):
69
+ if instance_slug is None:
70
+ del self.instance_slug
71
+ return
72
+ if not isinstance(instance_slug, str):
73
+ raise TypeError('instance_slug must be of type str')
74
+ self._instance_slug = instance_slug
75
+
76
+ @property
77
+ def framework(self) -> 'ModelFramework':
78
+ return self._framework
79
+
80
+ @framework.setter
81
+ def framework(self, framework: 'ModelFramework'):
82
+ if framework is None:
83
+ del self.framework
84
+ return
85
+ if not isinstance(framework, ModelFramework):
86
+ raise TypeError('framework must be of type ModelFramework')
87
+ self._framework = framework
88
+
89
+
90
+ class ModelLink(KaggleObject):
91
+ r"""
92
+ Attributes:
93
+ type (ModelVersionLinkType)
94
+ url (str)
95
+ """
96
+
97
+ def __init__(self):
98
+ self._type = ModelVersionLinkType.MODEL_VERSION_LINK_TYPE_UNSPECIFIED
99
+ self._url = ""
100
+ self._freeze()
101
+
102
+ @property
103
+ def type(self) -> 'ModelVersionLinkType':
104
+ return self._type
105
+
106
+ @type.setter
107
+ def type(self, type: 'ModelVersionLinkType'):
108
+ if type is None:
109
+ del self.type
110
+ return
111
+ if not isinstance(type, ModelVersionLinkType):
112
+ raise TypeError('type must be of type ModelVersionLinkType')
113
+ self._type = type
114
+
115
+ @property
116
+ def url(self) -> str:
117
+ return self._url
118
+
119
+ @url.setter
120
+ def url(self, url: str):
121
+ if url is None:
122
+ del self.url
123
+ return
124
+ if not isinstance(url, str):
125
+ raise TypeError('url must be of type str')
126
+ self._url = url
127
+
128
+
129
+ class Owner(KaggleObject):
130
+ r"""
131
+ Based off Datasets OwnerDto as the permission model is the same
132
+ Separate message since Models don't have max_file_size_bytes.
133
+ Consider renaming more generically to apply to Users/Orgs
134
+ interchangeably without a strict concept of ownership
135
+
136
+ Attributes:
137
+ id (int)
138
+ image_url (str)
139
+ is_organization (bool)
140
+ name (str)
141
+ profile_url (str)
142
+ slug (str)
143
+ user_tier (UserAchievementTier)
144
+ allow_model_gating (bool)
145
+ """
146
+
147
+ def __init__(self):
148
+ self._id = 0
149
+ self._image_url = None
150
+ self._is_organization = False
151
+ self._name = ""
152
+ self._profile_url = None
153
+ self._slug = ""
154
+ self._user_tier = UserAchievementTier.NOVICE
155
+ self._allow_model_gating = None
156
+ self._freeze()
157
+
158
+ @property
159
+ def id(self) -> int:
160
+ return self._id
161
+
162
+ @id.setter
163
+ def id(self, id: int):
164
+ if id is None:
165
+ del self.id
166
+ return
167
+ if not isinstance(id, int):
168
+ raise TypeError('id must be of type int')
169
+ self._id = id
170
+
171
+ @property
172
+ def image_url(self) -> str:
173
+ return self._image_url or ""
174
+
175
+ @image_url.setter
176
+ def image_url(self, image_url: str):
177
+ if image_url is None:
178
+ del self.image_url
179
+ return
180
+ if not isinstance(image_url, str):
181
+ raise TypeError('image_url must be of type str')
182
+ self._image_url = image_url
183
+
184
+ @property
185
+ def is_organization(self) -> bool:
186
+ return self._is_organization
187
+
188
+ @is_organization.setter
189
+ def is_organization(self, is_organization: bool):
190
+ if is_organization is None:
191
+ del self.is_organization
192
+ return
193
+ if not isinstance(is_organization, bool):
194
+ raise TypeError('is_organization must be of type bool')
195
+ self._is_organization = is_organization
196
+
197
+ @property
198
+ def name(self) -> str:
199
+ return self._name
200
+
201
+ @name.setter
202
+ def name(self, name: str):
203
+ if name is None:
204
+ del self.name
205
+ return
206
+ if not isinstance(name, str):
207
+ raise TypeError('name must be of type str')
208
+ self._name = name
209
+
210
+ @property
211
+ def profile_url(self) -> str:
212
+ return self._profile_url or ""
213
+
214
+ @profile_url.setter
215
+ def profile_url(self, profile_url: str):
216
+ if profile_url is None:
217
+ del self.profile_url
218
+ return
219
+ if not isinstance(profile_url, str):
220
+ raise TypeError('profile_url must be of type str')
221
+ self._profile_url = profile_url
222
+
223
+ @property
224
+ def slug(self) -> str:
225
+ return self._slug
226
+
227
+ @slug.setter
228
+ def slug(self, slug: str):
229
+ if slug is None:
230
+ del self.slug
231
+ return
232
+ if not isinstance(slug, str):
233
+ raise TypeError('slug must be of type str')
234
+ self._slug = slug
235
+
236
+ @property
237
+ def user_tier(self) -> 'UserAchievementTier':
238
+ return self._user_tier
239
+
240
+ @user_tier.setter
241
+ def user_tier(self, user_tier: 'UserAchievementTier'):
242
+ if user_tier is None:
243
+ del self.user_tier
244
+ return
245
+ if not isinstance(user_tier, UserAchievementTier):
246
+ raise TypeError('user_tier must be of type UserAchievementTier')
247
+ self._user_tier = user_tier
248
+
249
+ @property
250
+ def allow_model_gating(self) -> bool:
251
+ return self._allow_model_gating or False
252
+
253
+ @allow_model_gating.setter
254
+ def allow_model_gating(self, allow_model_gating: bool):
255
+ if allow_model_gating is None:
256
+ del self.allow_model_gating
257
+ return
258
+ if not isinstance(allow_model_gating, bool):
259
+ raise TypeError('allow_model_gating must be of type bool')
260
+ self._allow_model_gating = allow_model_gating
261
+
262
+
263
+ BaseModelInstanceInformation._fields = [
264
+ FieldMetadata("id", "id", "_id", int, 0, PredefinedSerializer()),
265
+ FieldMetadata("owner", "owner", "_owner", Owner, None, KaggleObjectSerializer()),
266
+ FieldMetadata("modelSlug", "model_slug", "_model_slug", str, "", PredefinedSerializer()),
267
+ FieldMetadata("instanceSlug", "instance_slug", "_instance_slug", str, "", PredefinedSerializer()),
268
+ FieldMetadata("framework", "framework", "_framework", ModelFramework, ModelFramework.MODEL_FRAMEWORK_UNSPECIFIED, EnumSerializer()),
269
+ ]
270
+
271
+ ModelLink._fields = [
272
+ FieldMetadata("type", "type", "_type", ModelVersionLinkType, ModelVersionLinkType.MODEL_VERSION_LINK_TYPE_UNSPECIFIED, EnumSerializer()),
273
+ FieldMetadata("url", "url", "_url", str, "", PredefinedSerializer()),
274
+ ]
275
+
276
+ Owner._fields = [
277
+ FieldMetadata("id", "id", "_id", int, 0, PredefinedSerializer()),
278
+ FieldMetadata("imageUrl", "image_url", "_image_url", str, None, PredefinedSerializer(), optional=True),
279
+ FieldMetadata("isOrganization", "is_organization", "_is_organization", bool, False, PredefinedSerializer()),
280
+ FieldMetadata("name", "name", "_name", str, "", PredefinedSerializer()),
281
+ FieldMetadata("profileUrl", "profile_url", "_profile_url", str, None, PredefinedSerializer(), optional=True),
282
+ FieldMetadata("slug", "slug", "_slug", str, "", PredefinedSerializer()),
283
+ FieldMetadata("userTier", "user_tier", "_user_tier", UserAchievementTier, UserAchievementTier.NOVICE, EnumSerializer()),
284
+ FieldMetadata("allowModelGating", "allow_model_gating", "_allow_model_gating", bool, None, PredefinedSerializer(), optional=True),
285
+ ]
286
+
@@ -0,0 +1,45 @@
1
+ from kagglesdk import kaggle_env
2
+ from kagglesdk import KaggleClient, KaggleEnv
3
+
4
+ # python -m unittest tests.test_authenticate
5
+
6
+ import os
7
+ import unittest
8
+
9
+
10
+ class TestClient(unittest.TestCase):
11
+
12
+ def setUp(self):
13
+ print("setup class:%s" % self)
14
+
15
+ def tearDown(self):
16
+ print("teardown class:TestStuff")
17
+
18
+ # Environment
19
+
20
+ def test_kaggle_environment(self):
21
+ os.environ['KAGGLE_API_ENVIRONMENT'] = 'PROD'
22
+
23
+ env = kaggle_env.get_env()
24
+ self.assertEqual(env, KaggleEnv.PROD)
25
+
26
+ endpoint = kaggle_env.get_endpoint(env)
27
+ self.assertEqual(endpoint, 'https://www.kaggle.com')
28
+
29
+ # Client
30
+
31
+ def test_kaggle_client(self):
32
+ client = KaggleClient(
33
+ env=KaggleEnv.PROD,
34
+ verbose=False,
35
+ username='dinosaur',
36
+ password='xxxxxxxxxxxx')
37
+
38
+ self.assertEqual(client.username, 'dinosaur')
39
+ self.assertEqual(client.password, 'xxxxxxxxxxxx')
40
+ self.assertEqual(client.http_client()._endpoint, 'https://www.kaggle.com')
41
+ self.assertEqual(client.http_client()._verbose, False)
42
+
43
+
44
+ if __name__ == '__main__':
45
+ unittest.main()
File without changes
File without changes
@@ -0,0 +1,22 @@
1
+ import enum
2
+
3
+ class UserAchievementTier(enum.Enum):
4
+ NOVICE = 0
5
+ CONTRIBUTOR = 1
6
+ EXPERT = 2
7
+ MASTER = 3
8
+ GRANDMASTER = 4
9
+ STAFF = 5
10
+ """Kaggle admins"""
11
+ ORGANIZATION = 11
12
+ """Organizations"""
13
+ RECALC = 21
14
+ """Flag user for tier recalculation"""
15
+
16
+ class CollaboratorType(enum.Enum):
17
+ COLLABORATOR_TYPE_UNSPECIFIED = 0
18
+ READER = 1
19
+ WRITER = 2
20
+ OWNER = 3
21
+ ADMIN = 4
22
+