mirror of
https://github.com/python/cpython.git
synced 2025-10-17 04:08:28 +00:00
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.
This commit is contained in:
parent
2ae87539aa
commit
8c1aac2476
7 changed files with 168 additions and 45 deletions
|
@ -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):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue