]> granicus.if.org Git - python/commitdiff
asyncio: sync with github
authorVictor Stinner <victor.stinner@gmail.com>
Sat, 25 Jul 2015 00:40:40 +0000 (02:40 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Sat, 25 Jul 2015 00:40:40 +0000 (02:40 +0200)
* 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+

Lib/asyncio/locks.py
Lib/asyncio/queues.py
Lib/asyncio/streams.py
Lib/asyncio/subprocess.py
Lib/asyncio/tasks.py
Lib/asyncio/transports.py
Lib/test/test_asyncio/test_streams.py

index cc6f2bf76f16aac7c7827aa5b568ecb96b3b06a7..7a132796b4fb888616e22d268647bf872403b21c 100644 (file)
@@ -3,7 +3,6 @@
 __all__ = ['Lock', 'Event', 'Condition', 'Semaphore', 'BoundedSemaphore']
 
 import collections
-import sys
 
 from . import compat
 from . import events
index 3b4dc21ab8641f97e1e7cbf3ce543bdff6505f5a..c55dd8bbb0a6990c80b2215bef4b914b3aedf370 100644 (file)
@@ -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 @@ class LifoQueue(Queue):
         return self._queue.pop()
 
 
-JoinableQueue = Queue
-"""Deprecated alias for Queue."""
+if not compat.PY35:
+    JoinableQueue = Queue
+    """Deprecated alias for Queue."""
+    __all__.append('JoinableQueue')
index 6cd60c42f6476c27c13d7bf7b5fcaf67cb121b92..6484c435aac3074442916fe4e372a0b37719cd5d 100644 (file)
@@ -6,7 +6,6 @@ __all__ = ['StreamReader', 'StreamWriter', 'StreamReaderProtocol',
            ]
 
 import socket
-import sys
 
 if hasattr(socket, 'AF_UNIX'):
     __all__.extend(['open_unix_connection', 'start_unix_server'])
@@ -240,6 +239,7 @@ class StreamReaderProtocol(FlowControlMixin, protocols.Protocol):
 
     def eof_received(self):
         self._stream_reader.feed_eof()
+        return True
 
 
 class StreamWriter:
@@ -321,6 +321,24 @@ class StreamReader:
         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
 
index 4600a9f417da2a3123d0f9a94b360182bc02ac2f..ead4039b2f7db92d8d287ffe8b95061f986cc108 100644 (file)
@@ -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
index 1d5f865444224f503af7f4c4718a716c8c8b60db..9bfc1cf81479c68b271ab81a1812436e9201401f 100644 (file)
@@ -10,8 +10,6 @@ import concurrent.futures
 import functools
 import inspect
 import linecache
-import sys
-import types
 import traceback
 import warnings
 import weakref
index 7a28d908e43935698c0bdc12177adfcc6fce3808..70b323f2db98836a2c3e54f1734638fc4c59436b 100644 (file)
@@ -1,7 +1,5 @@
 """Abstract Transport class."""
 
-import sys
-
 from asyncio import compat
 
 __all__ = ['BaseTransport', 'ReadTransport', 'WriteTransport',
index 242b377eb46b095842eb24ad3126f91bfe765b4a..ef6f6030343f324763a892d72a845807c53bedcd 100644 (file)
@@ -446,6 +446,8 @@ class StreamReaderTests(test_utils.TestCase):
             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 @@ class StreamReaderTests(test_utils.TestCase):
                 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 @@ class StreamReaderTests(test_utils.TestCase):
             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 @@ class StreamReaderTests(test_utils.TestCase):
                                               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: