move imports in Binary class to top level to avoid repeated imports.
use cStringIO if available.
diff --git a/Lib/xmlrpclib.py b/Lib/xmlrpclib.py
index 8c1ef1f..b6cd24b 100644
--- a/Lib/xmlrpclib.py
+++ b/Lib/xmlrpclib.py
@@ -386,6 +386,12 @@
#
# @param data An 8-bit string containing arbitrary data.
+import base64
+try:
+ import cStringIO as StringIO
+except ImportError:
+ import StringIO
+
class Binary:
"""Wrapper for binary data."""
@@ -406,11 +412,9 @@
return cmp(self.data, other)
def decode(self, data):
- import base64
self.data = base64.decodestring(data)
def encode(self, out):
- import base64, StringIO
out.write("<value><base64>\n")
base64.encode(StringIO.StringIO(self.data), out)
out.write("</base64></value>\n")