2018-10-13 15:54:03 +00:00
|
|
|
|
# Copyright (C) 2001-2018, Python Software Foundation
|
2018-11-29 20:30:02 +00:00
|
|
|
|
# For licence information, see README file.
|
2018-10-13 15:54:03 +00:00
|
|
|
|
#
|
|
|
|
|
msgid ""
|
|
|
|
|
msgstr ""
|
|
|
|
|
"Project-Id-Version: Python 3.7\n"
|
|
|
|
|
"Report-Msgid-Bugs-To: \n"
|
2019-09-04 09:35:23 +00:00
|
|
|
|
"POT-Creation-Date: 2019-09-04 11:33+0200\n"
|
2018-11-29 16:44:15 +00:00
|
|
|
|
"PO-Revision-Date: 2018-11-29 18:26+0100\n"
|
2018-10-13 15:54:03 +00:00
|
|
|
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
2018-11-29 20:30:02 +00:00
|
|
|
|
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
|
|
|
|
"Language: fr\n"
|
2018-10-13 15:54:03 +00:00
|
|
|
|
"MIME-Version: 1.0\n"
|
|
|
|
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
|
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:8
|
|
|
|
|
msgid "Policies"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:10
|
|
|
|
|
msgid ""
|
|
|
|
|
"An event loop policy is a global per-process object that controls the "
|
|
|
|
|
"management of the event loop. Each event loop has a default policy, which "
|
|
|
|
|
"can be changed and customized using the policy API."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:14
|
|
|
|
|
msgid ""
|
|
|
|
|
"A policy defines the notion of *context* and manages a separate event loop "
|
|
|
|
|
"per context. The default policy defines *context* to be the current thread."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:18
|
|
|
|
|
msgid ""
|
|
|
|
|
"By using a custom event loop policy, the behavior of :func:"
|
|
|
|
|
"`get_event_loop`, :func:`set_event_loop`, and :func:`new_event_loop` "
|
|
|
|
|
"functions can be customized."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:22
|
|
|
|
|
msgid ""
|
|
|
|
|
"Policy objects should implement the APIs defined in the :class:"
|
|
|
|
|
"`AbstractEventLoopPolicy` abstract base class."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:27
|
|
|
|
|
msgid "Getting and Setting the Policy"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:29
|
|
|
|
|
msgid ""
|
|
|
|
|
"The following functions can be used to get and set the policy for the "
|
|
|
|
|
"current process:"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:34
|
|
|
|
|
msgid "Return the current process-wide policy."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:38
|
|
|
|
|
msgid "Set the current process-wide policy to *policy*."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:40
|
|
|
|
|
msgid "If *policy* is set to ``None``, the default policy is restored."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:44
|
|
|
|
|
msgid "Policy Objects"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:46
|
|
|
|
|
msgid "The abstract event loop policy base class is defined as follows:"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:50
|
|
|
|
|
msgid "An abstract base class for asyncio policies."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:54
|
|
|
|
|
msgid "Get the event loop for the current context."
|
2018-10-13 16:23:07 +00:00
|
|
|
|
msgstr "Récupère la boucle d'évènements pour le contexte actuel."
|
2018-10-13 15:54:03 +00:00
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:56
|
|
|
|
|
msgid ""
|
|
|
|
|
"Return an event loop object implementing the :class:`AbstractEventLoop` "
|
|
|
|
|
"interface."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:59 ../Doc/library/asyncio-policy.rst:71
|
|
|
|
|
msgid "This method should never return ``None``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:65
|
|
|
|
|
msgid "Set the event loop for the current context to *loop*."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:69
|
|
|
|
|
msgid "Create and return a new event loop object."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:75
|
|
|
|
|
msgid "Get a child process watcher object."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:77
|
|
|
|
|
msgid ""
|
|
|
|
|
"Return a watcher object implementing the :class:`AbstractChildWatcher` "
|
|
|
|
|
"interface."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:80 ../Doc/library/asyncio-policy.rst:86
|
|
|
|
|
msgid "This function is Unix specific."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:84
|
2019-01-03 16:00:01 +00:00
|
|
|
|
msgid "Set the current child process watcher to *watcher*."
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:89
|
|
|
|
|
msgid "asyncio ships with the following built-in policies:"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:94
|
|
|
|
|
msgid ""
|
2019-09-04 09:35:23 +00:00
|
|
|
|
"The default asyncio policy. Uses :class:`SelectorEventLoop` on Unix and :"
|
|
|
|
|
"class:`ProactorEventLoop` on Windows."
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:97
|
|
|
|
|
msgid ""
|
|
|
|
|
"There is no need to install the default policy manually. asyncio is "
|
|
|
|
|
"configured to use the default policy automatically."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:102
|
|
|
|
|
msgid "On Windows, :class:`ProactorEventLoop` is now used by default."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:107
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
2019-09-04 09:35:23 +00:00
|
|
|
|
"An alternative event loop policy that uses the :class:`SelectorEventLoop` "
|
2018-10-13 15:54:03 +00:00
|
|
|
|
"event loop implementation."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:110 ../Doc/library/asyncio-policy.rst:118
|
2018-11-29 15:13:39 +00:00
|
|
|
|
msgid ":ref:`Availability <availability>`: Windows."
|
2018-11-29 16:44:15 +00:00
|
|
|
|
msgstr ":ref:`Disponibilité <availability>` : Windows."
|
2018-10-13 15:54:03 +00:00
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:115
|
|
|
|
|
msgid ""
|
|
|
|
|
"An alternative event loop policy that uses the :class:`ProactorEventLoop` "
|
|
|
|
|
"event loop implementation."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:123
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid "Process Watchers"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:125
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"A process watcher allows customization of how an event loop monitors child "
|
|
|
|
|
"processes on Unix. Specifically, the event loop needs to know when a child "
|
|
|
|
|
"process has exited."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:129
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"In asyncio, child processes are created with :func:`create_subprocess_exec` "
|
|
|
|
|
"and :meth:`loop.subprocess_exec` functions."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:133
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"asyncio defines the :class:`AbstractChildWatcher` abstract base class, which "
|
2019-09-04 09:35:23 +00:00
|
|
|
|
"child watchers should implement, and has four different implementations: :"
|
|
|
|
|
"class:`ThreadedChildWatcher` (configured to be used by default), :class:"
|
|
|
|
|
"`MultiLoopChildWatcher`, :class:`SafeChildWatcher`, and :class:"
|
2018-10-13 15:54:03 +00:00
|
|
|
|
"`FastChildWatcher`."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:139
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"See also the :ref:`Subprocess and Threads <asyncio-subprocess-threads>` "
|
|
|
|
|
"section."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:142
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The following two functions can be used to customize the child process "
|
|
|
|
|
"watcher implementation used by the asyncio event loop:"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:147
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid "Return the current child watcher for the current policy."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:151
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Set the current child watcher to *watcher* for the current policy. "
|
|
|
|
|
"*watcher* must implement methods defined in the :class:"
|
|
|
|
|
"`AbstractChildWatcher` base class."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:156
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Third-party event loops implementations might not support custom child "
|
|
|
|
|
"watchers. For such event loops, using :func:`set_child_watcher` might be "
|
|
|
|
|
"prohibited or have no effect."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:164
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid "Register a new child handler."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:166
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Arrange for ``callback(pid, returncode, *args)`` to be called when a process "
|
|
|
|
|
"with PID equal to *pid* terminates. Specifying another callback for the "
|
|
|
|
|
"same process replaces the previous handler."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:171
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid "The *callback* callable must be thread-safe."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:175
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid "Removes the handler for process with PID equal to *pid*."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:177
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The function returns ``True`` if the handler was successfully removed, "
|
|
|
|
|
"``False`` if there was nothing to remove."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:182
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid "Attach the watcher to an event loop."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:184
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"If the watcher was previously attached to an event loop, then it is first "
|
|
|
|
|
"detached before attaching to the new loop."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:187
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid "Note: loop may be ``None``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:191
|
|
|
|
|
msgid "Return ``True`` if the watcher is ready to use."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:193
|
|
|
|
|
msgid ""
|
|
|
|
|
"Spawning a subprocess with *inactive* current child watcher raises :exc:"
|
|
|
|
|
"`RuntimeError`."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:200
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid "Close the watcher."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:202
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"This method has to be called to ensure that underlying resources are cleaned-"
|
|
|
|
|
"up."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:207
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
2019-09-04 09:35:23 +00:00
|
|
|
|
"This implementation starts a new waiting thread for every subprocess spawn."
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:209
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
2019-09-04 09:35:23 +00:00
|
|
|
|
"It works reliably even when the asyncio event loop is run in a non-main OS "
|
|
|
|
|
"thread."
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:211
|
|
|
|
|
msgid ""
|
|
|
|
|
"There is no noticeable overhead when handling a big number of children "
|
|
|
|
|
"(*O(1)* each time a child terminates), but stating a thread per process "
|
|
|
|
|
"requires extra memory."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:214
|
|
|
|
|
msgid "This watcher is used by default."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:220
|
|
|
|
|
msgid ""
|
|
|
|
|
"This implementation registers a :py:data:`SIGCHLD` signal handler on "
|
|
|
|
|
"instantiation. That can break third-party code that installs a custom "
|
|
|
|
|
"handler for `SIGCHLD`. signal)."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:224 ../Doc/library/asyncio-policy.rst:242
|
|
|
|
|
msgid ""
|
|
|
|
|
"The watcher avoids disrupting other code spawning processes by polling every "
|
|
|
|
|
"process explicitly on a :py:data:`SIGCHLD` signal."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:227
|
|
|
|
|
msgid ""
|
|
|
|
|
"There is no limitation for running subprocesses from different threads once "
|
|
|
|
|
"the watcher is installed."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:230
|
|
|
|
|
msgid ""
|
|
|
|
|
"The solution is safe but it has a significant overhead when handling a big "
|
|
|
|
|
"number of processes (*O(n)* each time a :py:data:`SIGCHLD` is received)."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:238
|
|
|
|
|
msgid ""
|
|
|
|
|
"This implementation uses active event loop from the main thread to handle :"
|
|
|
|
|
"py:data:`SIGCHLD` signal. If the main thread has no running event loop "
|
|
|
|
|
"another thread cannot spawn a subprocess (:exc:`RuntimeError` is raised)."
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:245
|
|
|
|
|
msgid ""
|
|
|
|
|
"This solution is as safe as :class:`MultiLoopChildWatcher` and has the same "
|
|
|
|
|
"*O(N)* complexity but requires a running event loop in the main thread to "
|
|
|
|
|
"work."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:250
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"This implementation reaps every terminated processes by calling ``os."
|
|
|
|
|
"waitpid(-1)`` directly, possibly breaking other code spawning processes and "
|
|
|
|
|
"waiting for their termination."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:254
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"There is no noticeable overhead when handling a big number of children "
|
|
|
|
|
"(*O(1)* each time a child terminates)."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:257
|
|
|
|
|
msgid ""
|
|
|
|
|
"This solution requires a running event loop in the main thread to work, as :"
|
|
|
|
|
"class:`SafeChildWatcher`."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:262
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid "Custom Policies"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2019-09-04 09:35:23 +00:00
|
|
|
|
#: ../Doc/library/asyncio-policy.rst:264
|
2018-10-13 15:54:03 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"To implement a new event loop policy, it is recommended to subclass :class:"
|
|
|
|
|
"`DefaultEventLoopPolicy` and override the methods for which custom behavior "
|
|
|
|
|
"is wanted, e.g.::"
|
|
|
|
|
msgstr ""
|