craft-ai-sdk 0.50.0__py3-none-any.whl → 0.50.1__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.
- craft_ai_sdk/__init__.py +1 -1
- craft_ai_sdk/core/pipeline_metrics.py +1 -22
- craft_ai_sdk/sdk.py +1 -1
- craft_ai_sdk/utils.py +33 -1
- {craft_ai_sdk-0.50.0.dist-info → craft_ai_sdk-0.50.1.dist-info}/METADATA +1 -1
- {craft_ai_sdk-0.50.0.dist-info → craft_ai_sdk-0.50.1.dist-info}/RECORD +10 -10
- documentation.pdf +0 -0
- {craft_ai_sdk-0.50.0.dist-info → craft_ai_sdk-0.50.1.dist-info}/LICENSE +0 -0
- {craft_ai_sdk-0.50.0.dist-info → craft_ai_sdk-0.50.1.dist-info}/WHEEL +0 -0
- {craft_ai_sdk-0.50.0.dist-info → craft_ai_sdk-0.50.1.dist-info}/entry_points.txt +0 -0
craft_ai_sdk/__init__.py
CHANGED
|
@@ -1,29 +1,8 @@
|
|
|
1
|
-
import os
|
|
2
1
|
import warnings
|
|
3
2
|
|
|
4
|
-
from ..utils import log_func_result, remove_none_values
|
|
3
|
+
from ..utils import log_func_result, remove_none_values, get_execution_id
|
|
5
4
|
from ..sdk import BaseCraftAiSdk
|
|
6
5
|
|
|
7
|
-
_execution_context = None
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def get_execution_id():
|
|
11
|
-
global _execution_context
|
|
12
|
-
if _execution_context is None:
|
|
13
|
-
try:
|
|
14
|
-
# File injected in steps
|
|
15
|
-
import __craft_internal_execution_context # type: ignore
|
|
16
|
-
|
|
17
|
-
_execution_context = __craft_internal_execution_context
|
|
18
|
-
except ImportError:
|
|
19
|
-
_execution_context = False
|
|
20
|
-
if _execution_context:
|
|
21
|
-
try:
|
|
22
|
-
return _execution_context.current_execution_id.get()
|
|
23
|
-
except LookupError:
|
|
24
|
-
pass
|
|
25
|
-
return os.environ.get("CRAFT_AI_EXECUTION_ID")
|
|
26
|
-
|
|
27
6
|
|
|
28
7
|
@log_func_result("Pipeline metrics definition", get_execution_id)
|
|
29
8
|
def record_metric_value(sdk: BaseCraftAiSdk, name, value):
|
craft_ai_sdk/sdk.py
CHANGED
|
@@ -128,7 +128,7 @@ class CraftAiSdk(BaseCraftAiSdk):
|
|
|
128
128
|
os.environ.get("CRAFT_AI__MULTIPART_PART_SIZE__B", str(38 * 256 * 1024))
|
|
129
129
|
)
|
|
130
130
|
_access_token_margin = timedelta(seconds=30)
|
|
131
|
-
_version = "0.50.
|
|
131
|
+
_version = "0.50.1" # Would be better to share it somewhere
|
|
132
132
|
|
|
133
133
|
def __init__(
|
|
134
134
|
self,
|
craft_ai_sdk/utils.py
CHANGED
|
@@ -8,9 +8,30 @@ from typing import Callable, Iterable, Union
|
|
|
8
8
|
import xml.etree.ElementTree as ET
|
|
9
9
|
from requests import RequestException, Response
|
|
10
10
|
from json import JSONDecodeError
|
|
11
|
+
import os
|
|
11
12
|
|
|
12
13
|
from .exceptions import SdkException
|
|
13
14
|
|
|
15
|
+
_execution_context = None
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def get_execution_id():
|
|
19
|
+
global _execution_context
|
|
20
|
+
if _execution_context is None:
|
|
21
|
+
try:
|
|
22
|
+
# File injected in steps
|
|
23
|
+
import __craft_internal_execution_context # type: ignore
|
|
24
|
+
|
|
25
|
+
_execution_context = __craft_internal_execution_context
|
|
26
|
+
except ImportError:
|
|
27
|
+
_execution_context = False
|
|
28
|
+
if _execution_context:
|
|
29
|
+
try:
|
|
30
|
+
return _execution_context.current_execution_id.get()
|
|
31
|
+
except LookupError:
|
|
32
|
+
pass
|
|
33
|
+
return os.environ.get("CRAFT_AI_EXECUTION_ID")
|
|
34
|
+
|
|
14
35
|
|
|
15
36
|
def handle_data_store_response(response):
|
|
16
37
|
"""Return the content of a response received from the datastore
|
|
@@ -64,8 +85,19 @@ def _parse_json_response(response):
|
|
|
64
85
|
def _raise_craft_ai_error_from_response(response: Response):
|
|
65
86
|
try:
|
|
66
87
|
error_content = response.json()
|
|
88
|
+
error_message = error_content.get("message", "The server returned an error")
|
|
89
|
+
|
|
90
|
+
# Permission denied inside a running execution
|
|
91
|
+
if response.status_code == 403 and get_execution_id() is not None:
|
|
92
|
+
error_message = (
|
|
93
|
+
"Insufficient permissions. This is probably because "
|
|
94
|
+
"you called an SDK function that is not permitted from "
|
|
95
|
+
"inside a running deployment or execution, even if it "
|
|
96
|
+
"works from your computer. Original error: " + error_message
|
|
97
|
+
)
|
|
98
|
+
|
|
67
99
|
raise SdkException(
|
|
68
|
-
message=
|
|
100
|
+
message=error_message,
|
|
69
101
|
status_code=response.status_code,
|
|
70
102
|
name=error_content.get("name"),
|
|
71
103
|
request_id=error_content.get("request_id"),
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
craft_ai_sdk/__init__.py,sha256=
|
|
1
|
+
craft_ai_sdk/__init__.py,sha256=8LSMFqzRb4jrCT3__SdG3IhbO8dZdLweQtwR_wHgb3g,404
|
|
2
2
|
craft_ai_sdk/constants.py,sha256=KHRaIHA9tHxjwluo7zBF2UZpePQaDI57SrBs4Ob1g7Q,607
|
|
3
3
|
craft_ai_sdk/core/data_store.py,sha256=kI0nUIXfkz-9ENVEeFW70_PGhBNB_S-nntJJkKhGRoQ,8464
|
|
4
4
|
craft_ai_sdk/core/deployments.py,sha256=p717fy73OoynUuDKO6XYLfLu5stBHH73xQw6HLm8jUY,25804
|
|
5
5
|
craft_ai_sdk/core/endpoints.py,sha256=ElVcjnrjWD4_Wo5fOwRh1apUuL5IB7DM-FMH-1poP9w,4563
|
|
6
6
|
craft_ai_sdk/core/environment_variables.py,sha256=wy0U7y0C7tRXOXOiWGz0vX5ajHSmOb_7J1fXlSahGpI,2045
|
|
7
7
|
craft_ai_sdk/core/pipeline_executions.py,sha256=7RRKQUxXUCI871mmFCO4N4RG0RvX5MZ3Fss3doCb8mQ,18314
|
|
8
|
-
craft_ai_sdk/core/pipeline_metrics.py,sha256=
|
|
8
|
+
craft_ai_sdk/core/pipeline_metrics.py,sha256=Tt5p6guHAf7nhq1wvJG3t7WqsYKqrNQ7sZcFKqXYmdM,6465
|
|
9
9
|
craft_ai_sdk/core/pipelines.py,sha256=7QwnLDVfMMYqYKHzsJhYHXbhBYEgwYDk_ZLdD-uzzKs,18383
|
|
10
10
|
craft_ai_sdk/core/resource_metrics.py,sha256=yaco_AZ4Wu5sxLRKsA3qt2R3-PMs2e32EGO0gsHtq2Y,2336
|
|
11
11
|
craft_ai_sdk/core/steps.py,sha256=e_-Kb88raOWRKXLbRzTaJVgVOs4LXA2ziXC6z-PYtlg,20343
|
|
12
12
|
craft_ai_sdk/core/users.py,sha256=Qi3xg7Vzk_0MepccNIZbFzjI0bBqouqkFStTuejUY6s,509
|
|
13
13
|
craft_ai_sdk/exceptions.py,sha256=IC-JfZmmmaTsbMCgirOEByRmWnatQLjKe8BErRkuwM0,1075
|
|
14
14
|
craft_ai_sdk/io.py,sha256=y9lg5unGIwQICAPuKUdUPDAJCsxe2lbseIlmiWka2Ec,11865
|
|
15
|
-
craft_ai_sdk/sdk.py,sha256=
|
|
16
|
-
craft_ai_sdk/utils.py,sha256=
|
|
15
|
+
craft_ai_sdk/sdk.py,sha256=YDv-Y6comyzFr0OI25VHJTVIV83qW9Ek6LDpJB2Ztws,10018
|
|
16
|
+
craft_ai_sdk/utils.py,sha256=zo4fdexMeRspFHG-abmH858-eKzqZzSJ5tdxNBPzgpU,10551
|
|
17
17
|
craft_ai_sdk/warnings.py,sha256=xJXbUR66SVbG_ZO7rxpAZ2hkGxdUtM5JAx6JoWg77Qs,6678
|
|
18
|
-
documentation.pdf,sha256=
|
|
19
|
-
craft_ai_sdk-0.50.
|
|
20
|
-
craft_ai_sdk-0.50.
|
|
21
|
-
craft_ai_sdk-0.50.
|
|
22
|
-
craft_ai_sdk-0.50.
|
|
23
|
-
craft_ai_sdk-0.50.
|
|
18
|
+
documentation.pdf,sha256=g7MpQKX0a6HAKkqgBNFZcReNAEJhx2-4ItFy6BjgPw8,326599
|
|
19
|
+
craft_ai_sdk-0.50.1.dist-info/LICENSE,sha256=_2oYRJic9lZK05LceuJ9aZZw5mPHYc1WQhJiVS-oGFU,10754
|
|
20
|
+
craft_ai_sdk-0.50.1.dist-info/METADATA,sha256=WLr12FOnJnr66jNVgFNtDOWMYEv3I4843cosVHtz3eE,1563
|
|
21
|
+
craft_ai_sdk-0.50.1.dist-info/entry_points.txt,sha256=eV9YD0zCAb88_wNMDV99sRxVKVC-WOQF3b1Pepaytcg,385
|
|
22
|
+
craft_ai_sdk-0.50.1.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
|
|
23
|
+
craft_ai_sdk-0.50.1.dist-info/RECORD,,
|
documentation.pdf
CHANGED
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|