# Copyright (C) 2001-2018, Python Software Foundation # For licence information, see README file. # msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-01-15 22:33+0100\n" "PO-Revision-Date: 2022-05-23 00:51+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: library/asyncio-runner.rst:6 msgid "Runners" msgstr "" #: library/asyncio-runner.rst:8 msgid "**Source code:** :source:`Lib/asyncio/runners.py`" msgstr "" #: library/asyncio-runner.rst:11 msgid "" "This section outlines high-level asyncio primitives to run asyncio code." msgstr "" #: 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 "" #: library/asyncio-runner.rst:23 msgid "Running an asyncio Program" msgstr "" #: library/asyncio-runner.rst:27 msgid "Execute the :term:`coroutine` *coro* and return the result." msgstr "" #: 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 threadpool." msgstr "" #: library/asyncio-runner.rst:103 msgid "" "This function cannot be called when another asyncio event loop is running in " "the same thread." msgstr "" #: library/asyncio-runner.rst:73 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 "" #: library/asyncio-runner.rst:40 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 "" #: library/asyncio-runner.rst:44 msgid "Example::" msgstr "" #: library/asyncio-runner.rst:54 msgid "Updated to use :meth:`loop.shutdown_default_executor`." msgstr "" #: library/asyncio-runner.rst:59 msgid "" "*debug* is ``None`` by default to respect the global debug mode settings." msgstr "" #: library/asyncio-runner.rst:63 msgid "Runner context manager" msgstr "" #: library/asyncio-runner.rst:67 msgid "" "A context manager that simplifies *multiple* async function calls in the " "same context." msgstr "" #: library/asyncio-runner.rst:70 msgid "" "Sometimes several top-level async functions should be called in the same :" "ref:`event loop ` and :class:`contextvars.Context`." msgstr "" #: library/asyncio-runner.rst:77 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 "" #: library/asyncio-runner.rst:82 msgid "" "Basically, :func:`asyncio.run()` example can be rewritten with the runner " "usage::" msgstr "" #: library/asyncio-runner.rst:95 msgid "Run a :term:`coroutine ` *coro* in the embedded loop." msgstr "" #: library/asyncio-runner.rst:97 msgid "Return the coroutine's result or raise its exception." msgstr "" #: library/asyncio-runner.rst:99 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 "" #: library/asyncio-runner.rst:108 msgid "Close the runner." msgstr "" #: library/asyncio-runner.rst:110 msgid "" "Finalize asynchronous generators, shutdown default executor, close the event " "loop and release embedded :class:`contextvars.Context`." msgstr "" #: library/asyncio-runner.rst:115 msgid "Return the event loop associated with the runner instance." msgstr "" #: library/asyncio-runner.rst:119 msgid "" ":class:`Runner` uses the lazy initialization strategy, its constructor " "doesn't initialize underlying low-level structures." msgstr "" #: library/asyncio-runner.rst:122 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 "" #: library/asyncio-runner.rst:127 msgid "Handling Keyboard Interruption" msgstr "" #: library/asyncio-runner.rst:131 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 "" #: library/asyncio-runner.rst:136 msgid "" "To mitigate this issue, :mod:`asyncio` handles :const:`signal.SIGINT` as " "follows:" msgstr "" #: library/asyncio-runner.rst:138 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 "" #: library/asyncio-runner.rst:140 msgid "" "The :class:`~asyncio.Runner` creates the main task for the passed coroutine " "for its execution." msgstr "" #: library/asyncio-runner.rst:142 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 "" #: library/asyncio-runner.rst:148 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 ""