[Biopython-dev] Python 2.6

Peter biopython at maubp.freeserve.co.uk
Fri Oct 10 14:39:50 UTC 2008


>
> So, as far as I can see, we are OK with python 2.6 on Linux.  We
> should probably try and get this tested on Windows and on the Mac too
> for completeness.
>

Something the unit tests didn't flag up is the deprecation of popen2,
os.popen2, os.popen3, and os.popen4 in python 2.6 - see
http://www.python.org/dev/peps/pep-0361/

Ignoring deprecated code, this affects the following modules:

Bio.Application
Bio.Blast.NCBIStandalone - see also Bug 2528
Bio.Clustalw
Bio.Emboss.Applications
Bio.PDB.NACCESS

It might make sense to ensure all these used Bio.Application rather
than re-inventing the wheel?  We would then have a single point for
calling command line tools, which could use the subprocess module on
Python 2.4+, falling back on os.popen* for python 2.3.  As a bonus
this might cope with filenames with spaces better on Windows.

While we are discussing this, does anyone know why
Bio.Blast.NCBIStandalone doesn't use Bio.Blast.Application (which
subclasses Bio.Application)?  Looking over the CVS, eight years ago in
revision 1.5 of Bio/Blast/NCBIStandalone.py Jeff added the code for
calling standalone BLAST.  Then Brad added Bio/Blast/Applications.py
later (about six years ago).

Note that we also have plenty of modules using os.system too (where
there is no need to capture the command's output):

Bio.PDB.DSSP
Bio.PDB.NACCESS
Bio.PDB.PDBList
Bio.PDB.PSEA
Bio.PDB.ResidueDepth
Bio.Wise
Bio.PopGen.FDist.Controller
Bio.PopGen.SimCoal.Controller

Peter



More information about the Biopython-dev mailing list