craft-ai-sdk 0.50.0rc1__py3-none-any.whl → 0.50.1rc2__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 craft-ai-sdk might be problematic. Click here for more details.

craft_ai_sdk/__init__.py CHANGED
@@ -14,4 +14,4 @@ from .io import ( # noqa: F401
14
14
  )
15
15
 
16
16
 
17
- __version__ = "0.50.0rc1"
17
+ __version__ = "0.50.1rc2"
@@ -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.0rc1" # Would be better to share it somewhere
131
+ _version = "0.50.1rc2" # 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=error_content.get("message", "The server returned an error"),
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: craft-ai-sdk
3
- Version: 0.50.0rc1
3
+ Version: 0.50.1rc2
4
4
  Summary: Craft AI MLOps platform SDK
5
5
  Home-page: https://www.craft.ai/
6
6
  License: Apache-2.0
@@ -1,23 +1,23 @@
1
- craft_ai_sdk/__init__.py,sha256=xc1A5f_yNH7yd8-5S60UPDnp0d4AcuvUNNlWzYiLdqE,407
1
+ craft_ai_sdk/__init__.py,sha256=-WjdcRSyadT3rtSpfDyhJ8wpz1fFB-D5a6LLs1Mv_Gg,407
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=fTkiabCD5wATWCMNI_S_MFSlQm55aI7qPh_3Vg6SUIs,7032
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=bFQth2vifvlliKLo6_8_7ThsRpxTFNa5wovvwNITXMM,10021
16
- craft_ai_sdk/utils.py,sha256=3BTHNv3OgxtfiJnmf8U_pne-Bky4vtX33CvN_GD_NKM,9460
15
+ craft_ai_sdk/sdk.py,sha256=q_XkJSX7w3Oqg7lS_1FCQvQzMddbtJQeoLQW-rvxSKE,10021
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=86ZkcGrogmEqMXO9rjifY_EIHk6f0Vhws-h3x4dyXxQ,327157
19
- craft_ai_sdk-0.50.0rc1.dist-info/LICENSE,sha256=_2oYRJic9lZK05LceuJ9aZZw5mPHYc1WQhJiVS-oGFU,10754
20
- craft_ai_sdk-0.50.0rc1.dist-info/METADATA,sha256=Ms5AfBIxE-63SP7FdOXFW8FsfZsrkyKJQh5muf_hm1Q,1566
21
- craft_ai_sdk-0.50.0rc1.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
22
- craft_ai_sdk-0.50.0rc1.dist-info/entry_points.txt,sha256=eV9YD0zCAb88_wNMDV99sRxVKVC-WOQF3b1Pepaytcg,385
23
- craft_ai_sdk-0.50.0rc1.dist-info/RECORD,,
18
+ documentation.pdf,sha256=uNZm8G8CI1tTHyUzVhuRp0h6nRS149oxWYBXlE0IA30,327273
19
+ craft_ai_sdk-0.50.1rc2.dist-info/LICENSE,sha256=_2oYRJic9lZK05LceuJ9aZZw5mPHYc1WQhJiVS-oGFU,10754
20
+ craft_ai_sdk-0.50.1rc2.dist-info/METADATA,sha256=73XWGnQ65eAsRi8jevk9P52JgqKi-DH2eOo6eDyzivw,1566
21
+ craft_ai_sdk-0.50.1rc2.dist-info/entry_points.txt,sha256=eV9YD0zCAb88_wNMDV99sRxVKVC-WOQF3b1Pepaytcg,385
22
+ craft_ai_sdk-0.50.1rc2.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
23
+ craft_ai_sdk-0.50.1rc2.dist-info/RECORD,,
documentation.pdf CHANGED
Binary file