From: Federico Caselli Date: Sun, 24 Jan 2021 19:49:06 +0000 (-0500) Subject: Limit AsyncAdaptedQueue to Python 3.7 X-Git-Tag: rel_1_4_0b2~26^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=43a27f1da849501ae15f0c39ac67cb00e2e80718;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Limit AsyncAdaptedQueue to Python 3.7 Tests here are failing for python 3.6 due to the lack of asyncio.run(). It seems to be non-trivial to vendor a working version of this in Python 3.6 as the tests here are running it in alternate threads. The python documentation imports everything directly from the asyncio package, and it seems that py < 3.8 does not have the asyncio.exception module Closes: #5865 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5865 Pull-request-sha: 35cc1fa3f6ff962676f571ae30851f4b4d96762a Change-Id: I9398c9fb2aa87f3228ce2f59277de732091bd541 --- diff --git a/lib/sqlalchemy/util/queue.py b/lib/sqlalchemy/util/queue.py index 30e3882480..0cee2f4115 100644 --- a/lib/sqlalchemy/util/queue.py +++ b/lib/sqlalchemy/util/queue.py @@ -237,7 +237,7 @@ class AsyncAdaptedQueue: def put_nowait(self, item): try: return self._queue.put_nowait(item) - except asyncio.queues.QueueFull as err: + except asyncio.QueueFull as err: compat.raise_( Full(), replace_context=err, @@ -254,10 +254,7 @@ class AsyncAdaptedQueue: ) else: return self.await_(self._queue.put(item)) - except ( - asyncio.queues.QueueFull, - asyncio.exceptions.TimeoutError, - ) as err: + except (asyncio.QueueFull, asyncio.TimeoutError) as err: compat.raise_( Full(), replace_context=err, @@ -266,7 +263,7 @@ class AsyncAdaptedQueue: def get_nowait(self): try: return self._queue.get_nowait() - except asyncio.queues.QueueEmpty as err: + except asyncio.QueueEmpty as err: compat.raise_( Empty(), replace_context=err, @@ -283,10 +280,7 @@ class AsyncAdaptedQueue: ) else: return self.await_(self._queue.get()) - except ( - asyncio.queues.QueueEmpty, - asyncio.exceptions.TimeoutError, - ) as err: + except (asyncio.QueueEmpty, asyncio.TimeoutError) as err: compat.raise_( Empty(), replace_context=err, diff --git a/test/base/test_concurrency_py3k.py b/test/base/test_concurrency_py3k.py index 1492bc1868..08c18b43e3 100644 --- a/test/base/test_concurrency_py3k.py +++ b/test/base/test_concurrency_py3k.py @@ -161,6 +161,10 @@ class TestAsyncioCompat(fixtures.TestBase): class TestAsyncAdaptedQueue(fixtures.TestBase): + # uses asyncio.run() in alternate threads which is not available + # in Python 3.6 + __requires__ = ("python37",) + def test_lazy_init(self): run = [False]