]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
backport of 1.12
authorAnthony Baxter <anthonybaxter@gmail.com>
Wed, 5 Dec 2001 04:34:13 +0000 (04:34 +0000)
committerAnthony Baxter <anthonybaxter@gmail.com>
Wed, 5 Dec 2001 04:34:13 +0000 (04:34 +0000)
check in for patch #430846
use faster code for base64.encodestring (courtesy of Mr. Tim Peters)
and for base64.decodestring (courtesy of Anthony Baxter)

Lib/base64.py

index 290fa83a047a50408fd1b8568354f1b4c863b50c..44cd03a20fcdf8f169187760abe4bc9e489213fc 100755 (executable)
@@ -33,19 +33,15 @@ def decode(input, output):
 
 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"""