bpo-38978: Implement __class_getitem__ for asyncio objects (GH-17491)



https://bugs.python.org/issue38978
diff --git a/Lib/asyncio/futures.py b/Lib/asyncio/futures.py
index 9afda22..a3cf379 100644
--- a/Lib/asyncio/futures.py
+++ b/Lib/asyncio/futures.py
@@ -103,6 +103,9 @@
             context['source_traceback'] = self._source_traceback
         self._loop.call_exception_handler(context)
 
+    def __class_getitem__(cls, type):
+        return cls
+
     @property
     def _log_traceback(self):
         return self.__log_traceback
diff --git a/Lib/asyncio/queues.py b/Lib/asyncio/queues.py
index 390ae9a..cd3f7c6 100644
--- a/Lib/asyncio/queues.py
+++ b/Lib/asyncio/queues.py
@@ -76,6 +76,9 @@
     def __str__(self):
         return f'<{type(self).__name__} {self._format()}>'
 
+    def __class_getitem__(cls, type):
+        return cls
+
     def _format(self):
         result = f'maxsize={self._maxsize!r}'
         if getattr(self, '_queue', None):
diff --git a/Lib/asyncio/tasks.py b/Lib/asyncio/tasks.py
index 38d9827..894d28e 100644
--- a/Lib/asyncio/tasks.py
+++ b/Lib/asyncio/tasks.py
@@ -175,6 +175,9 @@
             self._loop.call_exception_handler(context)
         super().__del__()
 
+    def __class_getitem__(cls, type):
+        return cls
+
     def _repr_info(self):
         return base_tasks._task_repr_info(self)