relaxai 0.5.3__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.

Files changed (99) hide show
  1. relaxai-0.5.4/.release-please-manifest.json +3 -0
  2. {relaxai-0.5.3 → relaxai-0.5.4}/CHANGELOG.md +13 -0
  3. {relaxai-0.5.3 → relaxai-0.5.4}/PKG-INFO +2 -2
  4. {relaxai-0.5.3 → relaxai-0.5.4}/pyproject.toml +2 -2
  5. {relaxai-0.5.3 → relaxai-0.5.4}/requirements-dev.lock +1 -1
  6. {relaxai-0.5.3 → relaxai-0.5.4}/requirements.lock +1 -1
  7. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_streaming.py +4 -6
  8. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_version.py +1 -1
  9. relaxai-0.5.3/.release-please-manifest.json +0 -3
  10. {relaxai-0.5.3 → relaxai-0.5.4}/.gitignore +0 -0
  11. {relaxai-0.5.3 → relaxai-0.5.4}/CONTRIBUTING.md +0 -0
  12. {relaxai-0.5.3 → relaxai-0.5.4}/LICENSE +0 -0
  13. {relaxai-0.5.3 → relaxai-0.5.4}/README.md +0 -0
  14. {relaxai-0.5.3 → relaxai-0.5.4}/SECURITY.md +0 -0
  15. {relaxai-0.5.3 → relaxai-0.5.4}/api.md +0 -0
  16. {relaxai-0.5.3 → relaxai-0.5.4}/bin/check-release-environment +0 -0
  17. {relaxai-0.5.3 → relaxai-0.5.4}/bin/publish-pypi +0 -0
  18. {relaxai-0.5.3 → relaxai-0.5.4}/examples/.keep +0 -0
  19. {relaxai-0.5.3 → relaxai-0.5.4}/noxfile.py +0 -0
  20. {relaxai-0.5.3 → relaxai-0.5.4}/release-please-config.json +0 -0
  21. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/__init__.py +0 -0
  22. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_base_client.py +0 -0
  23. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_client.py +0 -0
  24. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_compat.py +0 -0
  25. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_constants.py +0 -0
  26. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_exceptions.py +0 -0
  27. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_files.py +0 -0
  28. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_models.py +0 -0
  29. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_qs.py +0 -0
  30. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_resource.py +0 -0
  31. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_response.py +0 -0
  32. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_types.py +0 -0
  33. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_utils/__init__.py +0 -0
  34. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_utils/_compat.py +0 -0
  35. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_utils/_datetime_parse.py +0 -0
  36. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_utils/_logs.py +0 -0
  37. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_utils/_proxy.py +0 -0
  38. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_utils/_reflection.py +0 -0
  39. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_utils/_resources_proxy.py +0 -0
  40. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_utils/_streams.py +0 -0
  41. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_utils/_sync.py +0 -0
  42. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_utils/_transform.py +0 -0
  43. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_utils/_typing.py +0 -0
  44. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/_utils/_utils.py +0 -0
  45. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/lib/.keep +0 -0
  46. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/py.typed +0 -0
  47. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/resources/__init__.py +0 -0
  48. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/resources/chat.py +0 -0
  49. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/resources/deep_research.py +0 -0
  50. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/resources/embeddings.py +0 -0
  51. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/resources/models.py +0 -0
  52. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/resources/tools.py +0 -0
  53. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/__init__.py +0 -0
  54. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/chat_completion_message.py +0 -0
  55. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/chat_completion_message_param.py +0 -0
  56. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/chat_completion_response.py +0 -0
  57. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/chat_create_completion_params.py +0 -0
  58. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/content_filter_results.py +0 -0
  59. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/deep_research_create_params.py +0 -0
  60. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/deepresearch_response.py +0 -0
  61. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/embedding_create_embedding_params.py +0 -0
  62. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/embedding_response.py +0 -0
  63. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/function_call.py +0 -0
  64. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/function_call_param.py +0 -0
  65. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/function_definition_param.py +0 -0
  66. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/health_response.py +0 -0
  67. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/model.py +0 -0
  68. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/model_list.py +0 -0
  69. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/shared/__init__.py +0 -0
  70. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/shared/openai_completion_tokens_details.py +0 -0
  71. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/shared/openai_prompt_tokens_details.py +0 -0
  72. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/shared/openai_usage.py +0 -0
  73. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/stream_options_param.py +0 -0
  74. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/tool_execute_code_params.py +0 -0
  75. {relaxai-0.5.3 → relaxai-0.5.4}/src/relaxai/types/tool_response.py +0 -0
  76. {relaxai-0.5.3 → relaxai-0.5.4}/tests/__init__.py +0 -0
  77. {relaxai-0.5.3 → relaxai-0.5.4}/tests/api_resources/__init__.py +0 -0
  78. {relaxai-0.5.3 → relaxai-0.5.4}/tests/api_resources/test_chat.py +0 -0
  79. {relaxai-0.5.3 → relaxai-0.5.4}/tests/api_resources/test_client.py +0 -0
  80. {relaxai-0.5.3 → relaxai-0.5.4}/tests/api_resources/test_deep_research.py +0 -0
  81. {relaxai-0.5.3 → relaxai-0.5.4}/tests/api_resources/test_embeddings.py +0 -0
  82. {relaxai-0.5.3 → relaxai-0.5.4}/tests/api_resources/test_models.py +0 -0
  83. {relaxai-0.5.3 → relaxai-0.5.4}/tests/api_resources/test_tools.py +0 -0
  84. {relaxai-0.5.3 → relaxai-0.5.4}/tests/conftest.py +0 -0
  85. {relaxai-0.5.3 → relaxai-0.5.4}/tests/sample_file.txt +0 -0
  86. {relaxai-0.5.3 → relaxai-0.5.4}/tests/test_client.py +0 -0
  87. {relaxai-0.5.3 → relaxai-0.5.4}/tests/test_deepcopy.py +0 -0
  88. {relaxai-0.5.3 → relaxai-0.5.4}/tests/test_extract_files.py +0 -0
  89. {relaxai-0.5.3 → relaxai-0.5.4}/tests/test_files.py +0 -0
  90. {relaxai-0.5.3 → relaxai-0.5.4}/tests/test_models.py +0 -0
  91. {relaxai-0.5.3 → relaxai-0.5.4}/tests/test_qs.py +0 -0
  92. {relaxai-0.5.3 → relaxai-0.5.4}/tests/test_required_args.py +0 -0
  93. {relaxai-0.5.3 → relaxai-0.5.4}/tests/test_response.py +0 -0
  94. {relaxai-0.5.3 → relaxai-0.5.4}/tests/test_streaming.py +0 -0
  95. {relaxai-0.5.3 → relaxai-0.5.4}/tests/test_transform.py +0 -0
  96. {relaxai-0.5.3 → relaxai-0.5.4}/tests/test_utils/test_datetime_parse.py +0 -0
  97. {relaxai-0.5.3 → relaxai-0.5.4}/tests/test_utils/test_proxy.py +0 -0
  98. {relaxai-0.5.3 → relaxai-0.5.4}/tests/test_utils/test_typing.py +0 -0
  99. {relaxai-0.5.3 → relaxai-0.5.4}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.5.4"
3
+ }
@@ -1,5 +1,18 @@
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
+
3
16
  ## 0.5.3 (2025-10-15)
4
17
 
5
18
  Full Changelog: [v0.5.2...v0.5.3](https://github.com/relax-ai/python-sdk/compare/v0.5.2...v0.5.3)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: relaxai
3
- Version: 0.5.3
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.8; extra == 'aiohttp'
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"
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.8"]
42
+ aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"]
43
43
 
44
44
  [tool.rye]
45
45
  managed = true
@@ -56,7 +56,7 @@ httpx==0.28.1
56
56
  # via httpx-aiohttp
57
57
  # via relaxai
58
58
  # via respx
59
- httpx-aiohttp==0.1.8
59
+ httpx-aiohttp==0.1.9
60
60
  # via relaxai
61
61
  idna==3.4
62
62
  # via anyio
@@ -43,7 +43,7 @@ httpcore==1.0.9
43
43
  httpx==0.28.1
44
44
  # via httpx-aiohttp
45
45
  # via relaxai
46
- httpx-aiohttp==0.1.8
46
+ httpx-aiohttp==0.1.9
47
47
  # via relaxai
48
48
  idna==3.4
49
49
  # via anyio
@@ -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
- # Ensure the entire stream is consumed
61
- for _sse in iterator:
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
- # Ensure the entire stream is consumed
125
- async for _sse in iterator:
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
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "relaxai"
4
- __version__ = "0.5.3" # x-release-please-version
4
+ __version__ = "0.5.4" # x-release-please-version
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.5.3"
3
- }
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