craft-ai-sdk 0.66.0rc1__py3-none-any.whl → 0.66.1rc1__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 CHANGED
@@ -13,4 +13,4 @@ from .io import ( # noqa: F401
13
13
  )
14
14
  from .sdk import CraftAiSdk # noqa: F401
15
15
 
16
- __version__ = "0.66.0rc1"
16
+ __version__ = "0.66.1rc1"
@@ -1,4 +1,5 @@
1
1
  import io
2
+ import json
2
3
  from typing import Any, Literal, TypedDict, Union, overload
3
4
  from urllib.parse import urlencode
4
5
 
@@ -90,13 +91,20 @@ def trigger_endpoint(
90
91
  if inputs is None:
91
92
  inputs = {}
92
93
 
93
- body = {}
94
- files = {}
94
+ parameters = {}
95
+ artifacts = {}
95
96
  for input_name, input_value in inputs.items():
96
97
  if isinstance(input_value, io.IOBase) and input_value.readable():
97
- files[input_name] = input_value
98
+ artifacts[input_name] = input_value
98
99
  else:
99
- body[input_name] = input_value
100
+ parameters[input_name] = input_value
101
+
102
+ data = None
103
+ # When using both files and parameters, parameters should
104
+ # be passed through `data` instead
105
+ if len(parameters) > 0 and len(artifacts) > 0:
106
+ data = {key: json.dumps(value) for key, value in parameters.items()}
107
+ parameters = None
100
108
 
101
109
  if endpoint_token is None:
102
110
  url = f"{sdk.base_environment_api_url}/deployments/{endpoint_name}/executions"
@@ -107,8 +115,9 @@ def trigger_endpoint(
107
115
  sdk,
108
116
  url,
109
117
  allow_redirects=False,
110
- json=body,
111
- files=files,
118
+ json=parameters,
119
+ files=artifacts,
120
+ data=data,
112
121
  )
113
122
 
114
123
  else:
@@ -121,8 +130,9 @@ def trigger_endpoint(
121
130
  "craft-ai-client": f"craft-ai-sdk@{sdk._version}",
122
131
  },
123
132
  allow_redirects=False,
124
- json=body,
125
- files=files,
133
+ json=parameters,
134
+ files=artifacts,
135
+ data=data,
126
136
  )
127
137
  response = handle_http_response(post_result)
128
138
  execution_id = response.get("execution_id", "")
craft_ai_sdk/sdk.py CHANGED
@@ -23,6 +23,7 @@ class BaseCraftAiSdk(ABC):
23
23
  _MULTIPART_THRESHOLD: int
24
24
  _MULTIPART_PART_SIZE: int
25
25
  _version: str
26
+ _session: requests.Session
26
27
  warn_on_metric_outside_of_step: bool
27
28
 
28
29
  @abstractmethod
@@ -138,7 +139,7 @@ class CraftAiSdk(BaseCraftAiSdk):
138
139
  os.environ.get("CRAFT_AI__MULTIPART_PART_SIZE__B", str(38 * 256 * 1024))
139
140
  )
140
141
  _access_token_margin = timedelta(seconds=30)
141
- _version = "0.66.0rc1" # Would be better to share it somewhere
142
+ _version = "0.66.1rc1" # Would be better to share it somewhere
142
143
 
143
144
  def __init__(
144
145
  self,
@@ -3,9 +3,19 @@ from datetime import datetime
3
3
  from typing import Callable
4
4
 
5
5
  from requests import Response
6
+ from typing_extensions import Concatenate, ParamSpec
6
7
 
8
+ import craft_ai_sdk.sdk as sdk
7
9
 
8
- def use_authentication(action_func: Callable[..., Response]) -> Callable[..., Response]:
10
+ Args = ParamSpec("Args")
11
+
12
+
13
+ def use_authentication(
14
+ action_func: Callable[
15
+ Concatenate["sdk.BaseCraftAiSdk", Args],
16
+ Response,
17
+ ],
18
+ ) -> Callable[..., Response]:
9
19
  @functools.wraps(action_func)
10
20
  def wrapper(sdk, *args, headers=None, **kwargs):
11
21
  actual_headers = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: craft-ai-sdk
3
- Version: 0.66.0rc1
3
+ Version: 0.66.1rc1
4
4
  Summary: Craft AI MLOps platform SDK
5
5
  License: Apache-2.0
6
6
  Author: Craft AI
@@ -1,8 +1,8 @@
1
- craft_ai_sdk/__init__.py,sha256=lzXeiTGkDxqC05y57VzYQsSYXxMTyBcTegOpafelEGE,366
1
+ craft_ai_sdk/__init__.py,sha256=3gNWDWcydXNO3rAKuyXKYD5-uvKD2f800or0kSVKeQA,366
2
2
  craft_ai_sdk/constants.py,sha256=rH4JrGlTpbjjjNRrKhk5oScbj5G5INrcVza6Bb6kIzY,980
3
3
  craft_ai_sdk/core/data_store.py,sha256=dlVZajXGwcI_4mzqFctHpzKO-uySIP5lvQaJy6CKwY0,9131
4
4
  craft_ai_sdk/core/deployments.py,sha256=O4JjH8CjfA4Dy-Y7H_ABVEPS3TbMhO9j66F2mKf22K4,37617
5
- craft_ai_sdk/core/endpoints.py,sha256=smNLSDG4T6ZMNyu494Ip52SURBOqmmx3oSWtz8GzCCc,7648
5
+ craft_ai_sdk/core/endpoints.py,sha256=ad8_oHVCwrTpnlrlqvEcO48nXbzmuWTaUbh82JdRX6g,8018
6
6
  craft_ai_sdk/core/environment_variables.py,sha256=CpkyneLf8UF-1QXe36Ay_RZJ8grSfbZZWBvGSQzKlLs,2221
7
7
  craft_ai_sdk/core/pipeline_executions.py,sha256=p_vjsOMR92_6UUG5S-pgyen3V7yYHTjHBJ7pNfANe5I,18661
8
8
  craft_ai_sdk/core/pipeline_metrics.py,sha256=IJFzAptwqjanb2Jl-XQCh0FtashEd4I2Pb51ky51cyY,7166
@@ -13,8 +13,8 @@ craft_ai_sdk/core/users.py,sha256=q5et87q0SOMpRTBOiLX026oaEOTaY1aGqKdbUC51zbA,61
13
13
  craft_ai_sdk/core/vector_database.py,sha256=S3h68Ej1FnHYJdc5LdLlNjobYYdmaCloSq2UaylPWko,2334
14
14
  craft_ai_sdk/exceptions.py,sha256=IC-JfZmmmaTsbMCgirOEByRmWnatQLjKe8BErRkuwM0,1075
15
15
  craft_ai_sdk/io.py,sha256=x1G7ga10W_SeTDLHe-FrhU26_WNwWW32-yprMmCZ5Ck,11836
16
- craft_ai_sdk/sdk.py,sha256=KxInD0Bvj6wKb0WeKa9yLXXMOsW0nLrlV6H4CTI40e8,10815
17
- craft_ai_sdk/shared/authentication.py,sha256=OdwtAH47tOUS-u_HhxlI8JdjZT5REr5B5cGSrX7sz00,885
16
+ craft_ai_sdk/sdk.py,sha256=jD6OREimT6yyQ3ykeaoYZ9Q6eGBLrtTo4OMpAGgjCb8,10846
17
+ craft_ai_sdk/shared/authentication.py,sha256=5lJS_aNphkgI0-wvHFK4aW316ZRfOq9oywNpv-Oyn2M,1062
18
18
  craft_ai_sdk/shared/environments.py,sha256=LbpRK-ACpwFfN7WTuo0nrtbbi2NAXhuMRKf7YkktEYI,510
19
19
  craft_ai_sdk/shared/execution_context.py,sha256=B2Ghq-wiUvq81q5mhsm79Oc59c8c00uQxMIpApFD03o,585
20
20
  craft_ai_sdk/shared/helpers.py,sha256=5ZBiHlS-k1OgKejZgMlDJiYwIPYk7yg-lzeJI67poCc,1070
@@ -26,8 +26,8 @@ craft_ai_sdk/utils/__init__.py,sha256=A0sLCXSPD1Z3q2GP1uLDjvif4ivOr__Hzg9RQysEuq
26
26
  craft_ai_sdk/utils/datetime_utils.py,sha256=yYP5HVdI879WXxQCajPTnas1pWrwInOxMux-mxqQNQM,734
27
27
  craft_ai_sdk/utils/dict_utils.py,sha256=1HQ3A14SN48XPFDmQleujGAgksmkjIs3hyPLpwhwh24,748
28
28
  craft_ai_sdk/utils/file_utils.py,sha256=o10-CDt4qzgCJNPykvlNrL6WTouhVLY8C8BVpHJYt18,2795
29
- craft_ai_sdk-0.66.0rc1.dist-info/LICENSE,sha256=_2oYRJic9lZK05LceuJ9aZZw5mPHYc1WQhJiVS-oGFU,10754
30
- craft_ai_sdk-0.66.0rc1.dist-info/METADATA,sha256=Z_g7Xyu1sJriOF8BC2yaVkgIceK7t1makhmWJwNKRUM,1679
31
- craft_ai_sdk-0.66.0rc1.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
32
- craft_ai_sdk-0.66.0rc1.dist-info/entry_points.txt,sha256=QC96WcXvvUfLMRgFD-l_y7_TgC9SqZybLs9EQ8dsGiQ,417
33
- craft_ai_sdk-0.66.0rc1.dist-info/RECORD,,
29
+ craft_ai_sdk-0.66.1rc1.dist-info/LICENSE,sha256=_2oYRJic9lZK05LceuJ9aZZw5mPHYc1WQhJiVS-oGFU,10754
30
+ craft_ai_sdk-0.66.1rc1.dist-info/METADATA,sha256=b7TO-yVdsfSGvFCUonaBQPEwT4qVJBbgtKQgaZEsTpo,1679
31
+ craft_ai_sdk-0.66.1rc1.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
32
+ craft_ai_sdk-0.66.1rc1.dist-info/entry_points.txt,sha256=QC96WcXvvUfLMRgFD-l_y7_TgC9SqZybLs9EQ8dsGiQ,417
33
+ craft_ai_sdk-0.66.1rc1.dist-info/RECORD,,