Skip to content

Commit 02ecec7

Browse files
committed
Fix var capture by generator expression
1 parent 27a9532 commit 02ecec7

1 file changed

Lines changed: 11 additions & 8 deletions

File tree

  • src/dstack/_internal/server/services/backends

src/dstack/_internal/server/services/backends/__init__.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import asyncio
22
import heapq
3-
from collections.abc import Iterator
3+
from collections.abc import Iterable, Iterator
44
from typing import Callable, Coroutine, Dict, List, Optional, Tuple
55
from uuid import UUID
66

@@ -347,6 +347,15 @@ async def get_backend_offers(
347347
"""
348348
Yields backend offers satisfying `requirements` sorted by price.
349349
"""
350+
351+
def get_filtered_offers_with_backends(
352+
backend: Backend,
353+
offers: Iterable[InstanceOfferWithAvailability],
354+
) -> Iterator[Tuple[Backend, InstanceOfferWithAvailability]]:
355+
for offer in offers:
356+
if not exclude_not_available or offer.availability.is_available():
357+
yield (backend, offer)
358+
350359
logger.info("Requesting instance offers from backends: %s", [b.TYPE.value for b in backends])
351360
tasks = [run_async(backend.compute().get_offers, requirements) for backend in backends]
352361
offers_by_backend = []
@@ -365,13 +374,7 @@ async def get_backend_offers(
365374
exc_info=result,
366375
)
367376
continue
368-
offers_by_backend.append(
369-
(
370-
(backend, offer)
371-
for offer in result
372-
if not exclude_not_available or offer.availability.is_available()
373-
)
374-
)
377+
offers_by_backend.append(get_filtered_offers_with_backends(backend, result))
375378
# Merge preserving order for every backend.
376379
offers = heapq.merge(*offers_by_backend, key=lambda i: i[1].price)
377380
return offers

0 commit comments

Comments
 (0)