# 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: 2022-03-23 18:39+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\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.policy.rst:2 msgid ":mod:`email.policy`: Policy Objects" msgstr "" #: library/email.policy.rst:12 msgid "**Source code:** :source:`Lib/email/policy.py`" msgstr "" #: library/email.policy.rst:16 msgid "" "The :mod:`email` package's prime focus is the handling of email messages as " "described by the various email and MIME RFCs. However, the general format " "of email messages (a block of header fields each consisting of a name " "followed by a colon followed by a value, the whole block followed by a blank " "line and an arbitrary 'body'), is a format that has found utility outside of " "the realm of email. Some of these uses conform fairly closely to the main " "email RFCs, some do not. Even when working with email, there are times when " "it is desirable to break strict compliance with the RFCs, such as generating " "emails that interoperate with email servers that do not themselves follow " "the standards, or that implement extensions you want to use in ways that " "violate the standards." msgstr "" #: library/email.policy.rst:28 msgid "" "Policy objects give the email package the flexibility to handle all these " "disparate use cases." msgstr "" #: library/email.policy.rst:31 msgid "" "A :class:`Policy` object encapsulates a set of attributes and methods that " "control the behavior of various components of the email package during use. :" "class:`Policy` instances can be passed to various classes and methods in the " "email package to alter the default behavior. The settable values and their " "defaults are described below." msgstr "" #: library/email.policy.rst:37 msgid "" "There is a default policy used by all classes in the email package. For all " "of the :mod:`~email.parser` classes and the related convenience functions, " "and for the :class:`~email.message.Message` class, this is the :class:" "`Compat32` policy, via its corresponding pre-defined instance :const:" "`compat32`. This policy provides for complete backward compatibility (in " "some cases, including bug compatibility) with the pre-Python3.3 version of " "the email package." msgstr "" #: library/email.policy.rst:44 msgid "" "This default value for the *policy* keyword to :class:`~email.message." "EmailMessage` is the :class:`EmailPolicy` policy, via its pre-defined " "instance :data:`~default`." msgstr "" #: library/email.policy.rst:48 msgid "" "When a :class:`~email.message.Message` or :class:`~email.message." "EmailMessage` object is created, it acquires a policy. If the message is " "created by a :mod:`~email.parser`, a policy passed to the parser will be the " "policy used by the message it creates. If the message is created by the " "program, then the policy can be specified when it is created. When a " "message is passed to a :mod:`~email.generator`, the generator uses the " "policy from the message by default, but you can also pass a specific policy " "to the generator that will override the one stored on the message object." msgstr "" #: library/email.policy.rst:57 msgid "" "The default value for the *policy* keyword for the :mod:`email.parser` " "classes and the parser convenience functions **will be changing** in a " "future version of Python. Therefore you should **always specify explicitly " "which policy you want to use** when calling any of the classes and functions " "described in the :mod:`~email.parser` module." msgstr "" #: library/email.policy.rst:63 msgid "" "The first part of this documentation covers the features of :class:`Policy`, " "an :term:`abstract base class` that defines the features that are common to " "all policy objects, including :const:`compat32`. This includes certain hook " "methods that are called internally by the email package, which a custom " "policy could override to obtain different behavior. The second part " "describes the concrete classes :class:`EmailPolicy` and :class:`Compat32`, " "which implement the hooks that provide the standard behavior and the " "backward compatible behavior and features, respectively." msgstr "" #: library/email.policy.rst:72 msgid "" ":class:`Policy` instances are immutable, but they can be cloned, accepting " "the same keyword arguments as the class constructor and returning a new :" "class:`Policy` instance that is a copy of the original but with the " "specified attributes values changed." msgstr "" #: library/email.policy.rst:77 msgid "" "As an example, the following code could be used to read an email message " "from a file on disk and pass it to the system ``sendmail`` program on a Unix " "system:" msgstr "" #: library/email.policy.rst:113 msgid "" "Here we are telling :class:`~email.generator.BytesGenerator` to use the RFC " "correct line separator characters when creating the binary string to feed " "into ``sendmail's`` ``stdin``, where the default policy would use ``\\n`` " "line separators." msgstr "" #: library/email.policy.rst:118 msgid "" "Some email package methods accept a *policy* keyword argument, allowing the " "policy to be overridden for that method. For example, the following code " "uses the :meth:`~email.message.Message.as_bytes` method of the *msg* object " "from the previous example and writes the message to a file using the native " "line separators for the platform on which it is running::" msgstr "" #: library/email.policy.rst:129 msgid "" "Policy objects can also be combined using the addition operator, producing a " "policy object whose settings are a combination of the non-default values of " "the summed objects::" msgstr "" #: library/email.policy.rst:137 msgid "" "This operation is not commutative; that is, the order in which the objects " "are added matters. To illustrate::" msgstr "" #: library/email.policy.rst:152 msgid "" "This is the :term:`abstract base class` for all policy classes. It provides " "default implementations for a couple of trivial methods, as well as the " "implementation of the immutability property, the :meth:`clone` method, and " "the constructor semantics." msgstr "" #: library/email.policy.rst:157 msgid "" "The constructor of a policy class can be passed various keyword arguments. " "The arguments that may be specified are any non-method properties on this " "class, plus any additional non-method properties on the concrete class. A " "value specified in the constructor will override the default value for the " "corresponding attribute." msgstr "" #: library/email.policy.rst:163 msgid "" "This class defines the following properties, and thus values for the " "following may be passed in the constructor of any policy class:" msgstr "" #: library/email.policy.rst:169 msgid "" "The maximum length of any line in the serialized output, not counting the " "end of line character(s). Default is 78, per :rfc:`5322`. A value of ``0`` " "or :const:`None` indicates that no line wrapping should be done at all." msgstr "" #: library/email.policy.rst:177 msgid "" "The string to be used to terminate lines in serialized output. The default " "is ``\\n`` because that's the internal end-of-line discipline used by " "Python, though ``\\r\\n`` is required by the RFCs." msgstr "" #: library/email.policy.rst:184 msgid "" "Controls the type of Content Transfer Encodings that may be or are required " "to be used. The possible values are:" msgstr "" #: library/email.policy.rst:190 msgid "``7bit``" msgstr "``7bit``" #: library/email.policy.rst:190 msgid "" "all data must be \"7 bit clean\" (ASCII-only). This means that where " "necessary data will be encoded using either quoted-printable or base64 " "encoding." msgstr "" #: library/email.policy.rst:194 msgid "``8bit``" msgstr "``8bit``" #: library/email.policy.rst:194 msgid "" "data is not constrained to be 7 bit clean. Data in headers is still " "required to be ASCII-only and so will be encoded (see :meth:`fold_binary` " "and :attr:`~EmailPolicy.utf8` below for exceptions), but body parts may use " "the ``8bit`` CTE." msgstr "" #: library/email.policy.rst:200 msgid "" "A ``cte_type`` value of ``8bit`` only works with ``BytesGenerator``, not " "``Generator``, because strings cannot contain binary data. If a " "``Generator`` is operating under a policy that specifies ``cte_type=8bit``, " "it will act as if ``cte_type`` is ``7bit``." msgstr "" #: library/email.policy.rst:208 msgid "" "If :const:`True`, any defects encountered will be raised as errors. If :" "const:`False` (the default), defects will be passed to the :meth:" "`register_defect` method." msgstr "" #: library/email.policy.rst:215 msgid "" "If :const:`True`, lines starting with *\"From \"* in the body are escaped by " "putting a ``>`` in front of them. This parameter is used when the message is " "being serialized by a generator. Default: :const:`False`." msgstr "" #: library/email.policy.rst:220 msgid "The *mangle_from_* parameter." msgstr "" #: library/email.policy.rst:226 msgid "" "A factory function for constructing a new empty message object. Used by the " "parser when building messages. Defaults to ``None``, in which case :class:" "`~email.message.Message` is used." msgstr "" #: library/email.policy.rst:232 msgid "" "The following :class:`Policy` method is intended to be called by code using " "the email library to create policy instances with custom settings:" msgstr "" #: library/email.policy.rst:238 msgid "" "Return a new :class:`Policy` instance whose attributes have the same values " "as the current instance, except where those attributes are given new values " "by the keyword arguments." msgstr "" #: library/email.policy.rst:243 msgid "" "The remaining :class:`Policy` methods are called by the email package code, " "and are not intended to be called by an application using the email package. " "A custom policy must implement all of these methods." msgstr "" #: library/email.policy.rst:250 msgid "" "Handle a *defect* found on *obj*. When the email package calls this method, " "*defect* will always be a subclass of :class:`~email.errors.Defect`." msgstr "" #: library/email.policy.rst:254 msgid "" "The default implementation checks the :attr:`raise_on_defect` flag. If it " "is ``True``, *defect* is raised as an exception. If it is ``False`` (the " "default), *obj* and *defect* are passed to :meth:`register_defect`." msgstr "" #: library/email.policy.rst:261 msgid "" "Register a *defect* on *obj*. In the email package, *defect* will always be " "a subclass of :class:`~email.errors.Defect`." msgstr "" #: library/email.policy.rst:264 msgid "" "The default implementation calls the ``append`` method of the ``defects`` " "attribute of *obj*. When the email package calls :attr:`handle_defect`, " "*obj* will normally have a ``defects`` attribute that has an ``append`` " "method. Custom object types used with the email package (for example, " "custom ``Message`` objects) should also provide such an attribute, otherwise " "defects in parsed messages will raise unexpected errors." msgstr "" #: library/email.policy.rst:274 msgid "Return the maximum allowed number of headers named *name*." msgstr "" #: library/email.policy.rst:276 msgid "" "Called when a header is added to an :class:`~email.message.EmailMessage` or :" "class:`~email.message.Message` object. If the returned value is not ``0`` " "or ``None``, and there are already a number of headers with the name *name* " "greater than or equal to the value returned, a :exc:`ValueError` is raised." msgstr "" #: library/email.policy.rst:282 msgid "" "Because the default behavior of ``Message.__setitem__`` is to append the " "value to the list of headers, it is easy to create duplicate headers without " "realizing it. This method allows certain headers to be limited in the " "number of instances of that header that may be added to a ``Message`` " "programmatically. (The limit is not observed by the parser, which will " "faithfully produce as many headers as exist in the message being parsed.)" msgstr "" #: library/email.policy.rst:290 msgid "The default implementation returns ``None`` for all header names." msgstr "" #: library/email.policy.rst:295 msgid "" "The email package calls this method with a list of strings, each string " "ending with the line separation characters found in the source being " "parsed. The first line includes the field header name and separator. All " "whitespace in the source is preserved. The method should return the " "``(name, value)`` tuple that is to be stored in the ``Message`` to represent " "the parsed header." msgstr "" #: library/email.policy.rst:302 msgid "" "If an implementation wishes to retain compatibility with the existing email " "package policies, *name* should be the case preserved name (all characters " "up to the '``:``' separator), while *value* should be the unfolded value " "(all line separator characters removed, but whitespace kept intact), " "stripped of leading whitespace." msgstr "" #: library/email.policy.rst:308 msgid "*sourcelines* may contain surrogateescaped binary data." msgstr "" #: library/email.policy.rst:326 library/email.policy.rst:342 msgid "There is no default implementation" msgstr "" #: library/email.policy.rst:315 msgid "" "The email package calls this method with the name and value provided by the " "application program when the application program is modifying a ``Message`` " "programmatically (as opposed to a ``Message`` created by a parser). The " "method should return the ``(name, value)`` tuple that is to be stored in the " "``Message`` to represent the header." msgstr "" #: library/email.policy.rst:321 msgid "" "If an implementation wishes to retain compatibility with the existing email " "package policies, the *name* and *value* should be strings or string " "subclasses that do not change the content of the passed in arguments." msgstr "" #: library/email.policy.rst:331 msgid "" "The email package calls this method with the *name* and *value* currently " "stored in the ``Message`` when that header is requested by the application " "program, and whatever the method returns is what is passed back to the " "application as the value of the header being retrieved. Note that there may " "be more than one header with the same name stored in the ``Message``; the " "method is passed the specific name and value of the header destined to be " "returned to the application." msgstr "" #: library/email.policy.rst:339 msgid "" "*value* may contain surrogateescaped binary data. There should be no " "surrogateescaped binary data in the value returned by the method." msgstr "" #: library/email.policy.rst:347 msgid "" "The email package calls this method with the *name* and *value* currently " "stored in the ``Message`` for a given header. The method should return a " "string that represents that header \"folded\" correctly (according to the " "policy settings) by composing the *name* with the *value* and inserting :" "attr:`linesep` characters at the appropriate places. See :rfc:`5322` for a " "discussion of the rules for folding email headers." msgstr "" #: library/email.policy.rst:354 msgid "" "*value* may contain surrogateescaped binary data. There should be no " "surrogateescaped binary data in the string returned by the method." msgstr "" #: library/email.policy.rst:360 msgid "" "The same as :meth:`fold`, except that the returned value should be a bytes " "object rather than a string." msgstr "" #: library/email.policy.rst:363 msgid "" "*value* may contain surrogateescaped binary data. These could be converted " "back into binary data in the returned bytes object." msgstr "" #: library/email.policy.rst:370 msgid "" "This concrete :class:`Policy` provides behavior that is intended to be fully " "compliant with the current email RFCs. These include (but are not limited " "to) :rfc:`5322`, :rfc:`2047`, and the current MIME RFCs." msgstr "" #: library/email.policy.rst:374 msgid "" "This policy adds new header parsing and folding algorithms. Instead of " "simple strings, headers are ``str`` subclasses with attributes that depend " "on the type of the field. The parsing and folding algorithm fully " "implement :rfc:`2047` and :rfc:`5322`." msgstr "" #: library/email.policy.rst:379 msgid "" "The default value for the :attr:`~email.policy.Policy.message_factory` " "attribute is :class:`~email.message.EmailMessage`." msgstr "" #: library/email.policy.rst:382 msgid "" "In addition to the settable attributes listed above that apply to all " "policies, this policy adds the following additional attributes:" msgstr "" #: library/email.policy.rst:385 msgid "[1]_" msgstr "" #: library/email.policy.rst:390 msgid "" "If ``False``, follow :rfc:`5322`, supporting non-ASCII characters in headers " "by encoding them as \"encoded words\". If ``True``, follow :rfc:`6532` and " "use ``utf-8`` encoding for headers. Messages formatted in this way may be " "passed to SMTP servers that support the ``SMTPUTF8`` extension (:rfc:`6531`)." msgstr "" #: library/email.policy.rst:399 msgid "" "If the value for a header in the ``Message`` object originated from a :mod:" "`~email.parser` (as opposed to being set by a program), this attribute " "indicates whether or not a generator should refold that value when " "transforming the message back into serialized form. The possible values are:" msgstr "" #: library/email.policy.rst:406 msgid "``none``" msgstr "``none``" #: library/email.policy.rst:406 msgid "all source values use original folding" msgstr "" #: library/email.policy.rst:408 msgid "``long``" msgstr "``long``" #: library/email.policy.rst:408 msgid "" "source values that have any line that is longer than ``max_line_length`` " "will be refolded" msgstr "" #: library/email.policy.rst:411 msgid "``all``" msgstr "``all``" #: library/email.policy.rst:411 msgid "all values are refolded." msgstr "" #: library/email.policy.rst:414 msgid "The default is ``long``." msgstr "" #: library/email.policy.rst:419 msgid "" "A callable that takes two arguments, ``name`` and ``value``, where ``name`` " "is a header field name and ``value`` is an unfolded header field value, and " "returns a string subclass that represents that header. A default " "``header_factory`` (see :mod:`~email.headerregistry`) is provided that " "supports custom parsing for the various address and date :RFC:`5322` header " "field types, and the major MIME header field stypes. Support for additional " "custom parsing will be added in the future." msgstr "" #: library/email.policy.rst:430 msgid "" "An object with at least two methods: get_content and set_content. When the :" "meth:`~email.message.EmailMessage.get_content` or :meth:`~email.message." "EmailMessage.set_content` method of an :class:`~email.message.EmailMessage` " "object is called, it calls the corresponding method of this object, passing " "it the message object as its first argument, and any arguments or keywords " "that were passed to it as additional arguments. By default " "``content_manager`` is set to :data:`~email.contentmanager.raw_data_manager`." msgstr "" #: library/email.policy.rst:600 msgid "" "The class provides the following concrete implementations of the abstract " "methods of :class:`Policy`:" msgstr "" #: library/email.policy.rst:448 msgid "" "Returns the value of the :attr:`~email.headerregistry.BaseHeader.max_count` " "attribute of the specialized class used to represent the header with the " "given name." msgstr "" #: library/email.policy.rst:606 msgid "" "The name is parsed as everything up to the '``:``' and returned unmodified. " "The value is determined by stripping leading whitespace off the remainder of " "the first line, joining all subsequent lines together, and stripping any " "trailing carriage return or linefeed characters." msgstr "" #: library/email.policy.rst:464 msgid "" "The name is returned unchanged. If the input value has a ``name`` attribute " "and it matches *name* ignoring case, the value is returned unchanged. " "Otherwise the *name* and *value* are passed to ``header_factory``, and the " "resulting header object is returned as the value. In this case a " "``ValueError`` is raised if the input value contains CR or LF characters." msgstr "" #: library/email.policy.rst:474 msgid "" "If the value has a ``name`` attribute, it is returned to unmodified. " "Otherwise the *name*, and the *value* with any CR or LF characters removed, " "are passed to the ``header_factory``, and the resulting header object is " "returned. Any surrogateescaped bytes get turned into the unicode unknown-" "character glyph." msgstr "" #: library/email.policy.rst:483 msgid "" "Header folding is controlled by the :attr:`refold_source` policy setting. A " "value is considered to be a 'source value' if and only if it does not have a " "``name`` attribute (having a ``name`` attribute means it is a header object " "of some sort). If a source value needs to be refolded according to the " "policy, it is converted into a header object by passing the *name* and the " "*value* with any CR and LF characters removed to the ``header_factory``. " "Folding of a header object is done by calling its ``fold`` method with the " "current policy." msgstr "" #: library/email.policy.rst:492 msgid "" "Source values are split into lines using :meth:`~str.splitlines`. If the " "value is not to be refolded, the lines are rejoined using the ``linesep`` " "from the policy and returned. The exception is lines containing non-ascii " "binary data. In that case the value is refolded regardless of the " "``refold_source`` setting, which causes the binary data to be CTE encoded " "using the ``unknown-8bit`` charset." msgstr "" #: library/email.policy.rst:502 msgid "" "The same as :meth:`fold` if :attr:`~Policy.cte_type` is ``7bit``, except " "that the returned value is bytes." msgstr "" #: library/email.policy.rst:505 msgid "" "If :attr:`~Policy.cte_type` is ``8bit``, non-ASCII binary data is converted " "back into bytes. Headers with binary data are not refolded, regardless of " "the ``refold_header`` setting, since there is no way to know whether the " "binary data consists of single byte characters or multibyte characters." msgstr "" #: library/email.policy.rst:512 msgid "" "The following instances of :class:`EmailPolicy` provide defaults suitable " "for specific application domains. Note that in the future the behavior of " "these instances (in particular the ``HTTP`` instance) may be adjusted to " "conform even more closely to the RFCs relevant to their domains." msgstr "" #: library/email.policy.rst:520 msgid "" "An instance of ``EmailPolicy`` with all defaults unchanged. This policy " "uses the standard Python ``\\n`` line endings rather than the RFC-correct " "``\\r\\n``." msgstr "" #: library/email.policy.rst:527 msgid "" "Suitable for serializing messages in conformance with the email RFCs. Like " "``default``, but with ``linesep`` set to ``\\r\\n``, which is RFC compliant." msgstr "" #: library/email.policy.rst:534 msgid "" "The same as ``SMTP`` except that :attr:`~EmailPolicy.utf8` is ``True``. " "Useful for serializing messages to a message store without using encoded " "words in the headers. Should only be used for SMTP transmission if the " "sender or recipient addresses have non-ASCII characters (the :meth:`smtplib." "SMTP.send_message` method handles this automatically)." msgstr "" #: library/email.policy.rst:543 msgid "" "Suitable for serializing headers with for use in HTTP traffic. Like " "``SMTP`` except that ``max_line_length`` is set to ``None`` (unlimited)." msgstr "" #: library/email.policy.rst:549 msgid "" "Convenience instance. The same as ``default`` except that " "``raise_on_defect`` is set to ``True``. This allows any policy to be made " "strict by writing::" msgstr "" #: library/email.policy.rst:556 msgid "" "With all of these :class:`EmailPolicies <.EmailPolicy>`, the effective API " "of the email package is changed from the Python 3.2 API in the following " "ways:" msgstr "" #: library/email.policy.rst:559 msgid "" "Setting a header on a :class:`~email.message.Message` results in that header " "being parsed and a header object created." msgstr "" #: library/email.policy.rst:562 msgid "" "Fetching a header value from a :class:`~email.message.Message` results in " "that header being parsed and a header object created and returned." msgstr "" #: library/email.policy.rst:566 msgid "" "Any header object, or any header that is refolded due to the policy " "settings, is folded using an algorithm that fully implements the RFC folding " "algorithms, including knowing where encoded words are required and allowed." msgstr "" #: library/email.policy.rst:571 msgid "" "From the application view, this means that any header obtained through the :" "class:`~email.message.EmailMessage` is a header object with extra " "attributes, whose string value is the fully decoded unicode value of the " "header. Likewise, a header may be assigned a new value, or a new header " "created, using a unicode string, and the policy will take care of converting " "the unicode string into the correct RFC encoded form." msgstr "" #: library/email.policy.rst:578 msgid "" "The header objects and their attributes are described in :mod:`~email." "headerregistry`." msgstr "" #: library/email.policy.rst:585 msgid "" "This concrete :class:`Policy` is the backward compatibility policy. It " "replicates the behavior of the email package in Python 3.2. The :mod:" "`~email.policy` module also defines an instance of this class, :const:" "`compat32`, that is used as the default policy. Thus the default behavior " "of the email package is to maintain compatibility with Python 3.2." msgstr "" #: library/email.policy.rst:591 msgid "" "The following attributes have values that are different from the :class:" "`Policy` default:" msgstr "" #: library/email.policy.rst:597 msgid "The default is ``True``." msgstr "" #: library/email.policy.rst:614 msgid "The name and value are returned unmodified." msgstr "" #: library/email.policy.rst:619 msgid "" "If the value contains binary data, it is converted into a :class:`~email." "header.Header` object using the ``unknown-8bit`` charset. Otherwise it is " "returned unmodified." msgstr "" #: library/email.policy.rst:626 msgid "" "Headers are folded using the :class:`~email.header.Header` folding " "algorithm, which preserves existing line breaks in the value, and wraps each " "resulting line to the ``max_line_length``. Non-ASCII binary data are CTE " "encoded using the ``unknown-8bit`` charset." msgstr "" #: library/email.policy.rst:634 msgid "" "Headers are folded using the :class:`~email.header.Header` folding " "algorithm, which preserves existing line breaks in the value, and wraps each " "resulting line to the ``max_line_length``. If ``cte_type`` is ``7bit``, non-" "ascii binary data is CTE encoded using the ``unknown-8bit`` charset. " "Otherwise the original source header is used, with its existing line breaks " "and any (RFC invalid) binary data it may contain." msgstr "" #: library/email.policy.rst:644 msgid "" "An instance of :class:`Compat32`, providing backward compatibility with the " "behavior of the email package in Python 3.2." msgstr "" #: library/email.policy.rst:649 msgid "Footnotes" msgstr "Notes" #: library/email.policy.rst:650 msgid "" "Originally added in 3.3 as a :term:`provisional feature `." msgstr ""