Skip to content

Commit c81e8a7

Browse files
devteamaegisIshaan Samantrayjsklan
authored
fix(utils): embed(texts=[]) crashes with IndexError on empty input (#778)
* fix(utils): raise clear error on empty embed response list * chore: bump version 7.0.3 -> 7.0.4 --------- Co-authored-by: Ishaan Samantray <ishaansamantray@Ishaans-MacBook-Pro.local> Co-authored-by: jsklan <jsklan.development@gmail.com>
1 parent 0702df5 commit c81e8a7

5 files changed

Lines changed: 14 additions & 5 deletions

File tree

.fern/metadata.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
"originGitCommit": "cc4f564d58fa6fbe43292b5ea6bca57aac51946b",
9898
"originGitCommitIsDirty": true,
9999
"invokedBy": "ci",
100-
"requestedVersion": "7.0.3",
100+
"requestedVersion": "7.0.4",
101101
"ciProvider": "github",
102-
"sdkVersion": "7.0.3"
102+
"sdkVersion": "7.0.4"
103103
}

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ dynamic = ["version"]
44

55
[tool.poetry]
66
name = "cohere"
7-
version = "7.0.3"
7+
version = "7.0.4"
88
description = ""
99
readme = "README.md"
1010
authors = []

src/cohere/core/client_wrapper.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ def get_headers(self) -> typing.Dict[str, str]:
3131
import platform
3232

3333
headers: typing.Dict[str, str] = {
34-
"User-Agent": "cohere/7.0.3",
34+
"User-Agent": "cohere/7.0.4",
3535
"X-Fern-Language": "Python",
3636
"X-Fern-Runtime": f"python/{platform.python_version()}",
3737
"X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}",
3838
"X-Fern-SDK-Name": "cohere",
39-
"X-Fern-SDK-Version": "7.0.3",
39+
"X-Fern-SDK-Version": "7.0.4",
4040
**(self.get_custom_headers() or {}),
4141
}
4242
if self._client_name is not None:

src/cohere/utils.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,9 @@ def merge_meta_field(metas: typing.List[ApiMeta]) -> ApiMeta:
188188

189189

190190
def merge_embed_responses(responses: typing.List[EmbedResponse]) -> EmbedResponse:
191+
if not responses:
192+
raise ValueError("Cannot merge embed responses: no texts were provided to embed")
193+
191194
meta = merge_meta_field([response.meta for response in responses if response.meta])
192195
response_id = ", ".join(response.id for response in responses)
193196
texts = [

tests/test_embed_utils.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,12 @@ def test_merge_embeddings_floats(self) -> None:
189189
)
190190
))
191191

192+
def test_merge_embed_responses_empty_list_raises_value_error(self) -> None:
193+
# An empty texts list (e.g. Client.embed(texts=[])) yields no responses;
194+
# merge_embed_responses must raise a clear ValueError instead of IndexError.
195+
with self.assertRaises(ValueError):
196+
merge_embed_responses([])
197+
192198
def test_merge_embeddings_by_type_with_none_field_in_later_response(self) -> None:
193199
resp1 = EmbeddingsByTypeEmbedResponse(
194200
response_type="embeddings_by_type", id="1",

0 commit comments

Comments
 (0)