| From: Matthias Klose <doko@ubuntu.com> |
| Date: Sun, 29 Jul 2018 09:01:36 +0200 |
| Subject: Fix compatibility with Python 3.7. |
| Origin: http://launchpadlibrarian.net/380629852/python-ws4py_0.4.2+dfsg1-2_0.4.2+dfsg1-2ubuntu1.diff.gz |
| Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=903529 |
| |
| --- |
| test/autobahn_test_servers.py | 4 ++-- |
| ws4py/async_websocket.py | 9 +++++++-- |
| ws4py/server/tulipserver.py | 7 ++++++- |
| 3 files changed, 15 insertions(+), 5 deletions(-) |
| |
| diff --git a/test/autobahn_test_servers.py b/test/autobahn_test_servers.py |
| index 3e33f82..8b77954 100644 |
| --- a/test/autobahn_test_servers.py |
| +++ b/test/autobahn_test_servers.py |
| @@ -142,7 +142,7 @@ def run_python_wsgi(host="127.0.0.1", port=9002): |
| """ |
| run_python_wsgi_async(host, port, False) |
| |
| -def run_python_wsgi_async(host="127.0.0.1", port=9010, async=True): |
| +def run_python_wsgi_async(host="127.0.0.1", port=9010, async_=True): |
| """ |
| Runs wsgi server on python 2.x with async middleware" |
| """ |
| @@ -153,7 +153,7 @@ def run_python_wsgi_async(host="127.0.0.1", port=9010, async=True): |
| from ws4py.server.wsgiutils import WebSocketWSGIApplication |
| |
| app = WebSocketWSGIApplication(handler_cls=EchoWebSocket) |
| - if async: |
| + if async_: |
| def middleware(app): |
| def later(environ, start_response): |
| for part in app(environ, start_response): |
| diff --git a/ws4py/async_websocket.py b/ws4py/async_websocket.py |
| index 9e2a4c7..096763d 100644 |
| --- a/ws4py/async_websocket.py |
| +++ b/ws4py/async_websocket.py |
| @@ -18,6 +18,11 @@ delegated_generator_websocket_on_top_of_asyncio.py |
| import asyncio |
| import types |
| |
| +try: # pragma: no cover |
| + asyncio_ensure_future = asyncio.ensure_future # Python >= 3.5 |
| +except AttributeError: # pragma: no cover |
| + asyncio_ensure_future = getattr(asyncio, 'async') # Python < 3.5 |
| + |
| from ws4py.websocket import WebSocket as _WebSocket |
| from ws4py.messaging import Message |
| |
| @@ -84,7 +89,7 @@ class WebSocket(_WebSocket): |
| def closeit(): |
| yield from self.proto.writer.drain() |
| self.proto.writer.close() |
| - asyncio.async(closeit()) |
| + asyncio.asyncio_ensure_future(closeit()) |
| |
| def _write(self, data): |
| """ |
| @@ -94,7 +99,7 @@ class WebSocket(_WebSocket): |
| def sendit(data): |
| self.proto.writer.write(data) |
| yield from self.proto.writer.drain() |
| - asyncio.async(sendit(data)) |
| + asyncio.asyncio_ensure_future(sendit(data)) |
| |
| @asyncio.coroutine |
| def run(self): |
| diff --git a/ws4py/server/tulipserver.py b/ws4py/server/tulipserver.py |
| index 2786c16..ce2e9fb 100644 |
| --- a/ws4py/server/tulipserver.py |
| +++ b/ws4py/server/tulipserver.py |
| @@ -6,6 +6,11 @@ import io |
| |
| import asyncio |
| |
| +try: # pragma: no cover |
| + asyncio_ensure_future = asyncio.ensure_future # Python >= 3.5 |
| +except AttributeError: # pragma: no cover |
| + asyncio_ensure_future = getattr(asyncio, 'async') # Python < 3.5 |
| + |
| from ws4py import WS_KEY, WS_VERSION |
| from ws4py.exc import HandshakeError |
| from ws4py.websocket import WebSocket |
| @@ -40,7 +45,7 @@ class WebSocketProtocol(asyncio.StreamReaderProtocol): |
| #self.stream.set_transport(transport) |
| asyncio.StreamReaderProtocol.connection_made(self, transport) |
| # Let make it concurrent for others to tag along |
| - f = asyncio.async(self.handle_initial_handshake()) |
| + f = asyncio.asyncio_ensure_future(self.handle_initial_handshake()) |
| f.add_done_callback(self.terminated) |
| |
| @property |