Use the more modern six library to handle urllib, cStringIO, and cPickle.
Review Request #4936 — Created Nov. 11, 2013 and submitted — Latest diff uploaded
Use the more modern six library to handle
urllib,cStringIO, andcPickle.The
urlparse,urllib, andurllib2modules have been significantly reworked in
Python 3 to provide a much more consistent interface.Additionally, the 'fast' versions of
StringIOandpickleare now merged with
the 'slow' versions, so in the future we'll be able to just useio.StringIOand
picklewithout the fallbacks.'six' has some adaptations to help with this for the time being. It's not as
pretty as I would like, but it works. The ugliest part of this is for places
where we overridenetloc\_uses, which isn't among the "moved attributes" in six.
Ran unit tests.