kaggle 1.7.4.5__py3-none-any.whl → 1.8.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. kaggle/__init__.py +10 -6
  2. kaggle/api/kaggle_api.py +574 -598
  3. kaggle/api/kaggle_api_extended.py +5251 -4769
  4. kaggle/cli.py +1335 -1585
  5. kaggle/models/api_blob_type.py +3 -3
  6. kaggle/models/dataset_column.py +165 -174
  7. kaggle/models/dataset_new_request.py +83 -41
  8. kaggle/models/dataset_new_version_request.py +32 -25
  9. kaggle/models/dataset_update_settings_request.py +35 -27
  10. kaggle/models/kaggle_models_extended.py +169 -172
  11. kaggle/models/kernel_push_request.py +66 -49
  12. kaggle/models/model_instance_new_version_request.py +10 -18
  13. kaggle/models/model_instance_update_request.py +103 -34
  14. kaggle/models/model_new_instance_request.py +138 -41
  15. kaggle/models/model_new_request.py +35 -27
  16. kaggle/models/model_update_request.py +32 -25
  17. kaggle/models/start_blob_upload_request.py +192 -195
  18. kaggle/models/start_blob_upload_response.py +98 -98
  19. kaggle/models/upload_file.py +114 -120
  20. kaggle/test/test_authenticate.py +23 -23
  21. {kaggle-1.7.4.5.dist-info → kaggle-1.8.2.dist-info}/METADATA +12 -15
  22. kaggle-1.8.2.dist-info/RECORD +148 -0
  23. kagglesdk/__init__.py +5 -1
  24. kagglesdk/benchmarks/services/__init__.py +0 -0
  25. kagglesdk/benchmarks/services/benchmarks_api_service.py +19 -0
  26. kagglesdk/benchmarks/types/__init__.py +0 -0
  27. kagglesdk/benchmarks/types/benchmark_types.py +307 -0
  28. kagglesdk/benchmarks/types/benchmarks_api_service.py +243 -0
  29. kagglesdk/blobs/services/blob_api_service.py +1 -1
  30. kagglesdk/blobs/types/blob_api_service.py +2 -2
  31. kagglesdk/common/services/__init__.py +0 -0
  32. kagglesdk/common/services/operations_service.py +46 -0
  33. kagglesdk/common/types/file_download.py +1 -1
  34. kagglesdk/common/types/http_redirect.py +1 -1
  35. kagglesdk/common/types/operations.py +194 -0
  36. kagglesdk/common/types/operations_service.py +48 -0
  37. kagglesdk/community/__init__.py +0 -0
  38. kagglesdk/community/types/__init__.py +0 -0
  39. kagglesdk/community/types/content_enums.py +44 -0
  40. kagglesdk/community/types/organization.py +410 -0
  41. kagglesdk/competitions/services/competition_api_service.py +49 -12
  42. kagglesdk/competitions/types/competition.py +14 -0
  43. kagglesdk/competitions/types/competition_api_service.py +1639 -1275
  44. kagglesdk/competitions/types/search_competitions.py +28 -0
  45. kagglesdk/datasets/databundles/__init__.py +0 -0
  46. kagglesdk/datasets/databundles/types/__init__.py +0 -0
  47. kagglesdk/datasets/databundles/types/databundle_api_types.py +540 -0
  48. kagglesdk/datasets/services/dataset_api_service.py +39 -14
  49. kagglesdk/datasets/types/dataset_api_service.py +554 -300
  50. kagglesdk/datasets/types/dataset_enums.py +21 -0
  51. kagglesdk/datasets/types/dataset_service.py +145 -0
  52. kagglesdk/datasets/types/dataset_types.py +74 -74
  53. kagglesdk/datasets/types/search_datasets.py +6 -0
  54. kagglesdk/discussions/__init__.py +0 -0
  55. kagglesdk/discussions/types/__init__.py +0 -0
  56. kagglesdk/discussions/types/search_discussions.py +43 -0
  57. kagglesdk/discussions/types/writeup_enums.py +11 -0
  58. kagglesdk/education/services/education_api_service.py +1 -1
  59. kagglesdk/education/types/education_api_service.py +1 -1
  60. kagglesdk/kaggle_client.py +46 -23
  61. kagglesdk/kaggle_creds.py +148 -0
  62. kagglesdk/kaggle_env.py +89 -25
  63. kagglesdk/kaggle_http_client.py +224 -306
  64. kagglesdk/kaggle_oauth.py +200 -0
  65. kagglesdk/kaggle_object.py +286 -293
  66. kagglesdk/kernels/services/kernels_api_service.py +46 -9
  67. kagglesdk/kernels/types/kernels_api_service.py +635 -159
  68. kagglesdk/kernels/types/kernels_enums.py +6 -0
  69. kagglesdk/kernels/types/search_kernels.py +6 -0
  70. kagglesdk/licenses/__init__.py +0 -0
  71. kagglesdk/licenses/types/__init__.py +0 -0
  72. kagglesdk/licenses/types/licenses_types.py +182 -0
  73. kagglesdk/models/services/model_api_service.py +41 -17
  74. kagglesdk/models/types/model_api_service.py +987 -637
  75. kagglesdk/models/types/model_enums.py +8 -0
  76. kagglesdk/models/types/model_service.py +71 -71
  77. kagglesdk/models/types/model_types.py +1057 -5
  78. kagglesdk/models/types/search_models.py +8 -0
  79. kagglesdk/search/__init__.py +0 -0
  80. kagglesdk/search/services/__init__.py +0 -0
  81. kagglesdk/search/services/search_api_service.py +19 -0
  82. kagglesdk/search/types/__init__.py +0 -0
  83. kagglesdk/search/types/search_api_service.py +2435 -0
  84. kagglesdk/search/types/search_content_shared.py +50 -0
  85. kagglesdk/search/types/search_enums.py +45 -0
  86. kagglesdk/search/types/search_service.py +303 -0
  87. kagglesdk/security/services/iam_service.py +31 -0
  88. kagglesdk/security/services/oauth_service.py +27 -1
  89. kagglesdk/security/types/authentication.py +63 -63
  90. kagglesdk/security/types/iam_service.py +496 -0
  91. kagglesdk/security/types/oauth_service.py +797 -10
  92. kagglesdk/security/types/roles.py +8 -0
  93. kagglesdk/security/types/security_types.py +159 -0
  94. kagglesdk/test/__init__.py +0 -0
  95. kagglesdk/test/test_client.py +20 -22
  96. kagglesdk/users/services/account_service.py +13 -1
  97. kagglesdk/users/services/group_api_service.py +31 -0
  98. kagglesdk/users/types/account_service.py +169 -28
  99. kagglesdk/users/types/group_api_service.py +315 -0
  100. kagglesdk/users/types/group_types.py +165 -0
  101. kagglesdk/users/types/groups_enum.py +8 -0
  102. kagglesdk/users/types/progression_service.py +9 -0
  103. kagglesdk/users/types/search_users.py +23 -0
  104. kagglesdk/users/types/user_avatar.py +226 -0
  105. kaggle/configuration.py +0 -206
  106. kaggle-1.7.4.5.dist-info/RECORD +0 -98
  107. {kaggle-1.7.4.5.dist-info → kaggle-1.8.2.dist-info}/WHEEL +0 -0
  108. {kaggle-1.7.4.5.dist-info → kaggle-1.8.2.dist-info}/entry_points.txt +0 -0
  109. {kaggle-1.7.4.5.dist-info → kaggle-1.8.2.dist-info}/licenses/LICENSE.txt +0 -0
  110. {kaggle/test → kagglesdk/benchmarks}/__init__.py +0 -0
@@ -21,6 +21,7 @@ class DatasetFileTypeGroup(enum.Enum):
21
21
  DATASET_FILE_TYPE_GROUP_SQLITE = 2
22
22
  DATASET_FILE_TYPE_GROUP_JSON = 3
23
23
  DATASET_FILE_TYPE_GROUP_BIG_QUERY = 4
24
+ DATASET_FILE_TYPE_GROUP_PARQUET = 5
24
25
 
25
26
  class DatasetLicenseGroup(enum.Enum):
26
27
  r"""
@@ -75,8 +76,28 @@ class DatasetSortBy(enum.Enum):
75
76
  """Old world"""
76
77
  DATASET_SORT_BY_LAST_VIEWED = 6
77
78
  DATASET_SORT_BY_USABILITY = 7
79
+ DATASET_SORT_BY_DOWNLOAD_COUNT = 8
80
+ DATASET_SORT_BY_NOTEBOOK_COUNT = 9
78
81
 
79
82
  class DatasetViewedGroup(enum.Enum):
80
83
  DATASET_VIEWED_GROUP_UNSPECIFIED = 0
81
84
  DATASET_VIEWED_GROUP_VIEWED = 1
82
85
 
86
+ class DatabundleVersionType(enum.Enum):
87
+ DATABUNDLE_VERSION_TYPE_UNSPECIFIED = 0
88
+ FILESET = 1
89
+ BIG_QUERY = 2
90
+ REMOTE_URL_FILE_SET = 3
91
+ REMOTE_GIT_REPOSITORY_FILE_SET = 4
92
+ KERNEL_OUTPUT_FILE_SET = 5
93
+ GCS_FILE_SET = 6
94
+ API_MODEL = 7
95
+ REMOTE_HUGGING_FACE_REPOSITORY_FILE_SET = 8
96
+
97
+ class DatasetFileType(enum.Enum):
98
+ DATASET_FILE_TYPE_UNSPECIFIED = 0
99
+ DATASET_FILE_TYPE_CSV = 1
100
+ DATASET_FILE_TYPE_JSON = 2
101
+ DATASET_FILE_TYPE_SQLITE = 3
102
+ DATASET_FILE_TYPE_OTHER = 4
103
+
@@ -0,0 +1,145 @@
1
+ from datetime import datetime
2
+ from kagglesdk.datasets.types.dataset_enums import DatabundleVersionStatus
3
+ from kagglesdk.kaggle_object import *
4
+ from typing import Optional
5
+
6
+ class DatabundleVersionCreationStatus(KaggleObject):
7
+ r"""
8
+ Attributes:
9
+ status (DatabundleVersionStatus)
10
+ creation_percent_complete (float)
11
+ creation_exception (str)
12
+ creation_last_update (datetime)
13
+ creation_step (str)
14
+ creation_start (datetime)
15
+ user_message (str)
16
+ version_number (int)
17
+ """
18
+
19
+ def __init__(self):
20
+ self._status = DatabundleVersionStatus.NOT_YET_PERSISTED
21
+ self._creation_percent_complete = 0.0
22
+ self._creation_exception = None
23
+ self._creation_last_update = None
24
+ self._creation_step = None
25
+ self._creation_start = None
26
+ self._user_message = None
27
+ self._version_number = None
28
+ self._freeze()
29
+
30
+ @property
31
+ def status(self) -> 'DatabundleVersionStatus':
32
+ return self._status
33
+
34
+ @status.setter
35
+ def status(self, status: 'DatabundleVersionStatus'):
36
+ if status is None:
37
+ del self.status
38
+ return
39
+ if not isinstance(status, DatabundleVersionStatus):
40
+ raise TypeError('status must be of type DatabundleVersionStatus')
41
+ self._status = status
42
+
43
+ @property
44
+ def creation_percent_complete(self) -> float:
45
+ return self._creation_percent_complete
46
+
47
+ @creation_percent_complete.setter
48
+ def creation_percent_complete(self, creation_percent_complete: float):
49
+ if creation_percent_complete is None:
50
+ del self.creation_percent_complete
51
+ return
52
+ if not isinstance(creation_percent_complete, float):
53
+ raise TypeError('creation_percent_complete must be of type float')
54
+ self._creation_percent_complete = creation_percent_complete
55
+
56
+ @property
57
+ def creation_exception(self) -> str:
58
+ return self._creation_exception or ""
59
+
60
+ @creation_exception.setter
61
+ def creation_exception(self, creation_exception: Optional[str]):
62
+ if creation_exception is None:
63
+ del self.creation_exception
64
+ return
65
+ if not isinstance(creation_exception, str):
66
+ raise TypeError('creation_exception must be of type str')
67
+ self._creation_exception = creation_exception
68
+
69
+ @property
70
+ def creation_last_update(self) -> datetime:
71
+ return self._creation_last_update
72
+
73
+ @creation_last_update.setter
74
+ def creation_last_update(self, creation_last_update: datetime):
75
+ if creation_last_update is None:
76
+ del self.creation_last_update
77
+ return
78
+ if not isinstance(creation_last_update, datetime):
79
+ raise TypeError('creation_last_update must be of type datetime')
80
+ self._creation_last_update = creation_last_update
81
+
82
+ @property
83
+ def creation_step(self) -> str:
84
+ return self._creation_step or ""
85
+
86
+ @creation_step.setter
87
+ def creation_step(self, creation_step: Optional[str]):
88
+ if creation_step is None:
89
+ del self.creation_step
90
+ return
91
+ if not isinstance(creation_step, str):
92
+ raise TypeError('creation_step must be of type str')
93
+ self._creation_step = creation_step
94
+
95
+ @property
96
+ def creation_start(self) -> datetime:
97
+ return self._creation_start
98
+
99
+ @creation_start.setter
100
+ def creation_start(self, creation_start: datetime):
101
+ if creation_start is None:
102
+ del self.creation_start
103
+ return
104
+ if not isinstance(creation_start, datetime):
105
+ raise TypeError('creation_start must be of type datetime')
106
+ self._creation_start = creation_start
107
+
108
+ @property
109
+ def user_message(self) -> str:
110
+ return self._user_message or ""
111
+
112
+ @user_message.setter
113
+ def user_message(self, user_message: Optional[str]):
114
+ if user_message is None:
115
+ del self.user_message
116
+ return
117
+ if not isinstance(user_message, str):
118
+ raise TypeError('user_message must be of type str')
119
+ self._user_message = user_message
120
+
121
+ @property
122
+ def version_number(self) -> int:
123
+ return self._version_number or 0
124
+
125
+ @version_number.setter
126
+ def version_number(self, version_number: Optional[int]):
127
+ if version_number is None:
128
+ del self.version_number
129
+ return
130
+ if not isinstance(version_number, int):
131
+ raise TypeError('version_number must be of type int')
132
+ self._version_number = version_number
133
+
134
+
135
+ DatabundleVersionCreationStatus._fields = [
136
+ FieldMetadata("status", "status", "_status", DatabundleVersionStatus, DatabundleVersionStatus.NOT_YET_PERSISTED, EnumSerializer()),
137
+ FieldMetadata("creationPercentComplete", "creation_percent_complete", "_creation_percent_complete", float, 0.0, PredefinedSerializer()),
138
+ FieldMetadata("creationException", "creation_exception", "_creation_exception", str, None, PredefinedSerializer(), optional=True),
139
+ FieldMetadata("creationLastUpdate", "creation_last_update", "_creation_last_update", datetime, None, DateTimeSerializer()),
140
+ FieldMetadata("creationStep", "creation_step", "_creation_step", str, None, PredefinedSerializer(), optional=True),
141
+ FieldMetadata("creationStart", "creation_start", "_creation_start", datetime, None, DateTimeSerializer()),
142
+ FieldMetadata("userMessage", "user_message", "_user_message", str, None, PredefinedSerializer(), optional=True),
143
+ FieldMetadata("versionNumber", "version_number", "_version_number", int, None, PredefinedSerializer(), optional=True),
144
+ ]
145
+
@@ -2,6 +2,62 @@ from kagglesdk.kaggle_object import *
2
2
  from kagglesdk.users.types.users_enums import CollaboratorType
3
3
  from typing import Optional, List
4
4
 
5
+ class DatasetCollaborator(KaggleObject):
6
+ r"""
7
+ Attributes:
8
+ username (str)
9
+ group_slug (str)
10
+ role (CollaboratorType)
11
+ """
12
+
13
+ def __init__(self):
14
+ self._username = None
15
+ self._group_slug = None
16
+ self._role = CollaboratorType.COLLABORATOR_TYPE_UNSPECIFIED
17
+ self._freeze()
18
+
19
+ @property
20
+ def username(self) -> str:
21
+ return self._username or ""
22
+
23
+ @username.setter
24
+ def username(self, username: str):
25
+ if username is None:
26
+ del self.username
27
+ return
28
+ if not isinstance(username, str):
29
+ raise TypeError('username must be of type str')
30
+ del self.group_slug
31
+ self._username = username
32
+
33
+ @property
34
+ def group_slug(self) -> str:
35
+ return self._group_slug or ""
36
+
37
+ @group_slug.setter
38
+ def group_slug(self, group_slug: str):
39
+ if group_slug is None:
40
+ del self.group_slug
41
+ return
42
+ if not isinstance(group_slug, str):
43
+ raise TypeError('group_slug must be of type str')
44
+ del self.username
45
+ self._group_slug = group_slug
46
+
47
+ @property
48
+ def role(self) -> 'CollaboratorType':
49
+ return self._role
50
+
51
+ @role.setter
52
+ def role(self, role: 'CollaboratorType'):
53
+ if role is None:
54
+ del self.role
55
+ return
56
+ if not isinstance(role, CollaboratorType):
57
+ raise TypeError('role must be of type CollaboratorType')
58
+ self._role = role
59
+
60
+
5
61
  class DatasetInfo(KaggleObject):
6
62
  r"""
7
63
  Attributes:
@@ -60,7 +116,7 @@ class DatasetInfo(KaggleObject):
60
116
  return self._dataset_slug or ""
61
117
 
62
118
  @dataset_slug.setter
63
- def dataset_slug(self, dataset_slug: str):
119
+ def dataset_slug(self, dataset_slug: Optional[str]):
64
120
  if dataset_slug is None:
65
121
  del self.dataset_slug
66
122
  return
@@ -73,7 +129,7 @@ class DatasetInfo(KaggleObject):
73
129
  return self._owner_user or ""
74
130
 
75
131
  @owner_user.setter
76
- def owner_user(self, owner_user: str):
132
+ def owner_user(self, owner_user: Optional[str]):
77
133
  if owner_user is None:
78
134
  del self.owner_user
79
135
  return
@@ -86,7 +142,7 @@ class DatasetInfo(KaggleObject):
86
142
  return self._usability_rating or 0.0
87
143
 
88
144
  @usability_rating.setter
89
- def usability_rating(self, usability_rating: float):
145
+ def usability_rating(self, usability_rating: Optional[float]):
90
146
  if usability_rating is None:
91
147
  del self.usability_rating
92
148
  return
@@ -142,7 +198,7 @@ class DatasetInfo(KaggleObject):
142
198
  return self._title or ""
143
199
 
144
200
  @title.setter
145
- def title(self, title: str):
201
+ def title(self, title: Optional[str]):
146
202
  if title is None:
147
203
  del self.title
148
204
  return
@@ -155,7 +211,7 @@ class DatasetInfo(KaggleObject):
155
211
  return self._subtitle or ""
156
212
 
157
213
  @subtitle.setter
158
- def subtitle(self, subtitle: str):
214
+ def subtitle(self, subtitle: Optional[str]):
159
215
  if subtitle is None:
160
216
  del self.subtitle
161
217
  return
@@ -168,7 +224,7 @@ class DatasetInfo(KaggleObject):
168
224
  return self._description or ""
169
225
 
170
226
  @description.setter
171
- def description(self, description: str):
227
+ def description(self, description: Optional[str]):
172
228
  if description is None:
173
229
  del self.description
174
230
  return
@@ -279,7 +335,7 @@ class DatasetSettings(KaggleObject):
279
335
  return self._title or ""
280
336
 
281
337
  @title.setter
282
- def title(self, title: str):
338
+ def title(self, title: Optional[str]):
283
339
  if title is None:
284
340
  del self.title
285
341
  return
@@ -292,7 +348,7 @@ class DatasetSettings(KaggleObject):
292
348
  return self._subtitle or ""
293
349
 
294
350
  @subtitle.setter
295
- def subtitle(self, subtitle: str):
351
+ def subtitle(self, subtitle: Optional[str]):
296
352
  if subtitle is None:
297
353
  del self.subtitle
298
354
  return
@@ -305,7 +361,7 @@ class DatasetSettings(KaggleObject):
305
361
  return self._description or ""
306
362
 
307
363
  @description.setter
308
- def description(self, description: str):
364
+ def description(self, description: Optional[str]):
309
365
  if description is None:
310
366
  del self.description
311
367
  return
@@ -421,7 +477,7 @@ class DatasetSettingsFile(KaggleObject):
421
477
  return self._description or ""
422
478
 
423
479
  @description.setter
424
- def description(self, description: str):
480
+ def description(self, description: Optional[str]):
425
481
  if description is None:
426
482
  del self.description
427
483
  return
@@ -490,7 +546,7 @@ class DatasetSettingsFileColumn(KaggleObject):
490
546
  return self._description or ""
491
547
 
492
548
  @description.setter
493
- def description(self, description: str):
549
+ def description(self, description: Optional[str]):
494
550
  if description is None:
495
551
  del self.description
496
552
  return
@@ -503,7 +559,7 @@ class DatasetSettingsFileColumn(KaggleObject):
503
559
  return self._type or ""
504
560
 
505
561
  @type.setter
506
- def type(self, type: str):
562
+ def type(self, type: Optional[str]):
507
563
  if type is None:
508
564
  del self.type
509
565
  return
@@ -527,7 +583,7 @@ class SettingsLicense(KaggleObject):
527
583
  return self._name or ""
528
584
 
529
585
  @name.setter
530
- def name(self, name: str):
586
+ def name(self, name: Optional[str]):
531
587
  if name is None:
532
588
  del self.name
533
589
  return
@@ -536,61 +592,11 @@ class SettingsLicense(KaggleObject):
536
592
  self._name = name
537
593
 
538
594
 
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
-
595
+ DatasetCollaborator._fields = [
596
+ FieldMetadata("username", "username", "_username", str, None, PredefinedSerializer(), optional=True),
597
+ FieldMetadata("groupSlug", "group_slug", "_group_slug", str, None, PredefinedSerializer(), optional=True),
598
+ FieldMetadata("role", "role", "_role", CollaboratorType, CollaboratorType.COLLABORATOR_TYPE_UNSPECIFIED, EnumSerializer()),
599
+ ]
594
600
 
595
601
  DatasetInfo._fields = [
596
602
  FieldMetadata("datasetId", "dataset_id", "_dataset_id", int, 0, PredefinedSerializer()),
@@ -638,9 +644,3 @@ SettingsLicense._fields = [
638
644
  FieldMetadata("name", "name", "_name", str, None, PredefinedSerializer(), optional=True),
639
645
  ]
640
646
 
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
-
@@ -0,0 +1,6 @@
1
+ import enum
2
+
3
+ class SearchDatasetsOrderBy(enum.Enum):
4
+ SEARCH_DATASETS_ORDER_BY_UNSPECIFIED = 0
5
+ SEARCH_DATASETS_ORDER_BY_USABILITY_RATING = 1
6
+
File without changes
File without changes
@@ -0,0 +1,43 @@
1
+ import enum
2
+
3
+ class SearchDiscussionsOrderBy(enum.Enum):
4
+ SEARCH_DISCUSSIONS_ORDER_BY_UNSPECIFIED = 0
5
+ SEARCH_DISCUSSIONS_ORDER_BY_LAST_TOPIC_COMMENT_DATE = 1
6
+
7
+ class SearchDiscussionsDocumentType(enum.Enum):
8
+ SEARCH_DISCUSSIONS_DOCUMENT_TYPE_UNSPECIFIED = 0
9
+ SEARCH_DISCUSSIONS_DOCUMENT_TYPE_COMMENT = 1
10
+ SEARCH_DISCUSSIONS_DOCUMENT_TYPE_TOPIC = 2
11
+ SEARCH_DISCUSSIONS_DOCUMENT_TYPE_WRITE_UP = 3
12
+
13
+ class SearchDiscussionsSourceType(enum.Enum):
14
+ SEARCH_DISCUSSIONS_SOURCE_TYPE_UNSPECIFIED = 0
15
+ SEARCH_DISCUSSIONS_SOURCE_TYPE_COMPETITION = 1
16
+ SEARCH_DISCUSSIONS_SOURCE_TYPE_DATASET = 2
17
+ SEARCH_DISCUSSIONS_SOURCE_TYPE_KERNEL = 4
18
+ SEARCH_DISCUSSIONS_SOURCE_TYPE_SITE_FORUM = 5
19
+ SEARCH_DISCUSSIONS_SOURCE_TYPE_COMPETITION_SOLUTION = 6
20
+ SEARCH_DISCUSSIONS_SOURCE_TYPE_MODEL = 7
21
+ SEARCH_DISCUSSIONS_SOURCE_TYPE_WRITE_UP = 8
22
+ SEARCH_DISCUSSIONS_SOURCE_TYPE_LEARN_TRACK = 9
23
+
24
+ class SearchDiscussionsTopicType(enum.Enum):
25
+ SEARCH_DISCUSSIONS_TOPIC_TYPE_UNSPECIFIED = 0
26
+ SEARCH_DISCUSSIONS_TOPIC_TYPE_TOPICS = 1
27
+ SEARCH_DISCUSSIONS_TOPIC_TYPE_WRITE_UPS = 2
28
+
29
+ class WriteUpInclusionType(enum.Enum):
30
+ WRITE_UP_INCLUSION_TYPE_UNSPECIFIED = 0
31
+ WRITE_UP_INCLUSION_TYPE_EXCLUDE = 1
32
+ r"""
33
+ Only ForumTopics will be included, while
34
+ WriteUps will be excluded
35
+ """
36
+ WRITE_UP_INCLUSION_TYPE_INCLUDE = 2
37
+ """WriteUps and ForumTopics will be included"""
38
+ WRITE_UP_INCLUSION_TYPE_ONLY = 3
39
+ r"""
40
+ Only WriteUps will be included, while
41
+ ForumTopics will be excluded
42
+ """
43
+
@@ -0,0 +1,11 @@
1
+ import enum
2
+
3
+ class WriteUpType(enum.Enum):
4
+ WRITE_UP_TYPE_UNSPECIFIED = 0
5
+ HACKATHON_PROJECT = 1
6
+ COMPETITION_SOLUTION = 2
7
+ PERSONAL_PROJECT = 3
8
+ KNOWLEDGE = 4
9
+ FORUM_TOPIC = 5
10
+ BLOG = 6
11
+
@@ -16,4 +16,4 @@ class EducationApiClient(object):
16
16
  if request is None:
17
17
  request = ApiTrackExerciseInteractionRequest()
18
18
 
19
- return self._client.call("education.EducationApiService", "ApiTrackExerciseInteraction", request, ApiTrackExerciseInteractionResponse)
19
+ return self._client.call("education.EducationApiService", "TrackExerciseInteraction", request, ApiTrackExerciseInteractionResponse)
@@ -159,7 +159,7 @@ class ApiTrackExerciseInteractionRequest(KaggleObject):
159
159
  return self._value_towards_completion or 0.0
160
160
 
161
161
  @value_towards_completion.setter
162
- def value_towards_completion(self, value_towards_completion: float):
162
+ def value_towards_completion(self, value_towards_completion: Optional[float]):
163
163
  if value_towards_completion is None:
164
164
  del self.value_towards_completion
165
165
  return
@@ -1,34 +1,38 @@
1
- from kagglesdk.kernels.services.kernels_api_service import KernelsApiClient
1
+ from kagglesdk.admin.services.inbox_file_service import InboxFileClient
2
+ from kagglesdk.benchmarks.services.benchmarks_api_service import BenchmarksApiClient
2
3
  from kagglesdk.blobs.services.blob_api_service import BlobApiClient
4
+ from kagglesdk.common.services.operations_service import OperationsClient
5
+ from kagglesdk.competitions.services.competition_api_service import CompetitionApiClient
6
+ from kagglesdk.datasets.services.dataset_api_service import DatasetApiClient
3
7
  from kagglesdk.education.services.education_api_service import EducationApiClient
8
+ from kagglesdk.kernels.services.kernels_api_service import KernelsApiClient
4
9
  from kagglesdk.models.services.model_api_service import ModelApiClient
5
10
  from kagglesdk.models.services.model_service import ModelClient
6
- from kagglesdk.competitions.services.competition_api_service import CompetitionApiClient
7
- from kagglesdk.datasets.services.dataset_api_service import DatasetApiClient
8
- from kagglesdk.admin.services.inbox_file_service import InboxFileClient
11
+ from kagglesdk.search.services.search_api_service import SearchApiClient
12
+ from kagglesdk.security.services.iam_service import IamClient
9
13
  from kagglesdk.security.services.oauth_service import OAuthClient
10
14
  from kagglesdk.users.services.account_service import AccountClient
15
+ from kagglesdk.users.services.group_api_service import GroupApiClient
11
16
  from kagglesdk.kaggle_env import KaggleEnv
12
17
  from kagglesdk.kaggle_http_client import KaggleHttpClient
13
18
 
14
19
 
15
20
  class KaggleClient(object):
16
- class Kernels(object):
21
+ class Admin(object):
17
22
  def __init__(self, http_client: KaggleHttpClient):
18
- self.kernels_api_client = KernelsApiClient(http_client)
23
+ self.inbox_file_client = InboxFileClient(http_client)
19
24
 
20
- class Blobs(object):
25
+ class Benchmarks(object):
21
26
  def __init__(self, http_client: KaggleHttpClient):
22
- self.blob_api_client = BlobApiClient(http_client)
27
+ self.benchmarks_api_client = BenchmarksApiClient(http_client)
23
28
 
24
- class Education(object):
29
+ class Blobs(object):
25
30
  def __init__(self, http_client: KaggleHttpClient):
26
- self.education_api_client = EducationApiClient(http_client)
31
+ self.blob_api_client = BlobApiClient(http_client)
27
32
 
28
- class Models(object):
33
+ class Common(object):
29
34
  def __init__(self, http_client: KaggleHttpClient):
30
- self.model_api_client = ModelApiClient(http_client)
31
- self.model_client = ModelClient(http_client)
35
+ self.operations_client = OperationsClient(http_client)
32
36
 
33
37
  class Competitions(object):
34
38
  def __init__(self, http_client: KaggleHttpClient):
@@ -38,36 +42,55 @@ class KaggleClient(object):
38
42
  def __init__(self, http_client: KaggleHttpClient):
39
43
  self.dataset_api_client = DatasetApiClient(http_client)
40
44
 
41
- class Admin(object):
45
+ class Education(object):
42
46
  def __init__(self, http_client: KaggleHttpClient):
43
- self.inbox_file_client = InboxFileClient(http_client)
47
+ self.education_api_client = EducationApiClient(http_client)
48
+
49
+ class Kernels(object):
50
+ def __init__(self, http_client: KaggleHttpClient):
51
+ self.kernels_api_client = KernelsApiClient(http_client)
52
+
53
+ class Models(object):
54
+ def __init__(self, http_client: KaggleHttpClient):
55
+ self.model_api_client = ModelApiClient(http_client)
56
+ self.model_client = ModelClient(http_client)
57
+
58
+ class Search(object):
59
+ def __init__(self, http_client: KaggleHttpClient):
60
+ self.search_api_client = SearchApiClient(http_client)
44
61
 
45
62
  class Security(object):
46
63
  def __init__(self, http_client: KaggleHttpClient):
64
+ self.iam_client = IamClient(http_client)
47
65
  self.oauth_client = OAuthClient(http_client)
48
66
 
49
67
  class Users(object):
50
68
  def __init__(self, http_client: KaggleHttpClient):
51
69
  self.account_client = AccountClient(http_client)
70
+ self.group_api_client = GroupApiClient(http_client)
52
71
 
53
- def __init__(self, env: KaggleEnv = None, verbose: bool = False, username: str = None, password: str = None):
54
- self._http_client = http_client = KaggleHttpClient(env, verbose, self._renew_iap_token, username=username, password=password)
55
- self.kernels = KaggleClient.Kernels(http_client)
72
+ def __init__(self, env: KaggleEnv = None, verbose: bool = False, username: str = None, password: str = None, api_token: str = None):
73
+ self._http_client = http_client = KaggleHttpClient(env, verbose, username=username, password=password, api_token=api_token)
74
+ self.admin = KaggleClient.Admin(http_client)
75
+ self.benchmarks = KaggleClient.Benchmarks(http_client)
56
76
  self.blobs = KaggleClient.Blobs(http_client)
57
- self.education = KaggleClient.Education(http_client)
58
- self.models = KaggleClient.Models(http_client)
77
+ self.common = KaggleClient.Common(http_client)
59
78
  self.competitions = KaggleClient.Competitions(http_client)
60
79
  self.datasets = KaggleClient.Datasets(http_client)
61
- self.admin = KaggleClient.Admin(http_client)
80
+ self.education = KaggleClient.Education(http_client)
81
+ self.kernels = KaggleClient.Kernels(http_client)
82
+ self.models = KaggleClient.Models(http_client)
83
+ self.search = KaggleClient.Search(http_client)
62
84
  self.security = KaggleClient.Security(http_client)
63
85
  self.users = KaggleClient.Users(http_client)
64
86
  self.username = username
65
87
  self.password = password
88
+ self.api_token = api_token
66
89
 
67
- def http_client(self):
90
+ def http_client(self) -> str:
68
91
  return self._http_client
69
92
 
70
- def _renew_iap_token(self):
93
+ def _renew_iap_token(self) -> str:
71
94
  return self.admin.admin_client.renew_iap_token()
72
95
 
73
96
  def __enter__(self):