# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: # Rafael Fontenelle , 2026 # Jyst Breisgau, 2026 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-28 03:11+0000\n" "PO-Revision-Date: 2026-05-08 17:17+0000\n" "Last-Translator: Jyst Breisgau, 2026\n" "Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../../library/asyncio-queue.rst:7 msgid "Queues" msgstr "" #: ../../library/asyncio-queue.rst:9 msgid "**Source code:** :source:`Lib/asyncio/queues.py`" msgstr "" #: ../../library/asyncio-queue.rst:13 msgid "" "asyncio queues are designed to be similar to classes of the :mod:`queue` " "module. Although asyncio queues are not thread-safe, they are designed to " "be used specifically in async/await code." msgstr "" #: ../../library/asyncio-queue.rst:17 msgid "" "Note that methods of asyncio queues don't have a *timeout* parameter; use :" "func:`asyncio.wait_for` function to do queue operations with a timeout." msgstr "" #: ../../library/asyncio-queue.rst:21 msgid "See also the `Examples`_ section below." msgstr "" #: ../../library/asyncio-queue.rst:24 msgid "Queue" msgstr "" #: ../../library/asyncio-queue.rst:28 msgid "A first in, first out (FIFO) queue." msgstr "" #: ../../library/asyncio-queue.rst:30 msgid "" "If *maxsize* is less than or equal to zero, the queue size is infinite. If " "it is an integer greater than ``0``, then ``await put()`` blocks when the " "queue reaches *maxsize* until an item is removed by :meth:`get`." msgstr "" #: ../../library/asyncio-queue.rst:35 msgid "" "Unlike the standard library threading :mod:`queue`, the size of the queue is " "always known and can be returned by calling the :meth:`qsize` method." msgstr "" #: ../../library/asyncio-queue.rst:39 msgid "Removed the *loop* parameter." msgstr "" #: ../../library/asyncio-queue.rst:43 msgid "This class is :ref:`not thread safe `." msgstr "" #: ../../library/asyncio-queue.rst:47 msgid "Number of items allowed in the queue." msgstr "" #: ../../library/asyncio-queue.rst:51 msgid "Return ``True`` if the queue is empty, ``False`` otherwise." msgstr "" #: ../../library/asyncio-queue.rst:55 msgid "Return ``True`` if there are :attr:`maxsize` items in the queue." msgstr "" #: ../../library/asyncio-queue.rst:57 msgid "" "If the queue was initialized with ``maxsize=0`` (the default), then :meth:" "`full` never returns ``True``." msgstr "" #: ../../library/asyncio-queue.rst:63 msgid "" "Remove and return an item from the queue. If queue is empty, wait until an " "item is available." msgstr "" #: ../../library/asyncio-queue.rst:66 msgid "" "Raises :exc:`QueueShutDown` if the queue has been shut down and is empty, or " "if the queue has been shut down immediately." msgstr "" #: ../../library/asyncio-queue.rst:71 msgid "" "Return an item if one is immediately available, else raise :exc:`QueueEmpty`." msgstr "" #: ../../library/asyncio-queue.rst:74 msgid "" "Raises :exc:`QueueShutDown` if the queue has been shut down and is empty." msgstr "" #: ../../library/asyncio-queue.rst:79 msgid "Block until all items in the queue have been received and processed." msgstr "" #: ../../library/asyncio-queue.rst:81 msgid "" "The count of unfinished tasks goes up whenever an item is added to the " "queue. The count goes down whenever a consumer coroutine 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." msgstr "" #: ../../library/asyncio-queue.rst:90 msgid "" "Put an item into the queue. If the queue is full, wait until a free slot is " "available before adding the item." msgstr "" #: ../../library/asyncio-queue.rst:93 ../../library/asyncio-queue.rst:101 msgid "Raises :exc:`QueueShutDown` if the queue has been shut down." msgstr "" #: ../../library/asyncio-queue.rst:97 msgid "Put an item into the queue without blocking." msgstr "" #: ../../library/asyncio-queue.rst:99 msgid "If no free slot is immediately available, raise :exc:`QueueFull`." msgstr "" #: ../../library/asyncio-queue.rst:105 msgid "Return the number of items in the queue." msgstr "" #: ../../library/asyncio-queue.rst:109 msgid "Put a :class:`Queue` instance into a shutdown mode." msgstr "" #: ../../library/asyncio-queue.rst:111 msgid "" "The queue can no longer grow. Future calls to :meth:`~Queue.put` raise :exc:" "`QueueShutDown`. Currently blocked callers of :meth:`~Queue.put` will be " "unblocked and will raise :exc:`QueueShutDown` in the formerly awaiting task." msgstr "" #: ../../library/asyncio-queue.rst:116 msgid "" "If *immediate* is false (the default), the queue can be wound down normally " "with :meth:`~Queue.get` calls to extract tasks that have already been loaded." msgstr "" #: ../../library/asyncio-queue.rst:120 msgid "" "And if :meth:`~Queue.task_done` is called for each remaining task, a " "pending :meth:`~Queue.join` will be unblocked normally." msgstr "" #: ../../library/asyncio-queue.rst:123 msgid "" "Once the queue is empty, future calls to :meth:`~Queue.get` will raise :exc:" "`QueueShutDown`." msgstr "" #: ../../library/asyncio-queue.rst:126 msgid "" "If *immediate* is true, the queue is terminated immediately. The queue is " "drained to be completely empty and the count of unfinished tasks is reduced " "by the number of tasks drained. If unfinished tasks is zero, callers of :" "meth:`~Queue.join` are unblocked. Also, blocked callers of :meth:`~Queue." "get` are unblocked and will raise :exc:`QueueShutDown` because the queue is " "empty." msgstr "" #: ../../library/asyncio-queue.rst:134 msgid "" "Use caution when using :meth:`~Queue.join` with *immediate* set to true. " "This unblocks the join even when no work has been done on the tasks, " "violating the usual invariant for joining a queue." msgstr "" #: ../../library/asyncio-queue.rst:142 msgid "Indicate that a formerly enqueued work item is complete." msgstr "" #: ../../library/asyncio-queue.rst:144 msgid "" "Used by queue consumers. For each :meth:`~Queue.get` used to fetch a work " "item, a subsequent call to :meth:`task_done` tells the queue that the " "processing on the work item is complete." msgstr "" #: ../../library/asyncio-queue.rst:148 msgid "" "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)." msgstr "" #: ../../library/asyncio-queue.rst:153 msgid "" "Raises :exc:`ValueError` if called more times than there were items placed " "in the queue." msgstr "" #: ../../library/asyncio-queue.rst:158 msgid "Priority Queue" msgstr "" #: ../../library/asyncio-queue.rst:162 msgid "" "A variant of :class:`Queue`; retrieves entries in priority order (lowest " "first)." msgstr "" #: ../../library/asyncio-queue.rst:165 msgid "Entries are typically tuples of the form ``(priority_number, data)``." msgstr "" #: ../../library/asyncio-queue.rst:170 msgid "LIFO Queue" msgstr "" #: ../../library/asyncio-queue.rst:174 msgid "" "A variant of :class:`Queue` that retrieves most recently added entries first " "(last in, first out)." msgstr "" #: ../../library/asyncio-queue.rst:179 msgid "Exceptions" msgstr "Ausnahmen" #: ../../library/asyncio-queue.rst:183 msgid "" "This exception is raised when the :meth:`~Queue.get_nowait` method is called " "on an empty queue." msgstr "" #: ../../library/asyncio-queue.rst:189 msgid "" "Exception raised when the :meth:`~Queue.put_nowait` method is called on a " "queue that has reached its *maxsize*." msgstr "" #: ../../library/asyncio-queue.rst:195 msgid "" "Exception raised when :meth:`~Queue.put`, :meth:`~Queue.put_nowait`, :meth:" "`~Queue.get` or :meth:`~Queue.get_nowait` is called on a queue which has " "been shut down." msgstr "" #: ../../library/asyncio-queue.rst:203 msgid "Examples" msgstr "Beispiele" #: ../../library/asyncio-queue.rst:207 msgid "" "Queues can be used to distribute workload between several concurrent tasks::" msgstr "" #: ../../library/asyncio-queue.rst:210 msgid "" "import asyncio\n" "import random\n" "import time\n" "\n" "\n" "async def worker(name, queue):\n" " while True:\n" " # Get a \"work item\" out of the queue.\n" " sleep_for = await queue.get()\n" "\n" " # Sleep for the \"sleep_for\" seconds.\n" " await asyncio.sleep(sleep_for)\n" "\n" " # Notify the queue that the \"work item\" has been processed.\n" " queue.task_done()\n" "\n" " print(f'{name} has slept for {sleep_for:.2f} seconds')\n" "\n" "\n" "async def main():\n" " # Create a queue that we will use to store our \"workload\".\n" " queue = asyncio.Queue()\n" "\n" " # Generate random timings and put them into the queue.\n" " total_sleep_time = 0\n" " for _ in range(20):\n" " sleep_for = random.uniform(0.05, 1.0)\n" " total_sleep_time += sleep_for\n" " queue.put_nowait(sleep_for)\n" "\n" " # Create three worker tasks to process the queue concurrently.\n" " tasks = []\n" " for i in range(3):\n" " task = asyncio.create_task(worker(f'worker-{i}', queue))\n" " tasks.append(task)\n" "\n" " # Wait until the queue is fully processed.\n" " started_at = time.monotonic()\n" " await queue.join()\n" " total_slept_for = time.monotonic() - started_at\n" "\n" " # Cancel our worker tasks.\n" " for task in tasks:\n" " task.cancel()\n" " # Wait until all worker tasks are cancelled.\n" " await asyncio.gather(*tasks, return_exceptions=True)\n" "\n" " print('====')\n" " print(f'3 workers slept in parallel for {total_slept_for:.2f} seconds')\n" " print(f'total expected sleep time: {total_sleep_time:.2f} seconds')\n" "\n" "\n" "asyncio.run(main())" msgstr ""