Fix to the English of a section title.
Step 1 in a little SVDSuperimposer reorganisation
Step 2 in a little SVDSuperimposer reorganisation
Step 3, restore SVDSuperimposer module docstring
Step 4, document SVDSuperimposer change in DEPRECATED file
Remove an 'import *' flagged by Eric Talevich
Create Bio._py3k.urllib for Python 2 & 3 compatible imports
Use Bio._py3k.urllib to reduce 2to3 changes
Mark files which 2to3 edits

This was done by first comparing the Python 2 source to the
Python 3 version generated by our do2to3.py script calling 2to3,
ignoring trivial differences due to future imports. This script
was used for this (run script, re-run do2to3.py, run script):

   import os
   import commands
   def clean(filename):
       with open(filename, "rU") as h:
           lines = list(h)
       fix = False
       for line in lines:
           if line.strip().startswith("from future_builtins import "):
               fix = True
           elif line.strip().startswith("from __future__ import "):
               fix = True
       if not fix:
           return
       with open(filename, "w") as h:
           for line in lines:
               if not line.strip().startswith("from future_builtins import") \
               and not line.strip().startswith("from __future__ import "):
                   h.write(line)
   def get_fixers(py2filename, py3filename):
       cmd = "diff -w %s %s" % (py2filename, py3filename)
       return bool(commands.getoutput(cmd))
   good = 0
   bad = 0
   bad_list = open("check_2to3.txt", "w")
   for dirpath, dirnames, filenames in os.walk("."):
       if dirpath.startswith("./build"):
           continue
       if dirpath == ".":
           continue
       if dirpath.startswith("./Bio/_py3k/"):
           continue
       for f in sorted(filenames):
           if f == "run_tests.py":
               continue
           if not f.endswith(".py"):
               continue
           py2filename = os.path.join(dirpath, f)
           py3filename = os.path.join("build/py3.3", py2filename)
           if not py3filename:
               continue
           #Remove trivial imports which give false positive diff:
           clean(py2filename)
           clean(py3filename)
           fixers = get_fixers(py2filename, py3filename)
           if fixers:
               bad += 1
               print("%s <--> %s" % (py2filename, py3filename))
               bad_list.write("%s\n" % py2filename)
           else:
               good += 1
   bad_list.close()
   print("%i no change, %i need fixers" % (good, bad))
   print("Troublesome ones %0.1f%%" % ((bad*100.0)/(good+bad)))

This recorded the list of files which 2to3 edits to disk. Then
do a git reset --hard to undo the future import removal. Then
I inserted the marker comment using the following script:

    import os
    MAGIC = "# TODO - Targets Python 2 only (use 2to3 to run under Python 3)"
    def mark_file(filename):
        with open(filename, "rU") as h:
            lines = list(h)
        for line in lines:
            if line.strip() == MAGIC:
                        #Already marked
                        return
        with open(filename, "w") as h:
            if lines[0].startswith("#"):
                while lines[0].startswith("#"):
                    h.write(lines.pop(0))
                h.write("#\n")
            h.write("%s\n" % MAGIC)
            for line in lines:
                h.write(line)
    for line in open("check_2to3.txt"):
        filename = line.strip()
        mark_file(filename)
        os.system("git add %s" % filename)

Then with a modified do2to3.py (next commit), we can skip 2to3
for most of the Python files :)
Only use 2to3 on files with special comment marker in them