Core: relax typing hints on has_all and has_any (#2462)

This commit is contained in:
Fabian Dill 2023-11-15 06:53:37 +01:00 committed by GitHub
parent 287a186ff6
commit 8ce073e355
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 4 deletions

View File

@ -711,11 +711,11 @@ class CollectionState():
def has(self, item: str, player: int, count: int = 1) -> bool: def has(self, item: str, player: int, count: int = 1) -> bool:
return self.prog_items[player][item] >= count return self.prog_items[player][item] >= count
def has_all(self, items: Set[str], player: int) -> bool: def has_all(self, items: Iterable[str], player: int) -> bool:
"""Returns True if each item name of items is in state at least once.""" """Returns True if each item name of items is in state at least once."""
return all(self.prog_items[player][item] for item in items) return all(self.prog_items[player][item] for item in items)
def has_any(self, items: Set[str], player: int) -> bool: def has_any(self, items: Iterable[str], player: int) -> bool:
"""Returns True if at least one item name of items is in state at least once.""" """Returns True if at least one item name of items is in state at least once."""
return any(self.prog_items[player][item] for item in items) return any(self.prog_items[player][item] for item in items)
@ -724,16 +724,18 @@ class CollectionState():
def has_group(self, item_name_group: str, player: int, count: int = 1) -> bool: def has_group(self, item_name_group: str, player: int, count: int = 1) -> bool:
found: int = 0 found: int = 0
player_prog_items = self.prog_items[player]
for item_name in self.multiworld.worlds[player].item_name_groups[item_name_group]: for item_name in self.multiworld.worlds[player].item_name_groups[item_name_group]:
found += self.prog_items[player][item_name] found += player_prog_items[item_name]
if found >= count: if found >= count:
return True return True
return False return False
def count_group(self, item_name_group: str, player: int) -> int: def count_group(self, item_name_group: str, player: int) -> int:
found: int = 0 found: int = 0
player_prog_items = self.prog_items[player]
for item_name in self.multiworld.worlds[player].item_name_groups[item_name_group]: for item_name in self.multiworld.worlds[player].item_name_groups[item_name_group]:
found += self.prog_items[player][item_name] found += player_prog_items[item_name]
return found return found
def item_count(self, item: str, player: int) -> int: def item_count(self, item: str, player: int) -> int: