vellum-ai 1.1.0__py3-none-any.whl → 1.1.2__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.
Files changed (76) hide show
  1. vellum/client/README.md +0 -55
  2. vellum/client/__init__.py +159 -873
  3. vellum/client/core/__init__.py +3 -0
  4. vellum/client/core/client_wrapper.py +2 -2
  5. vellum/client/core/http_response.py +47 -0
  6. vellum/client/core/pydantic_utilities.py +10 -3
  7. vellum/client/raw_client.py +1561 -0
  8. vellum/client/reference.md +20 -693
  9. vellum/client/resources/ad_hoc/client.py +55 -161
  10. vellum/client/resources/ad_hoc/raw_client.py +278 -0
  11. vellum/client/resources/container_images/client.py +62 -172
  12. vellum/client/resources/container_images/raw_client.py +400 -0
  13. vellum/client/resources/deployments/client.py +112 -437
  14. vellum/client/resources/deployments/raw_client.py +995 -0
  15. vellum/client/resources/document_indexes/client.py +108 -317
  16. vellum/client/resources/document_indexes/raw_client.py +847 -0
  17. vellum/client/resources/documents/client.py +88 -285
  18. vellum/client/resources/documents/raw_client.py +655 -0
  19. vellum/client/resources/folder_entities/client.py +54 -92
  20. vellum/client/resources/folder_entities/raw_client.py +277 -0
  21. vellum/client/resources/metric_definitions/client.py +48 -95
  22. vellum/client/resources/metric_definitions/raw_client.py +225 -0
  23. vellum/client/resources/ml_models/client.py +36 -40
  24. vellum/client/resources/ml_models/raw_client.py +103 -0
  25. vellum/client/resources/organizations/client.py +34 -39
  26. vellum/client/resources/organizations/raw_client.py +96 -0
  27. vellum/client/resources/prompts/client.py +50 -193
  28. vellum/client/resources/prompts/raw_client.py +346 -0
  29. vellum/client/resources/sandboxes/client.py +68 -141
  30. vellum/client/resources/sandboxes/raw_client.py +393 -0
  31. vellum/client/resources/test_suite_runs/client.py +58 -141
  32. vellum/client/resources/test_suite_runs/raw_client.py +355 -0
  33. vellum/client/resources/test_suites/client.py +73 -141
  34. vellum/client/resources/test_suites/raw_client.py +379 -0
  35. vellum/client/resources/workflow_deployments/client.py +118 -362
  36. vellum/client/resources/workflow_deployments/raw_client.py +931 -0
  37. vellum/client/resources/workflow_executions/client.py +36 -40
  38. vellum/client/resources/workflow_executions/raw_client.py +97 -0
  39. vellum/client/resources/workflow_sandboxes/client.py +60 -108
  40. vellum/client/resources/workflow_sandboxes/raw_client.py +300 -0
  41. vellum/client/resources/workflows/client.py +68 -133
  42. vellum/client/resources/workflows/raw_client.py +307 -0
  43. vellum/client/resources/workspace_secrets/client.py +46 -90
  44. vellum/client/resources/workspace_secrets/raw_client.py +220 -0
  45. vellum/client/resources/workspaces/client.py +34 -39
  46. vellum/client/resources/workspaces/raw_client.py +96 -0
  47. vellum/core/http_response.py +3 -0
  48. vellum/raw_client.py +3 -0
  49. vellum/resources/ad_hoc/raw_client.py +3 -0
  50. vellum/resources/container_images/raw_client.py +3 -0
  51. vellum/resources/deployments/raw_client.py +3 -0
  52. vellum/resources/document_indexes/raw_client.py +3 -0
  53. vellum/resources/documents/raw_client.py +3 -0
  54. vellum/resources/folder_entities/raw_client.py +3 -0
  55. vellum/resources/metric_definitions/raw_client.py +3 -0
  56. vellum/resources/ml_models/raw_client.py +3 -0
  57. vellum/resources/organizations/raw_client.py +3 -0
  58. vellum/resources/prompts/raw_client.py +3 -0
  59. vellum/resources/sandboxes/raw_client.py +3 -0
  60. vellum/resources/test_suite_runs/raw_client.py +3 -0
  61. vellum/resources/test_suites/raw_client.py +3 -0
  62. vellum/resources/workflow_deployments/raw_client.py +3 -0
  63. vellum/resources/workflow_executions/raw_client.py +3 -0
  64. vellum/resources/workflow_sandboxes/raw_client.py +3 -0
  65. vellum/resources/workflows/raw_client.py +3 -0
  66. vellum/resources/workspace_secrets/raw_client.py +3 -0
  67. vellum/resources/workspaces/raw_client.py +3 -0
  68. {vellum_ai-1.1.0.dist-info → vellum_ai-1.1.2.dist-info}/METADATA +1 -1
  69. {vellum_ai-1.1.0.dist-info → vellum_ai-1.1.2.dist-info}/RECORD +76 -33
  70. vellum_ee/workflows/display/exceptions.py +7 -0
  71. vellum_ee/workflows/display/nodes/vellum/code_execution_node.py +2 -1
  72. vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py +53 -2
  73. vellum_ee/workflows/display/workflows/base_workflow_display.py +2 -1
  74. {vellum_ai-1.1.0.dist-info → vellum_ai-1.1.2.dist-info}/LICENSE +0 -0
  75. {vellum_ai-1.1.0.dist-info → vellum_ai-1.1.2.dist-info}/WHEEL +0 -0
  76. {vellum_ai-1.1.0.dist-info → vellum_ai-1.1.2.dist-info}/entry_points.txt +0 -0
@@ -5,6 +5,7 @@ from .client_wrapper import AsyncClientWrapper, BaseClientWrapper, SyncClientWra
5
5
  from .datetime_utils import serialize_datetime
6
6
  from .file import File, convert_file_dict_to_httpx_tuples, with_content_type
7
7
  from .http_client import AsyncHttpClient, HttpClient
8
+ from .http_response import AsyncHttpResponse, HttpResponse
8
9
  from .jsonable_encoder import jsonable_encoder
9
10
  from .pydantic_utilities import (
10
11
  IS_PYDANTIC_V2,
@@ -24,10 +25,12 @@ __all__ = [
24
25
  "ApiError",
25
26
  "AsyncClientWrapper",
26
27
  "AsyncHttpClient",
28
+ "AsyncHttpResponse",
27
29
  "BaseClientWrapper",
28
30
  "FieldMetadata",
29
31
  "File",
30
32
  "HttpClient",
33
+ "HttpResponse",
31
34
  "IS_PYDANTIC_V2",
32
35
  "RequestOptions",
33
36
  "SyncClientWrapper",
@@ -25,10 +25,10 @@ class BaseClientWrapper:
25
25
 
26
26
  def get_headers(self) -> typing.Dict[str, str]:
27
27
  headers: typing.Dict[str, str] = {
28
- "User-Agent": "vellum-ai/1.1.0",
28
+ "User-Agent": "vellum-ai/1.1.2",
29
29
  "X-Fern-Language": "Python",
30
30
  "X-Fern-SDK-Name": "vellum-ai",
31
- "X-Fern-SDK-Version": "1.1.0",
31
+ "X-Fern-SDK-Version": "1.1.2",
32
32
  }
33
33
  if self._api_version is not None:
34
34
  headers["X-API-Version"] = self._api_version
@@ -0,0 +1,47 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from typing import Dict, Generic, TypeVar
4
+
5
+ import httpx
6
+
7
+ T = TypeVar("T")
8
+
9
+
10
+ class HttpResponse(Generic[T]):
11
+ _response: httpx.Response
12
+ _data: T
13
+
14
+ def __init__(self, response: httpx.Response, data: T):
15
+ self._response = response
16
+ self._data = data
17
+
18
+ @property
19
+ def headers(self) -> Dict[str, str]:
20
+ return dict(self._response.headers)
21
+
22
+ @property
23
+ def data(self) -> T:
24
+ return self._data
25
+
26
+ def close(self) -> None:
27
+ self._response.close()
28
+
29
+
30
+ class AsyncHttpResponse(Generic[T]):
31
+ _response: httpx.Response
32
+ _data: T
33
+
34
+ def __init__(self, response: httpx.Response, data: T):
35
+ self._response = response
36
+ self._data = data
37
+
38
+ @property
39
+ def headers(self) -> Dict[str, str]:
40
+ return dict(self._response.headers)
41
+
42
+ @property
43
+ def data(self) -> T:
44
+ return self._data
45
+
46
+ async def close(self) -> None:
47
+ await self._response.aclose()
@@ -55,12 +55,19 @@ else:
55
55
 
56
56
  T = typing.TypeVar("T")
57
57
  Model = typing.TypeVar("Model", bound=pydantic.BaseModel)
58
+ type_adapter_cache: typing.Dict[typing.Type, pydantic.TypeAdapter] = {}
59
+ annotated_types = {"ExecuteApiResponse"}
58
60
 
59
61
 
60
- def parse_obj_as(type_: typing.Type[T], object_: typing.Any) -> T:
61
- dealiased_object = convert_and_respect_annotation_metadata(object_=object_, annotation=type_, direction="read")
62
+ def parse_obj_as(type_: typing.Type[T], object_: typing.Any, convert_metadata: bool = False) -> T:
63
+ if hasattr(type_, "__name__") and type_.__name__ in annotated_types:
64
+ dealiased_object = convert_and_respect_annotation_metadata(object_=object_, annotation=type_, direction="read")
65
+ else:
66
+ dealiased_object = object_
62
67
  if IS_PYDANTIC_V2:
63
- adapter = pydantic.TypeAdapter(type_) # type: ignore # Pydantic v2
68
+ adapter = pydantic.TypeAdapter(type_) if type_ not in type_adapter_cache else type_adapter_cache[type_] # type: ignore # Pydantic v2
69
+ if type_ not in type_adapter_cache:
70
+ type_adapter_cache[type_] = adapter
64
71
  return adapter.validate_python(dealiased_object)
65
72
  else:
66
73
  return pydantic.parse_obj_as(type_, dealiased_object)