check in for patch #430846
use faster code for base64.encodestring (courtesy of Mr. Tim Peters)
and for base64.decodestring (courtesy of Anthony Baxter)
diff --git a/Lib/base64.py b/Lib/base64.py
index 290fa83..44cd03a 100755
--- a/Lib/base64.py
+++ b/Lib/base64.py
@@ -33,19 +33,15 @@
def encodestring(s):
"""Encode a string."""
- import StringIO
- f = StringIO.StringIO(s)
- g = StringIO.StringIO()
- encode(f, g)
- return g.getvalue()
+ pieces = []
+ for i in range(0, len(s), MAXBINSIZE):
+ chunk = s[i : i + MAXBINSIZE]
+ pieces.append(binascii.b2a_base64(chunk))
+ return "".join(pieces)
def decodestring(s):
"""Decode a string."""
- import StringIO
- f = StringIO.StringIO(s)
- g = StringIO.StringIO()
- decode(f, g)
- return g.getvalue()
+ return binascii.a2b_base64(s)
def test():
"""Small test program"""