bpo-36373: Deprecate explicit loop parameter in all public asyncio APIs [queue] (GH-13950)



This PR deprecate explicit loop parameters in all public asyncio APIs

This issues is split to be easier to review.

fourth step: queue.py





https://bugs.python.org/issue36373
diff --git a/Doc/library/asyncio-queue.rst b/Doc/library/asyncio-queue.rst
index 7be1023..e7775da 100644
--- a/Doc/library/asyncio-queue.rst
+++ b/Doc/library/asyncio-queue.rst
@@ -32,6 +32,10 @@
    the queue is always known and can be returned by calling the
    :meth:`qsize` method.
 
+   .. deprecated-removed:: 3.8 3.10
+      The *loop* parameter.
+
+
    This class is :ref:`not thread safe <asyncio-multithreading>`.
 
    .. attribute:: maxsize
diff --git a/Lib/asyncio/queues.py b/Lib/asyncio/queues.py
index 2a8d3e7..c96b4a0 100644
--- a/Lib/asyncio/queues.py
+++ b/Lib/asyncio/queues.py
@@ -2,6 +2,7 @@
 
 import collections
 import heapq
+import warnings
 
 from . import events
 from . import locks
@@ -34,6 +35,9 @@
             self._loop = events.get_event_loop()
         else:
             self._loop = loop
+            warnings.warn("The loop argument is deprecated since Python 3.8, "
+                          "and scheduled for removal in Python 3.10.",
+                          DeprecationWarning, stacklevel=2)
         self._maxsize = maxsize
 
         # Futures.