[Python-checkins] cpython (3.4): asyncio: enhance protocol representation

victor.stinner python-checkins at python.org
Sun Oct 12 09:52:51 CEST 2014


https://hg.python.org/cpython/rev/7868cfeba842
changeset:   92981:7868cfeba842
branch:      3.4
parent:      92979:46e7447512bd
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Sun Oct 12 09:52:11 2014 +0200
summary:
  asyncio: enhance protocol representation

Add "closed" or "closing" to repr() of selector and proactor transports

files:
  Lib/asyncio/proactor_events.py |  8 +++++++-
  Lib/asyncio/selector_events.py |  7 ++++++-
  2 files changed, 13 insertions(+), 2 deletions(-)


diff --git a/Lib/asyncio/proactor_events.py b/Lib/asyncio/proactor_events.py
--- a/Lib/asyncio/proactor_events.py
+++ b/Lib/asyncio/proactor_events.py
@@ -42,7 +42,13 @@
             self._loop.call_soon(waiter._set_result_unless_cancelled, None)
 
     def __repr__(self):
-        info = [self.__class__.__name__, 'fd=%s' % self._sock.fileno()]
+        info = [self.__class__.__name__]
+        fd = self._sock.fileno()
+        if fd < 0:
+            info.append('closed')
+        elif self._closing:
+            info.append('closing')
+        info.append('fd=%s' % fd)
         if self._read_fut is not None:
             info.append('read=%s' % self._read_fut)
         if self._write_fut is not None:
diff --git a/Lib/asyncio/selector_events.py b/Lib/asyncio/selector_events.py
--- a/Lib/asyncio/selector_events.py
+++ b/Lib/asyncio/selector_events.py
@@ -467,7 +467,12 @@
             self._server._attach()
 
     def __repr__(self):
-        info = [self.__class__.__name__, 'fd=%s' % self._sock_fd]
+        info = [self.__class__.__name__]
+        if self._sock is None:
+            info.append('closed')
+        elif self._closing:
+            info.append('closing')
+        info.append('fd=%s' % self._sock_fd)
         # test if the transport was closed
         if self._loop is not None:
             polling = _test_selector_event(self._loop._selector,

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list