craft-ai-sdk 0.68.3rc1__tar.gz → 0.70.0__tar.gz
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-0.68.3rc1 → craft_ai_sdk-0.70.0}/PKG-INFO +11 -12
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/README.md +1 -1
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/__init__.py +1 -1
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/pipelines.py +2 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/sdk.py +1 -1
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/helpers.py +8 -0
- craft_ai_sdk-0.70.0/documentation.pdf +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/pyproject.toml +40 -31
- craft_ai_sdk-0.68.3rc1/documentation.pdf +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/LICENSE +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/constants.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/data_store.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/deployments.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/endpoints.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/environment_variables.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/pipeline_executions.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/pipeline_metrics.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/pipeline_templates.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/resource_metrics.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/steps.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/users.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/vector_database.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/exceptions.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/io.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/authentication.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/environments.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/execution_context.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/logger.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/request_response_handler.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/types.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/warnings.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/utils/__init__.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/utils/datetime_utils.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/utils/dict_utils.py +0 -0
- {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/utils/file_utils.py +0 -0
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: craft-ai-sdk
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.70.0
|
|
4
4
|
Summary: Craft AI MLOps platform SDK
|
|
5
|
-
License: Apache-2.0
|
|
5
|
+
License-Expression: Apache-2.0
|
|
6
|
+
License-File: LICENSE
|
|
6
7
|
Author: Craft AI
|
|
7
8
|
Author-email: contact@craft.ai
|
|
8
|
-
Requires-Python: >=3.
|
|
9
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
9
|
+
Requires-Python: >=3.10
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
12
11
|
Classifier: Programming Language :: Python :: 3.10
|
|
13
12
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
-
|
|
17
|
-
Requires-Dist: StrEnum (>=0.4.9
|
|
18
|
-
Requires-Dist:
|
|
19
|
-
Requires-Dist:
|
|
20
|
-
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
+
Requires-Dist: StrEnum (>=0.4.9)
|
|
17
|
+
Requires-Dist: pyjwt (>=2.4.0)
|
|
18
|
+
Requires-Dist: requests (>=2.32.4)
|
|
19
|
+
Requires-Dist: weaviate-client (>=4.15.3)
|
|
21
20
|
Description-Content-Type: text/markdown
|
|
22
21
|
|
|
23
22
|
# Craft AI Python SDK
|
|
@@ -25,7 +24,7 @@ Description-Content-Type: text/markdown
|
|
|
25
24
|
This Python SDK lets you interact with Craft AI MLOps Platform.
|
|
26
25
|
|
|
27
26
|
## Installation
|
|
28
|
-
This project relies on **Python 3.
|
|
27
|
+
This project relies on **Python 3.10+**. Once a supported version of Python is installed, you can install `craft-ai-sdk` from PyPI with:
|
|
29
28
|
|
|
30
29
|
```console
|
|
31
30
|
pip install craft-ai-sdk
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
This Python SDK lets you interact with Craft AI MLOps Platform.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
|
-
This project relies on **Python 3.
|
|
6
|
+
This project relies on **Python 3.10+**. Once a supported version of Python is installed, you can install `craft-ai-sdk` from PyPI with:
|
|
7
7
|
|
|
8
8
|
```console
|
|
9
9
|
pip install craft-ai-sdk
|
|
@@ -474,6 +474,7 @@ def get_pipeline(
|
|
|
474
474
|
the pipeline.
|
|
475
475
|
"""
|
|
476
476
|
base_url = f"{sdk.base_environment_api_url}/pipelines/{pipeline_name}"
|
|
477
|
+
log_action(sdk, f'Get pipeline: "{pipeline_name}", "{wait_for_completion}".')
|
|
477
478
|
if wait_for_completion:
|
|
478
479
|
pipeline = wait_create_until_ready(
|
|
479
480
|
sdk,
|
|
@@ -487,6 +488,7 @@ def get_pipeline(
|
|
|
487
488
|
)
|
|
488
489
|
else:
|
|
489
490
|
pipeline = sdk._get(base_url)
|
|
491
|
+
log_action(sdk, "Get pipeline done.")
|
|
490
492
|
|
|
491
493
|
latest_execution = sdk._get(
|
|
492
494
|
f"{sdk.base_environment_api_url}/pipelines/{pipeline_name}/executions/latest"
|
|
@@ -143,7 +143,7 @@ class CraftAiSdk(BaseCraftAiSdk):
|
|
|
143
143
|
)
|
|
144
144
|
# Default timeout of proxy network components
|
|
145
145
|
_access_token_margin = timedelta(seconds=120)
|
|
146
|
-
_version = "0.
|
|
146
|
+
_version = "0.70.0" # Would be better to share it somewhere
|
|
147
147
|
|
|
148
148
|
def __init__(
|
|
149
149
|
self,
|
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
from craft_ai_sdk.exceptions import SdkException
|
|
2
|
+
from craft_ai_sdk.shared.logger import log_action
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
def wait_create_until_ready(sdk, name, get_func, timeout_s, start_time, get_log_func):
|
|
5
6
|
elapsed_time = sdk._get_time() - start_time
|
|
6
7
|
status = "creation_pending"
|
|
8
|
+
log_action(sdk, f'Start waiting for "{name}" to be created.')
|
|
7
9
|
while status == "creation_pending" and (
|
|
8
10
|
timeout_s is None or elapsed_time < timeout_s
|
|
9
11
|
):
|
|
10
12
|
created_obj = get_func(sdk, name)
|
|
11
13
|
status = created_obj.get("creation_info", {}).get("status", None)
|
|
12
14
|
elapsed_time = sdk._get_time() - start_time
|
|
15
|
+
log_action(
|
|
16
|
+
sdk,
|
|
17
|
+
f'Still waiting for "{name}" to be created, \
|
|
18
|
+
status="{status}", elapsed time={elapsed_time}s.',
|
|
19
|
+
)
|
|
20
|
+
log_action(sdk, f'End waiting for "{name}" to be created, status="{status}".')
|
|
13
21
|
|
|
14
22
|
if status == "creation_failed":
|
|
15
23
|
raise SdkException(
|
|
Binary file
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
[
|
|
1
|
+
[project]
|
|
2
2
|
name = "craft-ai-sdk"
|
|
3
|
-
version = "0.68.3rc1"
|
|
4
3
|
description = "Craft AI MLOps platform SDK"
|
|
5
|
-
|
|
6
|
-
authors = ["Craft AI <contact@craft.ai>"]
|
|
4
|
+
authors = [{name = "Craft AI", email = "contact@craft.ai"}]
|
|
7
5
|
readme = "README.md"
|
|
8
6
|
homepage = "https://www.craft.ai/"
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
license = "Apache-2.0"
|
|
8
|
+
version = "0.70.0"
|
|
9
|
+
requires-python = ">=3.10"
|
|
10
|
+
dependencies = [
|
|
11
|
+
"requests >= 2.32.4",
|
|
12
|
+
"pyjwt >= 2.4.0",
|
|
13
|
+
"StrEnum >= 0.4.9",
|
|
14
|
+
"weaviate-client >= 4.15.3",
|
|
15
|
+
]
|
|
11
16
|
|
|
12
|
-
[
|
|
17
|
+
[project.scripts]
|
|
13
18
|
lint = "scripts.scripts:lint"
|
|
14
19
|
lintfix = "scripts.scripts:lintfix"
|
|
15
20
|
format = "scripts.scripts:format"
|
|
@@ -22,33 +27,37 @@ set-version = "scripts.scripts:set_version"
|
|
|
22
27
|
pdfdoc = "scripts.scripts:generate_docs_in_pdf"
|
|
23
28
|
rstdoc = "scripts.scripts:generate_docs_in_rst"
|
|
24
29
|
|
|
25
|
-
[
|
|
26
|
-
|
|
30
|
+
[dependency-groups]
|
|
31
|
+
dev = [
|
|
32
|
+
"ipython < 8.31", # >= 8.31.0 dropped support for python 3.10
|
|
33
|
+
"ipykernel >= 7.1.0",
|
|
34
|
+
"pylint >= 4.0.3",
|
|
35
|
+
"python-dotenv >= 1.2.1",
|
|
36
|
+
"pytest >= 9.0.1",
|
|
37
|
+
"pytest-asyncio >= 1.3.0",
|
|
38
|
+
"requests-mock[fixture] >= 1.12.1",
|
|
39
|
+
"pytest-watch >= 4.2.0",
|
|
40
|
+
"pyarrow >= 22.0.0",
|
|
41
|
+
"pandas >= 2.3.3",
|
|
42
|
+
"ruff >= 0.14.6",
|
|
43
|
+
]
|
|
44
|
+
docs = [
|
|
45
|
+
"doc8 >= 2.0.0",
|
|
46
|
+
"Sphinx < 8.2.0", # >= 8.2.0 dropped support for python 3.10
|
|
47
|
+
"sphinxcontrib-restbuilder >= 0.3",
|
|
48
|
+
]
|
|
27
49
|
|
|
28
|
-
[tool.poetry
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
weaviate-client = "^4.10.4"
|
|
50
|
+
[tool.poetry]
|
|
51
|
+
version = "0.70.0"
|
|
52
|
+
packages = [{ include = "craft_ai_sdk" }]
|
|
53
|
+
include = ["documentation.pdf"]
|
|
54
|
+
requires-poetry = ">=2.2.1"
|
|
34
55
|
|
|
35
|
-
[tool.poetry.group.
|
|
36
|
-
|
|
37
|
-
ipykernel = "^6.29.5"
|
|
38
|
-
pylint = "^3.3.7"
|
|
39
|
-
python-dotenv = "^1.0.1"
|
|
40
|
-
pytest = "^8.3.4"
|
|
41
|
-
pytest-asyncio = "^1.2.0"
|
|
42
|
-
requests-mock = { extras = ["fixture"], version = "^1.9.3" }
|
|
43
|
-
pytest-watch = "^4.2.0"
|
|
44
|
-
pyarrow = "^19.0.1"
|
|
45
|
-
pandas = "^2.2.3"
|
|
46
|
-
ruff = "^0.12.2"
|
|
56
|
+
[tool.poetry.group.docs]
|
|
57
|
+
optional = true
|
|
47
58
|
|
|
48
|
-
[tool.
|
|
49
|
-
|
|
50
|
-
Sphinx = "^5.0.1"
|
|
51
|
-
sphinxcontrib-restbuilder = "^0.3"
|
|
59
|
+
[tool.pytest.ini_options]
|
|
60
|
+
filterwarnings = ["ignore::UserWarning"]
|
|
52
61
|
|
|
53
62
|
[tool.ruff.lint]
|
|
54
63
|
extend-select = ["B", "C", "E", "F", "I", "T", "W"]
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/request_response_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|