# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2022, Python Software Foundation # This file is distributed under the same license as the Python en Español # package. # FIRST AUTHOR , 2022. # msgid "" msgstr "" "Project-Id-Version: Python en Español 3.11\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2024-03-05 22:16-0500\n" "Last-Translator: Andrea ALEGRE \n" "Language-Team: \n" "Language: es_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.13.0\n" "X-Generator: Poedit 3.4.2\n" #: ../Doc/library/asyncio-runner.rst:6 msgid "Runners" msgstr "Runners" #: ../Doc/library/asyncio-runner.rst:8 msgid "**Source code:** :source:`Lib/asyncio/runners.py`" msgstr "**Código fuente:** :source:`Lib/asyncio/runners.py`" #: ../Doc/library/asyncio-runner.rst:11 msgid "" "This section outlines high-level asyncio primitives to run asyncio code." msgstr "" "Esta sección describe las primitivas asyncio de alto nivel para ejecutar " "código asyncio." #: ../Doc/library/asyncio-runner.rst:13 msgid "" "They are built on top of an :ref:`event loop ` with the " "aim to simplify async code usage for common wide-spread scenarios." msgstr "" "Están construidos sobre un :ref:`event loop ` con el " "objetivo de simplificar el uso de código async para escenarios comunes de " "alta difusión." #: ../Doc/library/asyncio-runner.rst:23 msgid "Running an asyncio Program" msgstr "Ejecutando un programa asyncio" #: ../Doc/library/asyncio-runner.rst:27 msgid "Execute the :term:`coroutine` *coro* and return the result." msgstr "Ejecutar el :term:`coroutine` *coro* y retornar el resultado." #: ../Doc/library/asyncio-runner.rst:29 msgid "" "This function runs the passed coroutine, taking care of managing the asyncio " "event loop, *finalizing asynchronous generators*, and closing the executor." msgstr "" "Esta función ejecuta la co-rutina pasada, encargándose de gestionar el bucle " "de eventos asyncio, *finalizando los generadores asíncronos*, y cerrando el " "ejecutor." #: ../Doc/library/asyncio-runner.rst:33 ../Doc/library/asyncio-runner.rst:113 msgid "" "This function cannot be called when another asyncio event loop is running in " "the same thread." msgstr "" "Esta función no puede ser llamada cuando otro bucle de eventos asyncio está " "corriendo en el mismo hilo." #: ../Doc/library/asyncio-runner.rst:36 ../Doc/library/asyncio-runner.rst:83 msgid "" "If *debug* is ``True``, the event loop will be run in debug mode. ``False`` " "disables debug mode explicitly. ``None`` is used to respect the global :ref:" "`asyncio-debug-mode` settings." msgstr "" "Si *debug* es ``True``, el bucle de eventos se ejecutará en modo depuración. " "``False`` deshabilita el modo depuración de manera explícita. ``None`` se " "usa para respetar la configuración global :ref:`asyncio-debug-mode`." #: ../Doc/library/asyncio-runner.rst:40 msgid "" "If *loop_factory* is not ``None``, it is used to create a new event loop; " "otherwise :func:`asyncio.new_event_loop` is used. The loop is closed at the " "end. This function should be used as a main entry point for asyncio " "programs, and should ideally only be called once. It is recommended to use " "*loop_factory* to configure the event loop instead of policies." msgstr "" "Si *loop_factory* no es ``None``, se utiliza para crear un nuevo bucle de " "eventos; en caso contrario se utiliza :func:`asyncio.new_event_loop`. El " "bucle se cierra al final. Esta función debería usarse como punto de entrada " "principal para los programas asyncio, e idealmente sólo debería llamarse una " "vez. Se recomienda usar *loop_factory* para configurar el bucle de eventos " "en lugar de políticas." #: ../Doc/library/asyncio-runner.rst:46 msgid "" "The executor is given a timeout duration of 5 minutes to shutdown. If the " "executor hasn't finished within that duration, a warning is emitted and the " "executor is closed." msgstr "" "Al ejecutor se le da un tiempo de espera de 5 minutos para apagarse. Si el " "ejecutor no ha finalizado en ese tiempo, se emite una advertencia y se " "cierra el ejecutor." #: ../Doc/library/asyncio-runner.rst:50 msgid "Example::" msgstr "Ejemplo::" #: ../Doc/library/asyncio-runner.rst:60 msgid "Updated to use :meth:`loop.shutdown_default_executor`." msgstr "Actualizado para usar :meth:`loop.shutdown_default_executor`." #: ../Doc/library/asyncio-runner.rst:65 msgid "" "*debug* is ``None`` by default to respect the global debug mode settings." msgstr "" "*debug* es ``None`` por defecto para respetar la configuración global del " "modo depuración." #: ../Doc/library/asyncio-runner.rst:69 msgid "Added *loop_factory* parameter." msgstr "Añadido el parámetro *loop_factory*." #: ../Doc/library/asyncio-runner.rst:73 msgid "Runner context manager" msgstr "Gestor de contexto del runner" #: ../Doc/library/asyncio-runner.rst:77 msgid "" "A context manager that simplifies *multiple* async function calls in the " "same context." msgstr "" "Un gestor de contexto que simplifica *múltiples* llamadas a funciones " "asíncronas en el mismo contexto." #: ../Doc/library/asyncio-runner.rst:80 msgid "" "Sometimes several top-level async functions should be called in the same :" "ref:`event loop ` and :class:`contextvars.Context`." msgstr "" "A veces varias funciones asíncronas de alto nivel deben ser llamadas en el " "mismo :ref:`event loop ` y :class:`contextvars.Context`." #: ../Doc/library/asyncio-runner.rst:87 msgid "" "*loop_factory* could be used for overriding the loop creation. It is the " "responsibility of the *loop_factory* to set the created loop as the current " "one. By default :func:`asyncio.new_event_loop` is used and set as current " "event loop with :func:`asyncio.set_event_loop` if *loop_factory* is ``None``." msgstr "" "*loop_factory* puede ser usado para redefinir la creación de bucles. Es " "responsabilidad del *loop_factory* establecer el bucle creado como el " "actual. Por defecto :func:`asyncio.new_event_loop` es usado y configura el " "nuevo bucle de eventos como el actual con :func:`asyncio.set_event_loop` si " "*loop_factory* es ``None``." #: ../Doc/library/asyncio-runner.rst:92 msgid "" "Basically, :func:`asyncio.run()` example can be rewritten with the runner " "usage::" msgstr "" "Básicamente, el ejemplo :func:`asyncio.run()` puede ser re-escrito usando el " "ejecutor::" #: ../Doc/library/asyncio-runner.rst:105 msgid "Run a :term:`coroutine ` *coro* in the embedded loop." msgstr "" "Ejecuta una :term:`co-rutina ` *coro* en el bucle incrustado." # más info sobre el origen de la excepción #: ../Doc/library/asyncio-runner.rst:107 msgid "Return the coroutine's result or raise its exception." msgstr "" "Retorna el resultado de la co-rutina o lanza excepción de dicha co-rutina." #: ../Doc/library/asyncio-runner.rst:109 msgid "" "An optional keyword-only *context* argument allows specifying a custom :" "class:`contextvars.Context` for the *coro* to run in. The runner's default " "context is used if ``None``." msgstr "" "Un argumento opcional del *context* que consiste en una palabra clave " "permite especificar un :class:`contextvars.Context` personalizado donde " "correr la *coro* . El contexto por defecto del ejecutor es usado si el modo " "debug es ``None``." #: ../Doc/library/asyncio-runner.rst:118 msgid "Close the runner." msgstr "Cierra el runner." #: ../Doc/library/asyncio-runner.rst:120 msgid "" "Finalize asynchronous generators, shutdown default executor, close the event " "loop and release embedded :class:`contextvars.Context`." msgstr "" "Termina los generadores asíncronos, apaga el ejecutor por defecto, cierra el " "bucle de eventos y libera el :class:`contextvars.Context` embebido." #: ../Doc/library/asyncio-runner.rst:125 msgid "Return the event loop associated with the runner instance." msgstr "Retorna el bucle de eventos asociado a la instancia del runner." #: ../Doc/library/asyncio-runner.rst:129 msgid "" ":class:`Runner` uses the lazy initialization strategy, its constructor " "doesn't initialize underlying low-level structures." msgstr "" ":class:`Runner` usa una estrategia de inicialización perezosa, su " "constructor no inicializa las estructuras de bajo nivel subyacentes." #: ../Doc/library/asyncio-runner.rst:132 msgid "" "Embedded *loop* and *context* are created at the :keyword:`with` body " "entering or the first call of :meth:`run` or :meth:`get_loop`." msgstr "" "El *loop* y el *context* embebidos son creados al entrar al cuerpo :keyword:" "`with` o en la primera llamada a :meth:`run` o a :meth:`get_loop`." #: ../Doc/library/asyncio-runner.rst:137 msgid "Handling Keyboard Interruption" msgstr "Manejando interrupciones de teclado" # Oración muy poco clara, incluso en inglés=> adaptación para que sea más # comprensible #: ../Doc/library/asyncio-runner.rst:141 msgid "" "When :const:`signal.SIGINT` is raised by :kbd:`Ctrl-C`, :exc:" "`KeyboardInterrupt` exception is raised in the main thread by default. " "However this doesn't work with :mod:`asyncio` because it can interrupt " "asyncio internals and can hang the program from exiting." msgstr "" "Cuando :const:`signal.SIGINT` es lanzada por :kbd:`Ctrl-C`, la excepción :" "exc:`KeyboardInterrupt` es lanzada en el hilo principal por defecto. Sin " "embargo, esto no funciona con :mod:`asyncio` porque puede interrumpir las " "funciones internas a asyncio e impedir la salida del programa." #: ../Doc/library/asyncio-runner.rst:146 msgid "" "To mitigate this issue, :mod:`asyncio` handles :const:`signal.SIGINT` as " "follows:" msgstr "" "Para mitigar este problema, :mod:`asyncio` maneja :const:`signal.SIGINT` de " "la siguiente forma:" #: ../Doc/library/asyncio-runner.rst:148 msgid "" ":meth:`asyncio.Runner.run` installs a custom :const:`signal.SIGINT` handler " "before any user code is executed and removes it when exiting from the " "function." msgstr "" ":meth:`asyncio.Runner.run` instala un administrador :const:`signal.SIGINT` " "personalizado antes que cualquier código de usuario sea ejecutado y lo " "remueve a la salida de la función." #: ../Doc/library/asyncio-runner.rst:150 msgid "" "The :class:`~asyncio.Runner` creates the main task for the passed coroutine " "for its execution." msgstr "" "La :class:`~asyncio.Runner` crea la tarea principal que será pasada a la co-" "rutina para su ejecución." #: ../Doc/library/asyncio-runner.rst:152 msgid "" "When :const:`signal.SIGINT` is raised by :kbd:`Ctrl-C`, the custom signal " "handler cancels the main task by calling :meth:`asyncio.Task.cancel` which " "raises :exc:`asyncio.CancelledError` inside the main task. This causes the " "Python stack to unwind, ``try/except`` and ``try/finally`` blocks can be " "used for resource cleanup. After the main task is cancelled, :meth:`asyncio." "Runner.run` raises :exc:`KeyboardInterrupt`." msgstr "" "Cuando :const:`signal.SIGINT` es lanzada por :kbd:`Ctrl-C`, el administrador " "de señales personalizado cancela la tarea principal llamando a :meth:" "`asyncio.Task.cancel` que lanza :exc:`asyncio.CancelledError` dentro de la " "tarea principal. Esto hace que la pila de Python se desenrolle, los bloques " "``try/except`` y ``try/finally`` se pueden utilizar para la limpieza de " "recursos. Luego que la tarea principal es cancelada, :meth:`asyncio.Runner." "run` lanza :exc:`KeyboardInterrupt`." #: ../Doc/library/asyncio-runner.rst:158 msgid "" "A user could write a tight loop which cannot be interrupted by :meth:" "`asyncio.Task.cancel`, in which case the second following :kbd:`Ctrl-C` " "immediately raises the :exc:`KeyboardInterrupt` without cancelling the main " "task." msgstr "" "Un usuario podría escribir un bucle cerrado que no puede ser interrumpido " "por :meth:`asyncio.Task.cancel`, en cuyo caso la segunda llamada a :kbd:" "`Ctrl-C` lanza inmediatamente :exc:`KeyboardInterrupt` sin cancelar la tarea " "principal." #~ msgid "" #~ "This function always creates a new event loop and closes it at the end. " #~ "It should be used as a main entry point for asyncio programs, and should " #~ "ideally only be called once." #~ msgstr "" #~ "Esta función siempre crea un nuevo bucle de eventos y lo cierra al final. " #~ "Debería ser usado como el punto de entrada principal para programas " #~ "asyncio e idealmente, llamado una sola vez."