Fill: fix type-crash on unfilled having either str or Location

Fill: speed up Counter creation by skipping intermediary list creation
This commit is contained in:
Fabian Dill 2022-05-18 14:54:13 +02:00 committed by Fabian Dill
parent 45bca78e75
commit 90d506ee7c
1 changed files with 5 additions and 5 deletions

10
Fill.py
View File

@ -220,15 +220,15 @@ def distribute_items_restrictive(world: MultiWorld) -> None:
restitempool, defaultlocations = fast_fill( restitempool, defaultlocations = fast_fill(
world, restitempool, defaultlocations) world, restitempool, defaultlocations)
unplaced = progitempool + restitempool unplaced = progitempool + restitempool
unfilled = [location.name for location in defaultlocations] unfilled = defaultlocations
if unplaced or unfilled: if unplaced or unfilled:
logging.warning( logging.warning(
f'Unplaced items({len(unplaced)}): {unplaced} - Unfilled Locations({len(unfilled)}): {unfilled}') f'Unplaced items({len(unplaced)}): {unplaced} - Unfilled Locations({len(unfilled)}): {unfilled}')
items_counter = Counter([location.item.player for location in world.get_locations() if location.item]) items_counter = Counter(location.item.player for location in world.get_locations() if location.item)
locations_counter = Counter([location.player for location in world.get_locations()]) locations_counter = Counter(location.player for location in world.get_locations())
items_counter.update([item.player for item in unplaced]) items_counter.update(item.player for item in unplaced)
locations_counter.update([location.player for location in unfilled]) locations_counter.update(location.player for location in unfilled)
print_data = {"items": items_counter, "locations": locations_counter} print_data = {"items": items_counter, "locations": locations_counter}
logging.info(f'Per-Player counts: {print_data})') logging.info(f'Per-Player counts: {print_data})')