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,646 @@
1
+ from kagglesdk.kaggle_object import *
2
+ from kagglesdk.users.types.users_enums import CollaboratorType
3
+ from typing import Optional, List
4
+
5
+ class DatasetInfo(KaggleObject):
6
+ r"""
7
+ Attributes:
8
+ dataset_id (int)
9
+ dataset_slug (str)
10
+ owner_user (str)
11
+ usability_rating (float)
12
+ total_views (int)
13
+ total_votes (int)
14
+ total_downloads (int)
15
+ title (str)
16
+ Copy/paste from DatasetSettings below. Can't use composition because
17
+ that'd be a backwards-incompatible change for the Python Api.
18
+ subtitle (str)
19
+ description (str)
20
+ is_private (bool)
21
+ keywords (str)
22
+ licenses (SettingsLicense)
23
+ collaborators (DatasetCollaborator)
24
+ data (DatasetSettingsFile)
25
+ """
26
+
27
+ def __init__(self):
28
+ self._dataset_id = 0
29
+ self._dataset_slug = None
30
+ self._owner_user = None
31
+ self._usability_rating = None
32
+ self._total_views = 0
33
+ self._total_votes = 0
34
+ self._total_downloads = 0
35
+ self._title = None
36
+ self._subtitle = None
37
+ self._description = None
38
+ self._is_private = False
39
+ self._keywords = []
40
+ self._licenses = []
41
+ self._collaborators = []
42
+ self._data = []
43
+ self._freeze()
44
+
45
+ @property
46
+ def dataset_id(self) -> int:
47
+ return self._dataset_id
48
+
49
+ @dataset_id.setter
50
+ def dataset_id(self, dataset_id: int):
51
+ if dataset_id is None:
52
+ del self.dataset_id
53
+ return
54
+ if not isinstance(dataset_id, int):
55
+ raise TypeError('dataset_id must be of type int')
56
+ self._dataset_id = dataset_id
57
+
58
+ @property
59
+ def dataset_slug(self) -> str:
60
+ return self._dataset_slug or ""
61
+
62
+ @dataset_slug.setter
63
+ def dataset_slug(self, dataset_slug: str):
64
+ if dataset_slug is None:
65
+ del self.dataset_slug
66
+ return
67
+ if not isinstance(dataset_slug, str):
68
+ raise TypeError('dataset_slug must be of type str')
69
+ self._dataset_slug = dataset_slug
70
+
71
+ @property
72
+ def owner_user(self) -> str:
73
+ return self._owner_user or ""
74
+
75
+ @owner_user.setter
76
+ def owner_user(self, owner_user: str):
77
+ if owner_user is None:
78
+ del self.owner_user
79
+ return
80
+ if not isinstance(owner_user, str):
81
+ raise TypeError('owner_user must be of type str')
82
+ self._owner_user = owner_user
83
+
84
+ @property
85
+ def usability_rating(self) -> float:
86
+ return self._usability_rating or 0.0
87
+
88
+ @usability_rating.setter
89
+ def usability_rating(self, usability_rating: float):
90
+ if usability_rating is None:
91
+ del self.usability_rating
92
+ return
93
+ if not isinstance(usability_rating, float):
94
+ raise TypeError('usability_rating must be of type float')
95
+ self._usability_rating = usability_rating
96
+
97
+ @property
98
+ def total_views(self) -> int:
99
+ return self._total_views
100
+
101
+ @total_views.setter
102
+ def total_views(self, total_views: int):
103
+ if total_views is None:
104
+ del self.total_views
105
+ return
106
+ if not isinstance(total_views, int):
107
+ raise TypeError('total_views must be of type int')
108
+ self._total_views = total_views
109
+
110
+ @property
111
+ def total_votes(self) -> int:
112
+ return self._total_votes
113
+
114
+ @total_votes.setter
115
+ def total_votes(self, total_votes: int):
116
+ if total_votes is None:
117
+ del self.total_votes
118
+ return
119
+ if not isinstance(total_votes, int):
120
+ raise TypeError('total_votes must be of type int')
121
+ self._total_votes = total_votes
122
+
123
+ @property
124
+ def total_downloads(self) -> int:
125
+ return self._total_downloads
126
+
127
+ @total_downloads.setter
128
+ def total_downloads(self, total_downloads: int):
129
+ if total_downloads is None:
130
+ del self.total_downloads
131
+ return
132
+ if not isinstance(total_downloads, int):
133
+ raise TypeError('total_downloads must be of type int')
134
+ self._total_downloads = total_downloads
135
+
136
+ @property
137
+ def title(self) -> str:
138
+ r"""
139
+ Copy/paste from DatasetSettings below. Can't use composition because
140
+ that'd be a backwards-incompatible change for the Python Api.
141
+ """
142
+ return self._title or ""
143
+
144
+ @title.setter
145
+ def title(self, title: str):
146
+ if title is None:
147
+ del self.title
148
+ return
149
+ if not isinstance(title, str):
150
+ raise TypeError('title must be of type str')
151
+ self._title = title
152
+
153
+ @property
154
+ def subtitle(self) -> str:
155
+ return self._subtitle or ""
156
+
157
+ @subtitle.setter
158
+ def subtitle(self, subtitle: str):
159
+ if subtitle is None:
160
+ del self.subtitle
161
+ return
162
+ if not isinstance(subtitle, str):
163
+ raise TypeError('subtitle must be of type str')
164
+ self._subtitle = subtitle
165
+
166
+ @property
167
+ def description(self) -> str:
168
+ return self._description or ""
169
+
170
+ @description.setter
171
+ def description(self, description: str):
172
+ if description is None:
173
+ del self.description
174
+ return
175
+ if not isinstance(description, str):
176
+ raise TypeError('description must be of type str')
177
+ self._description = description
178
+
179
+ @property
180
+ def is_private(self) -> bool:
181
+ return self._is_private
182
+
183
+ @is_private.setter
184
+ def is_private(self, is_private: bool):
185
+ if is_private is None:
186
+ del self.is_private
187
+ return
188
+ if not isinstance(is_private, bool):
189
+ raise TypeError('is_private must be of type bool')
190
+ self._is_private = is_private
191
+
192
+ @property
193
+ def keywords(self) -> Optional[List[str]]:
194
+ return self._keywords
195
+
196
+ @keywords.setter
197
+ def keywords(self, keywords: Optional[List[str]]):
198
+ if keywords is None:
199
+ del self.keywords
200
+ return
201
+ if not isinstance(keywords, list):
202
+ raise TypeError('keywords must be of type list')
203
+ if not all([isinstance(t, str) for t in keywords]):
204
+ raise TypeError('keywords must contain only items of type str')
205
+ self._keywords = keywords
206
+
207
+ @property
208
+ def licenses(self) -> Optional[List[Optional['SettingsLicense']]]:
209
+ return self._licenses
210
+
211
+ @licenses.setter
212
+ def licenses(self, licenses: Optional[List[Optional['SettingsLicense']]]):
213
+ if licenses is None:
214
+ del self.licenses
215
+ return
216
+ if not isinstance(licenses, list):
217
+ raise TypeError('licenses must be of type list')
218
+ if not all([isinstance(t, SettingsLicense) for t in licenses]):
219
+ raise TypeError('licenses must contain only items of type SettingsLicense')
220
+ self._licenses = licenses
221
+
222
+ @property
223
+ def collaborators(self) -> Optional[List[Optional['DatasetCollaborator']]]:
224
+ return self._collaborators
225
+
226
+ @collaborators.setter
227
+ def collaborators(self, collaborators: Optional[List[Optional['DatasetCollaborator']]]):
228
+ if collaborators is None:
229
+ del self.collaborators
230
+ return
231
+ if not isinstance(collaborators, list):
232
+ raise TypeError('collaborators must be of type list')
233
+ if not all([isinstance(t, DatasetCollaborator) for t in collaborators]):
234
+ raise TypeError('collaborators must contain only items of type DatasetCollaborator')
235
+ self._collaborators = collaborators
236
+
237
+ @property
238
+ def data(self) -> Optional[List[Optional['DatasetSettingsFile']]]:
239
+ return self._data
240
+
241
+ @data.setter
242
+ def data(self, data: Optional[List[Optional['DatasetSettingsFile']]]):
243
+ if data is None:
244
+ del self.data
245
+ return
246
+ if not isinstance(data, list):
247
+ raise TypeError('data must be of type list')
248
+ if not all([isinstance(t, DatasetSettingsFile) for t in data]):
249
+ raise TypeError('data must contain only items of type DatasetSettingsFile')
250
+ self._data = data
251
+
252
+
253
+ class DatasetSettings(KaggleObject):
254
+ r"""
255
+ Attributes:
256
+ title (str)
257
+ subtitle (str)
258
+ description (str)
259
+ is_private (bool)
260
+ keywords (str)
261
+ licenses (SettingsLicense)
262
+ collaborators (DatasetCollaborator)
263
+ data (DatasetSettingsFile)
264
+ """
265
+
266
+ def __init__(self):
267
+ self._title = None
268
+ self._subtitle = None
269
+ self._description = None
270
+ self._is_private = False
271
+ self._keywords = []
272
+ self._licenses = []
273
+ self._collaborators = []
274
+ self._data = []
275
+ self._freeze()
276
+
277
+ @property
278
+ def title(self) -> str:
279
+ return self._title or ""
280
+
281
+ @title.setter
282
+ def title(self, title: str):
283
+ if title is None:
284
+ del self.title
285
+ return
286
+ if not isinstance(title, str):
287
+ raise TypeError('title must be of type str')
288
+ self._title = title
289
+
290
+ @property
291
+ def subtitle(self) -> str:
292
+ return self._subtitle or ""
293
+
294
+ @subtitle.setter
295
+ def subtitle(self, subtitle: str):
296
+ if subtitle is None:
297
+ del self.subtitle
298
+ return
299
+ if not isinstance(subtitle, str):
300
+ raise TypeError('subtitle must be of type str')
301
+ self._subtitle = subtitle
302
+
303
+ @property
304
+ def description(self) -> str:
305
+ return self._description or ""
306
+
307
+ @description.setter
308
+ def description(self, description: str):
309
+ if description is None:
310
+ del self.description
311
+ return
312
+ if not isinstance(description, str):
313
+ raise TypeError('description must be of type str')
314
+ self._description = description
315
+
316
+ @property
317
+ def is_private(self) -> bool:
318
+ return self._is_private
319
+
320
+ @is_private.setter
321
+ def is_private(self, is_private: bool):
322
+ if is_private is None:
323
+ del self.is_private
324
+ return
325
+ if not isinstance(is_private, bool):
326
+ raise TypeError('is_private must be of type bool')
327
+ self._is_private = is_private
328
+
329
+ @property
330
+ def keywords(self) -> Optional[List[str]]:
331
+ return self._keywords
332
+
333
+ @keywords.setter
334
+ def keywords(self, keywords: Optional[List[str]]):
335
+ if keywords is None:
336
+ del self.keywords
337
+ return
338
+ if not isinstance(keywords, list):
339
+ raise TypeError('keywords must be of type list')
340
+ if not all([isinstance(t, str) for t in keywords]):
341
+ raise TypeError('keywords must contain only items of type str')
342
+ self._keywords = keywords
343
+
344
+ @property
345
+ def licenses(self) -> Optional[List[Optional['SettingsLicense']]]:
346
+ return self._licenses
347
+
348
+ @licenses.setter
349
+ def licenses(self, licenses: Optional[List[Optional['SettingsLicense']]]):
350
+ if licenses is None:
351
+ del self.licenses
352
+ return
353
+ if not isinstance(licenses, list):
354
+ raise TypeError('licenses must be of type list')
355
+ if not all([isinstance(t, SettingsLicense) for t in licenses]):
356
+ raise TypeError('licenses must contain only items of type SettingsLicense')
357
+ self._licenses = licenses
358
+
359
+ @property
360
+ def collaborators(self) -> Optional[List[Optional['DatasetCollaborator']]]:
361
+ return self._collaborators
362
+
363
+ @collaborators.setter
364
+ def collaborators(self, collaborators: Optional[List[Optional['DatasetCollaborator']]]):
365
+ if collaborators is None:
366
+ del self.collaborators
367
+ return
368
+ if not isinstance(collaborators, list):
369
+ raise TypeError('collaborators must be of type list')
370
+ if not all([isinstance(t, DatasetCollaborator) for t in collaborators]):
371
+ raise TypeError('collaborators must contain only items of type DatasetCollaborator')
372
+ self._collaborators = collaborators
373
+
374
+ @property
375
+ def data(self) -> Optional[List[Optional['DatasetSettingsFile']]]:
376
+ return self._data
377
+
378
+ @data.setter
379
+ def data(self, data: Optional[List[Optional['DatasetSettingsFile']]]):
380
+ if data is None:
381
+ del self.data
382
+ return
383
+ if not isinstance(data, list):
384
+ raise TypeError('data must be of type list')
385
+ if not all([isinstance(t, DatasetSettingsFile) for t in data]):
386
+ raise TypeError('data must contain only items of type DatasetSettingsFile')
387
+ self._data = data
388
+
389
+
390
+ class DatasetSettingsFile(KaggleObject):
391
+ r"""
392
+ Attributes:
393
+ name (str)
394
+ description (str)
395
+ total_bytes (int)
396
+ columns (DatasetSettingsFileColumn)
397
+ """
398
+
399
+ def __init__(self):
400
+ self._name = ""
401
+ self._description = None
402
+ self._total_bytes = 0
403
+ self._columns = []
404
+ self._freeze()
405
+
406
+ @property
407
+ def name(self) -> str:
408
+ return self._name
409
+
410
+ @name.setter
411
+ def name(self, name: str):
412
+ if name is None:
413
+ del self.name
414
+ return
415
+ if not isinstance(name, str):
416
+ raise TypeError('name must be of type str')
417
+ self._name = name
418
+
419
+ @property
420
+ def description(self) -> str:
421
+ return self._description or ""
422
+
423
+ @description.setter
424
+ def description(self, description: str):
425
+ if description is None:
426
+ del self.description
427
+ return
428
+ if not isinstance(description, str):
429
+ raise TypeError('description must be of type str')
430
+ self._description = description
431
+
432
+ @property
433
+ def total_bytes(self) -> int:
434
+ return self._total_bytes
435
+
436
+ @total_bytes.setter
437
+ def total_bytes(self, total_bytes: int):
438
+ if total_bytes is None:
439
+ del self.total_bytes
440
+ return
441
+ if not isinstance(total_bytes, int):
442
+ raise TypeError('total_bytes must be of type int')
443
+ self._total_bytes = total_bytes
444
+
445
+ @property
446
+ def columns(self) -> Optional[List[Optional['DatasetSettingsFileColumn']]]:
447
+ return self._columns
448
+
449
+ @columns.setter
450
+ def columns(self, columns: Optional[List[Optional['DatasetSettingsFileColumn']]]):
451
+ if columns is None:
452
+ del self.columns
453
+ return
454
+ if not isinstance(columns, list):
455
+ raise TypeError('columns must be of type list')
456
+ if not all([isinstance(t, DatasetSettingsFileColumn) for t in columns]):
457
+ raise TypeError('columns must contain only items of type DatasetSettingsFileColumn')
458
+ self._columns = columns
459
+
460
+
461
+ class DatasetSettingsFileColumn(KaggleObject):
462
+ r"""
463
+ Attributes:
464
+ name (str)
465
+ description (str)
466
+ type (str)
467
+ """
468
+
469
+ def __init__(self):
470
+ self._name = ""
471
+ self._description = None
472
+ self._type = None
473
+ self._freeze()
474
+
475
+ @property
476
+ def name(self) -> str:
477
+ return self._name
478
+
479
+ @name.setter
480
+ def name(self, name: str):
481
+ if name is None:
482
+ del self.name
483
+ return
484
+ if not isinstance(name, str):
485
+ raise TypeError('name must be of type str')
486
+ self._name = name
487
+
488
+ @property
489
+ def description(self) -> str:
490
+ return self._description or ""
491
+
492
+ @description.setter
493
+ def description(self, description: str):
494
+ if description is None:
495
+ del self.description
496
+ return
497
+ if not isinstance(description, str):
498
+ raise TypeError('description must be of type str')
499
+ self._description = description
500
+
501
+ @property
502
+ def type(self) -> str:
503
+ return self._type or ""
504
+
505
+ @type.setter
506
+ def type(self, type: str):
507
+ if type is None:
508
+ del self.type
509
+ return
510
+ if not isinstance(type, str):
511
+ raise TypeError('type must be of type str')
512
+ self._type = type
513
+
514
+
515
+ class SettingsLicense(KaggleObject):
516
+ r"""
517
+ Attributes:
518
+ name (str)
519
+ """
520
+
521
+ def __init__(self):
522
+ self._name = None
523
+ self._freeze()
524
+
525
+ @property
526
+ def name(self) -> str:
527
+ return self._name or ""
528
+
529
+ @name.setter
530
+ def name(self, name: str):
531
+ if name is None:
532
+ del self.name
533
+ return
534
+ if not isinstance(name, str):
535
+ raise TypeError('name must be of type str')
536
+ self._name = name
537
+
538
+
539
+ class DatasetCollaborator(KaggleObject):
540
+ r"""
541
+ Attributes:
542
+ username (str)
543
+ group_slug (str)
544
+ role (CollaboratorType)
545
+ """
546
+
547
+ def __init__(self):
548
+ self._username = None
549
+ self._group_slug = None
550
+ self._role = CollaboratorType.COLLABORATOR_TYPE_UNSPECIFIED
551
+ self._freeze()
552
+
553
+ @property
554
+ def username(self) -> str:
555
+ return self._username or ""
556
+
557
+ @username.setter
558
+ def username(self, username: str):
559
+ if username is None:
560
+ del self.username
561
+ return
562
+ if not isinstance(username, str):
563
+ raise TypeError('username must be of type str')
564
+ del self.group_slug
565
+ self._username = username
566
+
567
+ @property
568
+ def group_slug(self) -> str:
569
+ return self._group_slug or ""
570
+
571
+ @group_slug.setter
572
+ def group_slug(self, group_slug: str):
573
+ if group_slug is None:
574
+ del self.group_slug
575
+ return
576
+ if not isinstance(group_slug, str):
577
+ raise TypeError('group_slug must be of type str')
578
+ del self.username
579
+ self._group_slug = group_slug
580
+
581
+ @property
582
+ def role(self) -> 'CollaboratorType':
583
+ return self._role
584
+
585
+ @role.setter
586
+ def role(self, role: 'CollaboratorType'):
587
+ if role is None:
588
+ del self.role
589
+ return
590
+ if not isinstance(role, CollaboratorType):
591
+ raise TypeError('role must be of type CollaboratorType')
592
+ self._role = role
593
+
594
+
595
+ DatasetInfo._fields = [
596
+ FieldMetadata("datasetId", "dataset_id", "_dataset_id", int, 0, PredefinedSerializer()),
597
+ FieldMetadata("datasetSlug", "dataset_slug", "_dataset_slug", str, None, PredefinedSerializer(), optional=True),
598
+ FieldMetadata("ownerUser", "owner_user", "_owner_user", str, None, PredefinedSerializer(), optional=True),
599
+ FieldMetadata("usabilityRating", "usability_rating", "_usability_rating", float, None, PredefinedSerializer(), optional=True),
600
+ FieldMetadata("totalViews", "total_views", "_total_views", int, 0, PredefinedSerializer()),
601
+ FieldMetadata("totalVotes", "total_votes", "_total_votes", int, 0, PredefinedSerializer()),
602
+ FieldMetadata("totalDownloads", "total_downloads", "_total_downloads", int, 0, PredefinedSerializer()),
603
+ FieldMetadata("title", "title", "_title", str, None, PredefinedSerializer(), optional=True),
604
+ FieldMetadata("subtitle", "subtitle", "_subtitle", str, None, PredefinedSerializer(), optional=True),
605
+ FieldMetadata("description", "description", "_description", str, None, PredefinedSerializer(), optional=True),
606
+ FieldMetadata("isPrivate", "is_private", "_is_private", bool, False, PredefinedSerializer()),
607
+ FieldMetadata("keywords", "keywords", "_keywords", str, [], ListSerializer(PredefinedSerializer())),
608
+ FieldMetadata("licenses", "licenses", "_licenses", SettingsLicense, [], ListSerializer(KaggleObjectSerializer())),
609
+ FieldMetadata("collaborators", "collaborators", "_collaborators", DatasetCollaborator, [], ListSerializer(KaggleObjectSerializer())),
610
+ FieldMetadata("data", "data", "_data", DatasetSettingsFile, [], ListSerializer(KaggleObjectSerializer())),
611
+ ]
612
+
613
+ DatasetSettings._fields = [
614
+ FieldMetadata("title", "title", "_title", str, None, PredefinedSerializer(), optional=True),
615
+ FieldMetadata("subtitle", "subtitle", "_subtitle", str, None, PredefinedSerializer(), optional=True),
616
+ FieldMetadata("description", "description", "_description", str, None, PredefinedSerializer(), optional=True),
617
+ FieldMetadata("isPrivate", "is_private", "_is_private", bool, False, PredefinedSerializer()),
618
+ FieldMetadata("keywords", "keywords", "_keywords", str, [], ListSerializer(PredefinedSerializer())),
619
+ FieldMetadata("licenses", "licenses", "_licenses", SettingsLicense, [], ListSerializer(KaggleObjectSerializer())),
620
+ FieldMetadata("collaborators", "collaborators", "_collaborators", DatasetCollaborator, [], ListSerializer(KaggleObjectSerializer())),
621
+ FieldMetadata("data", "data", "_data", DatasetSettingsFile, [], ListSerializer(KaggleObjectSerializer())),
622
+ ]
623
+
624
+ DatasetSettingsFile._fields = [
625
+ FieldMetadata("name", "name", "_name", str, "", PredefinedSerializer()),
626
+ FieldMetadata("description", "description", "_description", str, None, PredefinedSerializer(), optional=True),
627
+ FieldMetadata("totalBytes", "total_bytes", "_total_bytes", int, 0, PredefinedSerializer()),
628
+ FieldMetadata("columns", "columns", "_columns", DatasetSettingsFileColumn, [], ListSerializer(KaggleObjectSerializer())),
629
+ ]
630
+
631
+ DatasetSettingsFileColumn._fields = [
632
+ FieldMetadata("name", "name", "_name", str, "", PredefinedSerializer()),
633
+ FieldMetadata("description", "description", "_description", str, None, PredefinedSerializer(), optional=True),
634
+ FieldMetadata("type", "type", "_type", str, None, PredefinedSerializer(), optional=True),
635
+ ]
636
+
637
+ SettingsLicense._fields = [
638
+ FieldMetadata("name", "name", "_name", str, None, PredefinedSerializer(), optional=True),
639
+ ]
640
+
641
+ DatasetCollaborator._fields = [
642
+ FieldMetadata("username", "username", "_username", str, None, PredefinedSerializer(), optional=True),
643
+ FieldMetadata("groupSlug", "group_slug", "_group_slug", str, None, PredefinedSerializer(), optional=True),
644
+ FieldMetadata("role", "role", "_role", CollaboratorType, CollaboratorType.COLLABORATOR_TYPE_UNSPECIFIED, EnumSerializer()),
645
+ ]
646
+
File without changes
File without changes
@@ -0,0 +1,19 @@
1
+ from kagglesdk.education.types.education_api_service import ApiTrackExerciseInteractionRequest, ApiTrackExerciseInteractionResponse
2
+ from kagglesdk.kaggle_http_client import KaggleHttpClient
3
+
4
+ class EducationApiClient(object):
5
+
6
+ def __init__(self, client: KaggleHttpClient):
7
+ self._client = client
8
+
9
+ def track_exercise_interaction(self, request: ApiTrackExerciseInteractionRequest = None) -> ApiTrackExerciseInteractionResponse:
10
+ r"""
11
+ Args:
12
+ request (ApiTrackExerciseInteractionRequest):
13
+ The request object; initialized to empty instance if not specified.
14
+ """
15
+
16
+ if request is None:
17
+ request = ApiTrackExerciseInteractionRequest()
18
+
19
+ return self._client.call("education.EducationApiService", "ApiTrackExerciseInteraction", request, ApiTrackExerciseInteractionResponse)
File without changes