diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 8ea07c9a..1b5dc400 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.38.0" + ".": "0.39.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index eb55da54..82ef3004 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 62 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-b091721a627d75feb8567f628f99405d5778b0b88e9cc09fc664dd8e97c6d720.yml -openapi_spec_hash: a23a2aecdcff5fa1d6c8cdc0df0bdfb7 -config_hash: c56a6c9375e7640ce70ff00420e8605a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mixedbread%2Fmixedbread-c53a9b02bf4bd345435a03b4178aed1b7c8ac04a2508f370b5361bf305a3f803.yml +openapi_spec_hash: f05a6df876280efad08ed2f0ab78d5fc +config_hash: 6fa04d08d4e1a3a45f562e37fab0ea71 diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ba2bfc7..e8f38812 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 0.39.0 (2025-11-07) + +Full Changelog: [v0.38.0...v0.39.0](https://github.com/mixedbread-ai/mixedbread-python/compare/v0.38.0...v0.39.0) + +### Features + +* **api:** api update ([ece68dd](https://github.com/mixedbread-ai/mixedbread-python/commit/ece68dd6350b58e8dac815213c918ad879c89ddd)) +* **api:** api update ([6ed00c6](https://github.com/mixedbread-ai/mixedbread-python/commit/6ed00c65da6477ba7bf453aae4a7e9f9cded6841)) +* **api:** update via SDK Studio ([2ca5086](https://github.com/mixedbread-ai/mixedbread-python/commit/2ca508619c2308981e7c1171f9f15637c35b77d4)) + ## 0.38.0 (2025-11-04) Full Changelog: [v0.37.0...v0.38.0](https://github.com/mixedbread-ai/mixedbread-python/compare/v0.37.0...v0.38.0) diff --git a/api.md b/api.md index 326815b5..4332059c 100644 --- a/api.md +++ b/api.md @@ -123,7 +123,7 @@ Methods: - client.stores.files.create(store_identifier, \*\*params) -> StoreFile - client.stores.files.retrieve(file_identifier, \*, store_identifier, \*\*params) -> StoreFile - client.stores.files.list(store_identifier, \*\*params) -> FileListResponse -- client.stores.files.delete(file_id, \*, store_identifier) -> FileDeleteResponse +- client.stores.files.delete(file_identifier, \*, store_identifier) -> FileDeleteResponse - client.stores.files.search(\*\*params) -> FileSearchResponse # Parsing diff --git a/pyproject.toml b/pyproject.toml index 37b16b5c..f2df0f6e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mixedbread" -version = "0.38.0" +version = "0.39.0" description = "The official Python library for the Mixedbread API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/mixedbread/_version.py b/src/mixedbread/_version.py index 07ad0132..d0ade071 100644 --- a/src/mixedbread/_version.py +++ b/src/mixedbread/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "mixedbread" -__version__ = "0.38.0" # x-release-please-version +__version__ = "0.39.0" # x-release-please-version diff --git a/src/mixedbread/resources/stores/files.py b/src/mixedbread/resources/stores/files.py index 1e871645..a44c12ae 100644 --- a/src/mixedbread/resources/stores/files.py +++ b/src/mixedbread/resources/stores/files.py @@ -245,7 +245,7 @@ def list( def delete( self, - file_id: str, + file_identifier: str, *, store_identifier: str, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -267,7 +267,7 @@ def delete( Args: store_identifier: The ID or name of the store - file_id: The ID or name of the file to delete + file_identifier: The ID or name of the file to delete extra_headers: Send extra headers @@ -279,10 +279,10 @@ def delete( """ if not store_identifier: raise ValueError(f"Expected a non-empty value for `store_identifier` but received {store_identifier!r}") - if not file_id: - raise ValueError(f"Expected a non-empty value for `file_id` but received {file_id!r}") + if not file_identifier: + raise ValueError(f"Expected a non-empty value for `file_identifier` but received {file_identifier!r}") return self._delete( - f"/v1/stores/{store_identifier}/files/{file_id}", + f"/v1/stores/{store_identifier}/files/{file_identifier}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -730,7 +730,7 @@ async def list( async def delete( self, - file_id: str, + file_identifier: str, *, store_identifier: str, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -752,7 +752,7 @@ async def delete( Args: store_identifier: The ID or name of the store - file_id: The ID or name of the file to delete + file_identifier: The ID or name of the file to delete extra_headers: Send extra headers @@ -764,10 +764,10 @@ async def delete( """ if not store_identifier: raise ValueError(f"Expected a non-empty value for `store_identifier` but received {store_identifier!r}") - if not file_id: - raise ValueError(f"Expected a non-empty value for `file_id` but received {file_id!r}") + if not file_identifier: + raise ValueError(f"Expected a non-empty value for `file_identifier` but received {file_identifier!r}") return await self._delete( - f"/v1/stores/{store_identifier}/files/{file_id}", + f"/v1/stores/{store_identifier}/files/{file_identifier}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/mixedbread/types/shared/search_filter_condition.py b/src/mixedbread/types/shared/search_filter_condition.py index 9e6f8c6e..36309f1d 100644 --- a/src/mixedbread/types/shared/search_filter_condition.py +++ b/src/mixedbread/types/shared/search_filter_condition.py @@ -14,5 +14,5 @@ class SearchFilterCondition(BaseModel): value: object """The value to compare against""" - operator: Literal["eq", "not_eq", "gt", "gte", "lt", "lte", "in", "not_in", "like", "not_like"] + operator: Literal["eq", "not_eq", "gt", "gte", "lt", "lte", "in", "not_in", "like", "starts_with", "not_like"] """The operator for the condition""" diff --git a/src/mixedbread/types/shared_params/search_filter_condition.py b/src/mixedbread/types/shared_params/search_filter_condition.py index f2241f70..83863974 100644 --- a/src/mixedbread/types/shared_params/search_filter_condition.py +++ b/src/mixedbread/types/shared_params/search_filter_condition.py @@ -14,5 +14,7 @@ class SearchFilterCondition(TypedDict, total=False): value: Required[object] """The value to compare against""" - operator: Required[Literal["eq", "not_eq", "gt", "gte", "lt", "lte", "in", "not_in", "like", "not_like"]] + operator: Required[ + Literal["eq", "not_eq", "gt", "gte", "lt", "lte", "in", "not_in", "like", "starts_with", "not_like"] + ] """The operator for the condition""" diff --git a/tests/api_resources/stores/test_files.py b/tests/api_resources/stores/test_files.py index ea9fc27b..97ac0e9e 100644 --- a/tests/api_resources/stores/test_files.py +++ b/tests/api_resources/stores/test_files.py @@ -225,7 +225,7 @@ def test_path_params_list(self, client: Mixedbread) -> None: @parametrize def test_method_delete(self, client: Mixedbread) -> None: file = client.stores.files.delete( - file_id="file_id", + file_identifier="file_identifier", store_identifier="store_identifier", ) assert_matches_type(FileDeleteResponse, file, path=["response"]) @@ -233,7 +233,7 @@ def test_method_delete(self, client: Mixedbread) -> None: @parametrize def test_raw_response_delete(self, client: Mixedbread) -> None: response = client.stores.files.with_raw_response.delete( - file_id="file_id", + file_identifier="file_identifier", store_identifier="store_identifier", ) @@ -245,7 +245,7 @@ def test_raw_response_delete(self, client: Mixedbread) -> None: @parametrize def test_streaming_response_delete(self, client: Mixedbread) -> None: with client.stores.files.with_streaming_response.delete( - file_id="file_id", + file_identifier="file_identifier", store_identifier="store_identifier", ) as response: assert not response.is_closed @@ -260,13 +260,13 @@ def test_streaming_response_delete(self, client: Mixedbread) -> None: def test_path_params_delete(self, client: Mixedbread) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `store_identifier` but received ''"): client.stores.files.with_raw_response.delete( - file_id="file_id", + file_identifier="file_identifier", store_identifier="", ) - with pytest.raises(ValueError, match=r"Expected a non-empty value for `file_id` but received ''"): + with pytest.raises(ValueError, match=r"Expected a non-empty value for `file_identifier` but received ''"): client.stores.files.with_raw_response.delete( - file_id="", + file_identifier="", store_identifier="store_identifier", ) @@ -570,7 +570,7 @@ async def test_path_params_list(self, async_client: AsyncMixedbread) -> None: @parametrize async def test_method_delete(self, async_client: AsyncMixedbread) -> None: file = await async_client.stores.files.delete( - file_id="file_id", + file_identifier="file_identifier", store_identifier="store_identifier", ) assert_matches_type(FileDeleteResponse, file, path=["response"]) @@ -578,7 +578,7 @@ async def test_method_delete(self, async_client: AsyncMixedbread) -> None: @parametrize async def test_raw_response_delete(self, async_client: AsyncMixedbread) -> None: response = await async_client.stores.files.with_raw_response.delete( - file_id="file_id", + file_identifier="file_identifier", store_identifier="store_identifier", ) @@ -590,7 +590,7 @@ async def test_raw_response_delete(self, async_client: AsyncMixedbread) -> None: @parametrize async def test_streaming_response_delete(self, async_client: AsyncMixedbread) -> None: async with async_client.stores.files.with_streaming_response.delete( - file_id="file_id", + file_identifier="file_identifier", store_identifier="store_identifier", ) as response: assert not response.is_closed @@ -605,13 +605,13 @@ async def test_streaming_response_delete(self, async_client: AsyncMixedbread) -> async def test_path_params_delete(self, async_client: AsyncMixedbread) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `store_identifier` but received ''"): await async_client.stores.files.with_raw_response.delete( - file_id="file_id", + file_identifier="file_identifier", store_identifier="", ) - with pytest.raises(ValueError, match=r"Expected a non-empty value for `file_id` but received ''"): + with pytest.raises(ValueError, match=r"Expected a non-empty value for `file_identifier` but received ''"): await async_client.stores.files.with_raw_response.delete( - file_id="", + file_identifier="", store_identifier="store_identifier", )