# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2023, 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 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 \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:11 msgid "**Source code:** :source:`Lib/asynchat.py`" msgstr "" #: ../Doc/library/asynchat.rst:17 msgid "" "The :mod:`asynchat` module is deprecated (see :pep:`PEP 594 <594#asynchat>` " "for details). Please use :mod:`asyncio` instead." msgstr "" #: ../Doc/library/asynchat.rst:22 msgid "" "This module exists for backwards compatibility only. For new code we " "recommend using :mod:`asyncio`." msgstr "" #: ../Doc/library/asynchat.rst:25 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/includes/wasm-notavail.rst:3 msgid ":ref:`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/asynchat.rst:41 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:48 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:54 msgid "" "Two class attributes can be modified, to improve performance, or possibly " "even to conserve memory." msgstr "" #: ../Doc/library/asynchat.rst:60 msgid "The asynchronous input buffer size (default ``4096``)." msgstr "" #: ../Doc/library/asynchat.rst:65 msgid "The asynchronous output buffer size (default ``4096``)." msgstr "" #: ../Doc/library/asynchat.rst:67 msgid "" "Unlike :class:`asyncore.dispatcher`, :class:`async_chat` allows you to " "define a :abbr:`FIFO (first-in, first-out)` queue 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 " "bytes object. At this point the :class:`async_chat` object removes the " "producer from the queue and starts using the next producer, if any. When the " "producer queue 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:80 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:88 msgid "" "Pushes a ``None`` on to the producer queue. When this producer is popped off " "the queue it causes the channel to be closed." msgstr "" #: ../Doc/library/asynchat.rst:94 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:101 msgid "" "In emergencies this method will discard any data held in the input and/or " "output buffers and the producer queue." msgstr "" #: ../Doc/library/asynchat.rst:107 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:115 msgid "Returns the current terminator for the channel." msgstr "" #: ../Doc/library/asynchat.rst:120 msgid "" "Pushes data on to the channel's queue 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:128 msgid "" "Takes a producer object and adds it to the producer queue 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:136 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:141 msgid "term" msgstr "" #: ../Doc/library/asynchat.rst:141 msgid "Description" msgstr "" #: ../Doc/library/asynchat.rst:143 msgid "*string*" msgstr "" #: ../Doc/library/asynchat.rst:143 msgid "" "Will call :meth:`found_terminator` when the string is found in the input " "stream" msgstr "" #: ../Doc/library/asynchat.rst:146 msgid "*integer*" msgstr "" #: ../Doc/library/asynchat.rst:146 msgid "" "Will call :meth:`found_terminator` when the indicated number of characters " "have been received" msgstr "" #: ../Doc/library/asynchat.rst:150 msgid "``None``" msgstr "" #: ../Doc/library/asynchat.rst:150 msgid "The channel continues to collect data forever" msgstr "" #: ../Doc/library/asynchat.rst:154 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:161 msgid "asynchat Example" msgstr "" #: ../Doc/library/asynchat.rst:163 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:170 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:175 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 ""