1
0
Fork 0
python-docs-fr/library/asyncio-dev.po

352 lines
14 KiB
Plaintext
Raw Normal View History

2018-07-04 09:06:45 +00:00
# Copyright (C) 2001-2018, Python Software Foundation
2018-07-04 09:08:42 +00:00
# For licence information, see README file.
2016-10-30 09:46:26 +00:00
#
msgid ""
msgstr ""
2019-12-05 22:15:54 +00:00
"Project-Id-Version: Python 3\n"
2016-10-30 09:46:26 +00:00
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-15 22:33+0100\n"
"PO-Revision-Date: 2022-06-06 21:29-0400\n"
"Last-Translator: Nicolas Haller <nicolas@haller.im>\n"
2018-07-04 09:14:25 +00:00
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
2017-05-23 22:40:56 +00:00
"Language: fr\n"
2016-10-30 09:46:26 +00:00
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0.1\n"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:7
2018-10-13 15:54:03 +00:00
msgid "Developing with asyncio"
msgstr "Programmer avec *asyncio*"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:9
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"Asynchronous programming is different from classic \"sequential\" "
"programming."
2016-10-30 09:46:26 +00:00
msgstr ""
"La programmation asynchrone est différente de la programmation "
 séquentielle » classique."
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:12
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"This page lists common mistakes and traps and explains how to avoid them."
2016-10-30 09:46:26 +00:00
msgstr ""
"Cette page liste les pièges et erreurs communs que le développeur pourrait "
"rencontrer et décrit comment les éviter."
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:19
2018-10-13 15:54:03 +00:00
msgid "Debug Mode"
msgstr "Mode débogage"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:21
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"By default asyncio runs in production mode. In order to ease the "
"development asyncio has a *debug mode*."
2016-10-30 09:46:26 +00:00
msgstr ""
"Par défaut, *asyncio* s'exécute en mode production. Pour faciliter le "
"développement, *asyncio* possède un « mode débogage »."
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:24
2018-10-13 15:54:03 +00:00
msgid "There are several ways to enable asyncio debug mode:"
msgstr "Il existe plusieurs façons d'activer le mode débogage de *asyncio* :"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:26
2018-10-13 15:54:03 +00:00
msgid "Setting the :envvar:`PYTHONASYNCIODEBUG` environment variable to ``1``."
2016-10-30 09:46:26 +00:00
msgstr ""
"en réglant la variable denvironnement :envvar:`PYTHONASYNCIODEBUG` à ``1`` ;"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:28
2020-07-20 08:56:42 +00:00
msgid "Using the :ref:`Python Development Mode <devmode>`."
2016-10-30 09:46:26 +00:00
msgstr ""
"en utilisant le mode développement de Python (:ref:`Python Development Mode "
"<devmode>`) ;"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:30
2018-10-13 15:54:03 +00:00
msgid "Passing ``debug=True`` to :func:`asyncio.run`."
msgstr "en passant ``debug=True`` à la fonction :func:`asyncio.run` ;"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:32
2018-10-13 15:54:03 +00:00
msgid "Calling :meth:`loop.set_debug`."
msgstr "en appelant la méthode :meth:`loop.set_debug`."
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:34
2018-10-13 15:54:03 +00:00
msgid "In addition to enabling the debug mode, consider also:"
msgstr "En plus d'activer le mode débogage, vous pouvez également :"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:36
2018-06-28 13:32:56 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"setting the log level of the :ref:`asyncio logger <asyncio-logger>` to :py:"
"data:`logging.DEBUG`, for example the following snippet of code can be run "
"at startup of the application::"
2018-06-28 13:32:56 +00:00
msgstr ""
"régler le niveau de journalisation pour l'enregistreur d'*asyncio* (:ref:"
"`asyncio logger <asyncio-logger>`) à :py:data:`logging.DEBUG` ; par exemple, "
"le fragment de code suivant peut être exécuté au démarrage de "
"l'application ::"
2018-06-28 13:32:56 +00:00
#: library/asyncio-dev.rst:42
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"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."
2016-10-30 09:46:26 +00:00
msgstr ""
"configurer le module :mod:`warnings` afin d'afficher les avertissements de "
"type :exc:`ResourceWarning` ; vous pouvez faire cela en utilisant l'option :"
"option:`-W` ``default`` sur la ligne de commande."
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:47
2018-10-13 15:54:03 +00:00
msgid "When the debug mode is enabled:"
msgstr "Lorsque le mode débogage est activé :"
2016-10-30 09:46:26 +00:00
# long ref
#: library/asyncio-dev.rst:49
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"asyncio checks for :ref:`coroutines that were not awaited <asyncio-coroutine-"
"not-scheduled>` and logs them; this mitigates the \"forgotten await\" "
"pitfall."
2016-10-30 09:46:26 +00:00
msgstr ""
"*asyncio* surveille les :ref:`coroutines qui ne sont jamais attendues "
"<asyncio-coroutine-not-scheduled>` et les journalise ; cela atténue le "
"problème des « *await* oubliés » ;"
2016-10-30 09:46:26 +00:00
# thread safe comment traduire
#: library/asyncio-dev.rst:53
2016-10-30 09:46:26 +00:00
msgid ""
2018-11-29 15:13:39 +00:00
"Many non-threadsafe asyncio APIs (such as :meth:`loop.call_soon` and :meth:"
2018-10-13 15:54:03 +00:00
"`loop.call_at` methods) raise an exception if they are called from a wrong "
"thread."
2016-10-30 09:46:26 +00:00
msgstr ""
"beaucoup d'*API* *asyncio* ne prenant pas en charge les fils d'exécution "
"multiples (comme les méthodes :meth:`loop.call_soon` et :meth:`loop."
"call_at`) lèvent une exception si elles sont appelées par le mauvais fil "
"dexécution ;"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:57
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"The execution time of the I/O selector is logged if it takes too long to "
"perform an I/O operation."
2016-10-30 09:46:26 +00:00
msgstr ""
"le temps d'exécution du sélecteur d'entrée-sortie est journalisé si une "
"opération prend trop de temps à s'effectuer ;"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:60
2016-10-30 09:46:26 +00:00
msgid ""
2022-03-23 17:40:12 +00:00
"Callbacks taking longer than 100 milliseconds are logged. The :attr:`loop."
2018-10-13 15:54:03 +00:00
"slow_callback_duration` attribute can be used to set the minimum execution "
"duration in seconds that is considered \"slow\"."
2016-10-30 09:46:26 +00:00
msgstr ""
"les fonctions de rappel prenant plus de 100 ms sont journalisées ; "
"l'attribut :attr:`loop.slow_callback_duration` peut être utilisé pour "
"changer la limite (en secondes) après laquelle une fonction de rappel est "
"considérée comme « lent »."
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:68
2018-10-13 15:54:03 +00:00
msgid "Concurrency and Multithreading"
msgstr "Programmation concurrente et multi-fils"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:70
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"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."
2016-10-30 09:46:26 +00:00
msgstr ""
"Une boucle d'évènements s'exécute dans un fil dexécution (typiquement dans "
"le fil principal) et traite toutes les fonctions de rappel (*callbacks*) "
"ainsi que toutes les tâches dans ce même fil. Lorsqu'une tâche est en cours "
"d'exécution dans la boucle d'évènements, aucune autre tâche ne peut "
"s'exécuter dans ce fil. Quand une tâche traite une expression ``await``, "
"elle se suspend et laisse la boucle dévènements traiter la tâche suivante."
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:76
2016-10-30 09:46:26 +00:00
msgid ""
2020-07-20 08:56:42 +00:00
"To schedule a :term:`callback` from another OS thread, the :meth:`loop."
2016-10-30 09:46:26 +00:00
"call_soon_threadsafe` method should be used. Example::"
msgstr ""
"Pour planifier un :term:`rappel <callback>` depuis un autre fil d'exécution "
"système, utilisez la méthode :meth:`loop.call_soon_threadsafe`. Par "
"exemple ::"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:81
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"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.::"
2016-10-30 09:46:26 +00:00
msgstr ""
"La plupart des objets *asyncio* ne sont pas conçus pour être exécutés dans "
"un contexte multi-fils (*thread-safe*) mais cela n'est en général pas un "
"problème à moins que l'objet ne fasse appel à du code se trouvant en dehors "
"d'une tâche ou d'une fonction de rappel. Dans ce dernier cas, si le code "
"appelle les *API* bas niveau de *asyncio*, utilisez la méthode :meth:`loop."
"call_soon_threadsafe`. Par exemple ::"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:89
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"To schedule a coroutine object from a different OS thread, the :func:"
2016-10-30 09:46:26 +00:00
"`run_coroutine_threadsafe` function should be used. It returns a :class:"
"`concurrent.futures.Future` to access the result::"
msgstr ""
"Pour planifier un objet concurrent depuis un autre fil d'exécution système, "
"utilisez :func:`run_coroutine_threadsafe`. Cette fonction renvoie un objet :"
"class:`concurrent.futures.Future` pour accéder au résultat ::"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:102
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"To handle signals and to execute subprocesses, the event loop must be run in "
"the main thread."
2016-10-30 09:46:26 +00:00
msgstr ""
"Pour pouvoir traiter les signaux et démarrer des processus enfants, la "
"boucle d'évènements doit être exécutée dans le fil principal."
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:105
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"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."
2016-10-30 09:46:26 +00:00
msgstr ""
"La méthode :meth:`loop.run_in_executor` peut être utilisée avec :class:"
"`concurrent.futures.ThreadPoolExecutor` pour exécuter du code bloquant dans "
"un autre fil d'exécution, afin de ne pas bloquer le fil où la boucle "
"d'évènements se trouve."
2016-10-30 09:46:26 +00:00
2020-10-02 08:55:01 +00:00
#: library/asyncio-dev.rst:110
#, fuzzy
2020-10-02 08:55:01 +00:00
msgid ""
"There is currently no way to schedule coroutines or callbacks directly from "
"a different process (such as one started with :mod:`multiprocessing`). The :"
"ref:`asyncio-event-loop-methods` section lists APIs that can read from pipes "
"and watch file descriptors without blocking the event loop. In addition, "
"asyncio's :ref:`Subprocess <asyncio-subprocess>` APIs provide a way to start "
"a process and communicate with it from the event loop. Lastly, the "
"aforementioned :meth:`loop.run_in_executor` method can also be used with a :"
"class:`concurrent.futures.ProcessPoolExecutor` to execute code in a "
2020-10-02 08:55:01 +00:00
"different process."
msgstr ""
"Il n'y a actuellement aucune façon de planifier des coroutines ou des "
"rappels directement depuis un autre processus (comme, par exemple, un "
"processus démarré avec :mod:`multiprocessing`). La section :ref:`Méthodes de "
"la boucle d'évènements <asyncio-event-loop>` liste les *API* pouvant lire "
"les tubes (*pipes*) et surveiller les descripteurs de fichiers sans bloquer "
"la boucle d'évènements. De plus, les *API* :ref:`Subprocess <asyncio-"
"subprocess>` d'*asyncio* fournissent un moyen de démarrer un processus et de "
"communiquer avec lui depuis la boucle d'évènements. Enfin, la méthode :meth:"
"`loop.run_in_executor` peut également être utilisée avec :class:`concurrent."
"futures.ProcessPoolExecutor` pour exécuter du code dans un processus "
"différent."
2020-10-02 08:55:01 +00:00
#: library/asyncio-dev.rst:124
2018-10-13 15:54:03 +00:00
msgid "Running Blocking Code"
msgstr "Exécution de code bloquant"
2016-10-30 09:46:26 +00:00
2020-10-02 08:55:01 +00:00
#: library/asyncio-dev.rst:126
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"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."
2016-10-30 09:46:26 +00:00
msgstr ""
"Du code bloquant sur des opérations de calcul (*CPU-bound*) ne devrait pas "
"être appelé directement. Par exemple, si une fonction effectue des calculs "
"utilisant le CPU intensivement pendant une seconde, toutes les tâches "
"*asyncio* concurrentes et les opérations d'entrées-sorties seront bloquées "
"pour une seconde."
2016-10-30 09:46:26 +00:00
2020-10-02 08:55:01 +00:00
#: library/asyncio-dev.rst:131
2016-10-30 09:46:26 +00:00
msgid ""
"An executor can be used to run a task in a different thread or even in a "
2019-09-04 09:35:23 +00:00
"different process to avoid blocking the OS thread with the event loop. See "
"the :meth:`loop.run_in_executor` method for more details."
2016-10-30 09:46:26 +00:00
msgstr ""
"Un exécuteur peut être utilisé pour traiter une tâche dans un fil "
"d'exécution ou un processus différent, afin d'éviter de bloquer le fil "
"d'exécution système dans lequel se trouve la boucle dévènements. Voir :meth:"
"`loop.run_in_executor` pour plus de détails."
2016-10-30 09:46:26 +00:00
2020-10-02 08:55:01 +00:00
#: library/asyncio-dev.rst:140
2016-10-30 09:46:26 +00:00
msgid "Logging"
msgstr "Journalisation"
2020-10-02 08:55:01 +00:00
#: library/asyncio-dev.rst:142
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"asyncio uses the :mod:`logging` module and all logging is performed via the "
"``\"asyncio\"`` logger."
2016-10-30 09:46:26 +00:00
msgstr ""
"*Asyncio* utilise le module :mod:`logging`. Toutes les opérations de "
"journalisation sont effectuées via l'enregistreur (*logger*) ``\"asyncio\"``."
2016-10-30 09:46:26 +00:00
2020-10-02 08:55:01 +00:00
#: library/asyncio-dev.rst:145
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"The default log level is :py:data:`logging.INFO`, which can be easily "
"adjusted::"
2016-10-30 09:46:26 +00:00
msgstr ""
"Le niveau de journalisation par défaut est :py:data:`logging.INFO` mais peut "
"être ajusté facilement ::"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:151
msgid ""
"Network logging can block the event loop. It is recommended to use a "
"separate thread for handling logs or use non-blocking IO. For example, see :"
"ref:`blocking-handlers`."
msgstr ""
#: library/asyncio-dev.rst:159
2018-10-13 15:54:03 +00:00
msgid "Detect never-awaited coroutines"
msgstr "Détection des coroutines jamais attendues"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:161
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"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`::"
2016-10-30 09:46:26 +00:00
msgstr ""
"Lorsqu'une fonction coroutine est appelée mais qu'elle n'est pas attendue "
"(p. ex. ``coro()`` au lieu de ``await coro()``) ou si la coroutine n'est "
"pas planifiée avec :meth:`asyncio.create_task`, *asyncio* émet un :exc:"
"`RuntimeWarning` ::"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:221
2016-10-30 09:46:26 +00:00
msgid "Output::"
msgstr "Sortie ::"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:237
2018-10-13 15:54:03 +00:00
msgid "Output in debug mode::"
msgstr "Affichage en mode débogage ::"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:194
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"The usual fix is to either await the coroutine or call the :meth:`asyncio."
"create_task` function::"
2016-10-30 09:46:26 +00:00
msgstr ""
"La façon habituelle de régler ce problème est d'attendre (*await*) la "
"coroutine ou bien d'appeler la fonction :meth:`asyncio.create_task` ::"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:202
2018-10-13 15:54:03 +00:00
msgid "Detect never-retrieved exceptions"
msgstr "Détection des exceptions jamais récupérées"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:204
2016-10-30 09:46:26 +00:00
msgid ""
2018-10-13 15:54:03 +00:00
"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."
2016-10-30 09:46:26 +00:00
msgstr ""
"Si la méthode :meth:`Future.set_exception` est appelée mais que l'objet "
"*Future* n'est pas attendu, l'exception n'est pas propagée au code "
"utilisateur. Dans ce cas, *asyncio* écrit un message dans le journal lorsque "
"l'objet *Future* est récupéré par le ramasse-miette."
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:209
2018-10-13 15:54:03 +00:00
msgid "Example of an unhandled exception::"
msgstr "Exemple d'une exception non-gérée ::"
2016-10-30 09:46:26 +00:00
#: library/asyncio-dev.rst:232
2018-10-13 15:54:03 +00:00
msgid ""
":ref:`Enable the debug mode <asyncio-debug-mode>` to get the traceback where "
"the task was created::"
2016-10-30 09:46:26 +00:00
msgstr ""
":ref:`Activez le mode débogage <asyncio-debug-mode>` pour récupérer la trace "
"d'appels indiquant où la tâche a été créée ::"