From bb0211b8054a1fd4c7112d4e18073007f9aa1809 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Sat, 14 Jan 2023 18:13:14 +0100 Subject: [PATCH 01/14] Traducido library/asyncio-task Closes #1874 --- library/asyncio-task.po | 236 ++++++++++++++++++++++++++++++---------- 1 file changed, 177 insertions(+), 59 deletions(-) diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 8488288536..17d19b3af4 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -13,12 +13,12 @@ msgstr "" "POT-Creation-Date: 2022-10-25 19:47+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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.10.3\n" #: ../Doc/library/asyncio-task.rst:6 @@ -38,7 +38,6 @@ msgid "Coroutines" msgstr "Corrutinas" #: ../Doc/library/asyncio-task.rst:21 -#, fuzzy msgid "" ":term:`Coroutines ` declared with the async/await syntax is the " "preferred way of writing asyncio applications. For example, the following " @@ -46,8 +45,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:37 msgid "" @@ -57,11 +56,10 @@ msgstr "" "que se ejecute::" #: ../Doc/library/asyncio-task.rst:43 -#, 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 rutina, asyncio proporciona los siguientes " +"mecanismos:" #: ../Doc/library/asyncio-task.rst:45 msgid "" @@ -114,14 +112,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:124 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:126 msgid ":class:`asyncio.TaskGroup`." -msgstr "" +msgstr ":class:`asyncio.TaskGroup`." #: ../Doc/library/asyncio-task.rst:133 msgid "Awaitables" @@ -267,6 +268,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:245 msgid "" @@ -282,6 +286,8 @@ msgid "" ":meth:`asyncio.TaskGroup.create_task` is a newer alternative that allows for " "convenient waiting for a group of related tasks." 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:256 msgid "" @@ -291,26 +297,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 recibir recolección de elementos no " +"utilizados en cualquier momento, incluso antes de que se complete. Para " +"tareas en segundo plano confiables de \"disparar y olvidar\", reúnalas en " +"una colección:" #: ../Doc/library/asyncio-task.rst:278 ../Doc/library/asyncio-task.rst:1001 -#, 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:281 -#, 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:286 msgid "Task Cancellation" -msgstr "" +msgstr "Cancelación de tareas" #: ../Doc/library/asyncio-task.rst:288 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:292 msgid "" @@ -319,6 +333,11 @@ msgid "" "caught, it should generally be propagated when clean-up is complete. Most " "code can safely ignore :exc:`asyncio.CancelledError`." msgstr "" +"Se recomienda que las rutinas utilicen bloques ``try/finally`` para realizar " +"una lógica de limpieza sólida. En caso de que :exc:`asyncio.CancelledError` " +"se detecte explícitamente, por lo general debería propagarse cuando se " +"complete la limpieza. La mayoría de los códigos pueden ignorar con " +"seguridad :exc:`asyncio.CancelledError`." #: ../Doc/library/asyncio-task.rst:297 msgid "" @@ -328,16 +347,24 @@ msgid "" "`asyncio.CancelledError`. Similarly, user code should not call :meth:" "`uncancel `." msgstr "" +"Los componentes asyncio que permiten la simultaneidad estructurada, como :" +"class:`asyncio.TaskGroup` y :func:`asyncio.timeout`, se implementan mediante " +"la cancelación interna y pueden comportarse mal si una corrutina se traga :" +"exc:`asyncio.CancelledError`. De manera similar, el código de usuario no " +"debe llamar a :meth:`uncancel `." #: ../Doc/library/asyncio-task.rst:306 msgid "Task Groups" -msgstr "" +msgstr "Grupos de tareas" #: ../Doc/library/asyncio-task.rst:308 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:313 msgid "" @@ -345,12 +372,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:322 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:325 ../Doc/library/asyncio-task.rst:455 #: ../Doc/library/asyncio-task.rst:583 ../Doc/library/asyncio-task.rst:647 @@ -367,6 +400,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:340 msgid "" @@ -379,6 +417,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:350 msgid "" @@ -387,6 +433,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:357 msgid "" @@ -396,6 +446,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:363 msgid "" @@ -408,6 +463,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:377 msgid "Sleeping" @@ -454,9 +518,8 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:558 ../Doc/library/asyncio-task.rst:711 #: ../Doc/library/asyncio-task.rst:741 ../Doc/library/asyncio-task.rst:793 #: ../Doc/library/asyncio-task.rst:809 ../Doc/library/asyncio-task.rst:818 -#, fuzzy msgid "Removed the *loop* parameter." -msgstr "El parámetro *loop*." +msgstr "Se quitó el parámetro *loop*." #: ../Doc/library/asyncio-task.rst:418 msgid "Running Tasks Concurrently" @@ -533,6 +596,8 @@ msgid "" "A more modern way to create and run tasks concurrently and wait for their " "completion is :class:`asyncio.TaskGroup`." 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:493 msgid "" @@ -630,6 +695,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 recibir recolección de elementos no " +"utilizados en cualquier momento, incluso antes de que se complete." #: ../Doc/library/asyncio-task.rst:561 msgid "" @@ -648,6 +718,8 @@ msgid "" "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:575 msgid "" @@ -655,12 +727,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:580 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:589 msgid "" @@ -669,6 +747,10 @@ msgid "" "CancelledError` internally, transforming it into an :exc:`asyncio." "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:596 msgid "" @@ -677,67 +759,89 @@ msgid "" "the :exc:`asyncio.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:601 msgid "Example of catching :exc:`asyncio.TimeoutError`::" -msgstr "" +msgstr "Ejemplo de captura de :exc:`asyncio.TimeoutError`::" #: ../Doc/library/asyncio-task.rst:612 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:617 msgid "" "An :ref:`asynchronous context manager ` that limits " "time spent inside of it." msgstr "" +"Un :ref:`asynchronous context manager ` que limita " +"el tiempo que se pasa dentro de él." #: ../Doc/library/asyncio-task.rst:624 msgid "" "Return the current deadline, or ``None`` if the current deadline is not set." msgstr "" +"Devuelve la fecha límite actual o ``None`` si la fecha límite actual no está " +"establecida." #: ../Doc/library/asyncio-task.rst:627 msgid "" "The deadline is a float, consistent with the time returned by :meth:`loop." "time`." msgstr "" +"La fecha límite es flotante, consistente con la hora devuelta por :meth:" +"`loop.time`." #: ../Doc/library/asyncio-task.rst:632 msgid "Change the time the timeout will trigger." -msgstr "" +msgstr "Cambie el tiempo que se activará el tiempo de espera." #: ../Doc/library/asyncio-task.rst:634 msgid "" "If *when* is ``None``, any current deadline will be removed, and the context " "manager will wait indefinitely." msgstr "" +"Si *when* es ``None``, se eliminará cualquier fecha límite actual y el " +"administrador de contexto esperará indefinidamente." #: ../Doc/library/asyncio-task.rst:637 msgid "If *when* is a float, it is set as the new deadline." -msgstr "" +msgstr "Si *when* es flotante, se establece como la nueva fecha límite." #: ../Doc/library/asyncio-task.rst:639 msgid "" "if *when* is in the past, the timeout will trigger on the next iteration of " "the event loop." msgstr "" +"si *when* está en el pasado, el tiempo de espera se activará en la próxima " +"iteración del bucle de eventos." #: ../Doc/library/asyncio-task.rst:644 msgid "Return whether the context manager has exceeded its deadline (expired)." msgstr "" +"Devuelve si el administrador de contexto ha excedido su fecha límite " +"(caducada)." #: ../Doc/library/asyncio-task.rst:664 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:670 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:690 msgid "" @@ -756,12 +860,11 @@ msgstr "" "a esperar. Si *timeout* es ``None``, se bloquea hasta que Future se completa." #: ../Doc/library/asyncio-task.rst:699 -#, 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 genera :exc:" +"`TimeoutError`." #: ../Doc/library/asyncio-task.rst:702 msgid "" @@ -786,28 +889,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:736 -#, 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, generaba :exc:`TimeoutError` " +"inmediatamente." #: ../Doc/library/asyncio-task.rst:746 msgid "Waiting Primitives" msgstr "Esperando primitivas" #: ../Doc/library/asyncio-task.rst:750 -#, 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*." +"Ejecute instancias :class:`~asyncio.Future` y :class:`~asyncio.Task` en el " +"iterable *aws* simultáneamente y bloquee hasta la condición especificada por " +"*return_when*." #: ../Doc/library/asyncio-task.rst:754 msgid "The *aws* iterable must not be empty." @@ -831,15 +933,14 @@ msgstr "" "retornar." #: ../Doc/library/asyncio-task.rst:765 -#, 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 genera :exc:`TimeoutError`. Los futuros " +"o las tareas que no se realizan cuando se agota el tiempo de espera " +"simplemente se devuelven en el segundo conjunto." #: ../Doc/library/asyncio-task.rst:769 msgid "" @@ -896,9 +997,8 @@ msgstr "" "cuando se produce un agotamiento de tiempo." #: ../Doc/library/asyncio-task.rst:796 -#, 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:801 msgid "" @@ -913,12 +1013,11 @@ msgstr "" "iterable de los esperables restantes." #: ../Doc/library/asyncio-task.rst:806 -#, 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." +"Aumenta :exc:`TimeoutError` si el tiempo de espera se agota antes de que " +"finalicen todos los futuros." #: ../Doc/library/asyncio-task.rst:821 msgid "" @@ -957,42 +1056,40 @@ msgstr "" "de *func*." #: ../Doc/library/asyncio-task.rst:840 -#, 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:870 -#, 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:877 -#, 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:886 msgid "Scheduling From Other Threads" @@ -1392,13 +1489,12 @@ msgstr "" "desalienta activamente." #: ../Doc/library/asyncio-task.rst:1137 -#, 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:1140 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:1145 msgid "" @@ -1424,17 +1520,19 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:1192 msgid "Decrement the count of cancellation requests to this Task." -msgstr "" +msgstr "Disminuya el recuento de solicitudes de cancelación a esta tarea." #: ../Doc/library/asyncio-task.rst:1194 msgid "Returns the remaining number of cancellation requests." -msgstr "" +msgstr "Devuelve el número restante de solicitudes de cancelación." #: ../Doc/library/asyncio-task.rst:1196 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:1201 msgid "" @@ -1444,6 +1542,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:1219 msgid "" @@ -1453,12 +1556,20 @@ 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:1227 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 "" +"Devuelve 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:1231 msgid "" @@ -1468,12 +1579,19 @@ 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 devolverá ``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:1237 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 usan los componentes internos de asyncio y no se espera que " +"lo use el código del usuario final. Ver :meth:`uncancel` para más detalles." #~ msgid "" #~ "asyncio also supports legacy :ref:`generator-based " From ddce90c53cdf8bc0580fbc33a401d1bb395c0cee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Mon, 16 Jan 2023 13:01:05 +0100 Subject: [PATCH 02/14] agrega palabra --- dictionaries/library_asyncio-task.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dictionaries/library_asyncio-task.txt b/dictionaries/library_asyncio-task.txt index 69df8e2489..f5e3352f31 100644 --- a/dictionaries/library_asyncio-task.txt +++ b/dictionaries/library_asyncio-task.txt @@ -1,3 +1,6 @@ -threadpool gather kwargs +reprogramar +reprogramarse +reúnalas +threadpool From e40680aed67c65a5f45742bb3e6f80b2144a0128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Tue, 9 May 2023 21:04:55 +0200 Subject: [PATCH 03/14] powrap --- library/asyncio-task.po | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 8a9677bc95..1ffed70373 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -788,7 +788,7 @@ msgstr "" msgid "" "Return the current deadline, or ``None`` if the current deadline is not set." msgstr "" -"Devuelve la fecha límite actual o ``None`` si la fecha límite actual no está " +"Retorna la fecha límite actual o ``None`` si la fecha límite actual no está " "establecida." #: ../Doc/library/asyncio-task.rst:627 @@ -796,7 +796,7 @@ msgid "" "The deadline is a float, consistent with the time returned by :meth:`loop." "time`." msgstr "" -"La fecha límite es flotante, consistente con la hora devuelta por :meth:" +"La fecha límite es flotante, consistente con la hora retornada por :meth:" "`loop.time`." #: ../Doc/library/asyncio-task.rst:632 @@ -826,7 +826,7 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:644 msgid "Return whether the context manager has exceeded its deadline (expired)." msgstr "" -"Devuelve si el administrador de contexto ha excedido su fecha límite " +"Retorna si el administrador de contexto ha excedido su fecha límite " "(caducada)." #: ../Doc/library/asyncio-task.rst:664 @@ -940,7 +940,7 @@ msgid "" msgstr "" "Tenga en cuenta que esta función no genera :exc:`TimeoutError`. Los futuros " "o las tareas que no se realizan cuando se agota el tiempo de espera " -"simplemente se devuelven en el segundo conjunto." +"simplemente se retornan en el segundo conjunto." #: ../Doc/library/asyncio-task.rst:769 msgid "" @@ -1008,8 +1008,8 @@ 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:806 @@ -1238,7 +1238,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:990 @@ -1292,7 +1292,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.)" @@ -1395,9 +1395,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:1084 @@ -1524,7 +1524,7 @@ msgstr "Disminuya el recuento de solicitudes de cancelación a esta tarea." #: ../Doc/library/asyncio-task.rst:1194 msgid "Returns the remaining number of cancellation requests." -msgstr "Devuelve el número restante de solicitudes de cancelación." +msgstr "Retorna el número restante de solicitudes de cancelación." #: ../Doc/library/asyncio-task.rst:1196 msgid "" @@ -1567,7 +1567,7 @@ 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 "" -"Devuelve el número de solicitudes de cancelación pendientes a esta Tarea, es " +"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`." @@ -1580,7 +1580,7 @@ msgid "" "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 devolverá ``False``. Esto se debe a " +"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." From 062081a099af3d240b670158039e18c68d0d0581 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Mon, 15 May 2023 17:55:17 +0200 Subject: [PATCH 04/14] Apply suggestions from code review Co-authored-by: Carlos A. Crespo --- library/asyncio-task.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 1ffed70373..ef06f4b16a 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -300,9 +300,9 @@ 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 recibir recolección de elementos no " -"utilizados en cualquier momento, incluso antes de que se complete. Para " -"tareas en segundo plano confiables de \"disparar y olvidar\", reúnalas en " +"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 \"disparar y olvidar\", reúnalas en " "una colección:" #: ../Doc/library/asyncio-task.rst:278 ../Doc/library/asyncio-task.rst:1001 @@ -349,7 +349,7 @@ msgid "" msgstr "" "Los componentes asyncio que permiten la simultaneidad estructurada, como :" "class:`asyncio.TaskGroup` y :func:`asyncio.timeout`, se implementan mediante " -"la cancelación interna y pueden comportarse mal si una corrutina se traga :" +"la cancelación interna y pueden comportarse mal si una corrutina absorbe :" "exc:`asyncio.CancelledError`. De manera similar, el código de usuario no " "debe llamar a :meth:`uncancel `." @@ -698,8 +698,8 @@ 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 recibir recolección de elementos no " -"utilizados en cualquier momento, incluso antes de que se complete." +"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:561 msgid "" @@ -813,7 +813,7 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:637 msgid "If *when* is a float, it is set as the new deadline." -msgstr "Si *when* es flotante, se establece como la nueva fecha límite." +msgstr "Si *when* es número de punto flotante, se establece como la nueva fecha límite." #: ../Doc/library/asyncio-task.rst:639 msgid "" From 045b5ab79fa596fc4d73c0be7a7c6933efe222be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Mon, 15 May 2023 17:55:45 +0200 Subject: [PATCH 05/14] powrap --- library/asyncio-task.po | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/library/asyncio-task.po b/library/asyncio-task.po index ef06f4b16a..ec48b1992c 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -300,10 +300,10 @@ 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 \"disparar y olvidar\", reúnalas en " -"una colección:" +"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 \"disparar y olvidar\", reúnalas en una " +"colección:" #: ../Doc/library/asyncio-task.rst:278 ../Doc/library/asyncio-task.rst:1001 msgid "Added the *name* parameter." @@ -698,8 +698,8 @@ 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." +"referencia en ningún otro lugar puede ser recolectada por el recolector de " +"basuraen cualquier momento, incluso antes de que se complete." #: ../Doc/library/asyncio-task.rst:561 msgid "" @@ -813,7 +813,9 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:637 msgid "If *when* is a float, it is set as the new deadline." -msgstr "Si *when* es número de punto flotante, se establece como la nueva fecha límite." +msgstr "" +"Si *when* es número de punto flotante, se establece como la nueva fecha " +"límite." #: ../Doc/library/asyncio-task.rst:639 msgid "" From 3f383fc8b25ad9783a1d107e15c2b7141e5451d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Mon, 22 May 2023 17:09:06 +0200 Subject: [PATCH 06/14] Update library/asyncio-task.po --- library/asyncio-task.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/asyncio-task.po b/library/asyncio-task.po index ec48b1992c..0a4cb9d8c8 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -58,7 +58,7 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:43 msgid "To actually run a coroutine, asyncio provides the following mechanisms:" msgstr "" -"Para ejecutar realmente una rutina, asyncio proporciona los siguientes " +"Para ejecutar realmente una corutina, asyncio proporciona los siguientes " "mecanismos:" #: ../Doc/library/asyncio-task.rst:45 From 9a5c207e0da2d8abf4931dccb257056362613cdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Mon, 22 May 2023 17:17:04 +0200 Subject: [PATCH 07/14] Fix typo --- library/asyncio-task.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 0a4cb9d8c8..18b747787e 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -699,7 +699,7 @@ msgstr "" "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 " -"basuraen cualquier momento, incluso antes de que se complete." +"basura en cualquier momento, incluso antes de que se complete." #: ../Doc/library/asyncio-task.rst:561 msgid "" From cf5dd067749c84f15cfb98724858f285710bdf53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Mon, 9 Oct 2023 23:02:36 +0200 Subject: [PATCH 08/14] Apply suggestions from code review Co-authored-by: Andrea Alegre --- library/asyncio-task.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 18b747787e..57dab12ed1 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -302,7 +302,7 @@ msgstr "" "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 \"disparar y olvidar\", reúnalas en una " +"confiables en segundo plano, de tipo \"lanzar y olvidar\", reúnalas en una " "colección:" #: ../Doc/library/asyncio-task.rst:278 ../Doc/library/asyncio-task.rst:1001 From ea4f6b119399732ec1cdf34efcb2b7a86fca3d23 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Tue, 24 Oct 2023 11:09:25 -0300 Subject: [PATCH 09/14] powrap --- library/asyncio-task.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/asyncio-task.po b/library/asyncio-task.po index df5ede8ea8..4c223087ff 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -1723,4 +1723,4 @@ msgstr "" #~ msgstr "" #~ "Las tareas admiten el módulo :mod:`contextvars`. Cuando se crea una " #~ "Tarea, copia el contexto actual y, posteriormente, ejecuta su corrutina " -#~ "en el contexto copiado." \ No newline at end of file +#~ "en el contexto copiado." From 3e557bfe125205ccf7e33d1376137794dd01fe77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Wed, 1 Nov 2023 16:34:12 +0100 Subject: [PATCH 10/14] Traducidas entradas pendientes de 3.12 --- dictionaries/library_asyncio-task.txt | 1 + library/asyncio-task.po | 84 +++++++++++++++++++++------ 2 files changed, 68 insertions(+), 17 deletions(-) diff --git a/dictionaries/library_asyncio-task.txt b/dictionaries/library_asyncio-task.txt index f5e3352f31..551990c2da 100644 --- a/dictionaries/library_asyncio-task.txt +++ b/dictionaries/library_asyncio-task.txt @@ -3,4 +3,5 @@ kwargs reprogramar reprogramarse reúnalas +sincrónicamente threadpool diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 4c223087ff..5667c87756 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -38,7 +38,7 @@ 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 @@ -253,7 +253,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 "" @@ -346,11 +346,12 @@ msgid "" "`asyncio.CancelledError` directly subclasses :exc:`BaseException` so most " "code will not need to be aware of it." msgstr "" -"Se recomienda que las rutinas utilicen bloques ``try/finally`` para realizar " -"una lógica de limpieza sólida. En caso de que :exc:`asyncio.CancelledError` " -"se detecte explícitamente, por lo general debería propagarse cuando se " -"complete la limpieza. La mayoría de los códigos pueden ignorar con " -"seguridad :exc:`asyncio.CancelledError`." +"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 "" @@ -364,9 +365,12 @@ msgid "" msgstr "" "Los componentes asyncio que permiten la simultaneidad estructurada, como :" "class:`asyncio.TaskGroup` y :func:`asyncio.timeout`, se implementan mediante " -"la cancelación interna y pueden comportarse mal si una corrutina absorbe :" -"exc:`asyncio.CancelledError`. De manera similar, el código de usuario no " -"debe llamar a :meth:`uncancel `." +"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" @@ -654,11 +658,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 "" @@ -669,12 +673,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 "" @@ -684,6 +698,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 "" @@ -691,6 +711,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 "" @@ -698,6 +721,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 "" @@ -705,6 +731,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" @@ -854,8 +883,8 @@ msgid "" "An :ref:`asynchronous context manager ` for " "cancelling overdue coroutines." msgstr "" -"Retorna la fecha límite actual o ``None`` si la fecha límite actual no está " -"establecida." +"Un :ref:`asynchronous context manager ` para " +"cancelar corrutinas vencidas." #: ../Doc/library/asyncio-task.rst:682 msgid "" @@ -867,7 +896,7 @@ msgstr "" #: ../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 "" @@ -1074,7 +1103,7 @@ 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 "" @@ -1341,6 +1370,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 "" @@ -1351,6 +1384,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." @@ -1532,15 +1572,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." @@ -1686,6 +1730,9 @@ 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 "" @@ -1715,6 +1762,9 @@ 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 " From ee0f8abc46b6c13d12ec5036be64859a34d585a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Fri, 5 Jan 2024 11:17:43 +0100 Subject: [PATCH 11/14] Fix wrong translation --- library/asyncio-task.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 5667c87756..83ccca6353 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -891,8 +891,8 @@ msgid "" "``when`` should be an absolute time at which the context should time out, as " "measured by the event loop's clock:" msgstr "" -"La fecha límite es flotante, consistente con la hora retornada por :meth:" -"`loop.time`." +"``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." From 661865d8e679c7b458bbb52bef06d1c6b8f4000d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Fri, 5 Jan 2024 11:25:23 +0100 Subject: [PATCH 12/14] Arreglando entradas fuzzy --- library/asyncio-task.po | 53 ++++++++++++++--------------------------- 1 file changed, 18 insertions(+), 35 deletions(-) diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 83ccca6353..10b549769b 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -41,7 +41,6 @@ msgid "**Source code:** :source:`Lib/asyncio/coroutines.py`" 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 " @@ -60,7 +59,6 @@ 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 corutina, asyncio proporciona los siguientes " @@ -316,12 +314,10 @@ msgstr "" "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*." #: ../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 *context*." @@ -537,7 +533,6 @@ 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 "Se quitó el parámetro *loop*." @@ -956,11 +951,10 @@ 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 agota el tiempo de espera, cancela la tarea y genera :exc:" +"Si se agota el tiempo de espera, cancela la tarea y lanza :exc:" "`TimeoutError`." #: ../Doc/library/asyncio-task.rst:758 @@ -986,13 +980,12 @@ 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 se cancela *aw* debido a un tiempo de espera, ``wait_for`` espera a " -"que se cancele *aw*. Anteriormente, generaba :exc:`TimeoutError` " +"que se cancele *aw*. Anteriormente, lanzaba :exc:`TimeoutError` " "inmediatamente." #: ../Doc/library/asyncio-task.rst:802 @@ -1000,14 +993,13 @@ 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 "" -"Ejecute instancias :class:`~asyncio.Future` y :class:`~asyncio.Task` en el " -"iterable *aws* simultáneamente y bloquee hasta la condición especificada por " +"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 @@ -1032,14 +1024,13 @@ 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 genera :exc:`TimeoutError`. Los futuros " -"o las tareas que no se realizan cuando se agota el tiempo de espera " +"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 @@ -1097,7 +1088,6 @@ 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 "Está prohibido pasar objetos de rutina a ``wait()`` directamente." @@ -1118,11 +1108,10 @@ msgstr "" "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 "" -"Aumenta :exc:`TimeoutError` si el tiempo de espera se agota antes de que " +"Lanza :exc:`TimeoutError` si el tiempo de espera se agota antes de que " "finalicen todos los futuros." #: ../Doc/library/asyncio-task.rst:878 @@ -1162,7 +1151,6 @@ 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 " @@ -1173,7 +1161,6 @@ msgstr "" "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. " @@ -1187,7 +1174,6 @@ msgstr "" "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 " @@ -1284,9 +1270,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" @@ -1405,9 +1390,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*." @@ -1555,13 +1539,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`." @@ -1631,7 +1614,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 " @@ -1642,15 +1624,16 @@ 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*." From 20097fc1076b8b3f76bb6814010857d619da6402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Sun, 28 Jan 2024 19:08:48 +0100 Subject: [PATCH 13/14] Apply suggestions from code review Co-authored-by: Marcos Medrano <786907+mmmarcos@users.noreply.github.com> --- library/asyncio-task.po | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 10b549769b..c17ebfddd9 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -898,21 +898,20 @@ msgid "" "If ``when < loop.time()``, the timeout will trigger on the next iteration of " "the event loop." msgstr "" -"Si *when* es ``None``, se eliminará cualquier fecha límite actual y el " -"administrador de contexto esperará indefinidamente." +"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 "" -"Si *when* es número de punto flotante, se establece como la nueva fecha " -"límite." +"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 "" -"si *when* está en el pasado, el tiempo de espera se activará en la próxima " -"iteración del bucle de eventos." +"Reprogramar el tiempo de espera." #: ../Doc/library/asyncio-task.rst:700 msgid "Return whether the context manager has exceeded its deadline (expired)." @@ -1665,7 +1664,7 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:1291 msgid "Decrement the count of cancellation requests to this Task." -msgstr "Disminuya el recuento de solicitudes de cancelación a esta tarea." +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." From b2fd97685ac8f2ae73f8a835e6558e7b5d5442b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Sun, 28 Jan 2024 19:09:48 +0100 Subject: [PATCH 14/14] powrap --- library/asyncio-task.po | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/library/asyncio-task.po b/library/asyncio-task.po index c17ebfddd9..5168140893 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -905,13 +905,12 @@ msgstr "" 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á " +"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 "" -"Reprogramar el tiempo de espera." +msgstr "Reprogramar el tiempo de espera." #: ../Doc/library/asyncio-task.rst:700 msgid "Return whether the context manager has exceeded its deadline (expired)."