"""Queues"""
__all__ = ['Queue', 'PriorityQueue', 'LifoQueue', 'JoinableQueue',
- 'Full', 'Empty']
+ 'QueueFull', 'QueueEmpty']
import collections
import heapq
-import queue
from . import events
from . import futures
from .tasks import coroutine
-# Re-export queue.Full and .Empty exceptions.
-Full = queue.Full
-Empty = queue.Empty
+class QueueEmpty(Exception):
+ 'Exception raised by Queue.get(block=0)/get_nowait().'
+ pass
+
+
+class QueueFull(Exception):
+ 'Exception raised by Queue.put(block=0)/put_nowait().'
+ pass
+
+
+# Un-exported aliases for temporary backward compatibility.
+# Will disappear soon.
+Full = QueueFull
+Empty = QueueEmpty
class Queue:
def put_nowait(self, item):
"""Put an item into the queue without blocking.
- If no free slot is immediately available, raise Full.
+ If no free slot is immediately available, raise QueueFull.
"""
self._consume_done_getters()
if self._getters:
getter.set_result(self._get())
elif self._maxsize > 0 and self._maxsize == self.qsize():
- raise Full
+ raise QueueFull
else:
self._put(item)
def get_nowait(self):
"""Remove and return an item from the queue.
- Return an item if one is immediately available, else raise Empty.
+ Return an item if one is immediately available, else raise QueueEmpty.
"""
self._consume_done_putters()
if self._putters:
elif self.qsize():
return self._get()
else:
- raise Empty
+ raise QueueEmpty
class PriorityQueue(Queue):
def test_nonblocking_get_exception(self):
q = asyncio.Queue(loop=self.loop)
- self.assertRaises(asyncio.Empty, q.get_nowait)
+ self.assertRaises(asyncio.QueueEmpty, q.get_nowait)
def test_get_cancelled(self):
def test_nonblocking_put_exception(self):
q = asyncio.Queue(maxsize=1, loop=self.loop)
q.put_nowait(1)
- self.assertRaises(asyncio.Full, q.put_nowait, 2)
+ self.assertRaises(asyncio.QueueFull, q.put_nowait, 2)
def test_put_cancelled(self):
q = asyncio.Queue(loop=self.loop)