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.
- kaggle/__init__.py +10 -6
- kaggle/api/kaggle_api.py +574 -598
- kaggle/api/kaggle_api_extended.py +5251 -4769
- kaggle/cli.py +1335 -1585
- kaggle/models/api_blob_type.py +3 -3
- kaggle/models/dataset_column.py +165 -174
- kaggle/models/dataset_new_request.py +83 -41
- kaggle/models/dataset_new_version_request.py +32 -25
- kaggle/models/dataset_update_settings_request.py +35 -27
- kaggle/models/kaggle_models_extended.py +169 -172
- kaggle/models/kernel_push_request.py +66 -49
- kaggle/models/model_instance_new_version_request.py +10 -18
- kaggle/models/model_instance_update_request.py +103 -34
- kaggle/models/model_new_instance_request.py +138 -41
- kaggle/models/model_new_request.py +35 -27
- kaggle/models/model_update_request.py +32 -25
- kaggle/models/start_blob_upload_request.py +192 -195
- kaggle/models/start_blob_upload_response.py +98 -98
- kaggle/models/upload_file.py +114 -120
- kaggle/test/test_authenticate.py +23 -23
- {kaggle-1.7.4.5.dist-info → kaggle-1.8.2.dist-info}/METADATA +12 -15
- kaggle-1.8.2.dist-info/RECORD +148 -0
- kagglesdk/__init__.py +5 -1
- kagglesdk/benchmarks/services/__init__.py +0 -0
- kagglesdk/benchmarks/services/benchmarks_api_service.py +19 -0
- kagglesdk/benchmarks/types/__init__.py +0 -0
- kagglesdk/benchmarks/types/benchmark_types.py +307 -0
- kagglesdk/benchmarks/types/benchmarks_api_service.py +243 -0
- kagglesdk/blobs/services/blob_api_service.py +1 -1
- kagglesdk/blobs/types/blob_api_service.py +2 -2
- kagglesdk/common/services/__init__.py +0 -0
- kagglesdk/common/services/operations_service.py +46 -0
- kagglesdk/common/types/file_download.py +1 -1
- kagglesdk/common/types/http_redirect.py +1 -1
- kagglesdk/common/types/operations.py +194 -0
- kagglesdk/common/types/operations_service.py +48 -0
- kagglesdk/community/__init__.py +0 -0
- kagglesdk/community/types/__init__.py +0 -0
- kagglesdk/community/types/content_enums.py +44 -0
- kagglesdk/community/types/organization.py +410 -0
- kagglesdk/competitions/services/competition_api_service.py +49 -12
- kagglesdk/competitions/types/competition.py +14 -0
- kagglesdk/competitions/types/competition_api_service.py +1639 -1275
- kagglesdk/competitions/types/search_competitions.py +28 -0
- kagglesdk/datasets/databundles/__init__.py +0 -0
- kagglesdk/datasets/databundles/types/__init__.py +0 -0
- kagglesdk/datasets/databundles/types/databundle_api_types.py +540 -0
- kagglesdk/datasets/services/dataset_api_service.py +39 -14
- kagglesdk/datasets/types/dataset_api_service.py +554 -300
- kagglesdk/datasets/types/dataset_enums.py +21 -0
- kagglesdk/datasets/types/dataset_service.py +145 -0
- kagglesdk/datasets/types/dataset_types.py +74 -74
- kagglesdk/datasets/types/search_datasets.py +6 -0
- kagglesdk/discussions/__init__.py +0 -0
- kagglesdk/discussions/types/__init__.py +0 -0
- kagglesdk/discussions/types/search_discussions.py +43 -0
- kagglesdk/discussions/types/writeup_enums.py +11 -0
- kagglesdk/education/services/education_api_service.py +1 -1
- kagglesdk/education/types/education_api_service.py +1 -1
- kagglesdk/kaggle_client.py +46 -23
- kagglesdk/kaggle_creds.py +148 -0
- kagglesdk/kaggle_env.py +89 -25
- kagglesdk/kaggle_http_client.py +224 -306
- kagglesdk/kaggle_oauth.py +200 -0
- kagglesdk/kaggle_object.py +286 -293
- kagglesdk/kernels/services/kernels_api_service.py +46 -9
- kagglesdk/kernels/types/kernels_api_service.py +635 -159
- kagglesdk/kernels/types/kernels_enums.py +6 -0
- kagglesdk/kernels/types/search_kernels.py +6 -0
- kagglesdk/licenses/__init__.py +0 -0
- kagglesdk/licenses/types/__init__.py +0 -0
- kagglesdk/licenses/types/licenses_types.py +182 -0
- kagglesdk/models/services/model_api_service.py +41 -17
- kagglesdk/models/types/model_api_service.py +987 -637
- kagglesdk/models/types/model_enums.py +8 -0
- kagglesdk/models/types/model_service.py +71 -71
- kagglesdk/models/types/model_types.py +1057 -5
- kagglesdk/models/types/search_models.py +8 -0
- kagglesdk/search/__init__.py +0 -0
- kagglesdk/search/services/__init__.py +0 -0
- kagglesdk/search/services/search_api_service.py +19 -0
- kagglesdk/search/types/__init__.py +0 -0
- kagglesdk/search/types/search_api_service.py +2435 -0
- kagglesdk/search/types/search_content_shared.py +50 -0
- kagglesdk/search/types/search_enums.py +45 -0
- kagglesdk/search/types/search_service.py +303 -0
- kagglesdk/security/services/iam_service.py +31 -0
- kagglesdk/security/services/oauth_service.py +27 -1
- kagglesdk/security/types/authentication.py +63 -63
- kagglesdk/security/types/iam_service.py +496 -0
- kagglesdk/security/types/oauth_service.py +797 -10
- kagglesdk/security/types/roles.py +8 -0
- kagglesdk/security/types/security_types.py +159 -0
- kagglesdk/test/__init__.py +0 -0
- kagglesdk/test/test_client.py +20 -22
- kagglesdk/users/services/account_service.py +13 -1
- kagglesdk/users/services/group_api_service.py +31 -0
- kagglesdk/users/types/account_service.py +169 -28
- kagglesdk/users/types/group_api_service.py +315 -0
- kagglesdk/users/types/group_types.py +165 -0
- kagglesdk/users/types/groups_enum.py +8 -0
- kagglesdk/users/types/progression_service.py +9 -0
- kagglesdk/users/types/search_users.py +23 -0
- kagglesdk/users/types/user_avatar.py +226 -0
- kaggle/configuration.py +0 -206
- kaggle-1.7.4.5.dist-info/RECORD +0 -98
- {kaggle-1.7.4.5.dist-info → kaggle-1.8.2.dist-info}/WHEEL +0 -0
- {kaggle-1.7.4.5.dist-info → kaggle-1.8.2.dist-info}/entry_points.txt +0 -0
- {kaggle-1.7.4.5.dist-info → kaggle-1.8.2.dist-info}/licenses/LICENSE.txt +0 -0
- {kaggle/test → kagglesdk/benchmarks}/__init__.py +0 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import enum
|
|
2
|
+
from kagglesdk.kaggle_object import *
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
class KaggleResourceType(enum.Enum):
|
|
6
|
+
r"""
|
|
7
|
+
Types of Kaggle resources on which permissions can be defined. Each entry in
|
|
8
|
+
this proto must correspond to a permission block in the Permission enum in
|
|
9
|
+
'permissions.proto'. For example COMPETITIONS_GET permission
|
|
10
|
+
applies to resource of type COMPETITIONS and thus has value of 300 because
|
|
11
|
+
COMPETITIONS_X permissions block start at 3000. The formula
|
|
12
|
+
ValueOfFirstCanonicalPermission / 10. (COMPETITIONS_GET = 3001) / 10 =>
|
|
13
|
+
(COMPETITIONS = 300).
|
|
14
|
+
Please see the documentation of the Permission enum to understand permission
|
|
15
|
+
blocks better.
|
|
16
|
+
"""
|
|
17
|
+
KAGGLE_RESOURCE_TYPE_UNSPECIFIED = 0
|
|
18
|
+
KAGGLE_RESOURCE_TYPE_WILDCARD_ALL = -1
|
|
19
|
+
KAGGLE_RESOURCE_TYPE_USERS = 100
|
|
20
|
+
"""---------- Shared ----------"""
|
|
21
|
+
KAGGLE_RESOURCE_TYPE_USER_ATTRIBUTES = 102
|
|
22
|
+
KAGGLE_RESOURCE_TYPE_ATTRIBUTES = 104
|
|
23
|
+
KAGGLE_RESOURCE_TYPE_ACCESS_TOKENS = 106
|
|
24
|
+
KAGGLE_RESOURCE_TYPE_API_TOKENS = 108
|
|
25
|
+
KAGGLE_RESOURCE_TYPE_SYNCHRONIZED_GROUPS = 110
|
|
26
|
+
KAGGLE_RESOURCE_TYPE_BLOBS = 112
|
|
27
|
+
KAGGLE_RESOURCE_TYPE_LICENSES = 114
|
|
28
|
+
KAGGLE_RESOURCE_TYPE_LICENSE_USER_AGREEMENTS = 116
|
|
29
|
+
KAGGLE_RESOURCE_TYPE_SEARCH_PROXY = 118
|
|
30
|
+
KAGGLE_RESOURCE_TYPE_SECRETS = 120
|
|
31
|
+
KAGGLE_RESOURCE_TYPE_SECRET_ATTACHMENTS = 122
|
|
32
|
+
KAGGLE_RESOURCE_TYPE_TAGS = 124
|
|
33
|
+
KAGGLE_RESOURCE_TYPE_RESOURCES = 130
|
|
34
|
+
KAGGLE_RESOURCE_TYPE_USER_MANAGED_GROUPS = 132
|
|
35
|
+
KAGGLE_RESOURCE_TYPE_USER_MANAGED_GROUP_INVITES = 134
|
|
36
|
+
KAGGLE_RESOURCE_TYPE_USER_MANAGED_GROUP_MEMBERSHIPS = 136
|
|
37
|
+
KAGGLE_RESOURCE_TYPE_OAUTH_CLIENTS = 138
|
|
38
|
+
KAGGLE_RESOURCE_TYPE_RESOURCE_ACCESS_GROUPS = 140
|
|
39
|
+
KAGGLE_RESOURCE_TYPE_OPERATIONS = 142
|
|
40
|
+
KAGGLE_RESOURCE_TYPE_FORUMS = 200
|
|
41
|
+
"""---------- Community ----------"""
|
|
42
|
+
KAGGLE_RESOURCE_TYPE_FORUM_TOPICS = 202
|
|
43
|
+
KAGGLE_RESOURCE_TYPE_FORUM_MESSAGES = 204
|
|
44
|
+
KAGGLE_RESOURCE_TYPE_FORUM_MESSAGE_ATTACHMENTS = 208
|
|
45
|
+
KAGGLE_RESOURCE_TYPE_BADGES = 210
|
|
46
|
+
KAGGLE_RESOURCE_TYPE_USER_BADGES = 212
|
|
47
|
+
KAGGLE_RESOURCE_TYPE_BOOKMARKS = 214
|
|
48
|
+
KAGGLE_RESOURCE_TYPE_COLLECTIONS = 216
|
|
49
|
+
KAGGLE_RESOURCE_TYPE_NUDGES = 218
|
|
50
|
+
KAGGLE_RESOURCE_TYPE_ORGANIZATIONS = 220
|
|
51
|
+
KAGGLE_RESOURCE_TYPE_ORGANIZATION_MEMBERS = 224
|
|
52
|
+
KAGGLE_RESOURCE_TYPE_SUGGESTED_ITEMS = 226
|
|
53
|
+
KAGGLE_RESOURCE_TYPE_WRITE_UPS = 228
|
|
54
|
+
KAGGLE_RESOURCE_TYPE_VOTES = 230
|
|
55
|
+
KAGGLE_RESOURCE_TYPE_OPEN_GRAPH_IMAGE_METADATUM = 232
|
|
56
|
+
KAGGLE_RESOURCE_TYPE_COMPETITIONS = 300
|
|
57
|
+
"""---------- Competitions ----------"""
|
|
58
|
+
KAGGLE_RESOURCE_TYPE_COMPETITION_LEADERBOARDS = 304
|
|
59
|
+
KAGGLE_RESOURCE_TYPE_EPISODES = 306
|
|
60
|
+
KAGGLE_RESOURCE_TYPE_EPISODE_AGENTS = 308
|
|
61
|
+
KAGGLE_RESOURCE_TYPE_EVALUATION_ALGORITHMS = 310
|
|
62
|
+
KAGGLE_RESOURCE_TYPE_HOST_SEGMENTS = 312
|
|
63
|
+
KAGGLE_RESOURCE_TYPE_PAGES = 314
|
|
64
|
+
KAGGLE_RESOURCE_TYPE_SUBMISSIONS = 316
|
|
65
|
+
KAGGLE_RESOURCE_TYPE_SUBMISSION_RESCORES = 318
|
|
66
|
+
KAGGLE_RESOURCE_TYPE_TEAMS = 320
|
|
67
|
+
KAGGLE_RESOURCE_TYPE_TEAM_MERGE_REQUESTS = 322
|
|
68
|
+
KAGGLE_RESOURCE_TYPE_HACKATHON_WRITE_UPS = 324
|
|
69
|
+
KAGGLE_RESOURCE_TYPE_COMPETITION_METRIC_VERSIONS = 326
|
|
70
|
+
KAGGLE_RESOURCE_TYPE_DATASETS = 400
|
|
71
|
+
"""---------- Datasets ----------"""
|
|
72
|
+
KAGGLE_RESOURCE_TYPE_DATASET_VERSIONS = 404
|
|
73
|
+
KAGGLE_RESOURCE_TYPE_DATASET_SUGGESTION_BUNDLES = 406
|
|
74
|
+
KAGGLE_RESOURCE_TYPE_DATABUNDLES = 408
|
|
75
|
+
KAGGLE_RESOURCE_TYPE_DATABUNDLE_VERSIONS = 410
|
|
76
|
+
KAGGLE_RESOURCE_TYPE_DATA_VIEWS = 412
|
|
77
|
+
KAGGLE_RESOURCE_TYPE_KERNELS = 500
|
|
78
|
+
"""---------- Kernels ----------"""
|
|
79
|
+
KAGGLE_RESOURCE_TYPE_KERNEL_SESSIONS = 504
|
|
80
|
+
KAGGLE_RESOURCE_TYPE_KERNEL_SNIPPETS = 508
|
|
81
|
+
KAGGLE_RESOURCE_TYPE_KERNEL_SOURCE_REFERENCES = 510
|
|
82
|
+
KAGGLE_RESOURCE_TYPE_KERNEL_VERSIONS = 512
|
|
83
|
+
KAGGLE_RESOURCE_TYPE_RESOURCE_REFERENCES = 520
|
|
84
|
+
KAGGLE_RESOURCE_TYPE_MODELS = 600
|
|
85
|
+
"""---------- Models ----------"""
|
|
86
|
+
KAGGLE_RESOURCE_TYPE_MODEL_INSTANCES = 608
|
|
87
|
+
KAGGLE_RESOURCE_TYPE_MODEL_INSTANCE_VERSIONS = 610
|
|
88
|
+
KAGGLE_RESOURCE_TYPE_MODEL_VERSIONS = 612
|
|
89
|
+
KAGGLE_RESOURCE_TYPE_GATING_AGREEMENTS = 614
|
|
90
|
+
KAGGLE_RESOURCE_TYPE_GATING_AGREEMENTS_USER_CONSENTS = 616
|
|
91
|
+
KAGGLE_RESOURCE_TYPE_BENCHMARKS = 700
|
|
92
|
+
"""---------- Benchmarks ----------"""
|
|
93
|
+
KAGGLE_RESOURCE_TYPE_BENCHMARK_VERSIONS = 704
|
|
94
|
+
KAGGLE_RESOURCE_TYPE_BENCHMARK_MODELS = 706
|
|
95
|
+
KAGGLE_RESOURCE_TYPE_BENCHMARK_MODEL_VERSIONS = 708
|
|
96
|
+
KAGGLE_RESOURCE_TYPE_BENCHMARK_TASKS = 710
|
|
97
|
+
KAGGLE_RESOURCE_TYPE_BENCHMARK_TASK_VERSIONS = 712
|
|
98
|
+
KAGGLE_RESOURCE_TYPE_BENCHMARK_TASK_RUNS = 714
|
|
99
|
+
|
|
100
|
+
class KaggleResourceId(KaggleObject):
|
|
101
|
+
r"""
|
|
102
|
+
Attributes:
|
|
103
|
+
type (KaggleResourceType)
|
|
104
|
+
id (int)
|
|
105
|
+
hash_link (str)
|
|
106
|
+
"""
|
|
107
|
+
|
|
108
|
+
def __init__(self):
|
|
109
|
+
self._type = KaggleResourceType.KAGGLE_RESOURCE_TYPE_UNSPECIFIED
|
|
110
|
+
self._id = 0
|
|
111
|
+
self._hash_link = None
|
|
112
|
+
self._freeze()
|
|
113
|
+
|
|
114
|
+
@property
|
|
115
|
+
def type(self) -> 'KaggleResourceType':
|
|
116
|
+
return self._type
|
|
117
|
+
|
|
118
|
+
@type.setter
|
|
119
|
+
def type(self, type: 'KaggleResourceType'):
|
|
120
|
+
if type is None:
|
|
121
|
+
del self.type
|
|
122
|
+
return
|
|
123
|
+
if not isinstance(type, KaggleResourceType):
|
|
124
|
+
raise TypeError('type must be of type KaggleResourceType')
|
|
125
|
+
self._type = type
|
|
126
|
+
|
|
127
|
+
@property
|
|
128
|
+
def id(self) -> int:
|
|
129
|
+
return self._id
|
|
130
|
+
|
|
131
|
+
@id.setter
|
|
132
|
+
def id(self, id: int):
|
|
133
|
+
if id is None:
|
|
134
|
+
del self.id
|
|
135
|
+
return
|
|
136
|
+
if not isinstance(id, int):
|
|
137
|
+
raise TypeError('id must be of type int')
|
|
138
|
+
self._id = id
|
|
139
|
+
|
|
140
|
+
@property
|
|
141
|
+
def hash_link(self) -> str:
|
|
142
|
+
return self._hash_link or ""
|
|
143
|
+
|
|
144
|
+
@hash_link.setter
|
|
145
|
+
def hash_link(self, hash_link: Optional[str]):
|
|
146
|
+
if hash_link is None:
|
|
147
|
+
del self.hash_link
|
|
148
|
+
return
|
|
149
|
+
if not isinstance(hash_link, str):
|
|
150
|
+
raise TypeError('hash_link must be of type str')
|
|
151
|
+
self._hash_link = hash_link
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
KaggleResourceId._fields = [
|
|
155
|
+
FieldMetadata("type", "type", "_type", KaggleResourceType, KaggleResourceType.KAGGLE_RESOURCE_TYPE_UNSPECIFIED, EnumSerializer()),
|
|
156
|
+
FieldMetadata("id", "id", "_id", int, 0, PredefinedSerializer()),
|
|
157
|
+
FieldMetadata("hashLink", "hash_link", "_hash_link", str, None, PredefinedSerializer(), optional=True),
|
|
158
|
+
]
|
|
159
|
+
|
|
File without changes
|
kagglesdk/test/test_client.py
CHANGED
|
@@ -9,35 +9,33 @@ import unittest
|
|
|
9
9
|
|
|
10
10
|
class TestClient(unittest.TestCase):
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
def setUp(self):
|
|
13
|
+
print("setup class:%s" % self)
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
def tearDown(self):
|
|
16
|
+
print("teardown class:TestStuff")
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
# Environment
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
def test_kaggle_environment(self):
|
|
21
|
+
os.environ["KAGGLE_API_ENVIRONMENT"] = "PROD"
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
env = kaggle_env.get_env()
|
|
24
|
+
self.assertEqual(env, KaggleEnv.PROD)
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
endpoint = kaggle_env.get_endpoint(env)
|
|
27
|
+
self.assertEqual(endpoint, "https://www.kaggle.com")
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
# Client
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
env=KaggleEnv.PROD, verbose=False, username='dinosaur', password='xxxxxxxxxxxx'
|
|
34
|
-
)
|
|
31
|
+
def test_kaggle_client(self):
|
|
32
|
+
client = KaggleClient(env=KaggleEnv.PROD, verbose=False, username="dinosaur", password="xxxxxxxxxxxx")
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
self.assertEqual(client.username, "dinosaur")
|
|
35
|
+
self.assertEqual(client.password, "xxxxxxxxxxxx")
|
|
36
|
+
self.assertEqual(client.http_client()._endpoint, "https://www.kaggle.com")
|
|
37
|
+
self.assertEqual(client.http_client()._verbose, False)
|
|
40
38
|
|
|
41
39
|
|
|
42
|
-
if __name__ ==
|
|
43
|
-
|
|
40
|
+
if __name__ == "__main__":
|
|
41
|
+
unittest.main()
|
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
from kagglesdk.kaggle_http_client import KaggleHttpClient
|
|
2
|
-
from kagglesdk.users.types.account_service import GenerateAccessTokenRequest, GenerateAccessTokenResponse
|
|
2
|
+
from kagglesdk.users.types.account_service import ExpireApiTokenRequest, GenerateAccessTokenRequest, GenerateAccessTokenResponse
|
|
3
3
|
|
|
4
4
|
class AccountClient(object):
|
|
5
5
|
|
|
6
6
|
def __init__(self, client: KaggleHttpClient):
|
|
7
7
|
self._client = client
|
|
8
8
|
|
|
9
|
+
def expire_api_token(self, request: ExpireApiTokenRequest = None):
|
|
10
|
+
r"""
|
|
11
|
+
Args:
|
|
12
|
+
request (ExpireApiTokenRequest):
|
|
13
|
+
The request object; initialized to empty instance if not specified.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
if request is None:
|
|
17
|
+
request = ExpireApiTokenRequest()
|
|
18
|
+
|
|
19
|
+
self._client.call("users.AccountService", "ExpireApiToken", request, None)
|
|
20
|
+
|
|
9
21
|
def generate_access_token(self, request: GenerateAccessTokenRequest = None) -> GenerateAccessTokenResponse:
|
|
10
22
|
r"""
|
|
11
23
|
Args:
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from kagglesdk.kaggle_http_client import KaggleHttpClient
|
|
2
|
+
from kagglesdk.users.types.group_api_service import ApiListSynchronizedGroupMembershipsRequest, ApiListSynchronizedGroupMembershipsResponse, ApiListUserManagedGroupMembershipsRequest, ApiListUserManagedGroupMembershipsResponse
|
|
3
|
+
|
|
4
|
+
class GroupApiClient(object):
|
|
5
|
+
|
|
6
|
+
def __init__(self, client: KaggleHttpClient):
|
|
7
|
+
self._client = client
|
|
8
|
+
|
|
9
|
+
def list_user_managed_group_memberships(self, request: ApiListUserManagedGroupMembershipsRequest = None) -> ApiListUserManagedGroupMembershipsResponse:
|
|
10
|
+
r"""
|
|
11
|
+
Args:
|
|
12
|
+
request (ApiListUserManagedGroupMembershipsRequest):
|
|
13
|
+
The request object; initialized to empty instance if not specified.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
if request is None:
|
|
17
|
+
request = ApiListUserManagedGroupMembershipsRequest()
|
|
18
|
+
|
|
19
|
+
return self._client.call("users.GroupApiService", "ListUserManagedGroupMemberships", request, ApiListUserManagedGroupMembershipsResponse)
|
|
20
|
+
|
|
21
|
+
def list_synchronized_group_memberships(self, request: ApiListSynchronizedGroupMembershipsRequest = None) -> ApiListSynchronizedGroupMembershipsResponse:
|
|
22
|
+
r"""
|
|
23
|
+
Args:
|
|
24
|
+
request (ApiListSynchronizedGroupMembershipsRequest):
|
|
25
|
+
The request object; initialized to empty instance if not specified.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
if request is None:
|
|
29
|
+
request = ApiListSynchronizedGroupMembershipsRequest()
|
|
30
|
+
|
|
31
|
+
return self._client.call("users.GroupApiService", "ListSynchronizedGroupMemberships", request, ApiListSynchronizedGroupMembershipsResponse)
|
|
@@ -11,6 +11,111 @@ class ApiVersion(enum.Enum):
|
|
|
11
11
|
API_VERSION_V2 = 2
|
|
12
12
|
"""Experimental, admin-only, internal ('/api/i' endpoints)."""
|
|
13
13
|
|
|
14
|
+
class AuthorizationContext(KaggleObject):
|
|
15
|
+
r"""
|
|
16
|
+
Attributes:
|
|
17
|
+
kernel_session_id (int)
|
|
18
|
+
If set, access token is restricted to be used only from the specified
|
|
19
|
+
notebook session.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
def __init__(self):
|
|
23
|
+
self._kernel_session_id = None
|
|
24
|
+
self._freeze()
|
|
25
|
+
|
|
26
|
+
@property
|
|
27
|
+
def kernel_session_id(self) -> int:
|
|
28
|
+
r"""
|
|
29
|
+
If set, access token is restricted to be used only from the specified
|
|
30
|
+
notebook session.
|
|
31
|
+
"""
|
|
32
|
+
return self._kernel_session_id or 0
|
|
33
|
+
|
|
34
|
+
@kernel_session_id.setter
|
|
35
|
+
def kernel_session_id(self, kernel_session_id: Optional[int]):
|
|
36
|
+
if kernel_session_id is None:
|
|
37
|
+
del self.kernel_session_id
|
|
38
|
+
return
|
|
39
|
+
if not isinstance(kernel_session_id, int):
|
|
40
|
+
raise TypeError('kernel_session_id must be of type int')
|
|
41
|
+
self._kernel_session_id = kernel_session_id
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class ExpireApiTokenRequest(KaggleObject):
|
|
45
|
+
r"""
|
|
46
|
+
Attributes:
|
|
47
|
+
token_id (int)
|
|
48
|
+
Id of the token.
|
|
49
|
+
token (str)
|
|
50
|
+
Value of the token.
|
|
51
|
+
reason (str)
|
|
52
|
+
Reason why this token is expired.
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
def __init__(self):
|
|
56
|
+
self._token_id = None
|
|
57
|
+
self._token = None
|
|
58
|
+
self._reason = None
|
|
59
|
+
self._freeze()
|
|
60
|
+
|
|
61
|
+
@property
|
|
62
|
+
def token_id(self) -> int:
|
|
63
|
+
"""Id of the token."""
|
|
64
|
+
return self._token_id or 0
|
|
65
|
+
|
|
66
|
+
@token_id.setter
|
|
67
|
+
def token_id(self, token_id: int):
|
|
68
|
+
if token_id is None:
|
|
69
|
+
del self.token_id
|
|
70
|
+
return
|
|
71
|
+
if not isinstance(token_id, int):
|
|
72
|
+
raise TypeError('token_id must be of type int')
|
|
73
|
+
del self.token
|
|
74
|
+
self._token_id = token_id
|
|
75
|
+
|
|
76
|
+
@property
|
|
77
|
+
def token(self) -> str:
|
|
78
|
+
"""Value of the token."""
|
|
79
|
+
return self._token or ""
|
|
80
|
+
|
|
81
|
+
@token.setter
|
|
82
|
+
def token(self, token: str):
|
|
83
|
+
if token is None:
|
|
84
|
+
del self.token
|
|
85
|
+
return
|
|
86
|
+
if not isinstance(token, str):
|
|
87
|
+
raise TypeError('token must be of type str')
|
|
88
|
+
del self.token_id
|
|
89
|
+
self._token = token
|
|
90
|
+
|
|
91
|
+
@property
|
|
92
|
+
def reason(self) -> str:
|
|
93
|
+
"""Reason why this token is expired."""
|
|
94
|
+
return self._reason or ""
|
|
95
|
+
|
|
96
|
+
@reason.setter
|
|
97
|
+
def reason(self, reason: Optional[str]):
|
|
98
|
+
if reason is None:
|
|
99
|
+
del self.reason
|
|
100
|
+
return
|
|
101
|
+
if not isinstance(reason, str):
|
|
102
|
+
raise TypeError('reason must be of type str')
|
|
103
|
+
self._reason = reason
|
|
104
|
+
|
|
105
|
+
def endpoint(self):
|
|
106
|
+
path = '/api/v1/tokens/revoke'
|
|
107
|
+
return path.format_map(self.to_field_map(self))
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
@staticmethod
|
|
111
|
+
def method():
|
|
112
|
+
return 'POST'
|
|
113
|
+
|
|
114
|
+
@staticmethod
|
|
115
|
+
def body_fields():
|
|
116
|
+
return '*'
|
|
117
|
+
|
|
118
|
+
|
|
14
119
|
class GenerateAccessTokenRequest(KaggleObject):
|
|
15
120
|
r"""
|
|
16
121
|
Attributes:
|
|
@@ -48,7 +153,7 @@ class GenerateAccessTokenRequest(KaggleObject):
|
|
|
48
153
|
return self._refresh_token or ""
|
|
49
154
|
|
|
50
155
|
@refresh_token.setter
|
|
51
|
-
def refresh_token(self, refresh_token: str):
|
|
156
|
+
def refresh_token(self, refresh_token: Optional[str]):
|
|
52
157
|
if refresh_token is None:
|
|
53
158
|
del self.refresh_token
|
|
54
159
|
return
|
|
@@ -136,10 +241,16 @@ class GenerateAccessTokenResponse(KaggleObject):
|
|
|
136
241
|
r"""
|
|
137
242
|
Attributes:
|
|
138
243
|
token (str)
|
|
244
|
+
expires_in (int)
|
|
245
|
+
user_name (str)
|
|
246
|
+
user_id (int)
|
|
139
247
|
"""
|
|
140
248
|
|
|
141
249
|
def __init__(self):
|
|
142
250
|
self._token = ""
|
|
251
|
+
self._expires_in = 0
|
|
252
|
+
self._user_name = ""
|
|
253
|
+
self._user_id = 0
|
|
143
254
|
self._freeze()
|
|
144
255
|
|
|
145
256
|
@property
|
|
@@ -155,36 +266,67 @@ class GenerateAccessTokenResponse(KaggleObject):
|
|
|
155
266
|
raise TypeError('token must be of type str')
|
|
156
267
|
self._token = token
|
|
157
268
|
|
|
269
|
+
@property
|
|
270
|
+
def expires_in(self) -> int:
|
|
271
|
+
return self._expires_in
|
|
158
272
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
273
|
+
@expires_in.setter
|
|
274
|
+
def expires_in(self, expires_in: int):
|
|
275
|
+
if expires_in is None:
|
|
276
|
+
del self.expires_in
|
|
277
|
+
return
|
|
278
|
+
if not isinstance(expires_in, int):
|
|
279
|
+
raise TypeError('expires_in must be of type int')
|
|
280
|
+
self._expires_in = expires_in
|
|
166
281
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
self.
|
|
282
|
+
@property
|
|
283
|
+
def user_name(self) -> str:
|
|
284
|
+
return self._user_name
|
|
285
|
+
|
|
286
|
+
@user_name.setter
|
|
287
|
+
def user_name(self, user_name: str):
|
|
288
|
+
if user_name is None:
|
|
289
|
+
del self.user_name
|
|
290
|
+
return
|
|
291
|
+
if not isinstance(user_name, str):
|
|
292
|
+
raise TypeError('user_name must be of type str')
|
|
293
|
+
self._user_name = user_name
|
|
170
294
|
|
|
171
295
|
@property
|
|
172
|
-
def
|
|
173
|
-
|
|
174
|
-
If set, access token is restricted to be used only from the specified
|
|
175
|
-
notebook session.
|
|
176
|
-
"""
|
|
177
|
-
return self._kernel_session_id or 0
|
|
296
|
+
def user_id(self) -> int:
|
|
297
|
+
return self._user_id
|
|
178
298
|
|
|
179
|
-
@
|
|
180
|
-
def
|
|
181
|
-
if
|
|
182
|
-
del self.
|
|
299
|
+
@user_id.setter
|
|
300
|
+
def user_id(self, user_id: int):
|
|
301
|
+
if user_id is None:
|
|
302
|
+
del self.user_id
|
|
183
303
|
return
|
|
184
|
-
if not isinstance(
|
|
185
|
-
raise TypeError('
|
|
186
|
-
self.
|
|
304
|
+
if not isinstance(user_id, int):
|
|
305
|
+
raise TypeError('user_id must be of type int')
|
|
306
|
+
self._user_id = user_id
|
|
187
307
|
|
|
308
|
+
@property
|
|
309
|
+
def expiresIn(self):
|
|
310
|
+
return self.expires_in
|
|
311
|
+
|
|
312
|
+
@property
|
|
313
|
+
def userName(self):
|
|
314
|
+
return self.user_name
|
|
315
|
+
|
|
316
|
+
@property
|
|
317
|
+
def userId(self):
|
|
318
|
+
return self.user_id
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
AuthorizationContext._fields = [
|
|
322
|
+
FieldMetadata("kernelSessionId", "kernel_session_id", "_kernel_session_id", int, None, PredefinedSerializer(), optional=True),
|
|
323
|
+
]
|
|
324
|
+
|
|
325
|
+
ExpireApiTokenRequest._fields = [
|
|
326
|
+
FieldMetadata("tokenId", "token_id", "_token_id", int, None, PredefinedSerializer(), optional=True),
|
|
327
|
+
FieldMetadata("token", "token", "_token", str, None, PredefinedSerializer(), optional=True),
|
|
328
|
+
FieldMetadata("reason", "reason", "_reason", str, None, PredefinedSerializer(), optional=True),
|
|
329
|
+
]
|
|
188
330
|
|
|
189
331
|
GenerateAccessTokenRequest._fields = [
|
|
190
332
|
FieldMetadata("refreshToken", "refresh_token", "_refresh_token", str, None, PredefinedSerializer(), optional=True),
|
|
@@ -196,9 +338,8 @@ GenerateAccessTokenRequest._fields = [
|
|
|
196
338
|
|
|
197
339
|
GenerateAccessTokenResponse._fields = [
|
|
198
340
|
FieldMetadata("token", "token", "_token", str, "", PredefinedSerializer()),
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
FieldMetadata("kernelSessionId", "kernel_session_id", "_kernel_session_id", int, None, PredefinedSerializer(), optional=True),
|
|
341
|
+
FieldMetadata("expiresIn", "expires_in", "_expires_in", int, 0, PredefinedSerializer()),
|
|
342
|
+
FieldMetadata("userName", "user_name", "_user_name", str, "", PredefinedSerializer()),
|
|
343
|
+
FieldMetadata("userId", "user_id", "_user_id", int, 0, PredefinedSerializer()),
|
|
203
344
|
]
|
|
204
345
|
|