Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make biopython an optional dependency #3820

Closed
IAlibay opened this issue Sep 9, 2022 · 5 comments · Fixed by #4332
Closed

Make biopython an optional dependency #3820

IAlibay opened this issue Sep 9, 2022 · 5 comments · Fixed by #4332
Assignees
Milestone

Comments

@IAlibay
Copy link
Member

IAlibay commented Sep 9, 2022

I think this has been a long time request by @jbarnoud (apologies if I'm misremembering).

Not the biggest dependency, but we could easily make it an optional one given we need it mostly for sequence alignment. Probably needs some discussion re: the impact it has on seqres though.

@IAlibay IAlibay added this to the Release 3.0 milestone Sep 9, 2022
@orbeckst
Copy link
Member

Ok with me. We can eventually replace it with something else (scikit-bio?) but perhaps also optional.

In alignment (?) we use pairwise alignment somewhere, I don’t want to implement our own.

Generic comment on optional packages:
#3822 (comment)

@IAlibay
Copy link
Member Author

IAlibay commented Dec 8, 2022

Honestly with the new 1.80 pin we need to have here, I feel like we should act on this sooner than later. Are there any objections for getting this done in 2.5.0?

@orbeckst
Copy link
Member

orbeckst commented Dec 8, 2022

Both could load biopython on demand so we can definitely go ahead and make biopython an optional dependency.

@orbeckst
Copy link
Member

orbeckst commented Dec 8, 2022

Btw, how do we declare that an optional dependency requires a minimal version number?

@IAlibay IAlibay self-assigned this Oct 7, 2023
@IAlibay
Copy link
Member Author

IAlibay commented Nov 7, 2023

Btw, how do we declare that an optional dependency requires a minimal version number?

Had a quick look with #4332 and it doesn't look like setuptools enforces a minimum version on biopython as an optional dep. This makes sense, the requirement is "optional", so it shouldn't be strongly opiniated about what's in your environment.

As-is all our optional deps now don't have lower/upper pins on, which might not be the behaviour we want as a package.

How do we want to go about this?

One possible suggestion here is to spruce up our optional importers to also have version validators? That shouldn't be too hard to do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants