@@ -229,7 +229,7 @@ def search_markets(
229229 return []
230230
231231 gamma_order = self ._normalize_market_order (order )
232- requires_ranked_search = any (
232+ requires_market_search = any (
233233 value
234234 for value in (
235235 offset ,
@@ -249,10 +249,9 @@ def search_markets(
249249 active is not True ,
250250 closed is not False ,
251251 gamma_order != "volume_24hr" ,
252- hydrate ,
253252 )
254253 )
255- if requires_ranked_search :
254+ if requires_market_search :
256255 try :
257256 return self .list_markets (
258257 limit = limit ,
@@ -279,12 +278,16 @@ def search_markets(
279278 except ApiError :
280279 pass
281280
282- candidate_limit = self ._search_candidate_limit (limit = limit , offset = offset , hydrate = hydrate or requires_ranked_search )
281+ candidate_limit = self ._search_candidate_limit (
282+ limit = limit ,
283+ offset = offset ,
284+ hydrate = hydrate or requires_market_search ,
285+ )
283286 markets = self ._search_public_markets (query , limit = candidate_limit )
284287 if not markets :
285288 return []
286289
287- if hydrate or requires_ranked_search :
290+ if hydrate or self . _public_search_needs_hydration ( markets , order = gamma_order ) :
288291 markets = self ._hydrate_markets (markets , order = gamma_order , include_tokens = True )
289292
290293 filtered = self ._filter_markets (
@@ -379,6 +382,9 @@ def _search_candidate_limit(self, *, limit: int, offset: int, hydrate: bool) ->
379382 return max (minimum , 1 )
380383 return max (minimum * 5 , 25 )
381384
385+ def _public_search_needs_hydration (self , markets : list [dict [str , Any ]], * , order : str ) -> bool :
386+ return any (self ._market_needs_hydration (dict (market ), order = order , include_tokens = False ) for market in markets )
387+
382388 def _hydrate_markets (self , markets : list [dict [str , Any ]], * , order : str , include_tokens : bool ) -> list [dict [str , Any ]]:
383389 hydrated = []
384390 for market in markets :
0 commit comments