aboutsummaryrefslogtreecommitdiff
path: root/discord/iterators.py
diff options
context:
space:
mode:
authorJames <[email protected]>2021-04-04 22:46:15 +0100
committerGitHub <[email protected]>2021-04-04 17:46:15 -0400
commitfe54b3cb922a8cf68f6b631f81d85bb37847be27 (patch)
treea93845bab607f619a907c987a2385f962daf85ce /discord/iterators.py
parentRemove userbot functionality (diff)
downloaddiscord.py-fe54b3cb922a8cf68f6b631f81d85bb37847be27.tar.xz
discord.py-fe54b3cb922a8cf68f6b631f81d85bb37847be27.zip
Flatten AsyncIterator.flatten
Diffstat (limited to 'discord/iterators.py')
-rw-r--r--discord/iterators.py43
1 files changed, 1 insertions, 42 deletions
diff --git a/discord/iterators.py b/discord/iterators.py
index 2b6fcb5a..d67f3006 100644
--- a/discord/iterators.py
+++ b/discord/iterators.py
@@ -72,14 +72,7 @@ class _AsyncIterator:
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 @@ class HistoryIterator(_AsyncIterator):
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 @@ class GuildIterator(_AsyncIterator):
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)