diff options
author | Barry Warsaw <barry@python.org> | 2002-05-19 23:44:19 (GMT) |
---|---|---|
committer | Barry Warsaw <barry@python.org> | 2002-05-19 23:44:19 (GMT) |
commit | 8c1aac247667e6ac146e9153cd2941e4c5ec7b09 (patch) | |
tree | 4ed2ee7b3470d19d54d99d61f7509d3d4c5777bf /Lib/email/Encoders.py | |
parent | 2ae87539aad20670184ff9d30f625dddd6ac2e78 (diff) | |
download | cpython-8c1aac247667e6ac146e9153cd2941e4c5ec7b09.zip cpython-8c1aac247667e6ac146e9153cd2941e4c5ec7b09.tar.gz cpython-8c1aac247667e6ac146e9153cd2941e4c5ec7b09.tar.bz2 |
Complete a merge of the mimelib project and the Python cvs codebases
for the email package. The former is now just a shell project that
has some extra files for packaging for independent use (e.g. setup.py
and README).
Added a compatibility layer so that the same API can be used in Python
2.1 and 2.2/2.3 with the major differences shuffled off into helper
modules (_compat21.py and _compat22.py).
Also bumped the package version number to 2.0.3 for some fixes to be
checked in momentarily.
Diffstat (limited to 'Lib/email/Encoders.py')
-rw-r--r-- | Lib/email/Encoders.py | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/Lib/email/Encoders.py b/Lib/email/Encoders.py index f09affa..c369a24 100644 --- a/Lib/email/Encoders.py +++ b/Lib/email/Encoders.py @@ -5,15 +5,34 @@ """ import base64 -from quopri import encodestring as _encodestring # Helpers -def _qencode(s): - enc = _encodestring(s, quotetabs=1) - # Must encode spaces, which quopri.encodestring() doesn't do - return enc.replace(' ', '=20') +try: + from quopri import encodestring as _encodestring + + def _qencode(s): + enc = _encodestring(s, quotetabs=1) + # Must encode spaces, which quopri.encodestring() doesn't do + return enc.replace(' ', '=20') +except ImportError: + # Python 2.1 doesn't have quopri.encodestring() + from cStringIO import StringIO + import quopri as _quopri + + def _qencode(s): + if not s: + return s + hasnewline = (s[-1] == '\n') + infp = StringIO(s) + outfp = StringIO() + _quopri.encode(infp, outfp, quotetabs=1) + # Python 2.x's encode() doesn't encode spaces even when quotetabs==1 + value = outfp.getvalue().replace(' ', '=20') + if not hasnewline and value[-1] == '\n': + return value[:-1] + return value def _bencode(s): |