Skip to content

Commit b207bd1

Browse files
fix(python): remove warnings for HighlightResult and SnippetResult (generated)
algolia/api-clients-automation#5284 Co-authored-by: algolia-bot <[email protected]> Co-authored-by: Clément Vannicatte <[email protected]>
1 parent 2b18edb commit b207bd1

File tree

1 file changed

+38
-1
lines changed
  • algoliasearch/search/models

1 file changed

+38
-1
lines changed

algoliasearch/search/models/hit.py

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from sys import version_info
1111
from typing import Any, Dict, Optional
1212

13-
from pydantic import BaseModel, ConfigDict
13+
from pydantic import BaseModel, ConfigDict, field_serializer
1414

1515
if version_info >= (3, 11):
1616
from typing import Self
@@ -59,6 +59,43 @@ class Hit(BaseModel):
5959
extra="allow",
6060
)
6161

62+
@staticmethod
63+
def __dump_item(item):
64+
return (
65+
item.model_dump(
66+
by_alias=True,
67+
exclude_none=True,
68+
exclude_unset=True,
69+
warnings="none",
70+
)
71+
if isinstance(item, BaseModel)
72+
else item
73+
)
74+
75+
@field_serializer("highlight_result")
76+
def serialize_highlight_result(self, v: HighlightResult | None):
77+
if v is None:
78+
return None
79+
80+
if isinstance(v, dict):
81+
return {k: self.__dump_item(val) for k, val in v.items()}
82+
elif isinstance(v, list):
83+
return [self.__dump_item(val) for val in v]
84+
else:
85+
return self.__dump_item(v)
86+
87+
@field_serializer("snippet_result")
88+
def serialize_snippet_result(self, v: SnippetResult | None):
89+
if v is None:
90+
return None
91+
92+
if isinstance(v, dict):
93+
return {k: self.__dump_item(val) for k, val in v.items()}
94+
elif isinstance(v, list):
95+
return [self.__dump_item(val) for val in v]
96+
else:
97+
return self.__dump_item(v)
98+
6299
def to_json(self) -> str:
63100
return self.model_dump_json(by_alias=True, exclude_unset=True)
64101

0 commit comments

Comments
 (0)