encoders.py (1239B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\email\encoders.py 2 __all__ = ['encode_7or8bit', 3 'encode_base64', 4 'encode_noop', 5 'encode_quopri'] 6 import base64 7 from quopri import encodestring as _encodestring 8 9 def _qencode(s): 10 enc = _encodestring(s, quotetabs=True) 11 return enc.replace(' ', '=20') 12 13 14 def _bencode(s): 15 if not s: 16 return s 17 hasnewline = s[-1] == '\n' 18 value = base64.encodestring(s) 19 if not hasnewline and value[-1] == '\n': 20 return value[:-1] 21 return value 22 23 24 def encode_base64(msg): 25 orig = msg.get_payload() 26 encdata = _bencode(orig) 27 msg.set_payload(encdata) 28 msg['Content-Transfer-Encoding'] = 'base64' 29 30 31 def encode_quopri(msg): 32 orig = msg.get_payload() 33 encdata = _qencode(orig) 34 msg.set_payload(encdata) 35 msg['Content-Transfer-Encoding'] = 'quoted-printable' 36 37 38 def encode_7or8bit(msg): 39 orig = msg.get_payload() 40 if orig is None: 41 msg['Content-Transfer-Encoding'] = '7bit' 42 return 43 try: 44 orig.encode('ascii') 45 except UnicodeError: 46 msg['Content-Transfer-Encoding'] = '8bit' 47 else: 48 msg['Content-Transfer-Encoding'] = '7bit' 49 50 51 def encode_noop(msg): 52 pass