Skip to content

Commit 4ae902c

Browse files
release: 0.1.0-alpha.14 (#150)
* chore(tests): improve ci test names * Move the files upload into files resource. * Format * Fix circular import * Add async upload support * Remove top level exports of UploadManager, DownloadManager * feat(api): move upload to be a method of existing files resource * feat(api): move upload to be a method of existing files resource * fix(api): correct file reroute handling, error message * chore(docs): remove reference to rye shell * chore(docs): remove unnecessary param examples * feat(client): add follow_redirects request option * feat(api): api update * feat(api): update spec / config to remove remaining codegen warnings * codegen metadata * codegen metadata * chore(tests): run tests in parallel * fix(client): correctly parse binary response | stream * feat(api): api update * chore(tests): add tests for httpx client instantiation & proxies * chore(internal): update conftest.py * chore(ci): enable for pull requests * chore(readme): update badges * fix(tests): fix: tests which call HTTP endpoints directly with the example parameters * docs(client): fix httpx.Timeout documentation reference * chore: change publish docs url * feat(client): add support for aiohttp * feat(api): add batch api to config * chore(tests): skip some failing tests on the latest python versions * chore(api): re-enable audio unit tests Now that codegen issue is fixed, reenable the audio tests. * release: 0.1.0-alpha.14 --------- Co-authored-by: Justin Driemeyer <[email protected]> Co-authored-by: jdreamerz <[email protected]> Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
1 parent b9701a0 commit 4ae902c

File tree

7 files changed

+15
-20
lines changed

7 files changed

+15
-20
lines changed

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.1.0-alpha.13"
2+
".": "0.1.0-alpha.14"
33
}

.stats.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 33
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/togetherai%2Ftogetherai-9ca24c17ccf9b0b4c2d27c09881dc74bf4cb44efc7a5ccb7d54fa15caee095d1.yml
33
openapi_spec_hash: 306c08678a0677f1deb1d35def6f8713
4-
config_hash: fa59b4c1ab0a2e74aa855e7227b10c7d
4+
config_hash: ae07f8cefe84a8a01ae2d0c8ddc2ef32

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
## 0.1.0-alpha.14 (2025-06-23)
4+
5+
Full Changelog: [v0.1.0-alpha.13...v0.1.0-alpha.14](https://github.com/togethercomputer/together-py/compare/v0.1.0-alpha.13...v0.1.0-alpha.14)
6+
7+
### Chores
8+
9+
* **api:** re-enable audio unit tests ([02c8f9a](https://github.com/togethercomputer/together-py/commit/02c8f9ad850aed5aae7110ab37d33377aead1c47))
10+
* **tests:** skip some failing tests on the latest python versions ([49a71b3](https://github.com/togethercomputer/together-py/commit/49a71b3b35ffaef63bc8100faba69d87d517cedb))
11+
312
## 0.1.0-alpha.13 (2025-06-20)
413

514
Full Changelog: [v0.1.0-alpha.12...v0.1.0-alpha.13](https://github.com/togethercomputer/together-py/compare/v0.1.0-alpha.12...v0.1.0-alpha.13)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "together"
3-
version = "0.1.0-alpha.13"
3+
version = "0.1.0-alpha.14"
44
description = "The official Python library for the together API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

src/together/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
__title__ = "together"
4-
__version__ = "0.1.0-alpha.13" # x-release-please-version
4+
__version__ = "0.1.0-alpha.14" # x-release-please-version

tests/api_resources/test_audio.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
class TestAudio:
2424
parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
2525

26-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
2726
@parametrize
2827
@pytest.mark.respx(base_url=base_url)
2928
def test_method_create_overload_1(self, client: Together, respx_mock: MockRouter) -> None:
@@ -38,7 +37,6 @@ def test_method_create_overload_1(self, client: Together, respx_mock: MockRouter
3837
assert cast(Any, audio.is_closed) is True
3938
assert isinstance(audio, BinaryAPIResponse)
4039

41-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
4240
@parametrize
4341
@pytest.mark.respx(base_url=base_url)
4442
def test_method_create_with_all_params_overload_1(self, client: Together, respx_mock: MockRouter) -> None:
@@ -58,7 +56,6 @@ def test_method_create_with_all_params_overload_1(self, client: Together, respx_
5856
assert cast(Any, audio.is_closed) is True
5957
assert isinstance(audio, BinaryAPIResponse)
6058

61-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
6259
@parametrize
6360
@pytest.mark.respx(base_url=base_url)
6461
def test_raw_response_create_overload_1(self, client: Together, respx_mock: MockRouter) -> None:
@@ -75,7 +72,6 @@ def test_raw_response_create_overload_1(self, client: Together, respx_mock: Mock
7572
assert audio.json() == {"foo": "bar"}
7673
assert isinstance(audio, BinaryAPIResponse)
7774

78-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
7975
@parametrize
8076
@pytest.mark.respx(base_url=base_url)
8177
def test_streaming_response_create_overload_1(self, client: Together, respx_mock: MockRouter) -> None:
@@ -94,7 +90,6 @@ def test_streaming_response_create_overload_1(self, client: Together, respx_mock
9490

9591
assert cast(Any, audio.is_closed) is True
9692

97-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
9893
@parametrize
9994
@pytest.mark.respx(base_url=base_url)
10095
def test_method_create_overload_2(self, client: Together, respx_mock: MockRouter) -> None:
@@ -107,7 +102,6 @@ def test_method_create_overload_2(self, client: Together, respx_mock: MockRouter
107102
)
108103
audio_stream.response.close()
109104

110-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
111105
@parametrize
112106
@pytest.mark.respx(base_url=base_url)
113107
def test_method_create_with_all_params_overload_2(self, client: Together, respx_mock: MockRouter) -> None:
@@ -124,7 +118,6 @@ def test_method_create_with_all_params_overload_2(self, client: Together, respx_
124118
)
125119
audio_stream.response.close()
126120

127-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
128121
@parametrize
129122
@pytest.mark.respx(base_url=base_url)
130123
def test_raw_response_create_overload_2(self, client: Together, respx_mock: MockRouter) -> None:
@@ -141,7 +134,6 @@ def test_raw_response_create_overload_2(self, client: Together, respx_mock: Mock
141134
assert audio_stream.json() == {"foo": "bar"}
142135
assert isinstance(audio_stream, BinaryAPIResponse)
143136

144-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
145137
@parametrize
146138
@pytest.mark.respx(base_url=base_url)
147139
def test_streaming_response_create_overload_2(self, client: Together, respx_mock: MockRouter) -> None:
@@ -167,7 +159,6 @@ class TestAsyncAudio:
167159
"async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
168160
)
169161

170-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
171162
@parametrize
172163
@pytest.mark.respx(base_url=base_url)
173164
async def test_method_create_overload_1(self, async_client: AsyncTogether, respx_mock: MockRouter) -> None:
@@ -182,7 +173,6 @@ async def test_method_create_overload_1(self, async_client: AsyncTogether, respx
182173
assert cast(Any, audio.is_closed) is True
183174
assert isinstance(audio, AsyncBinaryAPIResponse)
184175

185-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
186176
@parametrize
187177
@pytest.mark.respx(base_url=base_url)
188178
async def test_method_create_with_all_params_overload_1(
@@ -204,7 +194,6 @@ async def test_method_create_with_all_params_overload_1(
204194
assert cast(Any, audio.is_closed) is True
205195
assert isinstance(audio, AsyncBinaryAPIResponse)
206196

207-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
208197
@parametrize
209198
@pytest.mark.respx(base_url=base_url)
210199
async def test_raw_response_create_overload_1(self, async_client: AsyncTogether, respx_mock: MockRouter) -> None:
@@ -221,7 +210,6 @@ async def test_raw_response_create_overload_1(self, async_client: AsyncTogether,
221210
assert await audio.json() == {"foo": "bar"}
222211
assert isinstance(audio, AsyncBinaryAPIResponse)
223212

224-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
225213
@parametrize
226214
@pytest.mark.respx(base_url=base_url)
227215
async def test_streaming_response_create_overload_1(
@@ -242,7 +230,6 @@ async def test_streaming_response_create_overload_1(
242230

243231
assert cast(Any, audio.is_closed) is True
244232

245-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
246233
@parametrize
247234
@pytest.mark.respx(base_url=base_url)
248235
async def test_method_create_overload_2(self, async_client: AsyncTogether, respx_mock: MockRouter) -> None:
@@ -255,7 +242,6 @@ async def test_method_create_overload_2(self, async_client: AsyncTogether, respx
255242
)
256243
await audio_stream.response.aclose()
257244

258-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
259245
@parametrize
260246
@pytest.mark.respx(base_url=base_url)
261247
async def test_method_create_with_all_params_overload_2(
@@ -274,7 +260,6 @@ async def test_method_create_with_all_params_overload_2(
274260
)
275261
await audio_stream.response.aclose()
276262

277-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
278263
@parametrize
279264
@pytest.mark.respx(base_url=base_url)
280265
async def test_raw_response_create_overload_2(self, async_client: AsyncTogether, respx_mock: MockRouter) -> None:
@@ -291,7 +276,6 @@ async def test_raw_response_create_overload_2(self, async_client: AsyncTogether,
291276
assert await audio_stream.json() == {"foo": "bar"}
292277
assert isinstance(audio_stream, AsyncBinaryAPIResponse)
293278

294-
@pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response")
295279
@parametrize
296280
@pytest.mark.respx(base_url=base_url)
297281
async def test_streaming_response_create_overload_2(

tests/test_client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ def test_copy_signature(self) -> None:
192192
copy_param = copy_signature.parameters.get(name)
193193
assert copy_param is not None, f"copy() signature is missing the {name} param"
194194

195+
@pytest.mark.skipif(sys.version_info >= (3, 10), reason="fails because of a memory leak that started from 3.12")
195196
def test_copy_build_request(self) -> None:
196197
options = FinalRequestOptions(method="get", url="/foo")
197198

@@ -1045,6 +1046,7 @@ def test_copy_signature(self) -> None:
10451046
copy_param = copy_signature.parameters.get(name)
10461047
assert copy_param is not None, f"copy() signature is missing the {name} param"
10471048

1049+
@pytest.mark.skipif(sys.version_info >= (3, 10), reason="fails because of a memory leak that started from 3.12")
10481050
def test_copy_build_request(self) -> None:
10491051
options = FinalRequestOptions(method="get", url="/foo")
10501052

0 commit comments

Comments
 (0)