+++ /dev/null
-# Copyright (C) 2001-2006 Python Software Foundation\r
-# Author: Barry Warsaw\r
-# Contact: email-sig@python.org\r
-\r
-"""Encodings and related functions."""\r
-\r
-__all__ = [\r
- 'encode_7or8bit',\r
- 'encode_base64',\r
- 'encode_noop',\r
- 'encode_quopri',\r
- ]\r
-\r
-import base64\r
-\r
-from quopri import encodestring as _encodestring\r
-\r
-\r
-\f\r
-def _qencode(s):\r
- enc = _encodestring(s, quotetabs=True)\r
- # Must encode spaces, which quopri.encodestring() doesn't do\r
- return enc.replace(' ', '=20')\r
-\r
-\r
-def _bencode(s):\r
- # We can't quite use base64.encodestring() since it tacks on a "courtesy\r
- # newline". Blech!\r
- if not s:\r
- return s\r
- hasnewline = (s[-1] == '\n')\r
- value = base64.encodestring(s)\r
- if not hasnewline and value[-1] == '\n':\r
- return value[:-1]\r
- return value\r
-\r
-\r
-\f\r
-def encode_base64(msg):\r
- """Encode the message's payload in Base64.\r
-\r
- Also, add an appropriate Content-Transfer-Encoding header.\r
- """\r
- orig = msg.get_payload()\r
- encdata = _bencode(orig)\r
- msg.set_payload(encdata)\r
- msg['Content-Transfer-Encoding'] = 'base64'\r
-\r
-\r
-\f\r
-def encode_quopri(msg):\r
- """Encode the message's payload in quoted-printable.\r
-\r
- Also, add an appropriate Content-Transfer-Encoding header.\r
- """\r
- orig = msg.get_payload()\r
- encdata = _qencode(orig)\r
- msg.set_payload(encdata)\r
- msg['Content-Transfer-Encoding'] = 'quoted-printable'\r
-\r
-\r
-\f\r
-def encode_7or8bit(msg):\r
- """Set the Content-Transfer-Encoding header to 7bit or 8bit."""\r
- orig = msg.get_payload()\r
- if orig is None:\r
- # There's no payload. For backwards compatibility we use 7bit\r
- msg['Content-Transfer-Encoding'] = '7bit'\r
- return\r
- # We play a trick to make this go fast. If encoding to ASCII succeeds, we\r
- # know the data must be 7bit, otherwise treat it as 8bit.\r
- try:\r
- orig.encode('ascii')\r
- except UnicodeError:\r
- msg['Content-Transfer-Encoding'] = '8bit'\r
- else:\r
- msg['Content-Transfer-Encoding'] = '7bit'\r
-\r
-\r
-\f\r
-def encode_noop(msg):\r
- """Do nothing."""\r