# 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 ""