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.
Files changed (35) hide show
  1. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/PKG-INFO +11 -12
  2. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/README.md +1 -1
  3. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/__init__.py +1 -1
  4. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/pipelines.py +2 -0
  5. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/sdk.py +1 -1
  6. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/helpers.py +8 -0
  7. craft_ai_sdk-0.70.0/documentation.pdf +0 -0
  8. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/pyproject.toml +40 -31
  9. craft_ai_sdk-0.68.3rc1/documentation.pdf +0 -0
  10. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/LICENSE +0 -0
  11. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/constants.py +0 -0
  12. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/data_store.py +0 -0
  13. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/deployments.py +0 -0
  14. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/endpoints.py +0 -0
  15. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/environment_variables.py +0 -0
  16. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/pipeline_executions.py +0 -0
  17. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/pipeline_metrics.py +0 -0
  18. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/pipeline_templates.py +0 -0
  19. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/resource_metrics.py +0 -0
  20. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/steps.py +0 -0
  21. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/users.py +0 -0
  22. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/core/vector_database.py +0 -0
  23. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/exceptions.py +0 -0
  24. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/io.py +0 -0
  25. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/authentication.py +0 -0
  26. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/environments.py +0 -0
  27. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/execution_context.py +0 -0
  28. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/logger.py +0 -0
  29. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/request_response_handler.py +0 -0
  30. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/types.py +0 -0
  31. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/shared/warnings.py +0 -0
  32. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/utils/__init__.py +0 -0
  33. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/utils/datetime_utils.py +0 -0
  34. {craft_ai_sdk-0.68.3rc1 → craft_ai_sdk-0.70.0}/craft_ai_sdk/utils/dict_utils.py +0 -0
  35. {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.3
1
+ Metadata-Version: 2.4
2
2
  Name: craft-ai-sdk
3
- Version: 0.68.3rc1
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,<4.0
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
- Requires-Dist: PyJWT (>=2.3.0,<3.0.0)
17
- Requires-Dist: StrEnum (>=0.4.9,<0.5.0)
18
- Requires-Dist: requests (>=2.27.1,<3.0.0)
19
- Requires-Dist: weaviate-client (>=4.10.4,<5.0.0)
20
- Project-URL: Homepage, https://www.craft.ai/
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.9+**. Once a supported version of Python is installed, you can install `craft-ai-sdk` from PyPI with:
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.9+**. Once a supported version of Python is installed, you can install `craft-ai-sdk` from PyPI with:
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
@@ -13,4 +13,4 @@ from .io import ( # noqa: F401
13
13
  )
14
14
  from .sdk import CraftAiSdk # noqa: F401
15
15
 
16
- __version__ = "0.68.3rc1"
16
+ __version__ = "0.70.0"
@@ -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.68.3rc1" # Would be better to share it somewhere
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
- [tool.poetry]
1
+ [project]
2
2
  name = "craft-ai-sdk"
3
- version = "0.68.3rc1"
4
3
  description = "Craft AI MLOps platform SDK"
5
- license = "Apache-2.0"
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
- packages = [{ include = "craft_ai_sdk" }]
10
- include = ["documentation.pdf"]
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
- [tool.poetry.scripts]
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
- [tool.pytest.ini_options]
26
- filterwarnings = ["ignore::UserWarning"]
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.dependencies]
29
- python = "^3.9"
30
- requests = "^2.27.1"
31
- PyJWT = "^2.3.0"
32
- StrEnum = "^0.4.9"
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.dev.dependencies]
36
- ipython = "^8.18.1"
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.poetry.group.docs.dependencies]
49
- doc8 = "^0.10.1"
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