Use the more modern six library to handle urllib, cStringIO, and cPickle.

Review Request #4936 — Created Nov. 11, 2013 and submitted

Information

Review Board
master

Reviewers

Use the more modern six library to handle urllib, cStringIO, and cPickle.

The urlparse, urllib, and urllib2 modules have been significantly reworked in
Python 3 to provide a much more consistent interface.

Additionally, the 'fast' versions of StringIO and pickle are now merged with
the 'slow' versions, so in the future we'll be able to just use io.StringIO and
pickle without 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 override netloc\_uses, which isn't among the "moved attributes" in six.

Ran unit tests.

Description From Last Updated

compat should be after cache.

chipx86chipx86

error before parse.

chipx86chipx86

error before parse.

chipx86chipx86

util after siteconfig.

chipx86chipx86

Mind documenting why we're doing this? Think I'd also prefer we pull out uses_netloc from the appropriate module, and then …

chipx86chipx86

Same comment here about docs and extending once. Actually, given that we're doing this multiple times, I think a better …

chipx86chipx86

Same here.

chipx86chipx86
chipx86
  1. 
      
  2. reviewboard/admin/forms.py (Diff revision 1)
     
     
     
     
    Show all issues

    compat should be after cache.

  3. reviewboard/hostingsvcs/beanstalk.py (Diff revision 1)
     
     
     
    Show all issues

    error before parse.

  4. reviewboard/hostingsvcs/bitbucket.py (Diff revision 1)
     
     
     
    Show all issues

    error before parse.

  5. reviewboard/hostingsvcs/github.py (Diff revision 1)
     
     
     
     
    Show all issues

    util after siteconfig.

  6. reviewboard/scmtools/bzr.py (Diff revision 1)
     
     
     
     
     
     
     
    Show all issues

    Mind documenting why we're doing this?

    Think I'd also prefer we pull out uses_netloc from the appropriate module, and then extend it only once.

  7. reviewboard/scmtools/git.py (Diff revision 1)
     
     
     
     
     
     
     
     
     
    Show all issues

    Same comment here about docs and extending once.

    Actually, given that we're doing this multiple times, I think a better option is to have a utility function that wraps this logic for us that we can just reuse.

  8. reviewboard/ssh/utils.py (Diff revision 1)
     
     
     
     
     
     
     
     
     
    Show all issues

    Same here.

  9. 
      
david
chipx86
  1. Ship It!
  2. 
      
david
Review request changed
Status:
Completed
Change Summary:
Pushed to master (b9d9573)