relaxai 0.5.2__tar.gz → 0.5.4__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.
Potentially problematic release.
This version of relaxai might be problematic. Click here for more details.
- relaxai-0.5.4/.release-please-manifest.json +3 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/CHANGELOG.md +21 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/PKG-INFO +2 -2
- {relaxai-0.5.2 → relaxai-0.5.4}/pyproject.toml +2 -2
- {relaxai-0.5.2 → relaxai-0.5.4}/requirements-dev.lock +1 -1
- {relaxai-0.5.2 → relaxai-0.5.4}/requirements.lock +1 -1
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_streaming.py +4 -6
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_version.py +1 -1
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/resources/deep_research.py +6 -1
- relaxai-0.5.2/.release-please-manifest.json +0 -3
- {relaxai-0.5.2 → relaxai-0.5.4}/.gitignore +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/CONTRIBUTING.md +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/LICENSE +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/README.md +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/SECURITY.md +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/api.md +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/bin/check-release-environment +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/bin/publish-pypi +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/examples/.keep +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/noxfile.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/release-please-config.json +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/__init__.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_base_client.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_client.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_compat.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_constants.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_exceptions.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_files.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_models.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_qs.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_resource.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_response.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_types.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_utils/__init__.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_utils/_compat.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_utils/_datetime_parse.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_utils/_logs.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_utils/_proxy.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_utils/_reflection.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_utils/_resources_proxy.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_utils/_streams.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_utils/_sync.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_utils/_transform.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_utils/_typing.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/_utils/_utils.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/lib/.keep +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/py.typed +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/resources/__init__.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/resources/chat.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/resources/embeddings.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/resources/models.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/resources/tools.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/__init__.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/chat_completion_message.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/chat_completion_message_param.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/chat_completion_response.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/chat_create_completion_params.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/content_filter_results.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/deep_research_create_params.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/deepresearch_response.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/embedding_create_embedding_params.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/embedding_response.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/function_call.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/function_call_param.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/function_definition_param.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/health_response.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/model.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/model_list.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/shared/__init__.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/shared/openai_completion_tokens_details.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/shared/openai_prompt_tokens_details.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/shared/openai_usage.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/stream_options_param.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/tool_execute_code_params.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/tool_response.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/__init__.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/api_resources/__init__.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/api_resources/test_chat.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/api_resources/test_client.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/api_resources/test_deep_research.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/api_resources/test_embeddings.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/api_resources/test_models.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/api_resources/test_tools.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/conftest.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/sample_file.txt +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/test_client.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/test_deepcopy.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/test_extract_files.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/test_files.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/test_models.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/test_qs.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/test_required_args.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/test_response.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/test_streaming.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/test_transform.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/test_utils/test_datetime_parse.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/test_utils/test_proxy.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/test_utils/test_typing.py +0 -0
- {relaxai-0.5.2 → relaxai-0.5.4}/tests/utils.py +0 -0
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.4 (2025-10-30)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.5.3...v0.5.4](https://github.com/relax-ai/python-sdk/compare/v0.5.3...v0.5.4)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* **client:** close streams without requiring full consumption ([f1585d4](https://github.com/relax-ai/python-sdk/commit/f1585d485b103ca4729480ef8ff70869dc2023fa))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Chores
|
|
13
|
+
|
|
14
|
+
* bump `httpx-aiohttp` version to 0.1.9 ([aa4e07a](https://github.com/relax-ai/python-sdk/commit/aa4e07a80e794bd468441a9a74b49db95fa6aa48))
|
|
15
|
+
|
|
16
|
+
## 0.5.3 (2025-10-15)
|
|
17
|
+
|
|
18
|
+
Full Changelog: [v0.5.2...v0.5.3](https://github.com/relax-ai/python-sdk/compare/v0.5.2...v0.5.3)
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **api:** add timeout to deepresearch ([3da40a5](https://github.com/relax-ai/python-sdk/commit/3da40a5123bdd6608b0510a3d0e94e5356b2e5fa))
|
|
23
|
+
|
|
3
24
|
## 0.5.2 (2025-10-15)
|
|
4
25
|
|
|
5
26
|
Full Changelog: [v0.5.1...v0.5.2](https://github.com/relax-ai/python-sdk/compare/v0.5.1...v0.5.2)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: relaxai
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.4
|
|
4
4
|
Summary: The official Python library for the relaxai API
|
|
5
5
|
Project-URL: Homepage, https://github.com/relax-ai/python-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/relax-ai/python-sdk
|
|
@@ -30,7 +30,7 @@ Requires-Dist: sniffio
|
|
|
30
30
|
Requires-Dist: typing-extensions<5,>=4.10
|
|
31
31
|
Provides-Extra: aiohttp
|
|
32
32
|
Requires-Dist: aiohttp; extra == 'aiohttp'
|
|
33
|
-
Requires-Dist: httpx-aiohttp>=0.1.
|
|
33
|
+
Requires-Dist: httpx-aiohttp>=0.1.9; extra == 'aiohttp'
|
|
34
34
|
Description-Content-Type: text/markdown
|
|
35
35
|
|
|
36
36
|
# Relaxai Python API library
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "relaxai"
|
|
3
|
-
version = "0.5.
|
|
3
|
+
version = "0.5.4"
|
|
4
4
|
description = "The official Python library for the relaxai API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -39,7 +39,7 @@ Homepage = "https://github.com/relax-ai/python-sdk"
|
|
|
39
39
|
Repository = "https://github.com/relax-ai/python-sdk"
|
|
40
40
|
|
|
41
41
|
[project.optional-dependencies]
|
|
42
|
-
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.
|
|
42
|
+
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"]
|
|
43
43
|
|
|
44
44
|
[tool.rye]
|
|
45
45
|
managed = true
|
|
@@ -57,9 +57,8 @@ class Stream(Generic[_T]):
|
|
|
57
57
|
for sse in iterator:
|
|
58
58
|
yield process_data(data=sse.json(), cast_to=cast_to, response=response)
|
|
59
59
|
|
|
60
|
-
#
|
|
61
|
-
|
|
62
|
-
...
|
|
60
|
+
# As we might not fully consume the response stream, we need to close it explicitly
|
|
61
|
+
response.close()
|
|
63
62
|
|
|
64
63
|
def __enter__(self) -> Self:
|
|
65
64
|
return self
|
|
@@ -121,9 +120,8 @@ class AsyncStream(Generic[_T]):
|
|
|
121
120
|
async for sse in iterator:
|
|
122
121
|
yield process_data(data=sse.json(), cast_to=cast_to, response=response)
|
|
123
122
|
|
|
124
|
-
#
|
|
125
|
-
|
|
126
|
-
...
|
|
123
|
+
# As we might not fully consume the response stream, we need to close it explicitly
|
|
124
|
+
await response.aclose()
|
|
127
125
|
|
|
128
126
|
async def __aenter__(self) -> Self:
|
|
129
127
|
return self
|
|
@@ -8,7 +8,7 @@ import httpx
|
|
|
8
8
|
|
|
9
9
|
from ..types import deep_research_create_params
|
|
10
10
|
from .._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
|
|
11
|
-
from .._utils import maybe_transform, async_maybe_transform
|
|
11
|
+
from .._utils import is_given, maybe_transform, async_maybe_transform
|
|
12
12
|
from .._compat import cached_property
|
|
13
13
|
from .._resource import SyncAPIResource, AsyncAPIResource
|
|
14
14
|
from .._response import (
|
|
@@ -17,6 +17,7 @@ from .._response import (
|
|
|
17
17
|
async_to_raw_response_wrapper,
|
|
18
18
|
async_to_streamed_response_wrapper,
|
|
19
19
|
)
|
|
20
|
+
from .._constants import DEFAULT_TIMEOUT
|
|
20
21
|
from .._base_client import make_request_options
|
|
21
22
|
from ..types.stream_options_param import StreamOptionsParam
|
|
22
23
|
from ..types.deepresearch_response import DeepresearchResponse
|
|
@@ -78,6 +79,8 @@ class DeepResearchResource(SyncAPIResource):
|
|
|
78
79
|
|
|
79
80
|
timeout: Override the client-level default timeout for this request, in seconds
|
|
80
81
|
"""
|
|
82
|
+
if not is_given(timeout) and self._client.timeout == DEFAULT_TIMEOUT:
|
|
83
|
+
timeout = 600
|
|
81
84
|
return self._post(
|
|
82
85
|
"/v1/deep-research",
|
|
83
86
|
body=maybe_transform(
|
|
@@ -156,6 +159,8 @@ class AsyncDeepResearchResource(AsyncAPIResource):
|
|
|
156
159
|
|
|
157
160
|
timeout: Override the client-level default timeout for this request, in seconds
|
|
158
161
|
"""
|
|
162
|
+
if not is_given(timeout) and self._client.timeout == DEFAULT_TIMEOUT:
|
|
163
|
+
timeout = 600
|
|
159
164
|
return await self._post(
|
|
160
165
|
"/v1/deep-research",
|
|
161
166
|
body=await async_maybe_transform(
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
{relaxai-0.5.2 → relaxai-0.5.4}/src/relaxai/types/shared/openai_completion_tokens_details.py
RENAMED
|
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
|
|
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
|