summaryrefslogtreecommitdiffstats
path: root/Lib/email/Encoders.py
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2006-03-18 15:41:53 (GMT)
committerBarry Warsaw <barry@python.org>2006-03-18 15:41:53 (GMT)
commit40ef0067ad5af2458c54cc0316831ddb701ea3fd (patch)
tree52204dc86cfb735d4aadff24864af50da4fe78de /Lib/email/Encoders.py
parent9ae019bf5b92d9ac0ee8bb53829f6b5a16d5fab2 (diff)
downloadcpython-40ef0067ad5af2458c54cc0316831ddb701ea3fd.zip
cpython-40ef0067ad5af2458c54cc0316831ddb701ea3fd.tar.gz
cpython-40ef0067ad5af2458c54cc0316831ddb701ea3fd.tar.bz2
Merge email package 4.0 from the sandbox, including documentation, test cases,
and NEWS updates.
Diffstat (limited to 'Lib/email/Encoders.py')
-rw-r--r--Lib/email/Encoders.py78
1 files changed, 0 insertions, 78 deletions
diff --git a/Lib/email/Encoders.py b/Lib/email/Encoders.py
deleted file mode 100644
index baac2a3..0000000
--- a/Lib/email/Encoders.py
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright (C) 2001-2004 Python Software Foundation
-# Author: Barry Warsaw
-# Contact: email-sig@python.org
-
-"""Encodings and related functions."""
-
-import base64
-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 _bencode(s):
- # We can't quite use base64.encodestring() since it tacks on a "courtesy
- # newline". Blech!
- if not s:
- return s
- hasnewline = (s[-1] == '\n')
- value = base64.encodestring(s)
- if not hasnewline and value[-1] == '\n':
- return value[:-1]
- return value
-
-
-
-def encode_base64(msg):
- """Encode the message's payload in Base64.
-
- Also, add an appropriate Content-Transfer-Encoding header.
- """
- orig = msg.get_payload()
- encdata = _bencode(orig)
- 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 to ASCII succeeds, we
- # know the data must be 7bit, otherwise treat it as 8bit.
- try:
- orig.encode('ascii')
- except UnicodeError:
- # iso-2022-* is non-ASCII but still 7-bit
- charset = msg.get_charset()
- output_cset = charset and charset.output_charset
- if output_cset and output_cset.lower().startswith('iso-2202-'):
- msg['Content-Transfer-Encoding'] = '7bit'
- else:
- msg['Content-Transfer-Encoding'] = '8bit'
- else:
- msg['Content-Transfer-Encoding'] = '7bit'
-
-
-
-def encode_noop(msg):
- """Do nothing."""