digitalhub 0.11.0b7__py3-none-any.whl → 0.13.0b0__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.
Potentially problematic release.
This version of digitalhub might be problematic. Click here for more details.
- digitalhub/__init__.py +4 -1
- digitalhub/context/api.py +4 -0
- digitalhub/context/builder.py +4 -0
- digitalhub/context/context.py +4 -0
- digitalhub/entities/__init__.py +3 -0
- digitalhub/entities/_base/__init__.py +3 -0
- digitalhub/entities/_base/_base/__init__.py +3 -0
- digitalhub/entities/_base/_base/entity.py +4 -0
- digitalhub/entities/_base/context/__init__.py +3 -0
- digitalhub/entities/_base/context/entity.py +4 -0
- digitalhub/entities/_base/entity/__init__.py +3 -0
- digitalhub/entities/_base/entity/_constructors/__init__.py +3 -0
- digitalhub/entities/_base/entity/_constructors/metadata.py +4 -0
- digitalhub/entities/_base/entity/_constructors/name.py +4 -0
- digitalhub/entities/_base/entity/_constructors/spec.py +4 -0
- digitalhub/entities/_base/entity/_constructors/status.py +4 -0
- digitalhub/entities/_base/entity/_constructors/uuid.py +4 -0
- digitalhub/entities/_base/entity/builder.py +4 -0
- digitalhub/entities/_base/entity/entity.py +4 -0
- digitalhub/entities/_base/entity/metadata.py +4 -0
- digitalhub/entities/_base/entity/spec.py +4 -0
- digitalhub/entities/_base/entity/status.py +4 -0
- digitalhub/entities/_base/executable/__init__.py +3 -0
- digitalhub/entities/_base/executable/entity.py +11 -0
- digitalhub/entities/_base/material/__init__.py +3 -0
- digitalhub/entities/_base/material/entity.py +12 -15
- digitalhub/entities/_base/material/spec.py +4 -0
- digitalhub/entities/_base/material/status.py +4 -0
- digitalhub/entities/_base/material/utils.py +5 -1
- digitalhub/entities/_base/runtime_entity/__init__.py +3 -0
- digitalhub/entities/_base/runtime_entity/builder.py +4 -0
- digitalhub/entities/_base/unversioned/__init__.py +3 -0
- digitalhub/entities/_base/unversioned/builder.py +4 -0
- digitalhub/entities/_base/unversioned/entity.py +4 -0
- digitalhub/entities/_base/versioned/__init__.py +3 -0
- digitalhub/entities/_base/versioned/builder.py +4 -0
- digitalhub/entities/_base/versioned/entity.py +4 -0
- digitalhub/entities/_commons/__init__.py +3 -0
- digitalhub/entities/_commons/enums.py +4 -0
- digitalhub/entities/_commons/metrics.py +4 -0
- digitalhub/entities/_commons/types.py +4 -0
- digitalhub/entities/_commons/utils.py +4 -0
- digitalhub/entities/_processors/__init__.py +3 -0
- digitalhub/entities/_processors/base.py +4 -0
- digitalhub/entities/_processors/context.py +5 -1
- digitalhub/entities/_processors/utils.py +4 -0
- digitalhub/entities/artifact/__init__.py +3 -0
- digitalhub/entities/artifact/_base/__init__.py +3 -0
- digitalhub/entities/artifact/_base/builder.py +4 -0
- digitalhub/entities/artifact/_base/entity.py +4 -0
- digitalhub/entities/artifact/_base/spec.py +4 -0
- digitalhub/entities/artifact/_base/status.py +4 -0
- digitalhub/entities/artifact/artifact/__init__.py +3 -0
- digitalhub/entities/artifact/artifact/builder.py +4 -0
- digitalhub/entities/artifact/artifact/entity.py +4 -0
- digitalhub/entities/artifact/artifact/spec.py +4 -0
- digitalhub/entities/artifact/artifact/status.py +4 -0
- digitalhub/entities/artifact/crud.py +4 -0
- digitalhub/entities/artifact/utils.py +4 -0
- digitalhub/entities/builders.py +4 -0
- digitalhub/entities/dataitem/__init__.py +3 -0
- digitalhub/entities/dataitem/_base/__init__.py +3 -0
- digitalhub/entities/dataitem/_base/builder.py +4 -0
- digitalhub/entities/dataitem/_base/entity.py +4 -0
- digitalhub/entities/dataitem/_base/spec.py +4 -0
- digitalhub/entities/dataitem/_base/status.py +4 -0
- digitalhub/entities/dataitem/crud.py +4 -0
- digitalhub/entities/dataitem/dataitem/__init__.py +3 -0
- digitalhub/entities/dataitem/dataitem/builder.py +4 -0
- digitalhub/entities/dataitem/dataitem/entity.py +4 -0
- digitalhub/entities/dataitem/dataitem/spec.py +4 -0
- digitalhub/entities/dataitem/dataitem/status.py +4 -0
- digitalhub/entities/dataitem/iceberg/__init__.py +3 -0
- digitalhub/entities/dataitem/iceberg/builder.py +4 -0
- digitalhub/entities/dataitem/iceberg/entity.py +4 -0
- digitalhub/entities/dataitem/iceberg/spec.py +4 -0
- digitalhub/entities/dataitem/iceberg/status.py +4 -0
- digitalhub/entities/dataitem/table/__init__.py +3 -0
- digitalhub/entities/dataitem/table/builder.py +4 -0
- digitalhub/entities/dataitem/table/entity.py +4 -0
- digitalhub/entities/dataitem/table/models.py +4 -0
- digitalhub/entities/dataitem/table/spec.py +4 -0
- digitalhub/entities/dataitem/table/status.py +4 -0
- digitalhub/entities/dataitem/table/utils.py +4 -0
- digitalhub/entities/dataitem/utils.py +4 -0
- digitalhub/entities/function/__init__.py +3 -0
- digitalhub/entities/function/_base/__init__.py +3 -0
- digitalhub/entities/function/_base/builder.py +4 -0
- digitalhub/entities/function/_base/entity.py +4 -0
- digitalhub/entities/function/_base/spec.py +4 -0
- digitalhub/entities/function/_base/status.py +4 -0
- digitalhub/entities/function/crud.py +4 -0
- digitalhub/entities/model/__init__.py +3 -0
- digitalhub/entities/model/_base/__init__.py +3 -0
- digitalhub/entities/model/_base/builder.py +4 -0
- digitalhub/entities/model/_base/entity.py +4 -0
- digitalhub/entities/model/_base/spec.py +4 -0
- digitalhub/entities/model/_base/status.py +4 -0
- digitalhub/entities/model/crud.py +4 -0
- digitalhub/entities/model/huggingface/__init__.py +3 -0
- digitalhub/entities/model/huggingface/builder.py +4 -0
- digitalhub/entities/model/huggingface/entity.py +4 -0
- digitalhub/entities/model/huggingface/spec.py +4 -0
- digitalhub/entities/model/huggingface/status.py +4 -0
- digitalhub/entities/model/mlflow/__init__.py +3 -0
- digitalhub/entities/model/mlflow/builder.py +4 -0
- digitalhub/entities/model/mlflow/entity.py +4 -0
- digitalhub/entities/model/mlflow/models.py +4 -0
- digitalhub/entities/model/mlflow/spec.py +4 -0
- digitalhub/entities/model/mlflow/status.py +4 -0
- digitalhub/entities/model/mlflow/utils.py +4 -0
- digitalhub/entities/model/model/__init__.py +3 -0
- digitalhub/entities/model/model/builder.py +4 -0
- digitalhub/entities/model/model/entity.py +4 -0
- digitalhub/entities/model/model/spec.py +4 -0
- digitalhub/entities/model/model/status.py +4 -0
- digitalhub/entities/model/sklearn/__init__.py +3 -0
- digitalhub/entities/model/sklearn/builder.py +4 -0
- digitalhub/entities/model/sklearn/entity.py +4 -0
- digitalhub/entities/model/sklearn/spec.py +4 -0
- digitalhub/entities/model/sklearn/status.py +4 -0
- digitalhub/entities/model/utils.py +4 -0
- digitalhub/entities/project/__init__.py +3 -0
- digitalhub/entities/project/_base/__init__.py +3 -0
- digitalhub/entities/project/_base/builder.py +4 -0
- digitalhub/entities/project/_base/entity.py +4 -0
- digitalhub/entities/project/_base/models.py +4 -0
- digitalhub/entities/project/_base/spec.py +4 -0
- digitalhub/entities/project/_base/status.py +4 -0
- digitalhub/entities/project/crud.py +4 -0
- digitalhub/entities/project/utils.py +4 -0
- digitalhub/entities/run/__init__.py +3 -0
- digitalhub/entities/run/_base/__init__.py +3 -0
- digitalhub/entities/run/_base/builder.py +4 -0
- digitalhub/entities/run/_base/entity.py +4 -0
- digitalhub/entities/run/_base/spec.py +4 -0
- digitalhub/entities/run/_base/status.py +4 -0
- digitalhub/entities/run/crud.py +4 -0
- digitalhub/entities/secret/__init__.py +3 -0
- digitalhub/entities/secret/_base/__init__.py +3 -0
- digitalhub/entities/secret/_base/builder.py +4 -0
- digitalhub/entities/secret/_base/entity.py +4 -0
- digitalhub/entities/secret/_base/spec.py +4 -0
- digitalhub/entities/secret/_base/status.py +4 -0
- digitalhub/entities/secret/crud.py +4 -0
- digitalhub/entities/task/__init__.py +3 -0
- digitalhub/entities/task/_base/__init__.py +3 -0
- digitalhub/entities/task/_base/builder.py +4 -0
- digitalhub/entities/task/_base/entity.py +4 -0
- digitalhub/entities/task/_base/models.py +4 -0
- digitalhub/entities/task/_base/spec.py +4 -0
- digitalhub/entities/task/_base/status.py +4 -0
- digitalhub/entities/task/_base/utils.py +4 -0
- digitalhub/entities/task/crud.py +4 -0
- digitalhub/entities/trigger/__init__.py +3 -0
- digitalhub/entities/trigger/_base/__init__.py +3 -0
- digitalhub/entities/trigger/_base/builder.py +4 -0
- digitalhub/entities/trigger/_base/entity.py +4 -0
- digitalhub/entities/trigger/_base/spec.py +4 -0
- digitalhub/entities/trigger/_base/status.py +4 -0
- digitalhub/entities/trigger/crud.py +4 -0
- digitalhub/entities/trigger/lifecycle/__init__.py +3 -0
- digitalhub/entities/trigger/lifecycle/builder.py +4 -0
- digitalhub/entities/trigger/lifecycle/entity.py +4 -0
- digitalhub/entities/trigger/lifecycle/spec.py +4 -0
- digitalhub/entities/trigger/lifecycle/status.py +4 -0
- digitalhub/entities/trigger/scheduler/__init__.py +3 -0
- digitalhub/entities/trigger/scheduler/builder.py +4 -0
- digitalhub/entities/trigger/scheduler/entity.py +4 -0
- digitalhub/entities/trigger/scheduler/spec.py +4 -0
- digitalhub/entities/trigger/scheduler/status.py +4 -0
- digitalhub/entities/workflow/__init__.py +3 -0
- digitalhub/entities/workflow/_base/__init__.py +3 -0
- digitalhub/entities/workflow/_base/builder.py +4 -0
- digitalhub/entities/workflow/_base/entity.py +4 -0
- digitalhub/entities/workflow/_base/spec.py +4 -0
- digitalhub/entities/workflow/_base/status.py +4 -0
- digitalhub/entities/workflow/crud.py +4 -0
- digitalhub/factory/__init__.py +3 -0
- digitalhub/factory/factory.py +4 -0
- digitalhub/factory/utils.py +4 -0
- digitalhub/runtimes/__init__.py +3 -0
- digitalhub/runtimes/_base.py +4 -0
- digitalhub/runtimes/builder.py +4 -0
- digitalhub/runtimes/enums.py +4 -0
- digitalhub/stores/__init__.py +3 -0
- digitalhub/stores/client/__init__.py +3 -0
- digitalhub/stores/client/_base/__init__.py +3 -0
- digitalhub/stores/client/_base/api_builder.py +4 -0
- digitalhub/stores/client/_base/client.py +4 -0
- digitalhub/stores/client/_base/key_builder.py +4 -0
- digitalhub/stores/client/_base/params_builder.py +4 -0
- digitalhub/stores/client/api.py +4 -0
- digitalhub/stores/client/builder.py +4 -0
- digitalhub/stores/client/dhcore/__init__.py +3 -0
- digitalhub/stores/client/dhcore/api_builder.py +4 -0
- digitalhub/stores/client/dhcore/client.py +60 -19
- digitalhub/stores/client/dhcore/configurator.py +282 -183
- digitalhub/stores/client/dhcore/enums.py +6 -0
- digitalhub/stores/client/dhcore/error_parser.py +4 -0
- digitalhub/stores/client/dhcore/key_builder.py +4 -0
- digitalhub/stores/client/dhcore/models.py +4 -0
- digitalhub/stores/client/dhcore/params_builder.py +4 -0
- digitalhub/stores/client/dhcore/utils.py +12 -8
- digitalhub/stores/client/local/__init__.py +3 -0
- digitalhub/stores/client/local/api_builder.py +4 -0
- digitalhub/stores/client/local/client.py +4 -0
- digitalhub/stores/client/local/enums.py +4 -0
- digitalhub/stores/client/local/key_builder.py +4 -0
- digitalhub/stores/client/local/params_builder.py +4 -0
- digitalhub/stores/credentials/__init__.py +3 -0
- digitalhub/stores/{configurator → credentials}/api.py +7 -3
- digitalhub/stores/credentials/configurator.py +37 -0
- digitalhub/stores/credentials/enums.py +54 -0
- digitalhub/stores/credentials/handler.py +148 -0
- digitalhub/stores/{configurator → credentials}/ini_module.py +5 -1
- digitalhub/stores/credentials/store.py +49 -0
- digitalhub/stores/data/__init__.py +3 -0
- digitalhub/stores/data/_base/__init__.py +3 -0
- digitalhub/stores/data/_base/store.py +23 -6
- digitalhub/stores/data/api.py +41 -1
- digitalhub/stores/data/builder.py +50 -53
- digitalhub/stores/data/enums.py +4 -0
- digitalhub/stores/data/local/__init__.py +3 -0
- digitalhub/stores/data/local/store.py +8 -7
- digitalhub/stores/data/remote/__init__.py +3 -0
- digitalhub/stores/data/remote/store.py +8 -7
- digitalhub/stores/data/s3/__init__.py +3 -0
- digitalhub/stores/data/s3/configurator.py +40 -92
- digitalhub/stores/data/s3/store.py +46 -57
- digitalhub/stores/data/s3/utils.py +5 -1
- digitalhub/stores/data/sql/__init__.py +3 -0
- digitalhub/stores/data/sql/configurator.py +39 -83
- digitalhub/stores/data/sql/store.py +19 -15
- digitalhub/stores/readers/__init__.py +3 -0
- digitalhub/stores/readers/data/__init__.py +3 -0
- digitalhub/stores/readers/data/_base/__init__.py +3 -0
- digitalhub/stores/readers/data/_base/builder.py +4 -0
- digitalhub/stores/readers/data/_base/reader.py +4 -0
- digitalhub/stores/readers/data/api.py +4 -0
- digitalhub/stores/readers/data/factory.py +4 -0
- digitalhub/stores/readers/data/pandas/__init__.py +3 -0
- digitalhub/stores/readers/data/pandas/builder.py +4 -0
- digitalhub/stores/readers/data/pandas/reader.py +4 -0
- digitalhub/stores/readers/query/__init__.py +3 -0
- digitalhub/utils/__init__.py +3 -0
- digitalhub/utils/enums.py +4 -0
- digitalhub/utils/exceptions.py +4 -0
- digitalhub/utils/file_utils.py +4 -0
- digitalhub/utils/generic_utils.py +4 -0
- digitalhub/utils/git_utils.py +4 -0
- digitalhub/utils/io_utils.py +4 -0
- digitalhub/utils/logger.py +4 -0
- digitalhub/utils/types.py +4 -0
- digitalhub/utils/uri_utils.py +4 -0
- digitalhub-0.13.0b0.dist-info/METADATA +301 -0
- digitalhub-0.13.0b0.dist-info/RECORD +260 -0
- digitalhub-0.13.0b0.dist-info/licenses/AUTHORS +5 -0
- digitalhub-0.13.0b0.dist-info/licenses/LICENSE +201 -0
- digitalhub/stores/configurator/__init__.py +0 -0
- digitalhub/stores/configurator/configurator.py +0 -198
- digitalhub/stores/configurator/credentials_store.py +0 -65
- digitalhub/stores/configurator/enums.py +0 -21
- digitalhub/stores/data/s3/enums.py +0 -16
- digitalhub/stores/data/sql/enums.py +0 -16
- digitalhub/stores/data/utils.py +0 -34
- digitalhub-0.11.0b7.dist-info/METADATA +0 -259
- digitalhub-0.11.0b7.dist-info/RECORD +0 -261
- digitalhub-0.11.0b7.dist-info/licenses/LICENSE.txt +0 -216
- {digitalhub-0.11.0b7.dist-info → digitalhub-0.13.0b0.dist-info}/WHEEL +0 -0
digitalhub/entities/task/crud.py
CHANGED
digitalhub/factory/__init__.py
CHANGED
digitalhub/factory/factory.py
CHANGED
digitalhub/factory/utils.py
CHANGED
digitalhub/runtimes/__init__.py
CHANGED
digitalhub/runtimes/_base.py
CHANGED
digitalhub/runtimes/builder.py
CHANGED
digitalhub/runtimes/enums.py
CHANGED
digitalhub/stores/__init__.py
CHANGED
digitalhub/stores/client/api.py
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
1
5
|
from __future__ import annotations
|
|
2
6
|
|
|
3
7
|
import typing
|
|
4
8
|
from typing import Any
|
|
9
|
+
from warnings import warn
|
|
5
10
|
|
|
6
11
|
from requests import request
|
|
7
12
|
from requests.exceptions import JSONDecodeError
|
|
@@ -12,13 +17,19 @@ from digitalhub.stores.client.dhcore.configurator import ClientDHCoreConfigurato
|
|
|
12
17
|
from digitalhub.stores.client.dhcore.error_parser import ErrorParser
|
|
13
18
|
from digitalhub.stores.client.dhcore.key_builder import ClientDHCoreKeyBuilder
|
|
14
19
|
from digitalhub.stores.client.dhcore.params_builder import ClientDHCoreParametersBuilder
|
|
15
|
-
from digitalhub.utils.exceptions import BackendError
|
|
20
|
+
from digitalhub.utils.exceptions import BackendError, ClientError
|
|
16
21
|
from digitalhub.utils.generic_utils import dump_json
|
|
17
22
|
|
|
18
23
|
if typing.TYPE_CHECKING:
|
|
19
24
|
from requests import Response
|
|
20
25
|
|
|
21
26
|
|
|
27
|
+
# API levels that are supported
|
|
28
|
+
MAX_API_LEVEL = 20
|
|
29
|
+
MIN_API_LEVEL = 13
|
|
30
|
+
LIB_VERSION = 13
|
|
31
|
+
|
|
32
|
+
|
|
22
33
|
class ClientDHCore(Client):
|
|
23
34
|
"""
|
|
24
35
|
DHCore client.
|
|
@@ -52,7 +63,6 @@ class ClientDHCore(Client):
|
|
|
52
63
|
|
|
53
64
|
# Client Configurator
|
|
54
65
|
self._configurator = ClientDHCoreConfigurator()
|
|
55
|
-
self._configurator.configure(config)
|
|
56
66
|
|
|
57
67
|
##############################
|
|
58
68
|
# CRUD methods
|
|
@@ -161,9 +171,6 @@ class ClientDHCore(Client):
|
|
|
161
171
|
list[dict]
|
|
162
172
|
Response objects.
|
|
163
173
|
"""
|
|
164
|
-
if kwargs is None:
|
|
165
|
-
kwargs = {}
|
|
166
|
-
|
|
167
174
|
if "params" not in kwargs:
|
|
168
175
|
kwargs["params"] = {}
|
|
169
176
|
|
|
@@ -220,9 +227,6 @@ class ClientDHCore(Client):
|
|
|
220
227
|
list[dict]
|
|
221
228
|
Response objects.
|
|
222
229
|
"""
|
|
223
|
-
if kwargs is None:
|
|
224
|
-
kwargs = {}
|
|
225
|
-
|
|
226
230
|
if "params" not in kwargs:
|
|
227
231
|
kwargs["params"] = {}
|
|
228
232
|
|
|
@@ -277,13 +281,28 @@ class ClientDHCore(Client):
|
|
|
277
281
|
Response object.
|
|
278
282
|
"""
|
|
279
283
|
self._configurator.check_config()
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
284
|
+
url = self._build_url(api)
|
|
285
|
+
full_kwargs = self._configurator.get_auth_parameters(kwargs)
|
|
286
|
+
return self._make_call(call_type, url, **full_kwargs)
|
|
287
|
+
|
|
288
|
+
def _build_url(self, api: str) -> str:
|
|
289
|
+
"""
|
|
290
|
+
Build the url.
|
|
285
291
|
|
|
286
|
-
|
|
292
|
+
Parameters
|
|
293
|
+
----------
|
|
294
|
+
api : str
|
|
295
|
+
The api to call.
|
|
296
|
+
|
|
297
|
+
Returns
|
|
298
|
+
-------
|
|
299
|
+
str
|
|
300
|
+
The url.
|
|
301
|
+
"""
|
|
302
|
+
endpoint = self._configurator.get_endpoint()
|
|
303
|
+
return f"{endpoint}/{api.removeprefix('/')}"
|
|
304
|
+
|
|
305
|
+
def _make_call(self, call_type: str, url: str, refresh: bool = True, **kwargs) -> dict:
|
|
287
306
|
"""
|
|
288
307
|
Make a call to the DHCore API.
|
|
289
308
|
|
|
@@ -293,6 +312,8 @@ class ClientDHCore(Client):
|
|
|
293
312
|
The type of call to make.
|
|
294
313
|
url : str
|
|
295
314
|
The URL to call.
|
|
315
|
+
refresh : bool
|
|
316
|
+
Whether to refresh the access token.
|
|
296
317
|
**kwargs : dict
|
|
297
318
|
Keyword arguments to pass to the request.
|
|
298
319
|
|
|
@@ -305,17 +326,37 @@ class ClientDHCore(Client):
|
|
|
305
326
|
response = request(call_type, url, timeout=60, **kwargs)
|
|
306
327
|
|
|
307
328
|
# Evaluate DHCore API version
|
|
308
|
-
self.
|
|
329
|
+
self._check_core_version(response)
|
|
309
330
|
|
|
310
|
-
# Handle token refresh
|
|
311
|
-
if response.status_code in [401] and
|
|
312
|
-
self._configurator.get_new_access_token()
|
|
331
|
+
# Handle token refresh (redo call)
|
|
332
|
+
if (response.status_code in [401]) and (refresh) and self._configurator.refreshable_auth_types():
|
|
333
|
+
self._configurator.get_new_access_token(change_origin=True)
|
|
313
334
|
kwargs = self._configurator.set_request_auth(kwargs)
|
|
314
|
-
return self._make_call(call_type, url,
|
|
335
|
+
return self._make_call(call_type, url, refresh=False, **kwargs)
|
|
315
336
|
|
|
316
337
|
self._error_parser.parse(response)
|
|
317
338
|
return self._dictify_response(response)
|
|
318
339
|
|
|
340
|
+
def _check_core_version(self, response: Response) -> None:
|
|
341
|
+
"""
|
|
342
|
+
Raise an exception if DHCore API version is not supported.
|
|
343
|
+
|
|
344
|
+
Parameters
|
|
345
|
+
----------
|
|
346
|
+
response : Response
|
|
347
|
+
The response object.
|
|
348
|
+
|
|
349
|
+
Returns
|
|
350
|
+
-------
|
|
351
|
+
None
|
|
352
|
+
"""
|
|
353
|
+
if "X-Api-Level" in response.headers:
|
|
354
|
+
core_api_level = int(response.headers["X-Api-Level"])
|
|
355
|
+
if not (MIN_API_LEVEL <= core_api_level <= MAX_API_LEVEL):
|
|
356
|
+
raise ClientError("Backend API level not supported.")
|
|
357
|
+
if LIB_VERSION < core_api_level:
|
|
358
|
+
warn("Backend API level is higher than library version. You should consider updating the library.")
|
|
359
|
+
|
|
319
360
|
def _dictify_response(self, response: Response) -> dict:
|
|
320
361
|
"""
|
|
321
362
|
Return dict from response.
|