forked from AFPy/python-docs-fr
296 lines
12 KiB
Plaintext
296 lines
12 KiB
Plaintext
# SOME DESCRIPTIVE TITLE.
|
|
# Copyright (C) 1990-2016, 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 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 <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/email.parser.rst:2
|
|
msgid ":mod:`email.parser`: Parsing email messages"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:8
|
|
msgid ""
|
|
"Message object structures can be created in one of two ways: they can be "
|
|
"created from whole cloth by instantiating :class:`~email.message.Message` "
|
|
"objects and stringing them together via :meth:`~email.message.Message."
|
|
"attach` and :meth:`~email.message.Message.set_payload` calls, or they can be "
|
|
"created by parsing a flat text representation of the email message."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:14
|
|
msgid ""
|
|
"The :mod:`email` package provides a standard parser that understands most "
|
|
"email document structures, including MIME documents. You can pass the "
|
|
"parser a string or a file object, and the parser will return to you the "
|
|
"root :class:`~email.message.Message` instance of the object structure. For "
|
|
"simple, non-MIME messages the payload of this root object will likely be a "
|
|
"string containing the text of the message. For MIME messages, the root "
|
|
"object will return ``True`` from its :meth:`~email.message.Message."
|
|
"is_multipart` method, and the subparts can be accessed via the :meth:`~email."
|
|
"message.Message.get_payload` and :meth:`~email.message.Message.walk` methods."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:24
|
|
msgid ""
|
|
"There are actually two parser interfaces available for use, the classic :"
|
|
"class:`Parser` API and the incremental :class:`FeedParser` API. The "
|
|
"classic :class:`Parser` API is fine if you have the entire text of the "
|
|
"message in memory as a string, or if the entire message lives in a file on "
|
|
"the file system. :class:`FeedParser` is more appropriate for when you're "
|
|
"reading the message from a stream which might block waiting for more input "
|
|
"(e.g. reading an email message from a socket). The :class:`FeedParser` can "
|
|
"consume and parse the message incrementally, and only returns the root "
|
|
"object when you close the parser [#]_."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:33
|
|
msgid ""
|
|
"Note that the parser can be extended in limited ways, and of course you can "
|
|
"implement your own parser completely from scratch. There is no magical "
|
|
"connection between the :mod:`email` package's bundled parser and the :class:"
|
|
"`~email.message.Message` class, so your custom parser can create message "
|
|
"object trees any way it finds necessary."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:41
|
|
msgid "FeedParser API"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:45
|
|
msgid ""
|
|
"The :class:`FeedParser`, imported from the :mod:`email.feedparser` module, "
|
|
"provides an API that is conducive to incremental parsing of email messages, "
|
|
"such as would be necessary when reading the text of an email message from a "
|
|
"source that can block (e.g. a socket). The :class:`FeedParser` can of "
|
|
"course be used to parse an email message fully contained in a string or a "
|
|
"file, but the classic :class:`Parser` API may be more convenient for such "
|
|
"use cases. The semantics and results of the two parser APIs are identical."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:53
|
|
msgid ""
|
|
"The :class:`FeedParser`'s API is simple; you create an instance, feed it a "
|
|
"bunch of text until there's no more to feed it, then close the parser to "
|
|
"retrieve the root message object. The :class:`FeedParser` is extremely "
|
|
"accurate when parsing standards-compliant messages, and it does a very good "
|
|
"job of parsing non-compliant messages, providing information about how a "
|
|
"message was deemed broken. It will populate a message object's *defects* "
|
|
"attribute with a list of any problems it found in a message. See the :mod:"
|
|
"`email.errors` module for the list of defects that it can find."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:62
|
|
msgid "Here is the API for the :class:`FeedParser`:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:67
|
|
msgid ""
|
|
"Create a :class:`FeedParser` instance. Optional *_factory* is a no-argument "
|
|
"callable that will be called whenever a new message object is needed. It "
|
|
"defaults to the :class:`email.message.Message` class."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:74
|
|
msgid ""
|
|
"Feed the :class:`FeedParser` some more data. *data* should be a string "
|
|
"containing one or more lines. The lines can be partial and the :class:"
|
|
"`FeedParser` will stitch such partial lines together properly. The lines in "
|
|
"the string can have any of the common three line endings, carriage return, "
|
|
"newline, or carriage return and newline (they can even be mixed)."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:84
|
|
msgid ""
|
|
"Closing a :class:`FeedParser` completes the parsing of all previously fed "
|
|
"data, and returns the root message object. It is undefined what happens if "
|
|
"you feed more data to a closed :class:`FeedParser`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:90
|
|
msgid "Parser class API"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:92
|
|
msgid ""
|
|
"The :class:`Parser` class, imported from the :mod:`email.parser` module, "
|
|
"provides an API that can be used to parse a message when the complete "
|
|
"contents of the message are available in a string or file. The :mod:`email."
|
|
"parser` module also provides a second class, called :class:`HeaderParser` "
|
|
"which can be used if you're only interested in the headers of the message. :"
|
|
"class:`HeaderParser` can be much faster in these situations, since it does "
|
|
"not attempt to parse the message body, instead setting the payload to the "
|
|
"raw body as a string. :class:`HeaderParser` has the same API as the :class:"
|
|
"`Parser` class."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:105
|
|
msgid ""
|
|
"The constructor for the :class:`Parser` class takes an optional argument "
|
|
"*_class*. This must be a callable factory (such as a function or a class), "
|
|
"and it is used whenever a sub-message object needs to be created. It "
|
|
"defaults to :class:`~email.message.Message` (see :mod:`email.message`). The "
|
|
"factory will be called without arguments."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:111
|
|
msgid "The optional *strict* flag is ignored."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:113
|
|
msgid ""
|
|
"Because the :class:`Parser` class is a backward compatible API wrapper "
|
|
"around the new-in-Python 2.4 :class:`FeedParser`, *all* parsing is "
|
|
"effectively non-strict. You should simply stop passing a *strict* flag to "
|
|
"the :class:`Parser` constructor."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:119 ../Doc/library/email.parser.rst:173
|
|
#: ../Doc/library/email.parser.rst:183
|
|
msgid "The *strict* flag was added."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:122
|
|
msgid "The *strict* flag was deprecated."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:125
|
|
msgid "The other public :class:`Parser` methods are:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:130
|
|
msgid ""
|
|
"Read all the data from the file-like object *fp*, parse the resulting text, "
|
|
"and return the root message object. *fp* must support both the :meth:`~io."
|
|
"TextIOBase.readline` and the :meth:`~io.TextIOBase.read` methods on file-"
|
|
"like objects."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:135
|
|
msgid ""
|
|
"The text contained in *fp* must be formatted as a block of :rfc:`2822` style "
|
|
"headers and header continuation lines, optionally preceded by an envelope "
|
|
"header. The header block is terminated either by the end of the data or by "
|
|
"a blank line. Following the header block is the body of the message (which "
|
|
"may contain MIME-encoded subparts)."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:141
|
|
msgid ""
|
|
"Optional *headersonly* is a flag specifying whether to stop parsing after "
|
|
"reading the headers or not. The default is ``False``, meaning it parses the "
|
|
"entire contents of the file."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:145 ../Doc/library/email.parser.rst:158
|
|
msgid "The *headersonly* flag was added."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:151
|
|
msgid ""
|
|
"Similar to the :meth:`parse` method, except it takes a string object instead "
|
|
"of a file-like object. Calling this method on a string is exactly "
|
|
"equivalent to wrapping *text* in a :class:`~StringIO.StringIO` instance "
|
|
"first and calling :meth:`parse`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:156
|
|
msgid "Optional *headersonly* is as with the :meth:`parse` method."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:161
|
|
msgid ""
|
|
"Since creating a message object structure from a string or a file object is "
|
|
"such a common task, two functions are provided as a convenience. They are "
|
|
"available in the top-level :mod:`email` package namespace."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:169
|
|
msgid ""
|
|
"Return a message object structure from a string. This is exactly equivalent "
|
|
"to ``Parser().parsestr(s)``. Optional *_class* and *strict* are interpreted "
|
|
"as with the :class:`~email.parser.Parser` class constructor."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:179
|
|
msgid ""
|
|
"Return a message object structure tree from an open file object. This is "
|
|
"exactly equivalent to ``Parser().parse(fp)``. Optional *_class* and "
|
|
"*strict* are interpreted as with the :class:`~email.parser.Parser` class "
|
|
"constructor."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:186
|
|
msgid ""
|
|
"Here's an example of how you might use this at an interactive Python prompt::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:193
|
|
msgid "Additional notes"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:195
|
|
msgid "Here are some notes on the parsing semantics:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:197
|
|
msgid ""
|
|
"Most non-\\ :mimetype:`multipart` type messages are parsed as a single "
|
|
"message object with a string payload. These objects will return ``False`` "
|
|
"for :meth:`~email.message.Message.is_multipart`. Their :meth:`~email."
|
|
"message.Message.get_payload` method will return a string object."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:202
|
|
msgid ""
|
|
"All :mimetype:`multipart` type messages will be parsed as a container "
|
|
"message object with a list of sub-message objects for their payload. The "
|
|
"outer container message will return ``True`` for :meth:`~email.message."
|
|
"Message.is_multipart` and their :meth:`~email.message.Message.get_payload` "
|
|
"method will return the list of :class:`~email.message.Message` subparts."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:209
|
|
msgid ""
|
|
"Most messages with a content type of :mimetype:`message/\\*` (e.g. :mimetype:"
|
|
"`message/delivery-status` and :mimetype:`message/rfc822`) will also be "
|
|
"parsed as container object containing a list payload of length 1. Their :"
|
|
"meth:`~email.message.Message.is_multipart` method will return ``True``. The "
|
|
"single element in the list payload will be a sub-message object."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:215
|
|
msgid ""
|
|
"Some non-standards compliant messages may not be internally consistent about "
|
|
"their :mimetype:`multipart`\\ -edness. Such messages may have a :mailheader:"
|
|
"`Content-Type` header of type :mimetype:`multipart`, but their :meth:`~email."
|
|
"message.Message.is_multipart` method may return ``False``. If such messages "
|
|
"were parsed with the :class:`~email.parser.FeedParser`, they will have an "
|
|
"instance of the :class:`~email.errors.MultipartInvariantViolationDefect` "
|
|
"class in their *defects* attribute list. See :mod:`email.errors` for "
|
|
"details."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/email.parser.rst:225
|
|
msgid "Footnotes"
|
|
msgstr "Notes"
|
|
|
|
#: ../Doc/library/email.parser.rst:226
|
|
msgid ""
|
|
"As of email package version 3.0, introduced in Python 2.4, the classic :"
|
|
"class:`~email.parser.Parser` was re-implemented in terms of the :class:"
|
|
"`~email.parser.FeedParser`, so the semantics and results are identical "
|
|
"between the two parsers."
|
|
msgstr ""
|