[Biopython-dev] PEP8 lower case module names?

Eric Talevich eric.talevich at gmail.com
Thu Sep 6 14:40:13 UTC 2012

On Thu, Sep 6, 2012 at 6:13 AM, Michiel de Hoon <mjldehoon at yahoo.com> wrote:

> --- On Thu, 9/6/12, Peter Cock <p.j.a.cock at googlemail.com> wrote:
> > For any shared server, [...] you
> > would be forced into a mass change at one go.
> OK, for multiple users on a shared server I see your point.

True, and old scripts/pipelines have a way of sticking around, especially
once they've been shared with others in the lab.

> Here's a further (and slightly more radical) idea: We
> > stick with using 'Bio' and the current mixed case
> > names on Python 2, but adopt 'bio' and other PEP8
> > compatible names for Python 3 (as a uniform
> > strict automatic rule: mixed case -> lower case)?
> > i.e. Do this as part of our 2to3 process.
> The Python developers argue against combining a switch to Python 3 with
> other major changes, since then if bugs arise it is unclear if it is due to
> the switch to Python 3 or due to the other changes. But perhaps it's OK if
> we have one Bio.* version for Python 2 and one bio.* version for Python 3
> that are otherwise completely identical to each other.

Agreed, since the bio.* version is generated by the 2to3 script it should
still be easy enough to distinguish "this is a bug in the library" from
"this is a problem with Py3, 2to3 or your environment". The extra
separation on the filesystem provided by Py2/Py3 should also prevent some
problems with case-insensitivity and the environment.

> > How about over the next year we gradually consolidate
> > modules under the existing mixed case names? e.g.
> > move Bio.AlignIO functionality and Bio.Align,
> I guess you meant "merge Bio.AlignIO functionality into Bio.Align".
> > and Bio.Seq* under Bio.Seq (leaving backwards compatible
> > imports supported but deprecated).
> Sounds good to me. AFAIAC, we don't need to do this gradually over the
> next year. May as well do it for the next release.
Doing this in a single release might be better, so we can document/remember
the release number when the Grand Reshuffling took place and troubleshoot
users' resulting problems more easily.

Should we call that Biopython 2.0.0 and switch to semantic version numbers?

More information about the Biopython-dev mailing list