Skip to content

Commit f8f6131

Browse files
committed
fix: sort ids on hashing job pop responses
1 parent 4543c74 commit f8f6131

File tree

4 files changed

+12
-9
lines changed

4 files changed

+12
-9
lines changed

horde_sdk/ai_horde_api/apimodels/alchemy/pop.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ def __hash__(self) -> int:
206206
if self.forms is None:
207207
return hash(self.skipped)
208208

209-
return hash((tuple([form.id_ for form in self.forms]), self.skipped))
209+
return hash((tuple(sorted([form.id_ for form in self.forms])), self.skipped))
210210

211211
@property
212212
def ids(self) -> list[GenerationID]:

horde_sdk/ai_horde_api/apimodels/generate/pop.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ def __hash__(self) -> int:
464464
return hash(ImageGenerateJobPopResponse.__name__) + hash(self.id_)
465465

466466
if len(self.ids) > 0:
467-
return hash(ImageGenerateJobPopResponse.__name__) + hash(tuple(self.ids))
467+
return hash(ImageGenerateJobPopResponse.__name__) + hash(tuple(sorted(self.ids)))
468468

469469
logger.warning("No ID or IDs found in response. This is a bug.")
470470
return hash(0)

horde_sdk/ai_horde_api/apimodels/generate/text/pop.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ def __eq__(self, value: object) -> bool:
151151

152152
def __hash__(self) -> int:
153153
if self.ids:
154-
return hash(tuple(self.ids))
154+
return hash(tuple(sorted(self.ids)))
155155

156156
return hash(self.id_)
157157

tests/ai_horde_api/test_ai_horde_api_models.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -469,17 +469,20 @@ def test_ImageGenerateJobPopResponse() -> None:
469469
)
470470

471471
assert test_response.ids_present
472-
assert test_response.ids == [
473-
GenerationID(root=UUID("00000000-0000-0000-0000-000000000000")),
474-
GenerationID(root=UUID("00000000-0000-0000-0000-000000000001")),
475-
GenerationID(root=UUID("00000000-0000-0000-0000-000000000002")),
476-
]
477-
assert test_response.r2_uploads == [
472+
assert GenerationID(root=UUID("00000000-0000-0000-0000-000000000000")) in test_response.ids
473+
assert GenerationID(root=UUID("00000000-0000-0000-0000-000000000001")) in test_response.ids
474+
assert GenerationID(root=UUID("00000000-0000-0000-0000-000000000002")) in test_response.ids
475+
476+
uploads = [
478477
"https://abbaabbaabbaabbaabbaabbaabbaabba.r2.cloudflarestorage.com/horde-transient/00000000-0000-0000-0000-000000000000.webp?AWSAccessKeyId=deadbeefdeadbeefdeadbeefdeadbeef&Signature=345567dfakes2ignature%3D&Expires=1727390285",
479478
"https://abbaabbaabbaabbaabbaabbaabbaabba.r2.cloudflarestorage.com/horde-transient/00000000-0000-0000-0000-000000000001.webp?AWSAccessKeyId=deadbeefdeadbeefdeadbeefdeadbeef&Signature=zxcbvfakesignature%3D&Expires=1727390285",
480479
"https://abbaabbaabbaabbaabbaabbaabbaabba.r2.cloudflarestorage.com/horde-transient/00000000-0000-0000-0000-000000000002.webp?AWSAccessKeyId=deadbeefdeadbeefdeadbeefdeadbeef&Signature=asdfg32fakesignature%3D&Expires=1727390285",
481480
]
482481

482+
assert test_response.r2_uploads is not None
483+
for upload in test_response.r2_uploads:
484+
assert upload in uploads
485+
483486

484487
def test_ImageGenerateJobPopResponse_hashability() -> None:
485488
test_response_ids = ImageGenerateJobPopResponse(

0 commit comments

Comments
 (0)