# Copyright (C) 2001-2018, Python Software Foundation # For licence information, see README file. # msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-01-15 22:33+0100\n" "PO-Revision-Date: 2019-09-06 13:49+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: library/email.headerregistry.rst:2 msgid ":mod:`email.headerregistry`: Custom Header Objects" msgstr "" #: library/email.headerregistry.rst:10 msgid "**Source code:** :source:`Lib/email/headerregistry.py`" msgstr "" #: library/email.headerregistry.rst:14 msgid "[1]_" msgstr "" #: library/email.headerregistry.rst:16 msgid "" "Headers are represented by customized subclasses of :class:`str`. The " "particular class used to represent a given header is determined by the :attr:" "`~email.policy.EmailPolicy.header_factory` of the :mod:`~email.policy` in " "effect when the headers are created. This section documents the particular " "``header_factory`` implemented by the email package for handling :RFC:`5322` " "compliant email messages, which not only provides customized header objects " "for various header types, but also provides an extension mechanism for " "applications to add their own custom header types." msgstr "" #: library/email.headerregistry.rst:25 msgid "" "When using any of the policy objects derived from :data:`~email.policy." "EmailPolicy`, all headers are produced by :class:`.HeaderRegistry` and have :" "class:`.BaseHeader` as their last base class. Each header class has an " "additional base class that is determined by the type of the header. For " "example, many headers have the class :class:`.UnstructuredHeader` as their " "other base class. The specialized second class for a header is determined " "by the name of the header, using a lookup table stored in the :class:`." "HeaderRegistry`. All of this is managed transparently for the typical " "application program, but interfaces are provided for modifying the default " "behavior for use by more complex applications." msgstr "" #: library/email.headerregistry.rst:36 msgid "" "The sections below first document the header base classes and their " "attributes, followed by the API for modifying the behavior of :class:`." "HeaderRegistry`, and finally the support classes used to represent the data " "parsed from structured headers." msgstr "" #: library/email.headerregistry.rst:44 msgid "" "*name* and *value* are passed to ``BaseHeader`` from the :attr:`~email." "policy.EmailPolicy.header_factory` call. The string value of any header " "object is the *value* fully decoded to unicode." msgstr "" #: library/email.headerregistry.rst:48 msgid "This base class defines the following read-only properties:" msgstr "" #: library/email.headerregistry.rst:53 msgid "" "The name of the header (the portion of the field before the ':'). This is " "exactly the value passed in the :attr:`~email.policy.EmailPolicy." "header_factory` call for *name*; that is, case is preserved." msgstr "" #: library/email.headerregistry.rst:61 msgid "" "A tuple of :exc:`~email.errors.HeaderDefect` instances reporting any RFC " "compliance problems found during parsing. The email package tries to be " "complete about detecting compliance issues. See the :mod:`~email.errors` " "module for a discussion of the types of defects that may be reported." msgstr "" #: library/email.headerregistry.rst:69 msgid "" "The maximum number of headers of this type that can have the same ``name``. " "A value of ``None`` means unlimited. The ``BaseHeader`` value for this " "attribute is ``None``; it is expected that specialized header classes will " "override this value as needed." msgstr "" #: library/email.headerregistry.rst:74 msgid "" "``BaseHeader`` also provides the following method, which is called by the " "email library code and should not in general be called by application " "programs:" msgstr "" #: library/email.headerregistry.rst:80 msgid "" "Return a string containing :attr:`~email.policy.Policy.linesep` characters " "as required to correctly fold the header according to *policy*. A :attr:" "`~email.policy.Policy.cte_type` of ``8bit`` will be treated as if it were " "``7bit``, since headers may not contain arbitrary binary data. If :attr:" "`~email.policy.EmailPolicy.utf8` is ``False``, non-ASCII data will be :rfc:" "`2047` encoded." msgstr "" #: library/email.headerregistry.rst:88 msgid "" "``BaseHeader`` by itself cannot be used to create a header object. It " "defines a protocol that each specialized header cooperates with in order to " "produce the header object. Specifically, ``BaseHeader`` requires that the " "specialized class provide a :func:`classmethod` named ``parse``. This " "method is called as follows::" msgstr "" #: library/email.headerregistry.rst:96 msgid "" "``kwds`` is a dictionary containing one pre-initialized key, ``defects``. " "``defects`` is an empty list. The parse method should append any detected " "defects to this list. On return, the ``kwds`` dictionary *must* contain " "values for at least the keys ``decoded`` and ``defects``. ``decoded`` " "should be the string value for the header (that is, the header value fully " "decoded to unicode). The parse method should assume that *string* may " "contain content-transfer-encoded parts, but should correctly handle all " "valid unicode characters as well so that it can parse un-encoded header " "values." msgstr "" #: library/email.headerregistry.rst:105 msgid "" "``BaseHeader``'s ``__new__`` then creates the header instance, and calls its " "``init`` method. The specialized class only needs to provide an ``init`` " "method if it wishes to set additional attributes beyond those provided by " "``BaseHeader`` itself. Such an ``init`` method should look like this::" msgstr "" #: library/email.headerregistry.rst:114 msgid "" "That is, anything extra that the specialized class puts in to the ``kwds`` " "dictionary should be removed and handled, and the remaining contents of " "``kw`` (and ``args``) passed to the ``BaseHeader`` ``init`` method." msgstr "" #: library/email.headerregistry.rst:121 msgid "" "An \"unstructured\" header is the default type of header in :rfc:`5322`. Any " "header that does not have a specified syntax is treated as unstructured. " "The classic example of an unstructured header is the :mailheader:`Subject` " "header." msgstr "" #: library/email.headerregistry.rst:126 msgid "" "In :rfc:`5322`, an unstructured header is a run of arbitrary text in the " "ASCII character set. :rfc:`2047`, however, has an :rfc:`5322` compatible " "mechanism for encoding non-ASCII text as ASCII characters within a header " "value. When a *value* containing encoded words is passed to the " "constructor, the ``UnstructuredHeader`` parser converts such encoded words " "into unicode, following the :rfc:`2047` rules for unstructured text. The " "parser uses heuristics to attempt to decode certain non-compliant encoded " "words. Defects are registered in such cases, as well as defects for issues " "such as invalid characters within the encoded words or the non-encoded text." msgstr "" #: library/email.headerregistry.rst:136 msgid "This header type provides no additional attributes." msgstr "" #: library/email.headerregistry.rst:141 msgid "" ":rfc:`5322` specifies a very specific format for dates within email headers. " "The ``DateHeader`` parser recognizes that date format, as well as " "recognizing a number of variant forms that are sometimes found \"in the " "wild\"." msgstr "" #: library/email.headerregistry.rst:146 library/email.headerregistry.rst:188 msgid "This header type provides the following additional attributes:" msgstr "" #: library/email.headerregistry.rst:150 msgid "" "If the header value can be recognized as a valid date of one form or " "another, this attribute will contain a :class:`~datetime.datetime` instance " "representing that date. If the timezone of the input date is specified as " "``-0000`` (indicating it is in UTC but contains no information about the " "source timezone), then :attr:`.datetime` will be a naive :class:`~datetime." "datetime`. If a specific timezone offset is found (including ``+0000``), " "then :attr:`.datetime` will contain an aware ``datetime`` that uses :class:" "`datetime.timezone` to record the timezone offset." msgstr "" #: library/email.headerregistry.rst:160 msgid "" "The ``decoded`` value of the header is determined by formatting the " "``datetime`` according to the :rfc:`5322` rules; that is, it is set to::" msgstr "" #: library/email.headerregistry.rst:165 msgid "" "When creating a ``DateHeader``, *value* may be :class:`~datetime.datetime` " "instance. This means, for example, that the following code is valid and " "does what one would expect::" msgstr "" #: library/email.headerregistry.rst:171 msgid "" "Because this is a naive ``datetime`` it will be interpreted as a UTC " "timestamp, and the resulting value will have a timezone of ``-0000``. Much " "more useful is to use the :func:`~email.utils.localtime` function from the :" "mod:`~email.utils` module::" msgstr "" #: library/email.headerregistry.rst:178 msgid "" "This example sets the date header to the current time and date using the " "current timezone offset." msgstr "" #: library/email.headerregistry.rst:184 msgid "" "Address headers are one of the most complex structured header types. The " "``AddressHeader`` class provides a generic interface to any address header." msgstr "" #: library/email.headerregistry.rst:193 msgid "" "A tuple of :class:`.Group` objects encoding the addresses and groups found " "in the header value. Addresses that are not part of a group are represented " "in this list as single-address ``Groups`` whose :attr:`~.Group.display_name` " "is ``None``." msgstr "" #: library/email.headerregistry.rst:201 msgid "" "A tuple of :class:`.Address` objects encoding all of the individual " "addresses from the header value. If the header value contains any groups, " "the individual addresses from the group are included in the list at the " "point where the group occurs in the value (that is, the list of addresses is " "\"flattened\" into a one dimensional list)." msgstr "" #: library/email.headerregistry.rst:207 msgid "" "The ``decoded`` value of the header will have all encoded words decoded to " "unicode. :class:`~encodings.idna` encoded domain names are also decoded to " "unicode. The ``decoded`` value is set by :ref:`joining ` " "the :class:`str` value of the elements of the ``groups`` attribute with ``', " "'``." msgstr "" #: library/email.headerregistry.rst:213 msgid "" "A list of :class:`.Address` and :class:`.Group` objects in any combination " "may be used to set the value of an address header. ``Group`` objects whose " "``display_name`` is ``None`` will be interpreted as single addresses, which " "allows an address list to be copied with groups intact by using the list " "obtained from the ``groups`` attribute of the source header." msgstr "" #: library/email.headerregistry.rst:222 msgid "" "A subclass of :class:`.AddressHeader` that adds one additional attribute:" msgstr "" #: library/email.headerregistry.rst:228 msgid "" "The single address encoded by the header value. If the header value " "actually contains more than one address (which would be a violation of the " "RFC under the default :mod:`~email.policy`), accessing this attribute will " "result in a :exc:`ValueError`." msgstr "" #: library/email.headerregistry.rst:234 msgid "" "Many of the above classes also have a ``Unique`` variant (for example, " "``UniqueUnstructuredHeader``). The only difference is that in the " "``Unique`` variant, :attr:`~.BaseHeader.max_count` is set to 1." msgstr "" #: library/email.headerregistry.rst:241 msgid "" "There is really only one valid value for the :mailheader:`MIME-Version` " "header, and that is ``1.0``. For future proofing, this header class " "supports other valid version numbers. If a version number has a valid value " "per :rfc:`2045`, then the header object will have non-``None`` values for " "the following attributes:" msgstr "" #: library/email.headerregistry.rst:249 msgid "" "The version number as a string, with any whitespace and/or comments removed." msgstr "" #: library/email.headerregistry.rst:254 msgid "The major version number as an integer" msgstr "" #: library/email.headerregistry.rst:258 msgid "The minor version number as an integer" msgstr "" #: library/email.headerregistry.rst:263 msgid "" "MIME headers all start with the prefix 'Content-'. Each specific header has " "a certain value, described under the class for that header. Some can also " "take a list of supplemental parameters, which have a common format. This " "class serves as a base for all the MIME headers that take parameters." msgstr "" #: library/email.headerregistry.rst:270 msgid "A dictionary mapping parameter names to parameter values." msgstr "" #: library/email.headerregistry.rst:275 msgid "" "A :class:`ParameterizedMIMEHeader` class that handles the :mailheader:" "`Content-Type` header." msgstr "" #: library/email.headerregistry.rst:280 msgid "The content type string, in the form ``maintype/subtype``." msgstr "" #: library/email.headerregistry.rst:289 msgid "" "A :class:`ParameterizedMIMEHeader` class that handles the :mailheader:" "`Content-Disposition` header." msgstr "" #: library/email.headerregistry.rst:294 msgid "``inline`` and ``attachment`` are the only valid values in common use." msgstr "" #: library/email.headerregistry.rst:299 msgid "Handles the :mailheader:`Content-Transfer-Encoding` header." msgstr "" #: library/email.headerregistry.rst:303 msgid "" "Valid values are ``7bit``, ``8bit``, ``base64``, and ``quoted-printable``. " "See :rfc:`2045` for more information." msgstr "" #: library/email.headerregistry.rst:312 msgid "" "This is the factory used by :class:`~email.policy.EmailPolicy` by default. " "``HeaderRegistry`` builds the class used to create a header instance " "dynamically, using *base_class* and a specialized class retrieved from a " "registry that it holds. When a given header name does not appear in the " "registry, the class specified by *default_class* is used as the specialized " "class. When *use_default_map* is ``True`` (the default), the standard " "mapping of header names to classes is copied in to the registry during " "initialization. *base_class* is always the last class in the generated " "class's ``__bases__`` list." msgstr "" #: library/email.headerregistry.rst:322 msgid "The default mappings are:" msgstr "" #: library/email.headerregistry.rst:0 msgid "subject" msgstr "" #: library/email.headerregistry.rst:324 msgid "UniqueUnstructuredHeader" msgstr "UniqueUnstructuredHeader" #: library/email.headerregistry.rst:0 msgid "date" msgstr "" #: library/email.headerregistry.rst:325 library/email.headerregistry.rst:327 msgid "UniqueDateHeader" msgstr "UniqueDateHeader" #: library/email.headerregistry.rst:0 msgid "resent-date" msgstr "" #: library/email.headerregistry.rst:326 msgid "DateHeader" msgstr "DateHeader" #: library/email.headerregistry.rst:0 msgid "orig-date" msgstr "" #: library/email.headerregistry.rst:0 msgid "sender" msgstr "" #: library/email.headerregistry.rst:328 msgid "UniqueSingleAddressHeader" msgstr "UniqueSingleAddressHeader" #: library/email.headerregistry.rst:0 msgid "resent-sender" msgstr "" #: library/email.headerregistry.rst:329 msgid "SingleAddressHeader" msgstr "SingleAddressHeader" #: library/email.headerregistry.rst:0 msgid "to" msgstr "" #: library/email.headerregistry.rst:330 library/email.headerregistry.rst:332 #: library/email.headerregistry.rst:334 library/email.headerregistry.rst:336 #: library/email.headerregistry.rst:338 msgid "UniqueAddressHeader" msgstr "UniqueAddressHeader" #: library/email.headerregistry.rst:0 msgid "resent-to" msgstr "" #: library/email.headerregistry.rst:331 library/email.headerregistry.rst:333 #: library/email.headerregistry.rst:335 library/email.headerregistry.rst:337 msgid "AddressHeader" msgstr "AddressHeader" #: library/email.headerregistry.rst:0 msgid "cc" msgstr "" #: library/email.headerregistry.rst:0 msgid "resent-cc" msgstr "" #: library/email.headerregistry.rst:0 msgid "bcc" msgstr "" #: library/email.headerregistry.rst:0 msgid "resent-bcc" msgstr "" #: library/email.headerregistry.rst:0 msgid "from" msgstr "" #: library/email.headerregistry.rst:0 msgid "resent-from" msgstr "" #: library/email.headerregistry.rst:0 msgid "reply-to" msgstr "" #: library/email.headerregistry.rst:0 msgid "mime-version" msgstr "" #: library/email.headerregistry.rst:339 msgid "MIMEVersionHeader" msgstr "" #: library/email.headerregistry.rst:0 msgid "content-type" msgstr "" #: library/email.headerregistry.rst:340 msgid "ContentTypeHeader" msgstr "ContentTypeHeader" #: library/email.headerregistry.rst:0 msgid "content-disposition" msgstr "" #: library/email.headerregistry.rst:341 msgid "ContentDispositionHeader" msgstr "" #: library/email.headerregistry.rst:0 msgid "content-transfer-encoding" msgstr "" #: library/email.headerregistry.rst:342 msgid "ContentTransferEncodingHeader" msgstr "" #: library/email.headerregistry.rst:0 msgid "message-id" msgstr "" #: library/email.headerregistry.rst:343 msgid "MessageIDHeader" msgstr "MessageIDHeader" #: library/email.headerregistry.rst:345 msgid "``HeaderRegistry`` has the following methods:" msgstr "" #: library/email.headerregistry.rst:350 msgid "" "*name* is the name of the header to be mapped. It will be converted to " "lower case in the registry. *cls* is the specialized class to be used, " "along with *base_class*, to create the class used to instantiate headers " "that match *name*." msgstr "" #: library/email.headerregistry.rst:358 msgid "Construct and return a class to handle creating a *name* header." msgstr "" #: library/email.headerregistry.rst:363 msgid "" "Retrieves the specialized header associated with *name* from the registry " "(using *default_class* if *name* does not appear in the registry) and " "composes it with *base_class* to produce a class, calls the constructed " "class's constructor, passing it the same argument list, and finally returns " "the class instance created thereby." msgstr "" #: library/email.headerregistry.rst:370 msgid "" "The following classes are the classes used to represent data parsed from " "structured headers and can, in general, be used by an application program to " "construct structured values to assign to specific headers." msgstr "" #: library/email.headerregistry.rst:377 msgid "" "The class used to represent an email address. The general form of an " "address is::" msgstr "" #: library/email.headerregistry.rst:382 msgid "or::" msgstr "ou ::" #: library/email.headerregistry.rst:386 msgid "" "where each part must conform to specific syntax rules spelled out in :rfc:" "`5322`." msgstr "" #: library/email.headerregistry.rst:389 msgid "" "As a convenience *addr_spec* can be specified instead of *username* and " "*domain*, in which case *username* and *domain* will be parsed from the " "*addr_spec*. An *addr_spec* must be a properly RFC quoted string; if it is " "not ``Address`` will raise an error. Unicode characters are allowed and " "will be property encoded when serialized. However, per the RFCs, unicode is " "*not* allowed in the username portion of the address." msgstr "" #: library/email.headerregistry.rst:398 msgid "" "The display name portion of the address, if any, with all quoting removed. " "If the address does not have a display name, this attribute will be an empty " "string." msgstr "" #: library/email.headerregistry.rst:404 msgid "The ``username`` portion of the address, with all quoting removed." msgstr "" #: library/email.headerregistry.rst:408 msgid "The ``domain`` portion of the address." msgstr "" #: library/email.headerregistry.rst:412 msgid "" "The ``username@domain`` portion of the address, correctly quoted for use as " "a bare address (the second form shown above). This attribute is not mutable." msgstr "" #: library/email.headerregistry.rst:418 msgid "" "The ``str`` value of the object is the address quoted according to :rfc:" "`5322` rules, but with no Content Transfer Encoding of any non-ASCII " "characters." msgstr "" #: library/email.headerregistry.rst:422 msgid "" "To support SMTP (:rfc:`5321`), ``Address`` handles one special case: if " "``username`` and ``domain`` are both the empty string (or ``None``), then " "the string value of the ``Address`` is ``<>``." msgstr "" #: library/email.headerregistry.rst:429 msgid "" "The class used to represent an address group. The general form of an " "address group is::" msgstr "" #: library/email.headerregistry.rst:434 msgid "" "As a convenience for processing lists of addresses that consist of a mixture " "of groups and single addresses, a ``Group`` may also be used to represent " "single addresses that are not part of a group by setting *display_name* to " "``None`` and providing a list of the single address as *addresses*." msgstr "" #: library/email.headerregistry.rst:441 msgid "" "The ``display_name`` of the group. If it is ``None`` and there is exactly " "one ``Address`` in ``addresses``, then the ``Group`` represents a single " "address that is not in a group." msgstr "" #: library/email.headerregistry.rst:447 msgid "" "A possibly empty tuple of :class:`.Address` objects representing the " "addresses in the group." msgstr "" #: library/email.headerregistry.rst:452 msgid "" "The ``str`` value of a ``Group`` is formatted according to :rfc:`5322`, but " "with no Content Transfer Encoding of any non-ASCII characters. If " "``display_name`` is none and there is a single ``Address`` in the " "``addresses`` list, the ``str`` value will be the same as the ``str`` of " "that single ``Address``." msgstr "" #: library/email.headerregistry.rst:460 msgid "Footnotes" msgstr "Notes" #: library/email.headerregistry.rst:461 msgid "" "Originally added in 3.3 as a :term:`provisional module `" msgstr ""