/usr/share/cagefs-skeleton/opt/cloudlinux/venv/lib/python3.11/site-packages/future/backports/email
# Copyright (C) 2001-2006 Python Software Foundation # Author: Barry Warsaw # Contact: email-sig@python.org """Encodings and related functions.""" from __future__ import unicode_literals from __future__ import division from __future__ import absolute_import from future.builtins import str __all__ = [ 'encode_7or8bit', 'encode_base64', 'encode_noop', 'encode_quopri', ] try: from base64 import encodebytes as _bencode except ImportError: # Py2 compatibility. TODO: test this! from base64 import encodestring as _bencode from quopri import encodestring as _encodestring def _qencode(s): enc = _encodestring(s, quotetabs=True) # Must encode spaces, which quopri.encodestring() doesn't do return enc.replace(' ', '=20') def encode_base64(msg): """Encode the message's payload in Base64. Also, add an appropriate Content-Transfer-Encoding header. """ orig = msg.get_payload() encdata = str(_bencode(orig), 'ascii') msg.set_payload(encdata) msg['Content-Transfer-Encoding'] = 'base64' def encode_quopri(msg): """Encode the message's payload in quoted-printable. Also, add an appropriate Content-Transfer-Encoding header. """ orig = msg.get_payload() encdata = _qencode(orig) msg.set_payload(encdata) msg['Content-Transfer-Encoding'] = 'quoted-printable' def encode_7or8bit(msg): """Set the Content-Transfer-Encoding header to 7bit or 8bit.""" orig = msg.get_payload() if orig is None: # There's no payload. For backwards compatibility we use 7bit msg['Content-Transfer-Encoding'] = '7bit' return # We play a trick to make this go fast. If encoding/decode to ASCII # succeeds, we know the data must be 7bit, otherwise treat it as 8bit. try: if isinstance(orig, str): orig.encode('ascii') else: orig.decode('ascii') except UnicodeError: charset = msg.get_charset() output_cset = charset and charset.output_charset # iso-2022-* is non-ASCII but encodes to a 7-bit representation if output_cset and output_cset.lower().startswith('iso-2022-'): msg['Content-Transfer-Encoding'] = '7bit' else: msg['Content-Transfer-Encoding'] = '8bit' else: msg['Content-Transfer-Encoding'] = '7bit' if not isinstance(orig, str): msg.set_payload(orig.decode('ascii', 'surrogateescape')) def encode_noop(msg): """Do nothing.""" # Well, not quite *nothing*: in Python3 we have to turn bytes into a string # in our internal surrogateescaped form in order to keep the model # consistent. orig = msg.get_payload() if not isinstance(orig, str): msg.set_payload(orig.decode('ascii', 'surrogateescape'))
.
Edit
..
Edit
__init__.py
Edit
__pycache__
Edit
_encoded_words.py
Edit
_header_value_parser.py
Edit
_parseaddr.py
Edit
_policybase.py
Edit
base64mime.py
Edit
charset.py
Edit
encoders.py
Edit
errors.py
Edit
feedparser.py
Edit
generator.py
Edit
header.py
Edit
headerregistry.py
Edit
iterators.py
Edit
message.py
Edit
mime
Edit
parser.py
Edit
policy.py
Edit
quoprimime.py
Edit
utils.py
Edit