diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 000572ec..b0699969 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0-alpha.13" + ".": "0.1.0-alpha.14" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index fcc638d2..f801d735 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 33 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/togetherai%2Ftogetherai-9ca24c17ccf9b0b4c2d27c09881dc74bf4cb44efc7a5ccb7d54fa15caee095d1.yml openapi_spec_hash: 306c08678a0677f1deb1d35def6f8713 -config_hash: fa59b4c1ab0a2e74aa855e7227b10c7d +config_hash: ae07f8cefe84a8a01ae2d0c8ddc2ef32 diff --git a/CHANGELOG.md b/CHANGELOG.md index 78685d07..4c4ba72b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.1.0-alpha.14 (2025-06-23) + +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) + +### Chores + +* **api:** re-enable audio unit tests ([02c8f9a](https://github.com/togethercomputer/together-py/commit/02c8f9ad850aed5aae7110ab37d33377aead1c47)) +* **tests:** skip some failing tests on the latest python versions ([49a71b3](https://github.com/togethercomputer/together-py/commit/49a71b3b35ffaef63bc8100faba69d87d517cedb)) + ## 0.1.0-alpha.13 (2025-06-20) 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) diff --git a/pyproject.toml b/pyproject.toml index a4dd32f6..29a58db5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "together" -version = "0.1.0-alpha.13" +version = "0.1.0-alpha.14" description = "The official Python library for the together API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/together/_version.py b/src/together/_version.py index 444bb44a..81a996aa 100644 --- a/src/together/_version.py +++ b/src/together/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "together" -__version__ = "0.1.0-alpha.13" # x-release-please-version +__version__ = "0.1.0-alpha.14" # x-release-please-version diff --git a/tests/api_resources/test_audio.py b/tests/api_resources/test_audio.py index 0e01c6a9..21a76ac0 100644 --- a/tests/api_resources/test_audio.py +++ b/tests/api_resources/test_audio.py @@ -23,7 +23,6 @@ class TestAudio: parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) 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 assert cast(Any, audio.is_closed) is True assert isinstance(audio, BinaryAPIResponse) - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) 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_ assert cast(Any, audio.is_closed) is True assert isinstance(audio, BinaryAPIResponse) - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) 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 assert audio.json() == {"foo": "bar"} assert isinstance(audio, BinaryAPIResponse) - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) 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 assert cast(Any, audio.is_closed) is True - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) 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 ) audio_stream.response.close() - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) 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_ ) audio_stream.response.close() - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) 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 assert audio_stream.json() == {"foo": "bar"} assert isinstance(audio_stream, BinaryAPIResponse) - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) def test_streaming_response_create_overload_2(self, client: Together, respx_mock: MockRouter) -> None: @@ -167,7 +159,6 @@ class TestAsyncAudio: "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] ) - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) 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 assert cast(Any, audio.is_closed) is True assert isinstance(audio, AsyncBinaryAPIResponse) - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) async def test_method_create_with_all_params_overload_1( @@ -204,7 +194,6 @@ async def test_method_create_with_all_params_overload_1( assert cast(Any, audio.is_closed) is True assert isinstance(audio, AsyncBinaryAPIResponse) - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) 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, assert await audio.json() == {"foo": "bar"} assert isinstance(audio, AsyncBinaryAPIResponse) - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) async def test_streaming_response_create_overload_1( @@ -242,7 +230,6 @@ async def test_streaming_response_create_overload_1( assert cast(Any, audio.is_closed) is True - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) 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 ) await audio_stream.response.aclose() - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) async def test_method_create_with_all_params_overload_2( @@ -274,7 +260,6 @@ async def test_method_create_with_all_params_overload_2( ) await audio_stream.response.aclose() - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) 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, assert await audio_stream.json() == {"foo": "bar"} assert isinstance(audio_stream, AsyncBinaryAPIResponse) - @pytest.mark.skip(reason="AttributeError: BinaryAPIResponse object has no attribute response") @parametrize @pytest.mark.respx(base_url=base_url) async def test_streaming_response_create_overload_2( diff --git a/tests/test_client.py b/tests/test_client.py index 4263206f..8f5dfaf5 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -192,6 +192,7 @@ def test_copy_signature(self) -> None: copy_param = copy_signature.parameters.get(name) assert copy_param is not None, f"copy() signature is missing the {name} param" + @pytest.mark.skipif(sys.version_info >= (3, 10), reason="fails because of a memory leak that started from 3.12") def test_copy_build_request(self) -> None: options = FinalRequestOptions(method="get", url="/foo") @@ -1045,6 +1046,7 @@ def test_copy_signature(self) -> None: copy_param = copy_signature.parameters.get(name) assert copy_param is not None, f"copy() signature is missing the {name} param" + @pytest.mark.skipif(sys.version_info >= (3, 10), reason="fails because of a memory leak that started from 3.12") def test_copy_build_request(self) -> None: options = FinalRequestOptions(method="get", url="/foo")