]> granicus.if.org Git - python/commitdiff
asyncio: Remove asyncio/compat.py (#4606)
authorVictor Stinner <victor.stinner@gmail.com>
Tue, 28 Nov 2017 13:43:52 +0000 (14:43 +0100)
committerGitHub <noreply@github.com>
Tue, 28 Nov 2017 13:43:52 +0000 (14:43 +0100)
The asyncio/compat.py file was written to support Python < 3.5 and
Python < 3.5.2. But Python 3.5 doesn't accept bugfixes anymore, only
security fixes. There is no more need to backport bugfixes to Python
3.5, and so no need to have a single code base for Python 3.5, 3.6
and 3.7.

Say hello (again) to "async" and "await", who became real keywords in
Python 3.7 ;-)

Lib/asyncio/compat.py [deleted file]
Lib/asyncio/coroutines.py
Lib/asyncio/futures.py
Lib/asyncio/locks.py
Lib/asyncio/queues.py
Lib/asyncio/streams.py
Lib/asyncio/tasks.py

diff --git a/Lib/asyncio/compat.py b/Lib/asyncio/compat.py
deleted file mode 100644 (file)
index 520ec68..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-"""Compatibility helpers for the different Python versions."""
-
-import sys
-
-PY35 = sys.version_info >= (3, 5)
-PY352 = sys.version_info >= (3, 5, 2)
index a87c9f9b0b6b5778f6d89de500675db947306a53..3e305f90abb9fea73e34d5410d691a41dcd49808 100644 (file)
@@ -9,7 +9,6 @@ import sys
 import traceback
 import types
 
-from . import compat
 from . import constants
 from . import events
 from . import base_futures
@@ -151,35 +150,33 @@ class CoroWrapper:
     def gi_code(self):
         return self.gen.gi_code
 
-    if compat.PY35:
-
-        def __await__(self):
-            cr_await = getattr(self.gen, 'cr_await', None)
-            if cr_await is not None:
-                raise RuntimeError(
-                    "Cannot await on coroutine {!r} while it's "
-                    "awaiting for {!r}".format(self.gen, cr_await))
-            return self
+    def __await__(self):
+        cr_await = getattr(self.gen, 'cr_await', None)
+        if cr_await is not None:
+            raise RuntimeError(
+                "Cannot await on coroutine {!r} while it's "
+                "awaiting for {!r}".format(self.gen, cr_await))
+        return self
 
-        @property
-        def gi_yieldfrom(self):
-            return self.gen.gi_yieldfrom
+    @property
+    def gi_yieldfrom(self):
+        return self.gen.gi_yieldfrom
 
-        @property
-        def cr_await(self):
-            return self.gen.cr_await
+    @property
+    def cr_await(self):
+        return self.gen.cr_await
 
-        @property
-        def cr_running(self):
-            return self.gen.cr_running
+    @property
+    def cr_running(self):
+        return self.gen.cr_running
 
-        @property
-        def cr_code(self):
-            return self.gen.cr_code
+    @property
+    def cr_code(self):
+        return self.gen.cr_code
 
-        @property
-        def cr_frame(self):
-            return self.gen.cr_frame
+    @property
+    def cr_frame(self):
+        return self.gen.cr_frame
 
     def __del__(self):
         # Be careful accessing self.gen.frame -- self.gen might not exist.
index b2e57efdb66cbfaa89bb49d69451ed4017aee3a1..7b6204a626f864e42c315186bf4ea231ddb11019 100644 (file)
@@ -9,7 +9,6 @@ import sys
 import traceback
 
 from . import base_futures
-from . import compat
 from . import events
 
 
@@ -238,8 +237,7 @@ class Future:
         assert self.done(), "yield from wasn't used with future"
         return self.result()  # May raise too.
 
-    if compat.PY35:
-        __await__ = __iter__ # make compatible with 'await' expression
+    __await__ = __iter__ # make compatible with 'await' expression
 
 
 # Needed for testing purposes.
index 92661830a0622830da008527b6fca71314b35d36..750c43591791e8beb0422c856f1bf0a45af552d4 100644 (file)
@@ -4,7 +4,6 @@ __all__ = ['Lock', 'Event', 'Condition', 'Semaphore', 'BoundedSemaphore']
 
 import collections
 
-from . import compat
 from . import events
 from . import futures
 from .coroutines import coroutine
@@ -67,23 +66,21 @@ class _ContextManagerMixin:
         yield from self.acquire()
         return _ContextManager(self)
 
-    if compat.PY35:
-
-        def __await__(self):
-            # To make "with await lock" work.
-            yield from self.acquire()
-            return _ContextManager(self)
+    def __await__(self):
+        # To make "with await lock" work.
+        yield from self.acquire()
+        return _ContextManager(self)
 
-        @coroutine
-        def __aenter__(self):
-            yield from self.acquire()
-            # We have no use for the "as ..."  clause in the with
-            # statement for locks.
-            return None
+    @coroutine
+    def __aenter__(self):
+        yield from self.acquire()
+        # We have no use for the "as ..."  clause in the with
+        # statement for locks.
+        return None
 
-        @coroutine
-        def __aexit__(self, exc_type, exc, tb):
-            self.release()
+    @coroutine
+    def __aexit__(self, exc_type, exc, tb):
+        self.release()
 
 
 class Lock(_ContextManagerMixin):
index 1c66d67b041304fc7f569acab652b0b8587bd19c..4fc681dde9753227d2b0614cbf87a3230048c605 100644 (file)
@@ -5,7 +5,6 @@ __all__ = ['Queue', 'PriorityQueue', 'LifoQueue', 'QueueFull', 'QueueEmpty']
 import collections
 import heapq
 
-from . import compat
 from . import events
 from . import locks
 from .coroutines import coroutine
@@ -251,9 +250,3 @@ class LifoQueue(Queue):
 
     def _get(self):
         return self._queue.pop()
-
-
-if not compat.PY35:
-    JoinableQueue = Queue
-    """Deprecated alias for Queue."""
-    __all__.append('JoinableQueue')
index 30b751e9891b38d86ccb62f153ac754c03552c8a..05774e953009f7c85cb7d1e8d320873efd194613 100644 (file)
@@ -12,7 +12,6 @@ if hasattr(socket, 'AF_UNIX'):
     __all__.extend(['open_unix_connection', 'start_unix_server'])
 
 from . import coroutines
-from . import compat
 from . import events
 from . import protocols
 from .coroutines import coroutine
index 52fef181cecc66bbdd499d614acd0c2bb57df003..5d744c3d30eea8fbb65d91ed5cff157bd14f088b 100644 (file)
@@ -13,7 +13,6 @@ import warnings
 import weakref
 
 from . import base_tasks
-from . import compat
 from . import coroutines
 from . import events
 from . import futures
@@ -525,7 +524,7 @@ def ensure_future(coro_or_future, *, loop=None):
         if task._source_traceback:
             del task._source_traceback[-1]
         return task
-    elif compat.PY35 and inspect.isawaitable(coro_or_future):
+    elif inspect.isawaitable(coro_or_future):
         return ensure_future(_wrap_awaitable(coro_or_future), loop=loop)
     else:
         raise TypeError('An asyncio.Future, a coroutine or an awaitable is '