kaggle 1.8.2__py3-none-any.whl → 1.8.3__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 +1 -1
- kaggle/api/kaggle_api_extended.py +24 -2
- {kaggle-1.8.2.dist-info → kaggle-1.8.3.dist-info}/METADATA +3 -3
- kaggle-1.8.3.dist-info/RECORD +28 -0
- {kaggle-1.8.2.dist-info → kaggle-1.8.3.dist-info}/WHEEL +1 -1
- kaggle-1.8.2.dist-info/RECORD +0 -148
- kagglesdk/LICENSE +0 -201
- kagglesdk/__init__.py +0 -6
- kagglesdk/admin/__init__.py +0 -0
- kagglesdk/admin/services/__init__.py +0 -0
- kagglesdk/admin/services/inbox_file_service.py +0 -22
- kagglesdk/admin/types/__init__.py +0 -0
- kagglesdk/admin/types/inbox_file_service.py +0 -74
- kagglesdk/benchmarks/__init__.py +0 -0
- kagglesdk/benchmarks/services/__init__.py +0 -0
- kagglesdk/benchmarks/services/benchmarks_api_service.py +0 -19
- kagglesdk/benchmarks/types/__init__.py +0 -0
- kagglesdk/benchmarks/types/benchmark_types.py +0 -307
- kagglesdk/benchmarks/types/benchmarks_api_service.py +0 -243
- kagglesdk/blobs/__init__.py +0 -0
- kagglesdk/blobs/services/__init__.py +0 -0
- kagglesdk/blobs/services/blob_api_service.py +0 -25
- kagglesdk/blobs/types/__init__.py +0 -0
- kagglesdk/blobs/types/blob_api_service.py +0 -177
- kagglesdk/common/__init__.py +0 -0
- kagglesdk/common/services/__init__.py +0 -0
- kagglesdk/common/services/operations_service.py +0 -46
- kagglesdk/common/types/__init__.py +0 -0
- kagglesdk/common/types/file_download.py +0 -102
- kagglesdk/common/types/http_redirect.py +0 -105
- kagglesdk/common/types/operations.py +0 -194
- kagglesdk/common/types/operations_service.py +0 -48
- kagglesdk/community/__init__.py +0 -0
- kagglesdk/community/types/__init__.py +0 -0
- kagglesdk/community/types/content_enums.py +0 -44
- kagglesdk/community/types/organization.py +0 -410
- kagglesdk/competitions/__init__.py +0 -0
- kagglesdk/competitions/services/__init__.py +0 -0
- kagglesdk/competitions/services/competition_api_service.py +0 -178
- kagglesdk/competitions/types/__init__.py +0 -0
- kagglesdk/competitions/types/competition.py +0 -14
- kagglesdk/competitions/types/competition_api_service.py +0 -2393
- kagglesdk/competitions/types/competition_enums.py +0 -53
- kagglesdk/competitions/types/search_competitions.py +0 -28
- kagglesdk/competitions/types/submission_status.py +0 -9
- kagglesdk/datasets/__init__.py +0 -0
- kagglesdk/datasets/databundles/__init__.py +0 -0
- kagglesdk/datasets/databundles/types/__init__.py +0 -0
- kagglesdk/datasets/databundles/types/databundle_api_types.py +0 -540
- kagglesdk/datasets/services/__init__.py +0 -0
- kagglesdk/datasets/services/dataset_api_service.py +0 -195
- kagglesdk/datasets/types/__init__.py +0 -0
- kagglesdk/datasets/types/dataset_api_service.py +0 -3047
- kagglesdk/datasets/types/dataset_enums.py +0 -103
- kagglesdk/datasets/types/dataset_service.py +0 -145
- kagglesdk/datasets/types/dataset_types.py +0 -646
- kagglesdk/datasets/types/search_datasets.py +0 -6
- kagglesdk/discussions/__init__.py +0 -0
- kagglesdk/discussions/types/__init__.py +0 -0
- kagglesdk/discussions/types/search_discussions.py +0 -43
- kagglesdk/discussions/types/writeup_enums.py +0 -11
- kagglesdk/education/__init__.py +0 -0
- kagglesdk/education/services/__init__.py +0 -0
- kagglesdk/education/services/education_api_service.py +0 -19
- kagglesdk/education/types/__init__.py +0 -0
- kagglesdk/education/types/education_api_service.py +0 -248
- kagglesdk/education/types/education_service.py +0 -139
- kagglesdk/kaggle_client.py +0 -101
- kagglesdk/kaggle_creds.py +0 -148
- kagglesdk/kaggle_env.py +0 -104
- kagglesdk/kaggle_http_client.py +0 -269
- kagglesdk/kaggle_oauth.py +0 -200
- kagglesdk/kaggle_object.py +0 -344
- kagglesdk/kernels/__init__.py +0 -0
- kagglesdk/kernels/services/__init__.py +0 -0
- kagglesdk/kernels/services/kernels_api_service.py +0 -146
- kagglesdk/kernels/types/__init__.py +0 -0
- kagglesdk/kernels/types/kernels_api_service.py +0 -2451
- kagglesdk/kernels/types/kernels_enums.py +0 -39
- kagglesdk/kernels/types/search_kernels.py +0 -6
- kagglesdk/licenses/__init__.py +0 -0
- kagglesdk/licenses/types/__init__.py +0 -0
- kagglesdk/licenses/types/licenses_types.py +0 -182
- kagglesdk/models/__init__.py +0 -0
- kagglesdk/models/services/__init__.py +0 -0
- kagglesdk/models/services/model_api_service.py +0 -280
- kagglesdk/models/services/model_service.py +0 -19
- kagglesdk/models/types/__init__.py +0 -0
- kagglesdk/models/types/model_api_service.py +0 -4069
- kagglesdk/models/types/model_enums.py +0 -68
- kagglesdk/models/types/model_service.py +0 -275
- kagglesdk/models/types/model_types.py +0 -1338
- kagglesdk/models/types/search_models.py +0 -8
- kagglesdk/search/__init__.py +0 -0
- kagglesdk/search/services/__init__.py +0 -0
- kagglesdk/search/services/search_api_service.py +0 -19
- kagglesdk/search/types/__init__.py +0 -0
- kagglesdk/search/types/search_api_service.py +0 -2435
- kagglesdk/search/types/search_content_shared.py +0 -50
- kagglesdk/search/types/search_enums.py +0 -45
- kagglesdk/search/types/search_service.py +0 -303
- kagglesdk/security/__init__.py +0 -0
- kagglesdk/security/services/__init__.py +0 -0
- kagglesdk/security/services/iam_service.py +0 -31
- kagglesdk/security/services/oauth_service.py +0 -58
- kagglesdk/security/types/__init__.py +0 -0
- kagglesdk/security/types/authentication.py +0 -171
- kagglesdk/security/types/iam_service.py +0 -496
- kagglesdk/security/types/oauth_service.py +0 -1181
- kagglesdk/security/types/roles.py +0 -8
- kagglesdk/security/types/security_types.py +0 -159
- kagglesdk/test/__init__.py +0 -0
- kagglesdk/test/test_client.py +0 -41
- kagglesdk/users/__init__.py +0 -0
- kagglesdk/users/services/__init__.py +0 -0
- kagglesdk/users/services/account_service.py +0 -31
- kagglesdk/users/services/group_api_service.py +0 -31
- kagglesdk/users/types/__init__.py +0 -0
- kagglesdk/users/types/account_service.py +0 -345
- kagglesdk/users/types/group_api_service.py +0 -315
- kagglesdk/users/types/group_types.py +0 -165
- kagglesdk/users/types/groups_enum.py +0 -8
- kagglesdk/users/types/progression_service.py +0 -9
- kagglesdk/users/types/search_users.py +0 -23
- kagglesdk/users/types/user_avatar.py +0 -226
- kagglesdk/users/types/users_enums.py +0 -22
- {kaggle-1.8.2.dist-info → kaggle-1.8.3.dist-info}/entry_points.txt +0 -0
- {kaggle-1.8.2.dist-info → kaggle-1.8.3.dist-info}/licenses/LICENSE.txt +0 -0
kagglesdk/kaggle_object.py
DELETED
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
import re
|
|
3
|
-
from datetime import datetime, timedelta
|
|
4
|
-
from google.protobuf.field_mask_pb2 import FieldMask
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class ObjectSerializer(object):
|
|
8
|
-
|
|
9
|
-
def __init__(self, to_dict_value, from_dict_value):
|
|
10
|
-
self.to_dict_value = to_dict_value
|
|
11
|
-
self.from_dict_value = from_dict_value
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class PredefinedSerializer(ObjectSerializer):
|
|
15
|
-
|
|
16
|
-
def __init__(self):
|
|
17
|
-
"""Predefined objects such as int, float etc are serialized/deserialized directly."""
|
|
18
|
-
ObjectSerializer.__init__(self, lambda cls, v, _: v, lambda cls, v: v)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
# Adapted from https://stackoverflow.com/questions/1175208/elegant-python-function-to-convert-camelcase-to-snake-case
|
|
22
|
-
_pascal_to_upper_snake_case_regex = re.compile("((?<=[a-z0-9])[A-Z]|(?!^)[A-Z](?=[a-z]))")
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def _pascal_case_to_upper_snake_case(string):
|
|
26
|
-
return _pascal_to_upper_snake_case_regex.sub(r"_\1", string).upper()
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def _convert(camel_input):
|
|
30
|
-
words = re.findall(r"[A-Z]?[a-z]+|[A-Z]{2,}(?=[A-Z][a-z]|\d|\W|$)|\d+", camel_input)
|
|
31
|
-
return "_".join(map(str.lower, words))
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
class EnumSerializer(ObjectSerializer):
|
|
35
|
-
|
|
36
|
-
def __init__(self):
|
|
37
|
-
"""
|
|
38
|
-
Enum objects are serialized using their ".name" field and deserialized by indexing the string in the Enum type.
|
|
39
|
-
Example:
|
|
40
|
-
class Foo(Enum):
|
|
41
|
-
TEST = 1
|
|
42
|
-
foo = Foo.TEST
|
|
43
|
-
foo.name # => returns "TEST"
|
|
44
|
-
Foo["TEST"] # => returns Foo.TEST enum value.
|
|
45
|
-
"""
|
|
46
|
-
ObjectSerializer.__init__(
|
|
47
|
-
self,
|
|
48
|
-
lambda cls, v, _: EnumSerializer._to_str(cls, v),
|
|
49
|
-
lambda cls, v: EnumSerializer._from_str(cls, v),
|
|
50
|
-
)
|
|
51
|
-
|
|
52
|
-
@staticmethod
|
|
53
|
-
def _to_str(cls, v):
|
|
54
|
-
# "v" corresponds to an enum instance: Example foo or Foo.Test above.
|
|
55
|
-
# "cls" corresponds to the enum type Foo above.
|
|
56
|
-
return v.name
|
|
57
|
-
|
|
58
|
-
@staticmethod
|
|
59
|
-
def _from_str(cls, v):
|
|
60
|
-
# "v" corresponds to enum string: Example "TEST" above.
|
|
61
|
-
# "cls" corresponds to the enum type Foo above.
|
|
62
|
-
try:
|
|
63
|
-
return cls[v]
|
|
64
|
-
except KeyError:
|
|
65
|
-
dct = vars(cls)
|
|
66
|
-
n = v.lower()
|
|
67
|
-
nn = _convert(v).lower()
|
|
68
|
-
enum_prefix = _pascal_case_to_upper_snake_case(cls.__name__).lower()
|
|
69
|
-
for key in dct.keys():
|
|
70
|
-
k = key.lower()
|
|
71
|
-
if k == n:
|
|
72
|
-
return dct[key]
|
|
73
|
-
if k.startswith(enum_prefix) and k.endswith(n) or k.endswith(nn):
|
|
74
|
-
return dct[key]
|
|
75
|
-
raise
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
class ListSerializer(ObjectSerializer):
|
|
79
|
-
|
|
80
|
-
def __init__(self, item_serializer: ObjectSerializer):
|
|
81
|
-
"""
|
|
82
|
-
Lists are serialized based on the type they contain. Since objects are generated from proto files, a list always
|
|
83
|
-
contains objects of the same type, which is serialized/deserialized using "item_serializer".
|
|
84
|
-
"""
|
|
85
|
-
ObjectSerializer.__init__(
|
|
86
|
-
self,
|
|
87
|
-
lambda cls, l, ignore_defaults: [item_serializer.to_dict_value(cls, v, ignore_defaults) for v in l],
|
|
88
|
-
lambda cls, l: [item_serializer.from_dict_value(cls, v) for v in l],
|
|
89
|
-
)
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
class MapSerializer(ObjectSerializer):
|
|
93
|
-
|
|
94
|
-
def __init__(self, item_serializer: ObjectSerializer):
|
|
95
|
-
"""
|
|
96
|
-
Maps are serialized based on type of their values. Since maps keys are always predefined types, we don't need a
|
|
97
|
-
serializer for them.
|
|
98
|
-
"""
|
|
99
|
-
ObjectSerializer.__init__(
|
|
100
|
-
self,
|
|
101
|
-
lambda cls, d, ignore_defaults: {
|
|
102
|
-
k: item_serializer.to_dict_value(cls, v, ignore_defaults) for k, v in d.items()
|
|
103
|
-
},
|
|
104
|
-
lambda cls, d: {k: item_serializer.from_dict_value(cls, v) for k, v in d.items()},
|
|
105
|
-
)
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
class DateTimeSerializer(ObjectSerializer):
|
|
109
|
-
|
|
110
|
-
def __init__(self):
|
|
111
|
-
"""Date times are serialized/deserialized as a string in iso format"""
|
|
112
|
-
ObjectSerializer.__init__(
|
|
113
|
-
self,
|
|
114
|
-
lambda cls, dt, _: DateTimeSerializer._to_str(dt),
|
|
115
|
-
lambda _, v: DateTimeSerializer._from_str(v),
|
|
116
|
-
)
|
|
117
|
-
|
|
118
|
-
@staticmethod
|
|
119
|
-
def _to_str(dt):
|
|
120
|
-
return dt.isoformat(timespec="milliseconds") + "Z"
|
|
121
|
-
|
|
122
|
-
@staticmethod
|
|
123
|
-
def _from_str(v):
|
|
124
|
-
v = v.rstrip("Z")
|
|
125
|
-
fields = v.rsplit(".", maxsplit=1)
|
|
126
|
-
if len(fields) == 1:
|
|
127
|
-
return datetime.fromisoformat(v)
|
|
128
|
-
(dt, nanos) = fields
|
|
129
|
-
millis = nanos[:3]
|
|
130
|
-
try:
|
|
131
|
-
return datetime.fromisoformat(f"{dt}.{millis}")
|
|
132
|
-
except ValueError:
|
|
133
|
-
return datetime.fromisoformat(dt) # Python 3.9, 3.10
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
class TimeDeltaSerializer(ObjectSerializer):
|
|
137
|
-
# Scaling factors idea from https://github.com/protocolbuffers/protobuf/blob/master/csharp/src/Google.Protobuf/JsonParser.cs
|
|
138
|
-
SUBSECOND_SCALING_FACTORS = [
|
|
139
|
-
0,
|
|
140
|
-
100_000_000,
|
|
141
|
-
10_000_000,
|
|
142
|
-
1_000_000,
|
|
143
|
-
100_000,
|
|
144
|
-
10_000,
|
|
145
|
-
1_000,
|
|
146
|
-
100,
|
|
147
|
-
10,
|
|
148
|
-
1,
|
|
149
|
-
]
|
|
150
|
-
|
|
151
|
-
def __init__(self):
|
|
152
|
-
"""Time deltas are serialized/deserialized as a string in "<seconds>.<nanoseconds>s" format. Example: 151.500s"""
|
|
153
|
-
ObjectSerializer.__init__(
|
|
154
|
-
self,
|
|
155
|
-
lambda cls, t, _: TimeDeltaSerializer._to_dict_value(t),
|
|
156
|
-
lambda cls, v: TimeDeltaSerializer._from_dict_value(v),
|
|
157
|
-
)
|
|
158
|
-
|
|
159
|
-
@staticmethod
|
|
160
|
-
def _to_dict_value(delta):
|
|
161
|
-
seconds = delta.seconds
|
|
162
|
-
nanos_str = TimeDeltaSerializer._nanos_to_str(delta.microseconds * 1000)
|
|
163
|
-
if nanos_str is None:
|
|
164
|
-
return "{}s".format(seconds)
|
|
165
|
-
return "{}.{}s".format(seconds, nanos_str)
|
|
166
|
-
|
|
167
|
-
@staticmethod
|
|
168
|
-
def _nanos_to_str(nanos):
|
|
169
|
-
if nanos == 0:
|
|
170
|
-
return None
|
|
171
|
-
if nanos < 0:
|
|
172
|
-
nanos *= -1
|
|
173
|
-
if nanos % 1000000 == 0:
|
|
174
|
-
return "{}".format(nanos / 1000000)
|
|
175
|
-
elif nanos % 1000 == 0:
|
|
176
|
-
return "{}".format(nanos / 1000)
|
|
177
|
-
else:
|
|
178
|
-
return "{}".format(nanos)
|
|
179
|
-
|
|
180
|
-
@staticmethod
|
|
181
|
-
def _from_dict_value(value):
|
|
182
|
-
(seconds, nanosRaw) = value.rstrip("s").split(".")
|
|
183
|
-
nanos = int(nanosRaw) * TimeDeltaSerializer.SUBSECOND_SCALING_FACTORS[len(nanosRaw)]
|
|
184
|
-
return timedelta(seconds=int(seconds), microseconds=int(int(nanos) / 1000))
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
class FieldMaskSerializer(ObjectSerializer):
|
|
188
|
-
|
|
189
|
-
def __init__(self):
|
|
190
|
-
"""Field masks are serialized/deserialized as a string that contains a list of paths with a comma delimiter"""
|
|
191
|
-
ObjectSerializer.__init__(
|
|
192
|
-
self,
|
|
193
|
-
lambda cls, m, _: m.ToJsonString(),
|
|
194
|
-
lambda cls, v: FieldMaskSerializer._from_joined_paths(v),
|
|
195
|
-
)
|
|
196
|
-
|
|
197
|
-
@staticmethod
|
|
198
|
-
def _from_joined_paths(joined_paths):
|
|
199
|
-
mask = FieldMask()
|
|
200
|
-
mask.FromJsonString(joined_paths)
|
|
201
|
-
return mask
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
class KaggleObjectSerializer(ObjectSerializer):
|
|
205
|
-
|
|
206
|
-
def __init__(self):
|
|
207
|
-
"""
|
|
208
|
-
Kaggle objects (i.e., proto-generated types that inherit from KaggleObject) have custom "to_dict" and "from_dict"
|
|
209
|
-
methods that serialize/deserialize them to/from dictionaries.
|
|
210
|
-
"""
|
|
211
|
-
ObjectSerializer.__init__(
|
|
212
|
-
self,
|
|
213
|
-
# "v" is an instance of a KaggleObject. For example: "req = ListCompetitionsRequest()".
|
|
214
|
-
# So "req.to_dict()" returns a dictionary with keys as json field names. Example:
|
|
215
|
-
# '{"pageSize": 10, "page": 2}'
|
|
216
|
-
lambda cls, v, ignore_defaults: cls.to_dict(v, ignore_defaults),
|
|
217
|
-
# "cls" is the type of a KaggleObject. For example: ListCompetitionsRequest. All
|
|
218
|
-
# generated Kaggle objects have "from_dict" class method that takes a dict to create a
|
|
219
|
-
# new instance of the object. See "KaggleObject" class definition below.
|
|
220
|
-
lambda cls, v: cls.from_dict(v),
|
|
221
|
-
)
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
class FieldMetadata(object):
|
|
225
|
-
|
|
226
|
-
def __init__(
|
|
227
|
-
self,
|
|
228
|
-
json_name,
|
|
229
|
-
field_name,
|
|
230
|
-
private_field_name,
|
|
231
|
-
field_type,
|
|
232
|
-
default_value,
|
|
233
|
-
serializer,
|
|
234
|
-
optional=False,
|
|
235
|
-
):
|
|
236
|
-
self.json_name = json_name
|
|
237
|
-
self.field_name = field_name
|
|
238
|
-
self.private_field_name = private_field_name
|
|
239
|
-
self.field_type = field_type
|
|
240
|
-
self.default_value = default_value
|
|
241
|
-
self.serializer = serializer
|
|
242
|
-
self.optional = optional
|
|
243
|
-
|
|
244
|
-
def get_as_dict_item(self, instance, ignore_defaults=True):
|
|
245
|
-
value = getattr(instance, self.private_field_name)
|
|
246
|
-
if ignore_defaults and value == self.default_value:
|
|
247
|
-
return None
|
|
248
|
-
if value is None:
|
|
249
|
-
return None
|
|
250
|
-
return self.serializer.to_dict_value(self.field_type, value, ignore_defaults)
|
|
251
|
-
|
|
252
|
-
def set_from_dict(self, instance, json_dict):
|
|
253
|
-
if self.json_name not in json_dict:
|
|
254
|
-
return # Ignore unknown fields
|
|
255
|
-
value = json_dict[self.json_name]
|
|
256
|
-
if value == self.default_value:
|
|
257
|
-
return # Ignore default values
|
|
258
|
-
try:
|
|
259
|
-
setattr(
|
|
260
|
-
instance,
|
|
261
|
-
self.private_field_name,
|
|
262
|
-
self.serializer.from_dict_value(self.field_type, value),
|
|
263
|
-
)
|
|
264
|
-
except Exception as e:
|
|
265
|
-
raise
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
class KaggleObject(object):
|
|
269
|
-
|
|
270
|
-
def endpoint(self):
|
|
271
|
-
raise "Error: endpoint must be defined by the request object"
|
|
272
|
-
|
|
273
|
-
@staticmethod
|
|
274
|
-
def endpoint_path():
|
|
275
|
-
return None
|
|
276
|
-
|
|
277
|
-
@staticmethod
|
|
278
|
-
def body_fields():
|
|
279
|
-
return None
|
|
280
|
-
|
|
281
|
-
@classmethod
|
|
282
|
-
def prepare_from(cls, http_response):
|
|
283
|
-
return cls.from_json(http_response.text)
|
|
284
|
-
|
|
285
|
-
@staticmethod
|
|
286
|
-
def method():
|
|
287
|
-
return "GET"
|
|
288
|
-
|
|
289
|
-
def _freeze(self):
|
|
290
|
-
self._is_frozen = True
|
|
291
|
-
|
|
292
|
-
def __setattr__(self, key, value):
|
|
293
|
-
if hasattr(self, "_is_frozen") and not hasattr(self, key):
|
|
294
|
-
raise AttributeError(f"Unknown field for {self.__class__.__name__}: {key}")
|
|
295
|
-
object.__setattr__(self, key, value)
|
|
296
|
-
|
|
297
|
-
def to_dict(self, ignore_defaults=True):
|
|
298
|
-
kv_pairs = [(field.json_name, field.get_as_dict_item(self, ignore_defaults)) for field in self._fields]
|
|
299
|
-
return {k: v for (k, v) in kv_pairs if not ignore_defaults or v is not None}
|
|
300
|
-
|
|
301
|
-
def to_field_map(self, ignore_defaults=True):
|
|
302
|
-
kv_pairs = [(field.field_name, field.get_as_dict_item(self, ignore_defaults)) for field in self._fields]
|
|
303
|
-
return {k: v for (k, v) in kv_pairs if not ignore_defaults or v is not None}
|
|
304
|
-
|
|
305
|
-
@classmethod
|
|
306
|
-
def from_dict(cls, json_dict):
|
|
307
|
-
instance = cls()
|
|
308
|
-
for field in cls._fields:
|
|
309
|
-
field.set_from_dict(instance, json_dict)
|
|
310
|
-
return instance
|
|
311
|
-
|
|
312
|
-
@classmethod
|
|
313
|
-
def from_json(cls, json_str):
|
|
314
|
-
return cls.from_dict(json.loads(json_str))
|
|
315
|
-
|
|
316
|
-
def to_json(self, ignore_defaults=True):
|
|
317
|
-
return json.dumps(self.to_dict(ignore_defaults))
|
|
318
|
-
|
|
319
|
-
def __str__(self):
|
|
320
|
-
return self.to_json(ignore_defaults=False)
|
|
321
|
-
|
|
322
|
-
def __repr__(self):
|
|
323
|
-
return self.to_json(ignore_defaults=False)
|
|
324
|
-
|
|
325
|
-
def __contains__(self, field_name):
|
|
326
|
-
try:
|
|
327
|
-
field = self._get_field(field_name)
|
|
328
|
-
except ValueError:
|
|
329
|
-
return False
|
|
330
|
-
value = getattr(self, field.private_field_name)
|
|
331
|
-
if field.optional:
|
|
332
|
-
return value is not None
|
|
333
|
-
else:
|
|
334
|
-
return value != field.default_value
|
|
335
|
-
|
|
336
|
-
def __delattr__(self, field_name):
|
|
337
|
-
field = self._get_field(field_name)
|
|
338
|
-
setattr(self, field.private_field_name, field.default_value)
|
|
339
|
-
|
|
340
|
-
def _get_field(self, field_name):
|
|
341
|
-
field = next((f for f in self._fields if f.field_name == field_name), None)
|
|
342
|
-
if field is None:
|
|
343
|
-
raise ValueError(f'Protocol message {self.__class__.__name__} has no "{field_name}" field.')
|
|
344
|
-
return field
|
kagglesdk/kernels/__init__.py
DELETED
|
File without changes
|
|
File without changes
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
from kagglesdk.common.types.file_download import FileDownload
|
|
2
|
-
from kagglesdk.common.types.http_redirect import HttpRedirect
|
|
3
|
-
from kagglesdk.common.types.operations import Operation
|
|
4
|
-
from kagglesdk.kaggle_http_client import KaggleHttpClient
|
|
5
|
-
from kagglesdk.kernels.types.kernels_api_service import ApiCancelKernelSessionRequest, ApiCancelKernelSessionResponse, ApiCreateKernelSessionRequest, ApiDeleteKernelRequest, ApiDeleteKernelResponse, ApiDownloadKernelOutputRequest, ApiDownloadKernelOutputZipRequest, ApiGetKernelRequest, ApiGetKernelResponse, ApiGetKernelSessionStatusRequest, ApiGetKernelSessionStatusResponse, ApiListKernelFilesRequest, ApiListKernelFilesResponse, ApiListKernelSessionOutputRequest, ApiListKernelSessionOutputResponse, ApiListKernelsRequest, ApiListKernelsResponse, ApiSaveKernelRequest, ApiSaveKernelResponse
|
|
6
|
-
|
|
7
|
-
class KernelsApiClient(object):
|
|
8
|
-
|
|
9
|
-
def __init__(self, client: KaggleHttpClient):
|
|
10
|
-
self._client = client
|
|
11
|
-
|
|
12
|
-
def list_kernels(self, request: ApiListKernelsRequest = None) -> ApiListKernelsResponse:
|
|
13
|
-
r"""
|
|
14
|
-
Args:
|
|
15
|
-
request (ApiListKernelsRequest):
|
|
16
|
-
The request object; initialized to empty instance if not specified.
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
if request is None:
|
|
20
|
-
request = ApiListKernelsRequest()
|
|
21
|
-
|
|
22
|
-
return self._client.call("kernels.KernelsApiService", "ListKernels", request, ApiListKernelsResponse)
|
|
23
|
-
|
|
24
|
-
def list_kernel_files(self, request: ApiListKernelFilesRequest = None) -> ApiListKernelFilesResponse:
|
|
25
|
-
r"""
|
|
26
|
-
Args:
|
|
27
|
-
request (ApiListKernelFilesRequest):
|
|
28
|
-
The request object; initialized to empty instance if not specified.
|
|
29
|
-
"""
|
|
30
|
-
|
|
31
|
-
if request is None:
|
|
32
|
-
request = ApiListKernelFilesRequest()
|
|
33
|
-
|
|
34
|
-
return self._client.call("kernels.KernelsApiService", "ListKernelFiles", request, ApiListKernelFilesResponse)
|
|
35
|
-
|
|
36
|
-
def get_kernel(self, request: ApiGetKernelRequest = None) -> ApiGetKernelResponse:
|
|
37
|
-
r"""
|
|
38
|
-
Args:
|
|
39
|
-
request (ApiGetKernelRequest):
|
|
40
|
-
The request object; initialized to empty instance if not specified.
|
|
41
|
-
"""
|
|
42
|
-
|
|
43
|
-
if request is None:
|
|
44
|
-
request = ApiGetKernelRequest()
|
|
45
|
-
|
|
46
|
-
return self._client.call("kernels.KernelsApiService", "GetKernel", request, ApiGetKernelResponse)
|
|
47
|
-
|
|
48
|
-
def save_kernel(self, request: ApiSaveKernelRequest = None) -> ApiSaveKernelResponse:
|
|
49
|
-
r"""
|
|
50
|
-
Args:
|
|
51
|
-
request (ApiSaveKernelRequest):
|
|
52
|
-
The request object; initialized to empty instance if not specified.
|
|
53
|
-
"""
|
|
54
|
-
|
|
55
|
-
if request is None:
|
|
56
|
-
request = ApiSaveKernelRequest()
|
|
57
|
-
|
|
58
|
-
return self._client.call("kernels.KernelsApiService", "SaveKernel", request, ApiSaveKernelResponse)
|
|
59
|
-
|
|
60
|
-
def list_kernel_session_output(self, request: ApiListKernelSessionOutputRequest = None) -> ApiListKernelSessionOutputResponse:
|
|
61
|
-
r"""
|
|
62
|
-
Args:
|
|
63
|
-
request (ApiListKernelSessionOutputRequest):
|
|
64
|
-
The request object; initialized to empty instance if not specified.
|
|
65
|
-
"""
|
|
66
|
-
|
|
67
|
-
if request is None:
|
|
68
|
-
request = ApiListKernelSessionOutputRequest()
|
|
69
|
-
|
|
70
|
-
return self._client.call("kernels.KernelsApiService", "ListKernelSessionOutput", request, ApiListKernelSessionOutputResponse)
|
|
71
|
-
|
|
72
|
-
def get_kernel_session_status(self, request: ApiGetKernelSessionStatusRequest = None) -> ApiGetKernelSessionStatusResponse:
|
|
73
|
-
r"""
|
|
74
|
-
Args:
|
|
75
|
-
request (ApiGetKernelSessionStatusRequest):
|
|
76
|
-
The request object; initialized to empty instance if not specified.
|
|
77
|
-
"""
|
|
78
|
-
|
|
79
|
-
if request is None:
|
|
80
|
-
request = ApiGetKernelSessionStatusRequest()
|
|
81
|
-
|
|
82
|
-
return self._client.call("kernels.KernelsApiService", "GetKernelSessionStatus", request, ApiGetKernelSessionStatusResponse)
|
|
83
|
-
|
|
84
|
-
def download_kernel_output(self, request: ApiDownloadKernelOutputRequest = None) -> HttpRedirect:
|
|
85
|
-
r"""
|
|
86
|
-
Meant for use by Kaggle Hub (http bindings and terminology align with that)
|
|
87
|
-
|
|
88
|
-
Args:
|
|
89
|
-
request (ApiDownloadKernelOutputRequest):
|
|
90
|
-
The request object; initialized to empty instance if not specified.
|
|
91
|
-
"""
|
|
92
|
-
|
|
93
|
-
if request is None:
|
|
94
|
-
request = ApiDownloadKernelOutputRequest()
|
|
95
|
-
|
|
96
|
-
return self._client.call("kernels.KernelsApiService", "DownloadKernelOutput", request, HttpRedirect)
|
|
97
|
-
|
|
98
|
-
def download_kernel_output_zip(self, request: ApiDownloadKernelOutputZipRequest = None) -> FileDownload:
|
|
99
|
-
r"""
|
|
100
|
-
Meant for use by Kaggle Hub (and DownloadKernelOutput above)
|
|
101
|
-
|
|
102
|
-
Args:
|
|
103
|
-
request (ApiDownloadKernelOutputZipRequest):
|
|
104
|
-
The request object; initialized to empty instance if not specified.
|
|
105
|
-
"""
|
|
106
|
-
|
|
107
|
-
if request is None:
|
|
108
|
-
request = ApiDownloadKernelOutputZipRequest()
|
|
109
|
-
|
|
110
|
-
return self._client.call("kernels.KernelsApiService", "DownloadKernelOutputZip", request, FileDownload)
|
|
111
|
-
|
|
112
|
-
def delete_kernel(self, request: ApiDeleteKernelRequest = None) -> ApiDeleteKernelResponse:
|
|
113
|
-
r"""
|
|
114
|
-
Args:
|
|
115
|
-
request (ApiDeleteKernelRequest):
|
|
116
|
-
The request object; initialized to empty instance if not specified.
|
|
117
|
-
"""
|
|
118
|
-
|
|
119
|
-
if request is None:
|
|
120
|
-
request = ApiDeleteKernelRequest()
|
|
121
|
-
|
|
122
|
-
return self._client.call("kernels.KernelsApiService", "DeleteKernel", request, ApiDeleteKernelResponse)
|
|
123
|
-
|
|
124
|
-
def cancel_kernel_session(self, request: ApiCancelKernelSessionRequest = None) -> ApiCancelKernelSessionResponse:
|
|
125
|
-
r"""
|
|
126
|
-
Args:
|
|
127
|
-
request (ApiCancelKernelSessionRequest):
|
|
128
|
-
The request object; initialized to empty instance if not specified.
|
|
129
|
-
"""
|
|
130
|
-
|
|
131
|
-
if request is None:
|
|
132
|
-
request = ApiCancelKernelSessionRequest()
|
|
133
|
-
|
|
134
|
-
return self._client.call("kernels.KernelsApiService", "CancelKernelSession", request, ApiCancelKernelSessionResponse)
|
|
135
|
-
|
|
136
|
-
def create_kernel_session(self, request: ApiCreateKernelSessionRequest = None) -> Operation:
|
|
137
|
-
r"""
|
|
138
|
-
Args:
|
|
139
|
-
request (ApiCreateKernelSessionRequest):
|
|
140
|
-
The request object; initialized to empty instance if not specified.
|
|
141
|
-
"""
|
|
142
|
-
|
|
143
|
-
if request is None:
|
|
144
|
-
request = ApiCreateKernelSessionRequest()
|
|
145
|
-
|
|
146
|
-
return self._client.call("kernels.KernelsApiService", "CreateKernelSession", request, Operation)
|
|
File without changes
|