Skip to content

Commit e1bae56

Browse files
committed
Stop get_x from emptying the iterable of members/heroes/troops for later calls.
1 parent 971ffe6 commit e1bae56

File tree

2 files changed

+11
-16
lines changed

2 files changed

+11
-16
lines changed

coc/clans.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,12 +210,11 @@ def get_member(self, tag: str) -> typing.Optional[ClanMember]:
210210
The member who matches the tag provided: Optional[:class:`ClanMember`]
211211
"""
212212
tag = correct_tag(tag)
213-
dict_members = self._members
214-
if not dict_members:
215-
dict_members = self._members = {m.tag: m for m in self._iter_members}
213+
if not self._members:
214+
_ = self.members
216215

217216
try:
218-
return dict_members[tag]
217+
return self._members[tag]
219218
except KeyError:
220219
return None
221220

coc/players.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -333,13 +333,11 @@ def get_achievement(self, name: str, default_value=None) -> typing.Optional[Achi
333333
Optional[:class:`Achievement`]
334334
The returned achievement or the ``default_value`` if not found, which defaults to ``None``..
335335
"""
336-
dict_achievements = self._achievements
337-
if dict_achievements is None:
336+
if not self._achievements:
338337
_ = self.achievements
339-
dict_achievements = self._achievements
340338

341339
try:
342-
return dict_achievements[name]
340+
return self._achievements[name]
343341
except KeyError:
344342
return default_value
345343

@@ -479,12 +477,11 @@ def get_hero(self, name: str, default_value=None) -> typing.Optional[Hero]:
479477
Optional[:class:`Hero`]
480478
The returned hero or the ``default_value`` if not found, which defaults to ``None``..
481479
"""
482-
dict_heroes = self._heroes
483-
if dict_heroes is None:
484-
dict_heroes = self._heroes = {h.name: h for h in self._iter_heroes}
480+
if not self._heroes:
481+
_ = self.heroes
485482

486483
try:
487-
return dict_heroes[name]
484+
return self._heroes[name]
488485
except KeyError:
489486
return default_value
490487

@@ -513,11 +510,10 @@ def get_spell(self, name: str, default_value=None) -> typing.Optional[Spell]:
513510
Optional[:class:`Spell`]
514511
The returned spell or the ``default_value`` if not found, which defaults to ``None``..
515512
"""
516-
dict_spells = self._spells
517-
if dict_spells is None:
518-
dict_spells = self._spells = {s.name: s for s in self._iter_spells}
513+
if not self._spells:
514+
_ = self.spells
519515

520516
try:
521-
return dict_spells[name]
517+
return self._spells[name]
522518
except KeyError:
523519
return default_value

0 commit comments

Comments
 (0)