mirror of
https://github.com/python/cpython
synced 2024-09-20 13:31:34 +00:00
asyncio: sync with github
* Fix ResourceWarning warnings in test_streams * Return True from StreamReader.eof_received() to fix http://bugs.python.org/issue24539 (but still needs a unittest). Add StreamReader.__repr__() for easy debugging. * remove unused imports * Issue #234: Drop JoinableQueue on Python 3.5+
This commit is contained in:
parent
71080fc351
commit
eaf16abc68
|
@ -3,7 +3,6 @@
|
|||
__all__ = ['Lock', 'Event', 'Condition', 'Semaphore', 'BoundedSemaphore']
|
||||
|
||||
import collections
|
||||
import sys
|
||||
|
||||
from . import compat
|
||||
from . import events
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
"""Queues"""
|
||||
|
||||
__all__ = ['Queue', 'PriorityQueue', 'LifoQueue', 'QueueFull', 'QueueEmpty',
|
||||
'JoinableQueue']
|
||||
__all__ = ['Queue', 'PriorityQueue', 'LifoQueue', 'QueueFull', 'QueueEmpty']
|
||||
|
||||
import collections
|
||||
import heapq
|
||||
|
||||
from . import compat
|
||||
from . import events
|
||||
from . import futures
|
||||
from . import locks
|
||||
|
@ -289,5 +289,7 @@ def _get(self):
|
|||
return self._queue.pop()
|
||||
|
||||
|
||||
JoinableQueue = Queue
|
||||
"""Deprecated alias for Queue."""
|
||||
if not compat.PY35:
|
||||
JoinableQueue = Queue
|
||||
"""Deprecated alias for Queue."""
|
||||
__all__.append('JoinableQueue')
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
]
|
||||
|
||||
import socket
|
||||
import sys
|
||||
|
||||
if hasattr(socket, 'AF_UNIX'):
|
||||
__all__.extend(['open_unix_connection', 'start_unix_server'])
|
||||
|
@ -240,6 +239,7 @@ def data_received(self, data):
|
|||
|
||||
def eof_received(self):
|
||||
self._stream_reader.feed_eof()
|
||||
return True
|
||||
|
||||
|
||||
class StreamWriter:
|
||||
|
@ -321,6 +321,24 @@ def __init__(self, limit=_DEFAULT_LIMIT, loop=None):
|
|||
self._transport = None
|
||||
self._paused = False
|
||||
|
||||
def __repr__(self):
|
||||
info = ['StreamReader']
|
||||
if self._buffer:
|
||||
info.append('%d bytes' % len(info))
|
||||
if self._eof:
|
||||
info.append('eof')
|
||||
if self._limit != _DEFAULT_LIMIT:
|
||||
info.append('l=%d' % self._limit)
|
||||
if self._waiter:
|
||||
info.append('w=%r' % self._waiter)
|
||||
if self._exception:
|
||||
info.append('e=%r' % self._exception)
|
||||
if self._transport:
|
||||
info.append('t=%r' % self._transport)
|
||||
if self._paused:
|
||||
info.append('paused')
|
||||
return '<%s>' % ' '.join(info)
|
||||
|
||||
def exception(self):
|
||||
return self._exception
|
||||
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
__all__ = ['create_subprocess_exec', 'create_subprocess_shell']
|
||||
|
||||
import collections
|
||||
import subprocess
|
||||
|
||||
from . import events
|
||||
from . import futures
|
||||
from . import protocols
|
||||
from . import streams
|
||||
from . import tasks
|
||||
|
|
|
@ -10,8 +10,6 @@
|
|||
import functools
|
||||
import inspect
|
||||
import linecache
|
||||
import sys
|
||||
import types
|
||||
import traceback
|
||||
import warnings
|
||||
import weakref
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
"""Abstract Transport class."""
|
||||
|
||||
import sys
|
||||
|
||||
from asyncio import compat
|
||||
|
||||
__all__ = ['BaseTransport', 'ReadTransport', 'WriteTransport',
|
||||
|
|
|
@ -446,6 +446,8 @@ def __init__(self, loop):
|
|||
def handle_client(self, client_reader, client_writer):
|
||||
data = yield from client_reader.readline()
|
||||
client_writer.write(data)
|
||||
yield from client_writer.drain()
|
||||
client_writer.close()
|
||||
|
||||
def start(self):
|
||||
sock = socket.socket()
|
||||
|
@ -457,12 +459,8 @@ def start(self):
|
|||
return sock.getsockname()
|
||||
|
||||
def handle_client_callback(self, client_reader, client_writer):
|
||||
task = asyncio.Task(client_reader.readline(), loop=self.loop)
|
||||
|
||||
def done(task):
|
||||
client_writer.write(task.result())
|
||||
|
||||
task.add_done_callback(done)
|
||||
self.loop.create_task(self.handle_client(client_reader,
|
||||
client_writer))
|
||||
|
||||
def start_callback(self):
|
||||
sock = socket.socket()
|
||||
|
@ -522,6 +520,8 @@ def __init__(self, loop, path):
|
|||
def handle_client(self, client_reader, client_writer):
|
||||
data = yield from client_reader.readline()
|
||||
client_writer.write(data)
|
||||
yield from client_writer.drain()
|
||||
client_writer.close()
|
||||
|
||||
def start(self):
|
||||
self.server = self.loop.run_until_complete(
|
||||
|
@ -530,18 +530,14 @@ def start(self):
|
|||
loop=self.loop))
|
||||
|
||||
def handle_client_callback(self, client_reader, client_writer):
|
||||
task = asyncio.Task(client_reader.readline(), loop=self.loop)
|
||||
|
||||
def done(task):
|
||||
client_writer.write(task.result())
|
||||
|
||||
task.add_done_callback(done)
|
||||
self.loop.create_task(self.handle_client(client_reader,
|
||||
client_writer))
|
||||
|
||||
def start_callback(self):
|
||||
self.server = self.loop.run_until_complete(
|
||||
asyncio.start_unix_server(self.handle_client_callback,
|
||||
path=self.path,
|
||||
loop=self.loop))
|
||||
start = asyncio.start_unix_server(self.handle_client_callback,
|
||||
path=self.path,
|
||||
loop=self.loop)
|
||||
self.server = self.loop.run_until_complete(start)
|
||||
|
||||
def stop(self):
|
||||
if self.server is not None:
|
||||
|
|
Loading…
Reference in a new issue