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

Move Map and Timeseries and their dependencies to extra requirements #4655

Closed
Cadair opened this issue Nov 17, 2020 · 7 comments · Fixed by #4662
Closed

Move Map and Timeseries and their dependencies to extra requirements #4655

Cadair opened this issue Nov 17, 2020 · 7 comments · Fixed by #4662
Labels
Discussion An issue opened for, or undergoing discussion. Infrastructure Issues or PRs that affect the CI or packaging of SunPy Priority High Rapid action required
Projects
Milestone

Comments

@Cadair
Copy link
Member

Cadair commented Nov 17, 2020

Given the discussion in #4592 (comment) about adding support for netcdf4 files to Timeseries, I think now is a good (ish) time to reconsider the standing policy that doing pip install sunpy installs all the dependencies for map and timeseries to be fully operational.

The current core deps are:
numpy>=1.16.0
scipy>=1.2.0
matplotlib>=2.2.2
pandas>=0.23.0
astropy>=4.0
parfive[ftp]>=1.1.0

There are a few variants of this plan, but I propose that the best option (other than the status quo) is to add a timeseries and a map extra. This would leave core with numpy, astropy and parfive.

matplotlib is an interesting one, I think we could leave it optional on both map and timeseries, but then cm also wouldn't work, so do we add an extra for that as well? (Maybe we need to leave mpl in core for 2.1 and work these things out??)

Of the rest scipy is Map (and image), pandas is timeseries.

We would need someone to do a good audit of the code make sure we aren't rushing this and miss something though.

@Cadair Cadair added this to the 2.1 milestone Nov 17, 2020
@Cadair Cadair added Discussion An issue opened for, or undergoing discussion. Infrastructure Issues or PRs that affect the CI or packaging of SunPy Priority High Rapid action required labels Nov 17, 2020
@Cadair
Copy link
Member Author

Cadair commented Nov 17, 2020

(I think #4596 would alleviate some of my concerns here, by being able to point users at self_test and knowing it will tell them if they are missing deps.)

@dstansby
Copy link
Member

I am pro reducing core dependencies, partnered with having clear instructions on how to install all dependencies if desired. As sunpy becomes more established, it seems more likely that there will be use cases of people using it for specific purposes (e.g. just coordinate transforms), and not needing all the dependencies. I think we have known this for a while really, and the concept of sunpy "core" alludes to that.

We would need someone to do a good audit of the code make sure we aren't rushing this and miss something though.

What do you mean by this?

@kakirastern
Copy link

Think it just means making sure everything works as expected...

@kakirastern
Copy link

Which can be quite a time consuming task if we check everything manually for a genuine audit and not a second identical set of CI/CD checks...

@Cadair
Copy link
Member Author

Cadair commented Nov 18, 2020

What do you mean by this?

I just mean people can currently safely make the assumption that we have say scipy available anywhere, say coordinates. Before we can be sure that a dep isn't core we need to work out where they are all being used.

@kakirastern
Copy link

Bet my mind is truly literal and would not take a hint 🤣

@wtbarnes
Copy link
Member

pandas is also used in sunpy.net.jsoc, both because of the dependency on drms which has a pandas dependency as well as in JSOCClient.search_metadata (which is in deprecated by #4358)

@Cadair Cadair added this to Release blockers in 2.1 Nov 18, 2020
2.1 automation moved this from Release blockers to Done Nov 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Discussion An issue opened for, or undergoing discussion. Infrastructure Issues or PRs that affect the CI or packaging of SunPy Priority High Rapid action required
Projects
No open projects
2.1
Done
Development

Successfully merging a pull request may close this issue.

4 participants