diff options
author | Yury Selivanov <yselivanov@sprymix.com> | 2015-05-13 18:23:29 (GMT) |
---|---|---|
committer | Yury Selivanov <yselivanov@sprymix.com> | 2015-05-13 18:23:29 (GMT) |
commit | 33c6b569b7b123976230c92c6d8e74b2c10fef2e (patch) | |
tree | fe2ad5b421ed45a15afdabd81ffc4395121c3bfa /Lib/asyncio | |
parent | d4be6914943fbc829bcbb62c3aa59f84c917c522 (diff) | |
download | cpython-33c6b569b7b123976230c92c6d8e74b2c10fef2e.zip cpython-33c6b569b7b123976230c92c6d8e74b2c10fef2e.tar.gz cpython-33c6b569b7b123976230c92c6d8e74b2c10fef2e.tar.bz2 |
Issue 24179: Support 'async for' for asyncio.StreamReader.
Diffstat (limited to 'Lib/asyncio')
-rw-r--r-- | Lib/asyncio/streams.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Lib/asyncio/streams.py b/Lib/asyncio/streams.py index 64ff3d2..176c65e 100644 --- a/Lib/asyncio/streams.py +++ b/Lib/asyncio/streams.py @@ -6,6 +6,7 @@ __all__ = ['StreamReader', 'StreamWriter', 'StreamReaderProtocol', ] import socket +import sys if hasattr(socket, 'AF_UNIX'): __all__.extend(['open_unix_connection', 'start_unix_server']) @@ -19,6 +20,7 @@ from .log import logger _DEFAULT_LIMIT = 2**16 +_PY35 = sys.version_info >= (3, 5) class IncompleteReadError(EOFError): @@ -485,3 +487,15 @@ class StreamReader: n -= len(block) return b''.join(blocks) + + if _PY35: + @coroutine + def __aiter__(self): + return self + + @coroutine + def __anext__(self): + val = yield from self.readline() + if val == b'': + raise StopAsyncIteration + return val |