# Copyright (C) 2001-2006 Python Software Foundation # Author: Barry Warsaw # Contact: email-sig@python.org """Encodings and related functions.""" __all__ = [ 'encode_7or8bit', 'encode_base64', 'encode_noop', 'encode_quopri', ] from base64 import encodebytes 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(b' ', b'=20') def encode_base64(msg): """Encode the message's payload in Base64. Also, add an appropriate Content-Transfer-Encoding header. """ orig = msg.get_payload(decode=True) 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(decode=True) 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(decode=True) 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 decoding from ASCII succeeds, # we know the data must be 7bit, otherwise treat it as 8bit. try: orig.decode('ascii') except UnicodeError: msg['Content-Transfer-Encoding'] = '8bit' else: msg['Content-Transfer-Encoding'] = '7bit' def encode_noop(msg): """Do nothing."""
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
mime | Folder | 0755 |
|
|
__init__.py | File | 1.72 KB | 0644 |
|
_encoded_words.py | File | 8.32 KB | 0644 |
|
_header_value_parser.py | File | 104.45 KB | 0644 |
|
_parseaddr.py | File | 17.27 KB | 0644 |
|
_policybase.py | File | 14.72 KB | 0644 |
|
architecture.rst | File | 9.34 KB | 0644 |
|
base64mime.py | File | 3.47 KB | 0644 |
|
charset.py | File | 16.73 KB | 0644 |
|
contentmanager.py | File | 10.45 KB | 0644 |
|
encoders.py | File | 1.74 KB | 0644 |
|
errors.py | File | 3.56 KB | 0644 |
|
feedparser.py | File | 22.25 KB | 0644 |
|
generator.py | File | 19.72 KB | 0644 |
|
header.py | File | 23.54 KB | 0644 |
|
headerregistry.py | File | 20.32 KB | 0644 |
|
iterators.py | File | 2.08 KB | 0644 |
|
message.py | File | 45.97 KB | 0644 |
|
parser.py | File | 4.92 KB | 0644 |
|
policy.py | File | 10.14 KB | 0644 |
|
quoprimime.py | File | 9.63 KB | 0644 |
|
utils.py | File | 13.17 KB | 0644 |
|