forked from AFPy/python-docs-fr
deronnax
142fb63d76
rejouage de #160, qui a été mis en suspens et a maintenant trop de conflits. Co-authored-by: Mathieu Dupuy <mathieu.dupuy@gitguardian.com> Reviewed-on: AFPy/python-docs-fr#170 Reviewed-by: Christophe Nanteuil <christophenan@noreply.localhost>
376 lines
13 KiB
Plaintext
376 lines
13 KiB
Plaintext
# SOME DESCRIPTIVE TITLE.
|
|
# Copyright (C) 2001-2023, Python Software Foundation
|
|
# This file is distributed under the same license as the Python package.
|
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
#
|
|
#, fuzzy
|
|
msgid ""
|
|
msgstr ""
|
|
"Project-Id-Version: Python 3.11\n"
|
|
"Report-Msgid-Bugs-To: \n"
|
|
"POT-Creation-Date: 2023-07-21 14:55+0200\n"
|
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
"MIME-Version: 1.0\n"
|
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
|
|
#: ../Doc/library/asyncore.rst:2
|
|
msgid ":mod:`asyncore` --- Asynchronous socket handler"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:14
|
|
msgid "**Source code:** :source:`Lib/asyncore.py`"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:20
|
|
msgid ""
|
|
"The :mod:`asyncore` module is deprecated (see :pep:`PEP 594 <594#asyncore>` "
|
|
"for details). Please use :mod:`asyncio` instead."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:25
|
|
msgid ""
|
|
"This module exists for backwards compatibility only. For new code we "
|
|
"recommend using :mod:`asyncio`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:28
|
|
msgid ""
|
|
"This module provides the basic infrastructure for writing asynchronous "
|
|
"socket service clients and servers."
|
|
msgstr ""
|
|
|
|
#: ../Doc/includes/wasm-notavail.rst:3
|
|
msgid ":ref:`Availability <availability>`: not Emscripten, not WASI."
|
|
msgstr ""
|
|
|
|
#: ../Doc/includes/wasm-notavail.rst:5
|
|
msgid ""
|
|
"This module does not work or is not available on WebAssembly platforms "
|
|
"``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for "
|
|
"more information."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:33
|
|
msgid ""
|
|
"There are only two ways to have a program on a single processor do \"more "
|
|
"than one thing at a time.\" Multi-threaded programming is the simplest and "
|
|
"most popular way to do it, but there is another very different technique, "
|
|
"that lets you have nearly all the advantages of multi-threading, without "
|
|
"actually using multiple threads. It's really only practical if your "
|
|
"program is largely I/O bound. If your program is processor bound, then pre-"
|
|
"emptive scheduled threads are probably what you really need. Network "
|
|
"servers are rarely processor bound, however."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:42
|
|
msgid ""
|
|
"If your operating system supports the :c:func:`select` system call in its I/"
|
|
"O library (and nearly all do), then you can use it to juggle multiple "
|
|
"communication channels at once; doing other work while your I/O is taking "
|
|
"place in the \"background.\" Although this strategy can seem strange and "
|
|
"complex, especially at first, it is in many ways easier to understand and "
|
|
"control than multi-threaded programming. The :mod:`asyncore` module solves "
|
|
"many of the difficult problems for you, making the task of building "
|
|
"sophisticated high-performance network servers and clients a snap. For "
|
|
"\"conversational\" applications and protocols the companion :mod:`asynchat` "
|
|
"module is invaluable."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:53
|
|
msgid ""
|
|
"The basic idea behind both modules is to create one or more network "
|
|
"*channels*, instances of class :class:`asyncore.dispatcher` and :class:"
|
|
"`asynchat.async_chat`. Creating the channels adds them to a global map, "
|
|
"used by the :func:`loop` function if you do not provide it with your own "
|
|
"*map*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:59
|
|
msgid ""
|
|
"Once the initial channel(s) is(are) created, calling the :func:`loop` "
|
|
"function activates channel service, which continues until the last channel "
|
|
"(including any that have been added to the map during asynchronous service) "
|
|
"is closed."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:66
|
|
msgid ""
|
|
"Enter a polling loop that terminates after count passes or all open channels "
|
|
"have been closed. All arguments are optional. The *count* parameter "
|
|
"defaults to ``None``, resulting in the loop terminating only when all "
|
|
"channels have been closed. The *timeout* argument sets the timeout "
|
|
"parameter for the appropriate :func:`~select.select` or :func:`~select.poll` "
|
|
"call, measured in seconds; the default is 30 seconds. The *use_poll* "
|
|
"parameter, if true, indicates that :func:`~select.poll` should be used in "
|
|
"preference to :func:`~select.select` (the default is ``False``)."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:75
|
|
msgid ""
|
|
"The *map* parameter is a dictionary whose items are the channels to watch. "
|
|
"As channels are closed they are deleted from their map. If *map* is "
|
|
"omitted, a global map is used. Channels (instances of :class:`asyncore."
|
|
"dispatcher`, :class:`asynchat.async_chat` and subclasses thereof) can freely "
|
|
"be mixed in the map."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:84
|
|
msgid ""
|
|
"The :class:`dispatcher` class is a thin wrapper around a low-level socket "
|
|
"object. To make it more useful, it has a few methods for event-handling "
|
|
"which are called from the asynchronous loop. Otherwise, it can be treated "
|
|
"as a normal non-blocking socket object."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:89
|
|
msgid ""
|
|
"The firing of low-level events at certain times or in certain connection "
|
|
"states tells the asynchronous loop that certain higher-level events have "
|
|
"taken place. For example, if we have asked for a socket to connect to "
|
|
"another host, we know that the connection has been made when the socket "
|
|
"becomes writable for the first time (at this point you know that you may "
|
|
"write to it with the expectation of success). The implied higher-level "
|
|
"events are:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:98
|
|
msgid "Event"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:98
|
|
msgid "Description"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:100
|
|
msgid "``handle_connect()``"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:100
|
|
msgid "Implied by the first read or write event"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:103
|
|
msgid "``handle_close()``"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:103
|
|
msgid "Implied by a read event with no data available"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:106
|
|
msgid "``handle_accepted()``"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:106
|
|
msgid "Implied by a read event on a listening socket"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:110
|
|
msgid ""
|
|
"During asynchronous processing, each mapped channel's :meth:`readable` and :"
|
|
"meth:`writable` methods are used to determine whether the channel's socket "
|
|
"should be added to the list of channels :c:func:`select`\\ ed or :c:func:"
|
|
"`poll`\\ ed for read and write events."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:115
|
|
msgid ""
|
|
"Thus, the set of channel events is larger than the basic socket events. The "
|
|
"full set of methods that can be overridden in your subclass follows:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:121
|
|
msgid ""
|
|
"Called when the asynchronous loop detects that a :meth:`read` call on the "
|
|
"channel's socket will succeed."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:127
|
|
msgid ""
|
|
"Called when the asynchronous loop detects that a writable socket can be "
|
|
"written. Often this method will implement the necessary buffering for "
|
|
"performance. For example::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:138
|
|
msgid ""
|
|
"Called when there is out of band (OOB) data for a socket connection. This "
|
|
"will almost never happen, as OOB is tenuously supported and rarely used."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:144
|
|
msgid ""
|
|
"Called when the active opener's socket actually makes a connection. Might "
|
|
"send a \"welcome\" banner, or initiate a protocol negotiation with the "
|
|
"remote endpoint, for example."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:151
|
|
msgid "Called when the socket is closed."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:156
|
|
msgid ""
|
|
"Called when an exception is raised and not otherwise handled. The default "
|
|
"version prints a condensed traceback."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:162
|
|
msgid ""
|
|
"Called on listening channels (passive openers) when a connection can be "
|
|
"established with a new remote endpoint that has issued a :meth:`connect` "
|
|
"call for the local endpoint. Deprecated in version 3.2; use :meth:"
|
|
"`handle_accepted` instead."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:172
|
|
msgid ""
|
|
"Called on listening channels (passive openers) when a connection has been "
|
|
"established with a new remote endpoint that has issued a :meth:`connect` "
|
|
"call for the local endpoint. *sock* is a *new* socket object usable to send "
|
|
"and receive data on the connection, and *addr* is the address bound to the "
|
|
"socket on the other end of the connection."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:183
|
|
msgid ""
|
|
"Called each time around the asynchronous loop to determine whether a "
|
|
"channel's socket should be added to the list on which read events can "
|
|
"occur. The default method simply returns ``True``, indicating that by "
|
|
"default, all channels will be interested in read events."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:191
|
|
msgid ""
|
|
"Called each time around the asynchronous loop to determine whether a "
|
|
"channel's socket should be added to the list on which write events can "
|
|
"occur. The default method simply returns ``True``, indicating that by "
|
|
"default, all channels will be interested in write events."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:197
|
|
msgid ""
|
|
"In addition, each channel delegates or extends many of the socket methods. "
|
|
"Most of these are nearly identical to their socket partners."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:203
|
|
msgid ""
|
|
"This is identical to the creation of a normal socket, and will use the same "
|
|
"options for creation. Refer to the :mod:`socket` documentation for "
|
|
"information on creating sockets."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:207
|
|
msgid "*family* and *type* arguments can be omitted."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:213
|
|
msgid ""
|
|
"As with the normal socket object, *address* is a tuple with the first "
|
|
"element the host to connect to, and the second the port number."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:219
|
|
msgid "Send *data* to the remote end-point of the socket."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:224
|
|
msgid ""
|
|
"Read at most *buffer_size* bytes from the socket's remote end-point. An "
|
|
"empty bytes object implies that the channel has been closed from the other "
|
|
"end."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:228
|
|
msgid ""
|
|
"Note that :meth:`recv` may raise :exc:`BlockingIOError` , even though :func:"
|
|
"`select.select` or :func:`select.poll` has reported the socket ready for "
|
|
"reading."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:235
|
|
msgid ""
|
|
"Listen for connections made to the socket. The *backlog* argument specifies "
|
|
"the maximum number of queued connections and should be at least 1; the "
|
|
"maximum value is system-dependent (usually 5)."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:242
|
|
msgid ""
|
|
"Bind the socket to *address*. The socket must not already be bound. (The "
|
|
"format of *address* depends on the address family --- refer to the :mod:"
|
|
"`socket` documentation for more information.) To mark the socket as re-"
|
|
"usable (setting the :const:`SO_REUSEADDR` option), call the :class:"
|
|
"`dispatcher` object's :meth:`set_reuse_addr` method."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:251
|
|
msgid ""
|
|
"Accept a connection. The socket must be bound to an address and listening "
|
|
"for connections. The return value can be either ``None`` or a pair ``(conn, "
|
|
"address)`` where *conn* is a *new* socket object usable to send and receive "
|
|
"data on the connection, and *address* is the address bound to the socket on "
|
|
"the other end of the connection. When ``None`` is returned it means the "
|
|
"connection didn't take place, in which case the server should just ignore "
|
|
"this event and keep listening for further incoming connections."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:263
|
|
msgid ""
|
|
"Close the socket. All future operations on the socket object will fail. The "
|
|
"remote end-point will receive no more data (after queued data is flushed). "
|
|
"Sockets are automatically closed when they are garbage-collected."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:271
|
|
msgid ""
|
|
"A :class:`dispatcher` subclass which adds simple buffered output capability, "
|
|
"useful for simple clients. For more sophisticated usage use :class:`asynchat."
|
|
"async_chat`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:277
|
|
msgid ""
|
|
"A file_dispatcher takes a file descriptor or :term:`file object` along with "
|
|
"an optional map argument and wraps it for use with the :c:func:`poll` or :c:"
|
|
"func:`loop` functions. If provided a file object or anything with a :c:func:"
|
|
"`fileno` method, that method will be called and passed to the :class:"
|
|
"`file_wrapper` constructor."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:283 ../Doc/library/asyncore.rst:292
|
|
msgid ":ref:`Availability <availability>`: Unix."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:287
|
|
msgid ""
|
|
"A file_wrapper takes an integer file descriptor and calls :func:`os.dup` to "
|
|
"duplicate the handle so that the original handle may be closed independently "
|
|
"of the file_wrapper. This class implements sufficient methods to emulate a "
|
|
"socket for use by the :class:`file_dispatcher` class."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:298
|
|
msgid "asyncore Example basic HTTP client"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:300
|
|
msgid ""
|
|
"Here is a very basic HTTP client that uses the :class:`dispatcher` class to "
|
|
"implement its socket handling::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:337
|
|
msgid "asyncore Example basic echo server"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/asyncore.rst:339
|
|
msgid ""
|
|
"Here is a basic echo server that uses the :class:`dispatcher` class to "
|
|
"accept connections and dispatches the incoming connections to a handler::"
|
|
msgstr ""
|