aboutsummaryrefslogtreecommitdiff
path: root/discord/iterators.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2017-02-12 12:13:23 -0500
committerRapptz <[email protected]>2017-02-12 12:13:23 -0500
commit47ef657fbd84d3fc89d9ef012c4c5c8d4318d4fd (patch)
tree451d6652cdbe5d59e162063ea6bb911d46421713 /discord/iterators.py
parentImplement utilities for AsyncIterator. (diff)
downloaddiscord.py-47ef657fbd84d3fc89d9ef012c4c5c8d4318d4fd.tar.xz
discord.py-47ef657fbd84d3fc89d9ef012c4c5c8d4318d4fd.zip
Implement async checks. Fixes #380.
Diffstat (limited to 'discord/iterators.py')
-rw-r--r--discord/iterators.py15
1 files changed, 4 insertions, 11 deletions
diff --git a/discord/iterators.py b/discord/iterators.py
index 31d72569..97d9c27b 100644
--- a/discord/iterators.py
+++ b/discord/iterators.py
@@ -30,18 +30,11 @@ import aiohttp
import datetime
from .errors import NoMoreItems
-from .utils import time_snowflake
+from .utils import time_snowflake, maybe_coroutine
from .object import Object
PY35 = sys.version_info >= (3, 5)
-def _probably_coroutine(f, e):
- if asyncio.iscoroutinefunction(f):
- return (yield from f(e))
- else:
- return f(e)
-
class _AsyncIterator:
__slots__ = ()
@@ -67,7 +60,7 @@ class _AsyncIterator:
except NoMoreItems:
return None
- ret = yield from _probably_coroutine(predicate, elem)
+ ret = yield from maybe_coroutine(predicate, elem)
if ret:
return elem
@@ -114,7 +107,7 @@ class _MappedAsyncIterator(_AsyncIterator):
def get(self):
# this raises NoMoreItems and will propagate appropriately
item = yield from self.iterator.get()
- return (yield from _probably_coroutine(self.func, item))
+ return (yield from maybe_coroutine(self.func, item))
class _FilteredAsyncIterator(_AsyncIterator):
def __init__(self, iterator, predicate):
@@ -132,7 +125,7 @@ class _FilteredAsyncIterator(_AsyncIterator):
while True:
# propagate NoMoreItems similar to _MappedAsyncIterator
item = yield from getter()
- ret = yield from _probably_coroutine(pred, item)
+ ret = yield from maybe_coroutine(pred, item)
if ret:
return item