From fe54b3cb922a8cf68f6b631f81d85bb37847be27 Mon Sep 17 00:00:00 2001 From: James <50501825+Gobot1234@users.noreply.github.com> Date: Sun, 4 Apr 2021 22:46:15 +0100 Subject: [PATCH] Flatten AsyncIterator.flatten --- discord/iterators.py | 43 +------------------------------------------ 1 file changed, 1 insertion(+), 42 deletions(-) diff --git a/discord/iterators.py b/discord/iterators.py index 2b6fcb5aa5de..d67f3006d754 100644 --- a/discord/iterators.py +++ b/discord/iterators.py @@ -72,14 +72,7 @@ def filter(self, predicate): return _FilteredAsyncIterator(self, predicate) async def flatten(self): - ret = [] - while True: - try: - item = await self.next() - except NoMoreItems: - return ret - else: - ret.append(item) + return [element async for element in self] def __aiter__(self): return self @@ -296,26 +289,6 @@ def _get_retrieve(self): self.retrieve = r return r > 0 - async def flatten(self): - # this is similar to fill_messages except it uses a list instead - # of a queue to place the messages in. - result = [] - channel = await self.messageable._get_channel() - self.channel = channel - while self._get_retrieve(): - data = await self._retrieve_messages(self.retrieve) - if len(data) < 100: - self.limit = 0 # terminate the infinite loop - - if self.reverse: - data = reversed(data) - if self._filter: - data = filter(self._filter, data) - - for element in data: - result.append(self.state.create_message(channel=channel, data=element)) - return result - async def fill_messages(self): if not hasattr(self, 'channel'): # do the required set up @@ -550,20 +523,6 @@ def create_guild(self, data): from .guild import Guild return Guild(state=self.state, data=data) - async def flatten(self): - result = [] - while self._get_retrieve(): - data = await self._retrieve_guilds(self.retrieve) - if len(data) < 100: - self.limit = 0 - - if self._filter: - data = filter(self._filter, data) - - for element in data: - result.append(self.create_guild(element)) - return result - async def fill_guilds(self): if self._get_retrieve(): data = await self._retrieve_guilds(self.retrieve)