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 ""
|
|
|
|
|
"Project-Id-Version: Python 3.6\n"
|
|
|
|
|
"Report-Msgid-Bugs-To: \n"
|
2018-11-29 15:13:39 +00:00
|
|
|
|
"POT-Creation-Date: 2018-11-29 16:06+0100\n"
|
2018-10-13 15:54:03 +00:00
|
|
|
|
"PO-Revision-Date: 2018-10-13 17:38+0200\n"
|
2018-07-28 22:25:54 +00:00
|
|
|
|
"Last-Translator: Julien Palard <julien@palard.fr>\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"
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:7
|
|
|
|
|
msgid "Developing with asyncio"
|
2018-07-28 22:25:54 +00:00
|
|
|
|
msgstr "Programmer avec *asyncio*"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:19
|
|
|
|
|
msgid "Debug Mode"
|
2018-07-28 22:25:54 +00:00
|
|
|
|
msgstr ""
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:24
|
|
|
|
|
msgid "There are several ways to enable asyncio debug mode:"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:26
|
|
|
|
|
msgid "Setting the :envvar:`PYTHONASYNCIODEBUG` environment variable to ``1``."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:28
|
|
|
|
|
msgid "Using the :option:`-X` ``dev`` Python command line option."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:30
|
|
|
|
|
msgid "Passing ``debug=True`` to :func:`asyncio.run`."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:32
|
|
|
|
|
msgid "Calling :meth:`loop.set_debug`."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:34
|
|
|
|
|
msgid "In addition to enabling the debug mode, consider also:"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:47
|
|
|
|
|
msgid "When the debug mode is enabled:"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:60
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
2018-10-13 15:54:03 +00:00
|
|
|
|
"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\"."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:68
|
|
|
|
|
msgid "Concurrency and Multithreading"
|
2018-08-03 07:37:42 +00:00
|
|
|
|
msgstr "Concourance et *multithreading*"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:76
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
2018-10-13 15:54:03 +00:00
|
|
|
|
"To schedule a callback from a different OS thread, the :meth:`loop."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
"call_soon_threadsafe` method should be used. Example::"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:114
|
|
|
|
|
msgid "Running Blocking Code"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:116
|
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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:121
|
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 "
|
2018-10-13 15:54:03 +00:00
|
|
|
|
"different process to avoid blocking block 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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:130
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Logging"
|
|
|
|
|
msgstr "Journalisation"
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:132
|
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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:135
|
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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:144
|
|
|
|
|
msgid "Detect never-awaited coroutines"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:146
|
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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:161 ../Doc/library/asyncio-dev.rst:206
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Output::"
|
2018-03-20 22:55:56 +00:00
|
|
|
|
msgstr "Sortie ::"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:166 ../Doc/library/asyncio-dev.rst:222
|
|
|
|
|
msgid "Output in debug mode::"
|
|
|
|
|
msgstr "Affichage en mode débogage : ::"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:179
|
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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:187
|
|
|
|
|
msgid "Detect never-retrieved exceptions"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:189
|
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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:194
|
|
|
|
|
msgid "Example of an unhandled exception::"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#: ../Doc/library/asyncio-dev.rst:217
|
|
|
|
|
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 ""
|
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#~ msgid "Debug mode of asyncio"
|
|
|
|
|
#~ msgstr "Mode de débogage d'*asyncio*"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#~ msgid "To enable all debug checks for an application:"
|
|
|
|
|
#~ msgstr ""
|
|
|
|
|
#~ "Pour activer toutes les vérifications de débogage pour une application :"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#~ msgid "Examples debug checks:"
|
|
|
|
|
#~ msgstr "Exemples de vérifications de débogage :"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#~ msgid "Log the execution time of the selector"
|
|
|
|
|
#~ msgstr "Enregistre le temps d'exécution du sélecteur dans le journal"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#~ msgid "Cancellation"
|
|
|
|
|
#~ msgstr "Annulation"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#~ msgid "Handle blocking functions correctly"
|
|
|
|
|
#~ msgstr "Gérer les fonctions bloquantes correctement"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#~ msgid "Detect coroutine objects never scheduled"
|
|
|
|
|
#~ msgstr "Détecte les coroutines qui ne sont jamais exécutées"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#~ msgid "Example with the bug::"
|
|
|
|
|
#~ msgstr "Exemple avec le bug : ::"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#~ msgid "The :meth:`Future.exception` method."
|
|
|
|
|
#~ msgstr "La méthode :meth:`Future.exception`."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#~ msgid "Chain coroutines correctly"
|
|
|
|
|
#~ msgstr "Chaîner les coroutines correctement"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#~ msgid "Actual output:"
|
|
|
|
|
#~ msgstr "Affichage obtenu :"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#~ msgid "Or without ``asyncio.ensure_future()``::"
|
|
|
|
|
#~ msgstr "Ou sans ``asyncio.ensure_future()`` ::"
|