New submission from Vajrasky Kok: In Lib/email/encoders.py:
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 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() msg.get_payload(decode=True) always return bytes so there is no point of these lines: if isinstance(orig, str): orig.encode('ascii') else: orig.decode('ascii') Attached the patch to refactor this function. ---------- components: email files: minor_refactor_encoders_in_email_lib.patch keywords: patch messages: 205944 nosy: barry, r.david.murray, vajrasky priority: normal severity: normal status: open title: Minor refactor of Lib/email/encoders.py versions: Python 3.4 Added file: http://bugs.python.org/file33099/minor_refactor_encoders_in_email_lib.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue19957> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com