diff --git a/dictionaries/library_asyncio-task.txt b/dictionaries/library_asyncio-task.txt index 69df8e2489..551990c2da 100644 --- a/dictionaries/library_asyncio-task.txt +++ b/dictionaries/library_asyncio-task.txt @@ -1,3 +1,7 @@ -threadpool gather kwargs +reprogramar +reprogramarse +reúnalas +sincrónicamente +threadpool diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 7112d61773..5168140893 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -13,9 +13,8 @@ msgstr "" "POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 13:41+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -39,10 +38,9 @@ msgstr "Corrutinas" #: ../Doc/library/asyncio-task.rst:21 msgid "**Source code:** :source:`Lib/asyncio/coroutines.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/asyncio/coroutines.py`" #: ../Doc/library/asyncio-task.rst:25 -#, fuzzy msgid "" ":term:`Coroutines ` declared with the async/await syntax is the " "preferred way of writing asyncio applications. For example, the following " @@ -50,8 +48,8 @@ msgid "" msgstr "" ":term:`Coroutines ` declarado con la sintaxis async/await es la " "forma preferida de escribir aplicaciones asyncio. Por ejemplo, el siguiente " -"fragmento de código (requiere Python 3.7+) imprime \"hola\", espera 1 " -"segundo y, a continuación, imprime \"mundo\"::" +"fragmento de código imprime \"hola\", espera 1 segundo y luego imprime " +"\"mundo\"::" #: ../Doc/library/asyncio-task.rst:41 msgid "" @@ -61,11 +59,10 @@ msgstr "" "que se ejecute::" #: ../Doc/library/asyncio-task.rst:47 -#, fuzzy msgid "To actually run a coroutine, asyncio provides the following mechanisms:" msgstr "" -"Para ejecutar realmente una corrutina, asyncio proporciona tres mecanismos " -"principales:" +"Para ejecutar realmente una corutina, asyncio proporciona los siguientes " +"mecanismos:" #: ../Doc/library/asyncio-task.rst:49 msgid "" @@ -118,14 +115,17 @@ msgid "" "The :class:`asyncio.TaskGroup` class provides a more modern alternative to :" "func:`create_task`. Using this API, the last example becomes::" msgstr "" +"La clase :class:`asyncio.TaskGroup` proporciona una alternativa más moderna " +"a :func:`create_task`. Usando esta API, el último ejemplo se convierte en:" #: ../Doc/library/asyncio-task.rst:128 msgid "The timing and output should be the same as for the previous version." msgstr "" +"El tiempo y la salida deben ser los mismos que para la versión anterior." #: ../Doc/library/asyncio-task.rst:130 msgid ":class:`asyncio.TaskGroup`." -msgstr "" +msgstr ":class:`asyncio.TaskGroup`." #: ../Doc/library/asyncio-task.rst:137 msgid "Awaitables" @@ -251,7 +251,7 @@ msgstr "Creando Tareas" #: ../Doc/library/asyncio-task.rst:237 msgid "**Source code:** :source:`Lib/asyncio/tasks.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/asyncio/tasks.py`" #: ../Doc/library/asyncio-task.rst:243 msgid "" @@ -275,6 +275,9 @@ msgid "" "class:`contextvars.Context` for the *coro* to run in. The current context " "copy is created when no *context* is provided." msgstr "" +"Un argumento *context* opcional de solo palabra clave permite especificar " +"un :class:`contextvars.Context` personalizado para que se ejecute el *coro*. " +"La copia de contexto actual se crea cuando no se proporciona *context*." #: ../Doc/library/asyncio-task.rst:253 msgid "" @@ -291,6 +294,8 @@ msgid "" "structural concurrency; it allows for waiting for a group of related tasks " "with strong safety guarantees." msgstr "" +":meth:`asyncio.TaskGroup.create_task` es una alternativa más nueva que " +"permite una espera conveniente para un grupo de tareas relacionadas." #: ../Doc/library/asyncio-task.rst:265 msgid "" @@ -300,26 +305,34 @@ msgid "" "any time, even before it's done. For reliable \"fire-and-forget\" background " "tasks, gather them in a collection::" msgstr "" +"Guarde una referencia al resultado de esta función, para evitar que una " +"tarea desaparezca en medio de la ejecución. El bucle de eventos solo " +"mantiene referencias débiles a las tareas. Una tarea a la que no se hace " +"referencia en ningún otro lugar puede ser recolectada por el recolector de " +"basura en cualquier momento, incluso antes de que se complete. Para tareas " +"confiables en segundo plano, de tipo \"lanzar y olvidar\", reúnalas en una " +"colección:" #: ../Doc/library/asyncio-task.rst:287 ../Doc/library/asyncio-task.rst:1076 -#, fuzzy msgid "Added the *name* parameter." -msgstr "Se ha añadido el parámetro ``name``." +msgstr "Se ha añadido el parámetro *name*." #: ../Doc/library/asyncio-task.rst:290 ../Doc/library/asyncio-task.rst:1083 -#, fuzzy msgid "Added the *context* parameter." -msgstr "Se ha añadido el parámetro ``name``." +msgstr "Se ha añadido el parámetro *context*." #: ../Doc/library/asyncio-task.rst:295 msgid "Task Cancellation" -msgstr "" +msgstr "Cancelación de tareas" #: ../Doc/library/asyncio-task.rst:297 msgid "" "Tasks can easily and safely be cancelled. When a task is cancelled, :exc:" "`asyncio.CancelledError` will be raised in the task at the next opportunity." msgstr "" +"Las tareas se pueden cancelar de forma fácil y segura. Cuando se cancela una " +"tarea, se generará :exc:`asyncio.CancelledError` en la tarea en la próxima " +"oportunidad." #: ../Doc/library/asyncio-task.rst:301 msgid "" @@ -329,6 +342,12 @@ msgid "" "`asyncio.CancelledError` directly subclasses :exc:`BaseException` so most " "code will not need to be aware of it." msgstr "" +"Se recomienda que las corrutinas utilicen bloques ``try/finally`` para " +"realizar de forma sólida la lógica de limpieza. En caso de que :exc:`asyncio." +"CancelledError` se detecte explícitamente, generalmente debería propagarse " +"cuando se complete la limpieza. :exc:`asyncio.CancelledError` subclasifica " +"directamente a :exc:`BaseException`, por lo que la mayor parte del código no " +"necesitará tenerlo en cuenta." #: ../Doc/library/asyncio-task.rst:307 msgid "" @@ -340,16 +359,27 @@ msgid "" "exc:`asyncio.CancelledError` is truly desired, it is necessary to also call " "``uncancel()`` to completely remove the cancellation state." msgstr "" +"Los componentes asyncio que permiten la simultaneidad estructurada, como :" +"class:`asyncio.TaskGroup` y :func:`asyncio.timeout`, se implementan mediante " +"cancelación internamente y podrían comportarse mal si una rutina traga :exc:" +"`asyncio.CancelledError`. De manera similar, el código de usuario " +"generalmente no debería llamar a :meth:`uncancel `. " +"Sin embargo, en los casos en los que realmente se desea suprimir :exc:" +"`asyncio.CancelledError`, es necesario llamar también a ``uncancel()`` para " +"eliminar completamente el estado de cancelación." #: ../Doc/library/asyncio-task.rst:319 msgid "Task Groups" -msgstr "" +msgstr "Grupos de tareas" #: ../Doc/library/asyncio-task.rst:321 msgid "" "Task groups combine a task creation API with a convenient and reliable way " "to wait for all tasks in the group to finish." msgstr "" +"Los grupos de tareas combinan una API de creación de tareas con una forma " +"conveniente y confiable de esperar a que finalicen todas las tareas del " +"grupo." #: ../Doc/library/asyncio-task.rst:326 msgid "" @@ -357,12 +387,18 @@ msgid "" "group of tasks. Tasks can be added to the group using :meth:`create_task`. " "All tasks are awaited when the context manager exits." msgstr "" +"Un :ref:`asynchronous context manager ` que contiene " +"un grupo de tareas. Las tareas se pueden agregar al grupo usando :meth:" +"`create_task`. Se esperan todas las tareas cuando sale el administrador de " +"contexto." #: ../Doc/library/asyncio-task.rst:335 msgid "" "Create a task in this task group. The signature matches that of :func:" "`asyncio.create_task`." msgstr "" +"Cree una tarea en este grupo de tareas. La firma coincide con la de :func:" +"`asyncio.create_task`." #: ../Doc/library/asyncio-task.rst:338 ../Doc/library/asyncio-task.rst:472 #: ../Doc/library/asyncio-task.rst:645 ../Doc/library/asyncio-task.rst:703 @@ -379,6 +415,11 @@ msgid "" "in that coroutine). Once the last task has finished and the ``async with`` " "block is exited, no new tasks may be added to the group." msgstr "" +"La instrucción ``async with`` esperará a que finalicen todas las tareas del " +"grupo. Mientras espera, aún se pueden agregar nuevas tareas al grupo (por " +"ejemplo, pasando ``tg`` a una de las corrutinas y llamando a ``tg." +"create_task()`` en esa corrutina). Una vez finalizada la última tarea y " +"salido del bloque ``async with``, no se podrán añadir nuevas tareas al grupo." #: ../Doc/library/asyncio-task.rst:353 msgid "" @@ -391,6 +432,14 @@ msgid "" "exc:`asyncio.CancelledError` will interrupt an ``await``, but it will not " "bubble out of the containing ``async with`` statement." msgstr "" +"La primera vez que alguna de las tareas pertenecientes al grupo falla con " +"una excepción que no sea :exc:`asyncio.CancelledError`, las tareas restantes " +"del grupo se cancelan. No se pueden añadir más tareas al grupo. En este " +"punto, si el cuerpo de la instrucción ``async with`` aún está activo (es " +"decir, aún no se ha llamado a :meth:`~object.__aexit__`), la tarea que " +"contiene directamente la instrucción ``async with`` también se cancela. El :" +"exc:`asyncio.CancelledError` resultante interrumpirá un ``await``, pero no " +"saldrá de la instrucción ``async with`` que lo contiene." #: ../Doc/library/asyncio-task.rst:363 msgid "" @@ -399,6 +448,10 @@ msgid "" "an :exc:`ExceptionGroup` or :exc:`BaseExceptionGroup` (as appropriate; see " "their documentation) which is then raised." msgstr "" +"Una vez que todas las tareas han finalizado, si alguna tarea ha fallado con " +"una excepción que no sea :exc:`asyncio.CancelledError`, esas excepciones se " +"combinan en un :exc:`ExceptionGroup` o :exc:`BaseExceptionGroup` (según " +"corresponda; consulte su documentación) que luego se genera." #: ../Doc/library/asyncio-task.rst:370 msgid "" @@ -408,6 +461,11 @@ msgid "" "`KeyboardInterrupt` or :exc:`SystemExit` is re-raised instead of :exc:" "`ExceptionGroup` or :exc:`BaseExceptionGroup`." msgstr "" +"Dos excepciones básicas se tratan de manera especial: si alguna tarea falla " +"con :exc:`KeyboardInterrupt` o :exc:`SystemExit`, el grupo de tareas aún " +"cancela las tareas restantes y las espera, pero luego se vuelve a generar " +"el :exc:`KeyboardInterrupt` o :exc:`SystemExit` inicial en lugar de :exc:" +"`ExceptionGroup` o :exc:`BaseExceptionGroup`." #: ../Doc/library/asyncio-task.rst:376 msgid "" @@ -420,6 +478,15 @@ msgid "" "the exception group. The same special case is made for :exc:" "`KeyboardInterrupt` and :exc:`SystemExit` as in the previous paragraph." msgstr "" +"Si el cuerpo de la instrucción ``async with`` finaliza con una excepción " +"(por lo que se llama a :meth:`~object.__aexit__` con un conjunto de " +"excepciones), esto se trata igual que si una de las tareas fallara: las " +"tareas restantes se cancelan y luego se esperan, y las excepciones de no " +"cancelación se agrupan en un grupo de excepción y se generan. La excepción " +"pasada a :meth:`~object.__aexit__`, a menos que sea :exc:`asyncio." +"CancelledError`, también se incluye en el grupo de excepciones. Se hace el " +"mismo caso especial para :exc:`KeyboardInterrupt` y :exc:`SystemExit` que en " +"el párrafo anterior." #: ../Doc/library/asyncio-task.rst:390 msgid "Sleeping" @@ -466,9 +533,8 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:620 ../Doc/library/asyncio-task.rst:767 #: ../Doc/library/asyncio-task.rst:797 ../Doc/library/asyncio-task.rst:849 #: ../Doc/library/asyncio-task.rst:875 -#, fuzzy msgid "Removed the *loop* parameter." -msgstr "El parámetro *loop*." +msgstr "Se quitó el parámetro *loop*." #: ../Doc/library/asyncio-task.rst:431 msgid "Running Tasks Concurrently" @@ -549,6 +615,8 @@ msgid "" "*TaskGroup* will, while *gather* will not, cancel the remaining scheduled " "tasks)." msgstr "" +"Una forma más moderna de crear y ejecutar tareas simultáneamente y esperar a " +"que se completen es :class:`asyncio.TaskGroup`." #: ../Doc/library/asyncio-task.rst:510 msgid "" @@ -585,11 +653,11 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:533 msgid "Eager Task Factory" -msgstr "" +msgstr "Fábrica de tareas ansiosas" #: ../Doc/library/asyncio-task.rst:537 msgid "A task factory for eager task execution." -msgstr "" +msgstr "Una fábrica de tareas para una ejecución entusiasta de tareas." #: ../Doc/library/asyncio-task.rst:539 msgid "" @@ -600,12 +668,22 @@ msgid "" "overhead of loop scheduling is avoided for coroutines that complete " "synchronously." msgstr "" +"Cuando se utiliza esta fábrica (a través de :meth:`loop." +"set_task_factory(asyncio.eager_task_factory) `), las " +"corrutinas comienzan a ejecutarse sincrónicamente durante la construcción " +"de :class:`Task`. Las tareas sólo se programan en el bucle de eventos si se " +"bloquean. Esto puede suponer una mejora del rendimiento, ya que se evita la " +"sobrecarga de la programación del bucle para las corrutinas que se completan " +"sincrónicamente." #: ../Doc/library/asyncio-task.rst:545 msgid "" "A common example where this is beneficial is coroutines which employ caching " "or memoization to avoid actual I/O when possible." msgstr "" +"Un ejemplo común en el que esto resulta beneficioso son las rutinas que " +"emplean almacenamiento en caché o memorización para evitar E/S reales cuando " +"sea posible." #: ../Doc/library/asyncio-task.rst:550 msgid "" @@ -615,6 +693,12 @@ msgid "" "change may introduce behavior changes to existing applications. For example, " "the application's task execution order is likely to change." msgstr "" +"La ejecución inmediata de la corrutina es un cambio semántico. Si la rutina " +"regresa o se activa, la tarea nunca se programa en el bucle de eventos. Si " +"la ejecución de la rutina se bloquea, la tarea se programa en el bucle de " +"eventos. Este cambio puede introducir cambios de comportamiento en las " +"aplicaciones existentes. Por ejemplo, es probable que cambie el orden de " +"ejecución de las tareas de la aplicación." #: ../Doc/library/asyncio-task.rst:561 msgid "" @@ -622,6 +706,9 @@ msgid "" "the provided *custom_task_constructor* when creating a new task instead of " "the default :class:`Task`." msgstr "" +"Cree una fábrica de tareas entusiastas, similar a :func:" +"`eager_task_factory`, utilizando el *custom_task_constructor* proporcionado " +"al crear una nueva tarea en lugar del :class:`Task` predeterminado." #: ../Doc/library/asyncio-task.rst:565 msgid "" @@ -629,6 +716,9 @@ msgid "" "the signature of :class:`Task.__init__ `. The callable must return a :" "class:`asyncio.Task`-compatible object." msgstr "" +"*custom_task_constructor* debe ser un *callable* con la firma que coincida " +"con la firma de :class:`Task.__init__ `. El invocable debe devolver un " +"objeto compatible con :class:`asyncio.Task`." #: ../Doc/library/asyncio-task.rst:569 msgid "" @@ -636,6 +726,9 @@ msgid "" "an event loop via :meth:`loop.set_task_factory(factory) `)." msgstr "" +"Esta función devuelve un *callable* destinado a ser utilizado como fábrica " +"de tareas de un bucle de eventos a través de :meth:`loop." +"set_task_factory(factory) `)." #: ../Doc/library/asyncio-task.rst:576 msgid "Shielding From Cancellation" @@ -700,6 +793,11 @@ msgid "" "tasks. A task that isn't referenced elsewhere may get garbage collected at " "any time, even before it's done." msgstr "" +"Guarde una referencia a las tareas pasadas a esta función, para evitar que " +"una tarea desaparezca a mitad de la ejecución. El bucle de eventos solo " +"mantiene referencias débiles a las tareas. Una tarea a la que no se hace " +"referencia en ningún otro lugar puede ser recolectada por el recolector de " +"basura en cualquier momento, incluso antes de que se complete." #: ../Doc/library/asyncio-task.rst:623 msgid "" @@ -718,6 +816,8 @@ msgid "" "Return an :ref:`asynchronous context manager ` that " "can be used to limit the amount of time spent waiting on something." msgstr "" +"Un :ref:`asynchronous context manager ` que se puede " +"usar para limitar la cantidad de tiempo que se pasa esperando algo." #: ../Doc/library/asyncio-task.rst:637 msgid "" @@ -725,12 +825,18 @@ msgid "" "*delay* is ``None``, no time limit will be applied; this can be useful if " "the delay is unknown when the context manager is created." msgstr "" +"*delay* puede ser ``None`` o un número flotante/int de segundos de espera. " +"Si *delay* es ``None``, no se aplicará ningún límite de tiempo; esto puede " +"ser útil si se desconoce el retraso cuando se crea el administrador de " +"contexto." #: ../Doc/library/asyncio-task.rst:642 msgid "" "In either case, the context manager can be rescheduled after creation using :" "meth:`Timeout.reschedule`." msgstr "" +"En cualquier caso, el administrador de contexto se puede reprogramar después " +"de la creación mediante :meth:`Timeout.reschedule`." #: ../Doc/library/asyncio-task.rst:651 msgid "" @@ -739,6 +845,10 @@ msgid "" "CancelledError` internally, transforming it into a :exc:`TimeoutError` which " "can be caught and handled." msgstr "" +"Si ``long_running_task`` tarda más de 10 segundos en completarse, el " +"administrador de contexto cancelará la tarea actual y manejará internamente " +"el :exc:`asyncio.CancelledError` resultante, transformándolo en un :exc:" +"`asyncio.TimeoutError` que se puede capturar y manejar." #: ../Doc/library/asyncio-task.rst:658 msgid "" @@ -746,61 +856,81 @@ msgid "" "`asyncio.CancelledError` into a :exc:`TimeoutError`, which means the :exc:" "`TimeoutError` can only be caught *outside* of the context manager." msgstr "" +"El administrador de contexto :func:`asyncio.timeout` es lo que transforma " +"el :exc:`asyncio.CancelledError` en un :exc:`asyncio.TimeoutError`, lo que " +"significa que el :exc:`asyncio.TimeoutError` solo puede capturarse *outside* " +"del administrador de contexto." #: ../Doc/library/asyncio-task.rst:663 msgid "Example of catching :exc:`TimeoutError`::" -msgstr "" +msgstr "Ejemplo de captura de :exc:`TimeoutError`::" #: ../Doc/library/asyncio-task.rst:674 msgid "" "The context manager produced by :func:`asyncio.timeout` can be rescheduled " "to a different deadline and inspected." msgstr "" +"El administrador de contexto producido por :func:`asyncio.timeout` puede " +"reprogramarse para una fecha límite diferente e inspeccionarse." #: ../Doc/library/asyncio-task.rst:679 msgid "" "An :ref:`asynchronous context manager ` for " "cancelling overdue coroutines." msgstr "" +"Un :ref:`asynchronous context manager ` para " +"cancelar corrutinas vencidas." #: ../Doc/library/asyncio-task.rst:682 msgid "" "``when`` should be an absolute time at which the context should time out, as " "measured by the event loop's clock:" msgstr "" +"``when`` debe ser un tiempo absoluto en el que el contexto debe expirar, " +"según lo medido por el reloj del bucle de eventos:" #: ../Doc/library/asyncio-task.rst:685 msgid "If ``when`` is ``None``, the timeout will never trigger." -msgstr "" +msgstr "Si ``when`` es ``None``, el tiempo de espera nunca se activará." #: ../Doc/library/asyncio-task.rst:686 msgid "" "If ``when < loop.time()``, the timeout will trigger on the next iteration of " "the event loop." msgstr "" +"Si ``when < loop.time()``, el tiempo de espera se activará en la próxima " +"iteración del bucle de eventos" #: ../Doc/library/asyncio-task.rst:691 msgid "" "Return the current deadline, or ``None`` if the current deadline is not set." msgstr "" +"Retorna la fecha límite actual, o ``None`` si la fecha límite actual no está " +"establecida." #: ../Doc/library/asyncio-task.rst:696 msgid "Reschedule the timeout." -msgstr "" +msgstr "Reprogramar el tiempo de espera." #: ../Doc/library/asyncio-task.rst:700 msgid "Return whether the context manager has exceeded its deadline (expired)." msgstr "" +"Retorna si el administrador de contexto ha excedido su fecha límite " +"(caducada)." #: ../Doc/library/asyncio-task.rst:720 msgid "Timeout context managers can be safely nested." msgstr "" +"Los administradores de contexto de tiempo de espera se pueden anidar de " +"forma segura." #: ../Doc/library/asyncio-task.rst:726 msgid "" "Similar to :func:`asyncio.timeout`, except *when* is the absolute time to " "stop waiting, or ``None``." msgstr "" +"Similar a :func:`asyncio.timeout`, excepto que *when* es el tiempo absoluto " +"para dejar de esperar, o ``None``." #: ../Doc/library/asyncio-task.rst:746 msgid "" @@ -819,12 +949,11 @@ msgstr "" "a esperar. Si *timeout* es ``None``, se bloquea hasta que Future se completa." #: ../Doc/library/asyncio-task.rst:755 -#, fuzzy msgid "" "If a timeout occurs, it cancels the task and raises :exc:`TimeoutError`." msgstr "" -"Si se produce un agotamiento de tiempo, cancela la tarea y genera :exc:" -"`asyncio.TimeoutError`." +"Si se agota el tiempo de espera, cancela la tarea y lanza :exc:" +"`TimeoutError`." #: ../Doc/library/asyncio-task.rst:758 msgid "" @@ -849,28 +978,27 @@ msgid "If the wait is cancelled, the future *aw* is also cancelled." msgstr "Si se cancela la espera, el Future *aw* también se cancela." #: ../Doc/library/asyncio-task.rst:792 -#, fuzzy msgid "" "When *aw* is cancelled due to a timeout, ``wait_for`` waits for *aw* to be " "cancelled. Previously, it raised :exc:`TimeoutError` immediately." msgstr "" -"Cuando *aw* se cancela debido a un agotamiento de tiempo, ``wait_for`` " -"espera a que se cancele *aw*. Anteriormente, se lanzó inmediatamente :exc:" -"`asyncio.TimeoutError`." +"Cuando se cancela *aw* debido a un tiempo de espera, ``wait_for`` espera a " +"que se cancele *aw*. Anteriormente, lanzaba :exc:`TimeoutError` " +"inmediatamente." #: ../Doc/library/asyncio-task.rst:802 msgid "Waiting Primitives" msgstr "Esperando primitivas" #: ../Doc/library/asyncio-task.rst:806 -#, fuzzy msgid "" "Run :class:`~asyncio.Future` and :class:`~asyncio.Task` instances in the " "*aws* iterable concurrently and block until the condition specified by " "*return_when*." msgstr "" -"Ejecuta :ref:`objetos en espera ` en el *aws* iterable " -"simultáneamente y bloquee hasta la condición especificada por *return_when*." +"Ejecuta instancias :class:`~asyncio.Future` y :class:`~asyncio.Task` en el " +"iterable *aws* simultáneamente y bloquea hasta la condición especificada por " +"*return_when*." #: ../Doc/library/asyncio-task.rst:810 msgid "The *aws* iterable must not be empty." @@ -894,15 +1022,14 @@ msgstr "" "retornar." #: ../Doc/library/asyncio-task.rst:821 -#, fuzzy msgid "" "Note that this function does not raise :exc:`TimeoutError`. Futures or Tasks " "that aren't done when the timeout occurs are simply returned in the second " "set." msgstr "" -"Tenga en cuenta que esta función no lanza :exc:`asyncio.TimeoutError`. Los " -"Futures o Tareas que no terminan cuando se agota el tiempo simplemente se " -"retornan en el segundo conjunto." +"Tenga en cuenta que esta función no lanza :exc:`TimeoutError`. Los futuros o " +"las tareas que no se realizan cuando se agota el tiempo de espera " +"simplemente se retornan en el segundo conjunto." #: ../Doc/library/asyncio-task.rst:825 msgid "" @@ -959,13 +1086,12 @@ msgstr "" "cuando se produce un agotamiento de tiempo." #: ../Doc/library/asyncio-task.rst:852 -#, fuzzy msgid "Passing coroutine objects to ``wait()`` directly is forbidden." -msgstr "El paso de objetos corrutina a ``wait()`` directamente está en desuso." +msgstr "Está prohibido pasar objetos de rutina a ``wait()`` directamente." #: ../Doc/library/asyncio-task.rst:855 ../Doc/library/asyncio-task.rst:882 msgid "Added support for generators yielding tasks." -msgstr "" +msgstr "Se agregó soporte para generadores que generan tareas." #: ../Doc/library/asyncio-task.rst:861 msgid "" @@ -975,17 +1101,16 @@ msgid "" "remaining awaitables." msgstr "" "Ejecuta :ref:`objetos en espera ` en el *aws* iterable " -"al mismo tiempo. Devuelve un iterador de corrutinas. Se puede esperar a cada " -"corrutina devuelta para obtener el siguiente resultado más temprano del " +"al mismo tiempo. Retorna un iterador de corrutinas. Se puede esperar a cada " +"corrutina retornada para obtener el siguiente resultado más temprano del " "iterable de los esperables restantes." #: ../Doc/library/asyncio-task.rst:866 -#, fuzzy msgid "" "Raises :exc:`TimeoutError` if the timeout occurs before all Futures are done." msgstr "" -"Lanza :exc:`asyncio.TimeoutError` si el agotamiento de tiempo ocurre antes " -"que todos los Futures terminen." +"Lanza :exc:`TimeoutError` si el tiempo de espera se agota antes de que " +"finalicen todos los futuros." #: ../Doc/library/asyncio-task.rst:878 msgid "" @@ -1024,42 +1149,40 @@ msgstr "" "de *func*." #: ../Doc/library/asyncio-task.rst:900 -#, fuzzy msgid "" "This coroutine function is primarily intended to be used for executing IO-" "bound functions/methods that would otherwise block the event loop if they " "were run in the main thread. For example::" msgstr "" -"Esta función de corrutina está destinada principalmente a ser utilizada para " -"ejecutar funciones/métodos vinculados a IO que de otro modo bloquearían el " -"bucle de eventos si se ejecutaran en el hilo principal. Por ejemplo::" +"Esta función de rutina está diseñada principalmente para ejecutar funciones/" +"métodos vinculados a IO que, de otro modo, bloquearían el bucle de eventos " +"si se ejecutaran en el subproceso principal. Por ejemplo::" #: ../Doc/library/asyncio-task.rst:930 -#, fuzzy msgid "" "Directly calling ``blocking_io()`` in any coroutine would block the event " "loop for its duration, resulting in an additional 1 second of run time. " "Instead, by using ``asyncio.to_thread()``, we can run it in a separate " "thread without blocking the event loop." msgstr "" -"Llamando directamente a `blocking_io()` en cualquier corrutina bloquearía el " -"bucle de eventos por su duración, lo que daría como resultado 1 segundo " -"adicional de tiempo de ejecución. En cambio, usando `asyncio.to_thread()`, " -"podemos ejecutarlo en un hilo separado sin bloquear el bucle de eventos." +"Llamar directamente a ``blocking_io()`` en cualquier rutina bloquearía el " +"bucle de eventos durante su duración, lo que daría como resultado 1 segundo " +"adicional de tiempo de ejecución. En cambio, al usar ``asyncio." +"to_thread()``, podemos ejecutarlo en un subproceso separado sin bloquear el " +"ciclo de eventos." #: ../Doc/library/asyncio-task.rst:937 -#, fuzzy msgid "" "Due to the :term:`GIL`, ``asyncio.to_thread()`` can typically only be used " "to make IO-bound functions non-blocking. However, for extension modules that " "release the GIL or alternative Python implementations that don't have one, " "``asyncio.to_thread()`` can also be used for CPU-bound functions." msgstr "" -"Debido al :term:`GIL`, `asyncio.to_thread()` normalmente solo se puede usar " -"para hacer que las funciones vinculadas a IO no bloqueen. Sin embargo, para " -"los módulos de extensión que lanzan GIL o implementaciones alternativas de " -"Python que no tienen una, `asyncio.to_thread()` también se puede usar para " -"funciones vinculadas a la CPU." +"Debido a :term:`GIL`, ``asyncio.to_thread()`` generalmente solo se puede " +"usar para hacer que las funciones vinculadas a IO no bloqueen. Sin embargo, " +"para los módulos de extensión que lanzan GIL o implementaciones alternativas " +"de Python que no tienen uno, ``asyncio.to_thread()`` también se puede usar " +"para funciones vinculadas a la CPU." #: ../Doc/library/asyncio-task.rst:946 msgid "Scheduling From Other Threads" @@ -1145,9 +1268,8 @@ msgstr "" "bucle actual." #: ../Doc/library/asyncio-task.rst:1018 -#, fuzzy msgid "Return ``True`` if *obj* is a coroutine object." -msgstr "Retorna ``True`` si la Tarea está *finalizada*." +msgstr "Retorna ``True`` si *obj* es un objeto corutina." #: ../Doc/library/asyncio-task.rst:1024 msgid "Task Object" @@ -1213,7 +1335,7 @@ msgid "" "`CancelledError` exception and was actually cancelled." msgstr "" ":meth:`cancelled` se puede utilizar para comprobar si la Tarea fue " -"cancelada. El método devuelve ``True`` si la corrutina contenida no suprimió " +"cancelada. El método retorna ``True`` si la corrutina contenida no suprimió " "la excepción :exc:`CancelledError` y se canceló realmente." #: ../Doc/library/asyncio-task.rst:1057 @@ -1231,6 +1353,10 @@ msgid "" "provided, the Task copies the current context and later runs its coroutine " "in the copied context." msgstr "" +"Un argumento *context* opcional de solo palabra clave permite especificar " +"un :class:`contextvars.Context` personalizado para que se ejecute *coro*. Si " +"no se proporciona ningún *context*, la tarea copia el contexto actual y " +"luego ejecuta su rutina en el contexto copiado." #: ../Doc/library/asyncio-task.rst:1066 msgid "" @@ -1241,6 +1367,13 @@ msgid "" "coroutine returns or raises without blocking, the task will be finished " "eagerly and will skip scheduling to the event loop." msgstr "" +"Un argumento *eager_start* opcional de solo palabra clave permite iniciar " +"con entusiasmo la ejecución de :class:`asyncio.Task` en el momento de la " +"creación de la tarea. Si se establece en ``True`` y el bucle de eventos se " +"está ejecutando, la tarea comenzará a ejecutar la corrutina inmediatamente, " +"hasta la primera vez que la corrutina se bloquee. Si la rutina regresa o se " +"activa sin bloquearse, la tarea finalizará con entusiasmo y saltará la " +"programación al bucle de eventos." #: ../Doc/library/asyncio-task.rst:1073 msgid "Added support for the :mod:`contextvars` module." @@ -1255,9 +1388,8 @@ msgstr "" "hay un bucle de eventos en ejecución." #: ../Doc/library/asyncio-task.rst:1086 -#, fuzzy msgid "Added the *eager_start* parameter." -msgstr "Se ha añadido el parámetro ``name``." +msgstr "Se ha añadido el parámetro *eager_start*." #: ../Doc/library/asyncio-task.rst:1091 msgid "Return ``True`` if the Task is *done*." @@ -1280,7 +1412,7 @@ msgid "" "If the Task is *done*, the result of the wrapped coroutine is returned (or " "if the coroutine raised an exception, that exception is re-raised.)" msgstr "" -"Si la tarea está *terminada*, se devuelve el resultado de la corrutina " +"Si la tarea está *terminada*, se retorna el resultado de la corrutina " "contenida (o si la corrutina lanzó una excepción, esa excepción se vuelve a " "relanzar.)" @@ -1383,9 +1515,9 @@ msgid "" msgstr "" "El argumento opcional *limit* establece el número máximo de marcos que se " "retornarán; de forma predeterminada se retornan todos los marcos " -"disponibles. El orden de la lista devuelta varía en función de si se retorna " -"una pila o un *traceback*: se devuelven los marcos más recientes de una " -"pila, pero se devuelven los marcos más antiguos de un *traceback*. (Esto " +"disponibles. El orden de la lista retornada varía en función de si se " +"retorna una pila o un *traceback*: se retornan los marcos más recientes de " +"una pila, pero se retornan los marcos más antiguos de un *traceback*. (Esto " "coincide con el comportamiento del módulo traceback.)ss" #: ../Doc/library/asyncio-task.rst:1165 @@ -1405,13 +1537,12 @@ msgid "The *limit* argument is passed to :meth:`get_stack` directly." msgstr "El argumento *limit* se pasa directamente a :meth:`get_stack`." #: ../Doc/library/asyncio-task.rst:1172 -#, fuzzy msgid "" "The *file* argument is an I/O stream to which the output is written; by " "default output is written to :data:`sys.stdout`." msgstr "" "El argumento *file* es un flujo de E/S en el que se escribe la salida; por " -"defecto, la salida se escribe en :data:`sys.stderr`." +"defecto, la salida se escribe en :data:`sys.stdout`." #: ../Doc/library/asyncio-task.rst:1177 msgid "Return the coroutine object wrapped by the :class:`Task`." @@ -1422,15 +1553,19 @@ msgid "" "This will return ``None`` for Tasks which have already completed eagerly. " "See the :ref:`Eager Task Factory `." msgstr "" +"Esto devolverá ``None`` para las tareas que ya se han completado con " +"entusiasmo. Consulte el :ref:`Eager Task Factory `." #: ../Doc/library/asyncio-task.rst:1188 msgid "Newly added eager task execution means result may be ``None``." msgstr "" +"La ejecución ansiosa de la tarea recientemente agregada significa que el " +"resultado puede ser ``None``." #: ../Doc/library/asyncio-task.rst:1192 msgid "" "Return the :class:`contextvars.Context` object associated with the task." -msgstr "" +msgstr "Devuelve el objeto :class:`contextvars.Context` asociado con la tarea." #: ../Doc/library/asyncio-task.rst:1199 msgid "Return the name of the Task." @@ -1477,7 +1612,6 @@ msgstr "" "contenida en el próximo ciclo del bucle de eventos." #: ../Doc/library/asyncio-task.rst:1226 -#, fuzzy msgid "" "The coroutine then has a chance to clean up or even deny the request by " "suppressing the exception with a :keyword:`try` ... ... ``except " @@ -1488,21 +1622,22 @@ msgid "" "suppress the cancellation, it needs to call :meth:`Task.uncancel` in " "addition to catching the exception." msgstr "" -"La corrutina entonces tiene la oportunidad de limpiar o incluso denegar la " -"solicitud suprimiendo la excepción con un bloque :keyword:`try` ... ..." -"``except CancelledError`` ... :keyword:`finally`. Por lo tanto, a diferencia " -"de :meth:`Future.cancel`, :meth:`Task.cancel` no garantiza que la tarea será " -"cancelada, aunque suprimir la cancelación por completo no es común y se " -"desalienta activamente." +"Luego, la corrutina tiene la oportunidad de limpiar o incluso denegar la " +"solicitud suprimiendo la excepción con un bloque :keyword:`try`... ... " +"``except CancelledError``... :keyword:`finally`. Por lo tanto, a diferencia " +"de :meth:`Future.cancel`, :meth:`Task.cancel` no garantiza que la tarea se " +"cancelará, aunque suprimir la cancelación por completo no es común y se " +"desaconseja activamente. Sin embargo, si la rutina decide suprimir la " +"cancelación, debe llamar a :meth:`Task.uncancel` además de detectar la " +"excepción." #: ../Doc/library/asyncio-task.rst:1236 -#, fuzzy msgid "Added the *msg* parameter." -msgstr "Se agregó el parámetro ``msg``." +msgstr "Se agregó el parámetro *msg*." #: ../Doc/library/asyncio-task.rst:1239 msgid "The ``msg`` parameter is propagated from cancelled task to its awaiter." -msgstr "" +msgstr "El parámetro ``msg`` se propaga desde la tarea cancelada a su espera." #: ../Doc/library/asyncio-task.rst:1244 msgid "" @@ -1528,17 +1663,19 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:1291 msgid "Decrement the count of cancellation requests to this Task." -msgstr "" +msgstr "Disminuye el recuento de solicitudes de cancelación a esta tarea." #: ../Doc/library/asyncio-task.rst:1293 msgid "Returns the remaining number of cancellation requests." -msgstr "" +msgstr "Retorna el número restante de solicitudes de cancelación." #: ../Doc/library/asyncio-task.rst:1295 msgid "" "Note that once execution of a cancelled task completed, further calls to :" "meth:`uncancel` are ineffective." msgstr "" +"Tenga en cuenta que una vez que se completa la ejecución de una tarea " +"cancelada, las llamadas posteriores a :meth:`uncancel` no son efectivas." #: ../Doc/library/asyncio-task.rst:1300 msgid "" @@ -1548,6 +1685,11 @@ msgid "" "func:`asyncio.timeout` to continue running, isolating cancellation to the " "respective structured block. For example::" msgstr "" +"Este método lo usan los componentes internos de asyncio y no se espera que " +"lo use el código del usuario final. En particular, si una Tarea se cancela " +"con éxito, esto permite que elementos de concurrencia estructurada como :ref:" +"`taskgroups` y :func:`asyncio.timeout` continúen ejecutándose, aislando la " +"cancelación al bloque estructurado respectivo. Por ejemplo::" #: ../Doc/library/asyncio-task.rst:1318 msgid "" @@ -1557,6 +1699,11 @@ msgid "" "`uncancel`. :class:`TaskGroup` context managers use :func:`uncancel` in a " "similar fashion." msgstr "" +"Si bien el bloque con ``make_request()`` y ``make_another_request()`` podría " +"cancelarse debido al tiempo de espera, ``unrelated_code()`` debería " +"continuar ejecutándose incluso en caso de que se agote el tiempo de espera. " +"Esto se implementa con :meth:`uncancel`. Los administradores de contexto :" +"class:`TaskGroup` usan :func:`uncancel` de manera similar." #: ../Doc/library/asyncio-task.rst:1324 msgid "" @@ -1564,12 +1711,18 @@ msgid "" "exc:`CancelledError`, it needs to call this method to remove the " "cancellation state." msgstr "" +"Si el código del usuario final, por algún motivo, suprime la cancelación al " +"detectar :exc:`CancelledError`, debe llamar a este método para eliminar el " +"estado de cancelación." #: ../Doc/library/asyncio-task.rst:1330 msgid "" "Return the number of pending cancellation requests to this Task, i.e., the " "number of calls to :meth:`cancel` less the number of :meth:`uncancel` calls." msgstr "" +"Retorna el número de solicitudes de cancelación pendientes a esta Tarea, es " +"decir, el número de llamadas a :meth:`cancel` menos el número de llamadas a :" +"meth:`uncancel`." #: ../Doc/library/asyncio-task.rst:1334 msgid "" @@ -1579,12 +1732,20 @@ msgid "" "the task not being cancelled after all if the cancellation requests go down " "to zero." msgstr "" +"Tenga en cuenta que si este número es mayor que cero pero la tarea aún se " +"está ejecutando, :meth:`cancelled` aún retornará ``False``. Esto se debe a " +"que este número se puede reducir llamando a :meth:`uncancel`, lo que puede " +"provocar que la tarea no se cancele después de todo si las solicitudes de " +"cancelación se reducen a cero." #: ../Doc/library/asyncio-task.rst:1340 msgid "" "This method is used by asyncio's internals and isn't expected to be used by " "end-user code. See :meth:`uncancel` for more details." msgstr "" +"Este método lo utilizan las partes internas de asyncio y no se espera que lo " +"utilice el código del usuario final. Consulte :meth:`uncancel` para obtener " +"más detalles." #~ msgid "" #~ "Tasks support the :mod:`contextvars` module. When a Task is created it "