# SOME DESCRIPTIVE TITLE. # Copyright (C) 1990-2016, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 2.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-30 10:44+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../Doc/library/asynchat.rst:2 msgid ":mod:`asynchat` --- Asynchronous socket command/response handler" msgstr "" #: ../Doc/library/asynchat.rst:9 msgid "**Source code:** :source:`Lib/asynchat.py`" msgstr "*Code source :** :source:`Lib/asynchat.py`" #: ../Doc/library/asynchat.rst:13 msgid "" "This module builds on the :mod:`asyncore` infrastructure, simplifying " "asynchronous clients and servers and making it easier to handle protocols " "whose elements are terminated by arbitrary strings, or are of variable " "length. :mod:`asynchat` defines the abstract class :class:`async_chat` that " "you subclass, providing implementations of the :meth:`collect_incoming_data` " "and :meth:`found_terminator` methods. It uses the same asynchronous loop as :" "mod:`asyncore`, and the two types of channel, :class:`asyncore.dispatcher` " "and :class:`asynchat.async_chat`, can freely be mixed in the channel map. " "Typically an :class:`asyncore.dispatcher` server channel generates new :" "class:`asynchat.async_chat` channel objects as it receives incoming " "connection requests." msgstr "" #: ../Doc/library/asynchat.rst:28 msgid "" "This class is an abstract subclass of :class:`asyncore.dispatcher`. To make " "practical use of the code you must subclass :class:`async_chat`, providing " "meaningful :meth:`collect_incoming_data` and :meth:`found_terminator` " "methods. The :class:`asyncore.dispatcher` methods can be used, although not " "all make sense in a message/response context." msgstr "" #: ../Doc/library/asynchat.rst:35 msgid "" "Like :class:`asyncore.dispatcher`, :class:`async_chat` defines a set of " "events that are generated by an analysis of socket conditions after a :c:" "func:`select` call. Once the polling loop has been started the :class:" "`async_chat` object's methods are called by the event-processing framework " "with no action on the part of the programmer." msgstr "" #: ../Doc/library/asynchat.rst:41 msgid "" "Two class attributes can be modified, to improve performance, or possibly " "even to conserve memory." msgstr "" #: ../Doc/library/asynchat.rst:47 msgid "The asynchronous input buffer size (default ``4096``)." msgstr "" #: ../Doc/library/asynchat.rst:52 msgid "The asynchronous output buffer size (default ``4096``)." msgstr "" #: ../Doc/library/asynchat.rst:54 msgid "" "Unlike :class:`asyncore.dispatcher`, :class:`async_chat` allows you to " "define a first-in-first-out queue (fifo) of *producers*. A producer need " "have only one method, :meth:`more`, which should return data to be " "transmitted on the channel. The producer indicates exhaustion (*i.e.* that " "it contains no more data) by having its :meth:`more` method return the empty " "string. At this point the :class:`async_chat` object removes the producer " "from the fifo and starts using the next producer, if any. When the producer " "fifo is empty the :meth:`handle_write` method does nothing. You use the " "channel object's :meth:`set_terminator` method to describe how to recognize " "the end of, or an important breakpoint in, an incoming transmission from the " "remote endpoint." msgstr "" #: ../Doc/library/asynchat.rst:67 msgid "" "To build a functioning :class:`async_chat` subclass your input methods :" "meth:`collect_incoming_data` and :meth:`found_terminator` must handle the " "data that the channel receives asynchronously. The methods are described " "below." msgstr "" #: ../Doc/library/asynchat.rst:75 msgid "" "Pushes a ``None`` on to the producer fifo. When this producer is popped off " "the fifo it causes the channel to be closed." msgstr "" #: ../Doc/library/asynchat.rst:81 msgid "" "Called with *data* holding an arbitrary amount of received data. The " "default method, which must be overridden, raises a :exc:" "`NotImplementedError` exception." msgstr "" #: ../Doc/library/asynchat.rst:88 msgid "" "In emergencies this method will discard any data held in the input and/or " "output buffers and the producer fifo." msgstr "" #: ../Doc/library/asynchat.rst:94 msgid "" "Called when the incoming data stream matches the termination condition set " "by :meth:`set_terminator`. The default method, which must be overridden, " "raises a :exc:`NotImplementedError` exception. The buffered input data " "should be available via an instance attribute." msgstr "" #: ../Doc/library/asynchat.rst:102 msgid "Returns the current terminator for the channel." msgstr "" #: ../Doc/library/asynchat.rst:107 msgid "" "Pushes data on to the channel's fifo to ensure its transmission. This is all " "you need to do to have the channel write the data out to the network, " "although it is possible to use your own producers in more complex schemes to " "implement encryption and chunking, for example." msgstr "" #: ../Doc/library/asynchat.rst:115 msgid "" "Takes a producer object and adds it to the producer fifo associated with the " "channel. When all currently-pushed producers have been exhausted the " "channel will consume this producer's data by calling its :meth:`more` method " "and send the data to the remote endpoint." msgstr "" #: ../Doc/library/asynchat.rst:123 msgid "" "Sets the terminating condition to be recognized on the channel. ``term`` " "may be any of three types of value, corresponding to three different ways to " "handle incoming protocol data." msgstr "" #: ../Doc/library/asynchat.rst:128 msgid "term" msgstr "*term*" #: ../Doc/library/asynchat.rst:128 msgid "Description" msgstr "Description" #: ../Doc/library/asynchat.rst:130 msgid "*string*" msgstr "*string*" #: ../Doc/library/asynchat.rst:130 msgid "" "Will call :meth:`found_terminator` when the string is found in the input " "stream" msgstr "" #: ../Doc/library/asynchat.rst:133 msgid "*integer*" msgstr "*integer*" #: ../Doc/library/asynchat.rst:133 msgid "" "Will call :meth:`found_terminator` when the indicated number of characters " "have been received" msgstr "" #: ../Doc/library/asynchat.rst:137 msgid "``None``" msgstr "``None``" #: ../Doc/library/asynchat.rst:137 msgid "The channel continues to collect data forever" msgstr "Le canal continue de collecter des informations indéfiniment" #: ../Doc/library/asynchat.rst:141 msgid "" "Note that any data following the terminator will be available for reading by " "the channel after :meth:`found_terminator` is called." msgstr "" #: ../Doc/library/asynchat.rst:146 msgid "asynchat - Auxiliary Classes" msgstr "" #: ../Doc/library/asynchat.rst:150 msgid "" "A :class:`fifo` holding data which has been pushed by the application but " "not yet popped for writing to the channel. A :class:`fifo` is a list used " "to hold data and/or producers until they are required. If the *list* " "argument is provided then it should contain producers or data items to be " "written to the channel." msgstr "" #: ../Doc/library/asynchat.rst:159 msgid "Returns ``True`` if and only if the fifo is empty." msgstr "" #: ../Doc/library/asynchat.rst:164 msgid "Returns the least-recently :meth:`push`\\ ed item from the fifo." msgstr "" #: ../Doc/library/asynchat.rst:169 msgid "" "Adds the given data (which may be a string or a producer object) to the " "producer fifo." msgstr "" #: ../Doc/library/asynchat.rst:175 msgid "" "If the fifo is not empty, returns ``True, first()``, deleting the popped " "item. Returns ``False, None`` for an empty fifo." msgstr "" #: ../Doc/library/asynchat.rst:182 msgid "asynchat Example" msgstr "Exemple asynchat" #: ../Doc/library/asynchat.rst:184 msgid "" "The following partial example shows how HTTP requests can be read with :" "class:`async_chat`. A web server might create an :class:" "`http_request_handler` object for each incoming client connection. Notice " "that initially the channel terminator is set to match the blank line at the " "end of the HTTP headers, and a flag indicates that the headers are being " "read." msgstr "" #: ../Doc/library/asynchat.rst:191 msgid "" "Once the headers have been read, if the request is of type POST (indicating " "that further data are present in the input stream) then the ``Content-Length:" "`` header is used to set a numeric terminator to read the right amount of " "data from the channel." msgstr "" #: ../Doc/library/asynchat.rst:196 msgid "" "The :meth:`handle_request` method is called once all relevant input has been " "marshalled, after setting the channel terminator to ``None`` to ensure that " "any extraneous data sent by the web client are ignored. ::" msgstr ""