[Biopython-dev] Martel in CVS
Andrew Dalke
dalke at acm.org
Mon Apr 9 14:19:40 EDT 2001
Jeff:
>Do you mean that "Bio" and "Martel" live in the same namespace? If so,
>that sounds fine to me.
Yep. I believe that was what we agreed upon.
[Tests/unittest.py vs. unittest.py in Python 2.1]
>Yes, me too. Biopython will not require Python 2.1 for some time from
>now. Can we use the Python 2.1 unittest in biopython? This would make
>the migration easier when it happens, and it sounds like it would make
>your work easier too.
Actually, yes, it would. Brad? Did you get the unittest.py
from the Python 2.1 distribution or the original code from which
it was based?
>> This all means there will be two different ways to parse
>> the same data files. How should that changeover be managed,
>> since the two styles of processing are somewhat different?
>
>Will this change the API, or can we just change the code out from under
>the current Parser and Iterator classes? If the API needs to change, we
>should do this sooner rather than later, and definitely before 1.0 is
>released. In fact, we won't release 1.0 until there are no planned API
>changes.
It might, or we can have two ways to read files. I (with you it
seems) prefer making all the changes now and have a single API
but I don't think that's possible.
What I'm concerned with is the API differences between Iterator,
Parser, etc. in biopython and the Martel way. I haven't
spent the time to figure out the best way to unite them.
I don't want to scrap the existing interface in favor of a
Martel style because there are some formats that Martel cannot
handle (eg, context free ones) and because it is hard to
retrofit most existing parsers to become event driven).
So I'll look to see what can be done to replace the code from
underneath Parser and Iterator. This is the style Cayte's
used, and it looks like Brad as well. The problems are
that 1) I need to learn this API better and 2) time.
The time comes in because I don't have support for all of
the formats Biopython currently handles, so there may be
a time when things are unstable. I cannot predict how
much effort that will take, so there will be a transformation
period when things are part one and part the other.
My thoughts are to go slowly. Put Martel in without any
of the parsers, then change and test each new format one by
one.
Still, the layer under Parser/Iterator must be accessible
to others because some format definitions are shared by
multiple databases and because Martel has the ability to
do some optimizations.
Andrew
dalke at acm.org
More information about the Biopython-dev
mailing list