From e170ed27c61fb4c0fbb9db2e9c4c5de4965b4f46 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 17 Feb 2015 23:08:35 +0100 Subject: asyncio doc: fix the sphinx extension for coroutine commands --- Doc/tools/extensions/pyspecific.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Doc/tools/extensions/pyspecific.py b/Doc/tools/extensions/pyspecific.py index 17b3c82..64a5665 100644 --- a/Doc/tools/extensions/pyspecific.py +++ b/Doc/tools/extensions/pyspecific.py @@ -148,17 +148,12 @@ class PyDecoratorMethod(PyDecoratorMixin, PyClassmember): class PyCoroutineMixin(object): def handle_signature(self, sig, signode): ret = super(PyCoroutineMixin, self).handle_signature(sig, signode) -# signode.insert(0, addnodes.desc_addname('coroutine ', 'coroutine ')) signode.insert(0, addnodes.desc_annotation('coroutine ', 'coroutine ')) return ret - def needs_arglist(self): - return False - class PyCoroutineFunction(PyCoroutineMixin, PyModulelevel): def run(self): - # a decorator function is a function after all self.name = 'py:function' return PyModulelevel.run(self) -- cgit v0.12 From f91d845797255240ea42297d520727f93fcab44c Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 17 Feb 2015 23:09:52 +0100 Subject: asyncio, Tulip issue 220: Update doc of asyncio.Queue, add join and task_done methods --- Doc/library/asyncio-sync.rst | 64 +++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/Doc/library/asyncio-sync.rst b/Doc/library/asyncio-sync.rst index f036bc8..e3d82b0 100644 --- a/Doc/library/asyncio-sync.rst +++ b/Doc/library/asyncio-sync.rst @@ -310,6 +310,9 @@ Queue be interrupted between calling :meth:`qsize` and doing an operation on the Queue. + .. versionchanged:: 3.4.3 + New :meth:`join` and :meth:`task_done` methods. + .. method:: empty() Return ``True`` if the queue is empty, ``False`` otherwise. @@ -341,6 +344,20 @@ Queue Return an item if one is immediately available, else raise :exc:`QueueEmpty`. + .. coroutinemethod:: join() + + Block until all items in the queue have been gotten and processed. + + The count of unfinished tasks goes up whenever an item is added to the + queue. The count goes down whenever a consumer thread calls + :meth:`task_done` to indicate that the item was retrieved and all work on + it is complete. When the count of unfinished tasks drops to zero, + :meth:`join` unblocks. + + This method is a :ref:`coroutine `. + + .. versionadded:: 3.4.3 + .. coroutinemethod:: put(item) Put an item into the queue. If the queue is full, wait until a free slot @@ -362,6 +379,23 @@ Queue Number of items in the queue. + .. method:: task_done() + + Indicate that a formerly enqueued task is complete. + + Used by queue consumers. For each :meth:`~Queue.get` used to fetch a task, a + subsequent call to :meth:`task_done` tells the queue that the processing + on the task is complete. + + If a :meth:`join` is currently blocking, it will resume when all items + have been processed (meaning that a :meth:`task_done` call was received + for every item that had been :meth:`~Queue.put` into the queue). + + Raises :exc:`ValueError` if called more times than there were items + placed in the queue. + + .. versionadded:: 3.4.3 + .. attribute:: maxsize Number of items allowed in the queue. @@ -392,35 +426,9 @@ JoinableQueue .. class:: JoinableQueue - A subclass of :class:`Queue` with :meth:`task_done` and :meth:`join` - methods. - - .. coroutinemethod:: join() - - Block until all items in the queue have been gotten and processed. - - The count of unfinished tasks goes up whenever an item is added to the - queue. The count goes down whenever a consumer thread calls - :meth:`task_done` to indicate that the item was retrieved and all work on - it is complete. When the count of unfinished tasks drops to zero, - :meth:`join` unblocks. - - This method is a :ref:`coroutine `. - - .. method:: task_done() - - Indicate that a formerly enqueued task is complete. - - Used by queue consumers. For each :meth:`~Queue.get` used to fetch a task, a - subsequent call to :meth:`task_done` tells the queue that the processing - on the task is complete. - - If a :meth:`join` is currently blocking, it will resume when all items - have been processed (meaning that a :meth:`task_done` call was received - for every item that had been :meth:`~Queue.put` into the queue). + Deprecated alias for :class:`Queue`. - Raises :exc:`ValueError` if called more times than there were items - placed in the queue. + .. deprecated:: 3.4.3 Exceptions -- cgit v0.12