asyncio: Add asyncio.compat module

Move compatibility helpers for the different Python versions to a new
asyncio.compat module.
This commit is contained in:
Victor Stinner 2015-07-25 02:23:21 +02:00
parent f05b79dbd2
commit 71080fc351
8 changed files with 35 additions and 30 deletions

View file

@ -2,7 +2,7 @@
import sys
_PY34 = sys.version_info >= (3, 4)
from asyncio import compat
__all__ = ['BaseTransport', 'ReadTransport', 'WriteTransport',
'Transport', 'DatagramTransport', 'SubprocessTransport',
@ -94,12 +94,8 @@ class WriteTransport(BaseTransport):
The default implementation concatenates the arguments and
calls write() on the result.
"""
if not _PY34:
# In Python 3.3, bytes.join() doesn't handle memoryview.
list_of_data = (
bytes(data) if isinstance(data, memoryview) else data
for data in list_of_data)
self.write(b''.join(list_of_data))
data = compat.flatten_list_bytes(list_of_data)
self.write(data)
def write_eof(self):
"""Close the write end after flushing buffered data.