# Copyright (C) 2001-2018, Python Software Foundation # For licence information, see README file. # msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2018-10-13 17:38+0200\n" "Last-Translator: Julien Palard \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" #: ../Doc/library/asyncio-dev.rst:7 msgid "Developing with asyncio" msgstr "Programmer avec *asyncio*" #: ../Doc/library/asyncio-dev.rst:9 msgid "" "Asynchronous programming is different from classic \"sequential\" " "programming." msgstr "" #: ../Doc/library/asyncio-dev.rst:12 msgid "" "This page lists common mistakes and traps and explains how to avoid them." msgstr "" #: ../Doc/library/asyncio-dev.rst:19 msgid "Debug Mode" msgstr "" #: ../Doc/library/asyncio-dev.rst:21 msgid "" "By default asyncio runs in production mode. In order to ease the " "development asyncio has a *debug mode*." msgstr "" #: ../Doc/library/asyncio-dev.rst:24 msgid "There are several ways to enable asyncio debug mode:" msgstr "" #: ../Doc/library/asyncio-dev.rst:26 msgid "Setting the :envvar:`PYTHONASYNCIODEBUG` environment variable to ``1``." msgstr "" #: ../Doc/library/asyncio-dev.rst:28 msgid "Using the :option:`-X` ``dev`` Python command line option." msgstr "" #: ../Doc/library/asyncio-dev.rst:30 msgid "Passing ``debug=True`` to :func:`asyncio.run`." msgstr "" #: ../Doc/library/asyncio-dev.rst:32 msgid "Calling :meth:`loop.set_debug`." msgstr "" #: ../Doc/library/asyncio-dev.rst:34 msgid "In addition to enabling the debug mode, consider also:" msgstr "" #: ../Doc/library/asyncio-dev.rst:36 msgid "" "setting the log level of the :ref:`asyncio logger ` to :py:" "data:`logging.DEBUG`, for example the following snippet of code can be run " "at startup of the application::" msgstr "" #: ../Doc/library/asyncio-dev.rst:42 msgid "" "configuring the :mod:`warnings` module to display :exc:`ResourceWarning` " "warnings. One way of doing that is by using the :option:`-W` ``default`` " "command line option." msgstr "" #: ../Doc/library/asyncio-dev.rst:47 msgid "When the debug mode is enabled:" msgstr "" #: ../Doc/library/asyncio-dev.rst:49 msgid "" "asyncio checks for :ref:`coroutines that were not awaited ` and logs them; this mitigates the \"forgotten await\" " "pitfall." msgstr "" #: ../Doc/library/asyncio-dev.rst:53 msgid "" "Many non-threadsafe asyncio APIs (such as :meth:`loop.call_soon` and :meth:" "`loop.call_at` methods) raise an exception if they are called from a wrong " "thread." msgstr "" #: ../Doc/library/asyncio-dev.rst:57 msgid "" "The execution time of the I/O selector is logged if it takes too long to " "perform an I/O operation." msgstr "" #: ../Doc/library/asyncio-dev.rst:60 msgid "" "Callbacks taking longer than 100ms are logged. The :attr:`loop." "slow_callback_duration` attribute can be used to set the minimum execution " "duration in seconds that is considered \"slow\"." msgstr "" #: ../Doc/library/asyncio-dev.rst:68 msgid "Concurrency and Multithreading" msgstr "Concourance et *multithreading*" #: ../Doc/library/asyncio-dev.rst:70 msgid "" "An event loop runs in a thread (typically the main thread) and executes all " "callbacks and Tasks in its thread. While a Task is running in the event " "loop, no other Tasks can run in the same thread. When a Task executes an " "``await`` expression, the running Task gets suspended, and the event loop " "executes the next Task." msgstr "" #: ../Doc/library/asyncio-dev.rst:76 msgid "" "To schedule a callback from a different OS thread, the :meth:`loop." "call_soon_threadsafe` method should be used. Example::" msgstr "" #: ../Doc/library/asyncio-dev.rst:81 msgid "" "Almost all asyncio objects are not thread safe, which is typically not a " "problem unless there is code that works with them from outside of a Task or " "a callback. If there's a need for such code to call a low-level asyncio " "API, the :meth:`loop.call_soon_threadsafe` method should be used, e.g.::" msgstr "" #: ../Doc/library/asyncio-dev.rst:89 msgid "" "To schedule a coroutine object from a different OS thread, the :func:" "`run_coroutine_threadsafe` function should be used. It returns a :class:" "`concurrent.futures.Future` to access the result::" msgstr "" #: ../Doc/library/asyncio-dev.rst:102 msgid "" "To handle signals and to execute subprocesses, the event loop must be run in " "the main thread." msgstr "" #: ../Doc/library/asyncio-dev.rst:105 msgid "" "The :meth:`loop.run_in_executor` method can be used with a :class:" "`concurrent.futures.ThreadPoolExecutor` to execute blocking code in a " "different OS thread without blocking the OS thread that the event loop runs " "in." msgstr "" #: ../Doc/library/asyncio-dev.rst:114 msgid "Running Blocking Code" msgstr "" #: ../Doc/library/asyncio-dev.rst:116 msgid "" "Blocking (CPU-bound) code should not be called directly. For example, if a " "function performs a CPU-intensive calculation for 1 second, all concurrent " "asyncio Tasks and IO operations would be delayed by 1 second." msgstr "" #: ../Doc/library/asyncio-dev.rst:121 msgid "" "An executor can be used to run a task in a different thread or even in a " "different process to avoid blocking block the OS thread with the event " "loop. See the :meth:`loop.run_in_executor` method for more details." msgstr "" #: ../Doc/library/asyncio-dev.rst:130 msgid "Logging" msgstr "Journalisation" #: ../Doc/library/asyncio-dev.rst:132 msgid "" "asyncio uses the :mod:`logging` module and all logging is performed via the " "``\"asyncio\"`` logger." msgstr "" #: ../Doc/library/asyncio-dev.rst:135 msgid "" "The default log level is :py:data:`logging.INFO`, which can be easily " "adjusted::" msgstr "" #: ../Doc/library/asyncio-dev.rst:144 msgid "Detect never-awaited coroutines" msgstr "" #: ../Doc/library/asyncio-dev.rst:146 msgid "" "When a coroutine function is called, but not awaited (e.g. ``coro()`` " "instead of ``await coro()``) or the coroutine is not scheduled with :meth:" "`asyncio.create_task`, asyncio will emit a :exc:`RuntimeWarning`::" msgstr "" #: ../Doc/library/asyncio-dev.rst:161 ../Doc/library/asyncio-dev.rst:206 msgid "Output::" msgstr "Sortie ::" #: ../Doc/library/asyncio-dev.rst:166 ../Doc/library/asyncio-dev.rst:222 msgid "Output in debug mode::" msgstr "Affichage en mode débogage : ::" #: ../Doc/library/asyncio-dev.rst:179 msgid "" "The usual fix is to either await the coroutine or call the :meth:`asyncio." "create_task` function::" msgstr "" #: ../Doc/library/asyncio-dev.rst:187 msgid "Detect never-retrieved exceptions" msgstr "" #: ../Doc/library/asyncio-dev.rst:189 msgid "" "If a :meth:`Future.set_exception` is called but the Future object is never " "awaited on, the exception would never be propagated to the user code. In " "this case, asyncio would emit a log message when the Future object is " "garbage collected." msgstr "" #: ../Doc/library/asyncio-dev.rst:194 msgid "Example of an unhandled exception::" msgstr "" #: ../Doc/library/asyncio-dev.rst:217 msgid "" ":ref:`Enable the debug mode ` to get the traceback where " "the task was created::" msgstr "" #~ msgid "Debug mode of asyncio" #~ msgstr "Mode de débogage d'*asyncio*" #~ msgid "To enable all debug checks for an application:" #~ msgstr "" #~ "Pour activer toutes les vérifications de débogage pour une application :" #~ msgid "Examples debug checks:" #~ msgstr "Exemples de vérifications de débogage :" #~ msgid "Log the execution time of the selector" #~ msgstr "Enregistre le temps d'exécution du sélecteur dans le journal" #~ msgid "Cancellation" #~ msgstr "Annulation" #~ msgid "Handle blocking functions correctly" #~ msgstr "Gérer les fonctions bloquantes correctement" #~ msgid "Detect coroutine objects never scheduled" #~ msgstr "Détecte les coroutines qui ne sont jamais exécutées" #~ msgid "Example with the bug::" #~ msgstr "Exemple avec le bug : ::" #~ msgid "The :meth:`Future.exception` method." #~ msgstr "La méthode :meth:`Future.exception`." #~ msgid "Chain coroutines correctly" #~ msgstr "Chaîner les coroutines correctement" #~ msgid "Actual output:" #~ msgstr "Affichage obtenu :" #~ msgid "Or without ``asyncio.ensure_future()``::" #~ msgstr "Ou sans ``asyncio.ensure_future()`` ::"